*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(circle at 20% 10%,rgba(255,112,35,.12),transparent 45%),radial-gradient(circle at 85% 85%,rgba(72,154,255,.12),transparent 45%),#0f0d13;color:#f4ecd8;font-family:Courier New,ui-monospace,monospace;letter-spacing:.02em}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}button:disabled{cursor:default;opacity:.55}.app{height:100%;display:grid;grid-template-rows:auto 1fr auto}.topbar{display:flex;align-items:center;gap:16px;padding:12px 20px;background:#181521;border-bottom:2px dashed #463c2c}.brand{display:flex;align-items:baseline;gap:6px}.brand-kerning{font-weight:900;font-size:28px;display:inline-block;color:#f9c646;text-shadow:2px 2px 0 #b0461e;transform:rotate(-3deg)}.brand-kerning.brand-alt{color:#8be9fd;transform:rotate(4deg);text-shadow:2px 2px 0 #1e3b60}.brand-kerning:nth-child(3){transform:rotate(-1deg)}.brand-sub{margin-left:10px;font-size:11px;opacity:.55;letter-spacing:.15em;text-transform:uppercase}.phase-chip{margin-left:auto;margin-right:4px;padding:4px 10px;background:#2a2332;border:1px solid #5a4a2a;border-radius:2px;font-size:12px;text-transform:uppercase;letter-spacing:.15em}.topbar-stats{display:flex;gap:14px;align-items:baseline;padding:4px 10px;background:#1f1a28;border:1px solid #463c2c}.topbar-stat{display:flex;flex-direction:column;gap:1px;align-items:flex-start}.topbar-stat-label{font-size:9px;letter-spacing:.2em;text-transform:uppercase;opacity:.55}.topbar-stat-value{font-weight:900;color:#f9c646;font-size:14px;font-variant-numeric:tabular-nums}.topbar-btn{padding:6px 12px;background:#f9c646;color:#1a1310;font-weight:700;text-transform:uppercase;letter-spacing:.12em;border:2px solid #1a1310;box-shadow:3px 3px #1a1310}.topbar-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px #1a1310}.stage{display:grid;grid-template-columns:340px 1fr;gap:24px;padding:24px;min-height:0}@media (max-width: 900px){.stage{grid-template-columns:1fr}}.left,.right{display:flex;flex-direction:column;gap:20px;min-width:0}.right{align-items:center;justify-content:flex-start}.hud{background:#efe6cf;color:#1a1310;padding:14px 16px;border:2px solid #1a1310;box-shadow:5px 5px #000;transform:rotate(-1deg);display:flex;flex-direction:column;gap:8px}.hud-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.hud-label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.7}.hud-value{font-weight:900;font-size:22px}.hud-total .hud-value{font-size:40px;color:#b0461e;font-family:Courier New,monospace}.hud-numbers{display:flex;gap:6px;flex-wrap:wrap}.hud-num{min-width:28px;padding:2px 6px;background:#fff;border:1px solid #1a1310;text-align:center;font-weight:700}.hud-num--hit{background:#f9c646;box-shadow:0 0 0 2px #b0461e}.offers{background:#2b1f14;border:2px solid #f9c646;padding:12px;transform:rotate(.6deg)}.offers-title{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.18em;color:#f9c646}.offers-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.offer{padding:10px 8px;background:#efe6cf;color:#1a1310;border:2px solid #1a1310;box-shadow:3px 3px #000;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.offer:hover{transform:translate(-1px,-1px);box-shadow:4px 4px #000}.offer:active{cursor:grabbing}.offer--dragging{opacity:.35;box-shadow:1px 1px #000}.offer--symbol{background:#fff5dc}.offer--booster{background:#ffe0b3}.offer--wild{background:#b3e5ff}.offer--trigger{background:#ffd1dc}.offer--unaffordable{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}.offer--unaffordable:hover{transform:none;box-shadow:3px 3px #000}.offer--consumed{opacity:.3;cursor:not-allowed;filter:grayscale(.7);background:#d8cdb3}.offer--consumed:hover{transform:none;box-shadow:3px 3px #000}.offer-price{align-self:flex-start;padding:2px 6px;background:#1a1310;color:#f9c646;font-size:11px;font-weight:900;letter-spacing:.12em;border-radius:2px;transform:rotate(-3deg) translate(-4px,-6px)}.offer--consumed .offer-price{background:#6b3f20;color:#e6dcc4}.shop{background:#1e1a12;border:2px solid #f9c646;padding:14px;display:flex;flex-direction:column;gap:12px;box-shadow:6px 6px #000}.shop-header{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:8px;border-bottom:2px dashed #5a4a2a}.shop-title{font-weight:900;color:#f9c646;text-transform:uppercase;letter-spacing:.2em;font-size:14px}.shop-wallet{display:flex;align-items:baseline;gap:8px}.shop-wallet-label{font-size:10px;text-transform:uppercase;letter-spacing:.22em;opacity:.65}.shop-wallet-value{font-size:22px;font-weight:900;color:#8be9fd}.shop-commit{padding:10px;background:#f9c646;color:#1a1310;font-weight:900;text-transform:uppercase;letter-spacing:.18em;border:2px solid #1a1310;box-shadow:3px 3px #000}.shop-commit:hover{transform:translate(-1px,-1px);box-shadow:4px 4px #000}.hud-wallet .hud-value{color:#8be9fd}.drag-ghost{position:fixed;transform:translate(-50%,-50%) rotate(-4deg) scale(1.08);pointer-events:none;z-index:1000;min-width:72px;padding:10px;cursor:grabbing;box-shadow:6px 6px #000;opacity:.95}.ticket--build{width:min(520px,100%)}.ticket--dragging{box-shadow:10px 10px #b0461e}.build-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.build-slot{aspect-ratio:1;border:2px dashed #1a1310;background:#efe6cf;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:transform .1s ease,box-shadow .1s ease,background .1s ease;touch-action:none}.build-slot--symbol{background:#fff5dc}.build-slot--booster{background:#ffe0b3}.build-slot--wild{background:#b3e5ff}.build-slot--trigger{background:#ffd1dc}.build-slot--over{transform:translate(-1px,-1px) scale(1.04);border-style:solid;border-color:#b0461e;background:#f9c646;box-shadow:4px 4px #b0461e}.build-slot-glyph{font-size:28px;line-height:1}.build-slot-detail{font-size:10px;opacity:.7;text-transform:uppercase;letter-spacing:.12em}.offer-glyph{font-size:30px;line-height:1}.offer-kind{font-size:10px;text-transform:uppercase;letter-spacing:.2em}.offer-detail{font-size:11px;opacity:.75;line-height:1.2}.ticket{background:#fffaf0;color:#1a1310;padding:16px;border:2px solid #1a1310;box-shadow:8px 8px #000;width:min(520px,100%);transform:rotate(-.8deg)}.ticket--stub{opacity:.6}.ticket-header{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px;border-bottom:2px dashed #b0461e;margin-bottom:14px}.ticket-tag{font-weight:900;letter-spacing:.12em;color:#b0461e}.ticket-sub{font-size:11px;opacity:.7;text-transform:uppercase;letter-spacing:.15em}.ticket-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ticket-grid--stub .cell--stub{aspect-ratio:1;background:repeating-linear-gradient(45deg,#e6dcc4,#e6dcc4 6px,#d8cdb3 6px 12px);border:2px solid #b0461e}.cell{aspect-ratio:1;padding:0;border:2px solid #1a1310;background:transparent;position:relative;display:flex;align-items:center;justify-content:center;transition:transform .12s ease}.cell:hover:not(:disabled){transform:translate(-1px,-1px) rotate(0)!important;z-index:2}.cell-face{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;position:relative}.cell-face--hidden{background:repeating-linear-gradient(135deg,#c0bdb0,#c0bdb0 4px,#a8a595 4px 8px);color:#1a1310}.cell-face--symbol{background:#fff5dc}.cell-face--booster{background:#ffd489}.cell-face--wild{background:#cfefff}.cell-face--wild-echo{background:repeating-linear-gradient(45deg,#cfefff 0 6px,#b3e0ff 6px 12px);box-shadow:inset 0 0 0 2px #2566a8}.cell-face--wild-prism{background:conic-gradient(from 0deg,#ffd1dc,#cfefff,#ffe0b3,#d6c2ff,#ffd1dc);box-shadow:inset 0 0 0 2px #6a3ca8}.cell-flavor{position:absolute;top:4px;left:4px;padding:1px 4px;font-size:9px;font-weight:900;letter-spacing:.18em;background:#1a1310;color:#fffaf0;line-height:1}.cell-flavor--echo{color:#8be9fd}.cell-flavor--prism{color:#ffd1dc}.cell-face--trigger{background:#ffd1dc}.cell-scratchmark{font-size:10px;text-transform:uppercase;letter-spacing:.2em;opacity:.65}.cell-glyph{font-size:32px;line-height:1}.cell-delta{font-size:12px;font-weight:900;color:gray}.cell-delta--pos{color:#1e7a36}.score-card{background:#fffaf0;color:#1a1310;padding:18px;border:2px solid #1a1310;box-shadow:6px 6px #000;text-align:center;transform:rotate(1.2deg);display:flex;flex-direction:column;gap:8px}.score-card-label{font-size:11px;text-transform:uppercase;letter-spacing:.2em;opacity:.65}.score-card-total{font-size:64px;font-weight:900;color:#b0461e;line-height:1}.score-card-sub{font-size:12px;opacity:.8}.score-card-btn{margin-top:4px;padding:8px 12px;background:#1a1310;color:#f9c646;font-weight:700;text-transform:uppercase;letter-spacing:.14em;border:2px solid #1a1310}.score-card--final{background:#f9c646;transform:rotate(-1.4deg)}.score-card--final .score-card-total{color:#1a1310;text-shadow:3px 3px 0 #b0461e}.score-card-best{font-size:11px;font-weight:900;letter-spacing:.25em;text-transform:uppercase;color:#b0461e;background:#fffaf0;padding:2px 6px;align-self:center}.score-card--bust{background:#1a1310;color:#f9c646;transform:rotate(-1.8deg);border-color:#b0461e;box-shadow:8px 8px #b0461e}.score-card--bust .score-card-label{color:#f9c646;opacity:.85}.score-card--bust .score-card-total{color:#f9c646;text-shadow:3px 3px 0 #b0461e}.score-card--bust .score-card-sub{color:#f9c646;opacity:.85}.score-card-bust-stamp{align-self:center;font-size:44px;font-weight:900;letter-spacing:.12em;color:#fffaf0;background:#b0461e;padding:6px 20px;border:3px double #fffaf0;transform:rotate(-4deg) skew(-6deg);text-shadow:2px 2px 0 #1a1310}.score-card-btn--bust{background:#b0461e;color:#fffaf0;border-color:#fffaf0}.last-run{display:flex;align-items:baseline;gap:8px;padding:8px 10px;background:#181521;border:1px dashed #463c2c;font-size:12px}.last-run-label{text-transform:uppercase;letter-spacing:.2em;opacity:.6}.last-run-value{font-weight:900;font-size:18px;color:#f9c646;font-variant-numeric:tabular-nums}.last-run-thresh{font-size:12px;font-weight:400;opacity:.55;margin-left:2px}.last-run-tag{margin-left:auto;padding:2px 6px;text-transform:uppercase;letter-spacing:.2em;font-size:10px;border:1px solid #5a4a2a}.last-run-tag--hit{background:#f9c646;color:#1a1310;border-color:#1a1310}.footer{padding:8px 20px;background:#181521;border-top:2px dashed #463c2c;min-height:80px}.history{list-style:none;margin:0;padding:0;font-size:11px;opacity:.65;display:flex;flex-direction:column;gap:2px;max-height:72px;overflow:hidden}.history-entry{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.build-slot--bust,.cell-face--bust{background:repeating-linear-gradient(45deg,#c94a2b 0 6px,#b03d22 6px 12px);border-color:#1a1310}.build-slot--bust{position:relative;color:#fffaf0}.build-slot-stamp,.cell-void-stamp{font-size:22px;font-weight:900;letter-spacing:.25em;color:#fffaf0;text-shadow:2px 2px 0 #4a1a0e;transform:rotate(-8deg);border:3px double #fffaf0;padding:2px 8px;background:#1a13108c}.cell-void-stamp{font-size:20px}.build-slot--empty,.cell-face--empty{background:repeating-linear-gradient(-45deg,#efe6cf 0 6px,#e0d6bf 6px 12px);border:2px dashed #8a7355;color:#5a4a2a}.build-slot-glyph--empty{color:#8a7355}.cell-empty-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#8a7355}.build-slot--fixme{animation:fixme-pulse 1.2s ease-in-out infinite;box-shadow:0 0 0 2px #f9c646,4px 4px #b0461e}@keyframes fixme-pulse{0%,to{box-shadow:0 0 0 2px #f9c646,4px 4px #b0461e}50%{box-shadow:0 0 0 4px #ffd95a,5px 5px #b0461e}}.offer--mod-target,.offer--mod-cell{background:#e9dcff;border-color:#5a3ba8}.offer--mod .offer-glyph{font-size:26px;font-weight:900;color:#5a3ba8}.offer--mod .offer-kind{color:#5a3ba8}.ticket-extras,.build-extras{margin-top:12px;padding-top:10px;border-top:2px dashed #b0461e}.ticket-extras-label,.build-extras-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.6;margin-bottom:6px}.ticket-extras-row,.build-extras-row{display:flex;gap:8px;flex-wrap:wrap}.ticket-extras-row .cell,.build-extras-row .build-slot{width:72px;height:72px;aspect-ratio:1;flex:0 0 72px;transform:rotate(-2deg)}.ticket-extras-row .cell:nth-child(2n),.build-extras-row .build-slot:nth-child(2n){transform:rotate(3deg)}.cell-delta--neg{color:#b0461e;font-weight:900}.hud-num--owned{box-shadow:0 0 0 2px #5a3ba8;background:#e9dcff}.hud-owned{font-size:11px;opacity:.85}.hud-owned-count{font-weight:900;color:#5a3ba8}
