:root{--ink-900:#0B0B0D;--ink-700:#141418;--ink-500:#222228;--ink-300:#3A3A42;--felt-700:#12251D;--felt-500:#1E3A2F;--brass-500:#C9A959;--brass-700:#8C6F2E;--bone-500:#E8E2D4;--bone-700:#A8A294;--blood-500:#C0392B;--blood-700:#7E2A20;--sym-sword:#E8E2D4;--sym-shield:#9FB4C7;--sym-heart:#D45A6A;--sym-coin:#C9A959;--sym-flame:#E0682A;--sym-frost:#7EC8E3;--sym-venom:#8BC34A;--sym-bolt:#F5D742;--sym-clover:#4CAF6D;--sym-skull:#C0392B;--font-display:"Oswald","Arial Narrow",system-ui,sans-serif;--font-body:system-ui,-apple-system,"Segoe UI",sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.75rem;--text-num:2.5rem;--text-num-lg:3.5rem;--radius-face:8px;--radius-card:12px;--radius-btn:10px;--shadow-hard:0 2px 0 rgba(0,0,0,.55)}html[data-act="1"]{--accent:#2EEA6B;--accent-dim:#17572F}html[data-act="2"]{--accent:#FFB020;--accent-dim:#6B4A10}html[data-act="3"]{--accent:#B26BFF;--accent-dim:#4A2A75}.face{background:var(--ink-500);border:2px solid var(--brass-700);border-radius:var(--radius-face);opacity:.7}.face.is-selectable{opacity:1;border-color:var(--brass-500)}.face.is-selected{border-color:var(--accent);box-shadow:inset 0 0 12px color-mix(in srgb,var(--accent) 35%,transparent)}.face.is-selected .face-icon{color:var(--accent)}.face.is-match{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--ink-500))}.face.is-hostile{border-color:var(--blood-700);background:color-mix(in srgb,var(--blood-500) 8%,var(--ink-500))}.face.is-dead{background:var(--ink-300)}.face.is-dead .face-icon{opacity:.4}.face.is-wild{animation:wild-shimmer 2.4s linear infinite}.btn{min-height:44px;padding:0 20px;border-radius:var(--radius-btn);font:600 var(--text-md)/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase}.btn-primary{min-height:56px;background:var(--accent);color:var(--ink-900);border:0;box-shadow:var(--shadow-hard)}.btn-primary:active{background:var(--accent-dim)}.btn-primary:disabled{background:var(--ink-300);color:var(--bone-700);opacity:.5;box-shadow:none}.btn-secondary{background:transparent;color:var(--brass-500);border:1.5px solid var(--brass-500)}.btn-secondary:active{background:var(--felt-500)}.btn:focus-visible{outline:2px solid var(--bone-500);outline-offset:2px}.table{background-color:var(--felt-700);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.9 0 0 0 0 0.9 0 0 0 0 0.85 0 0 0 0.02 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}@media (update:slow){.table{background-image:none}}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--ink-900);color:var(--bone-500);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overscroll-behavior:none;user-select:none;-webkit-user-select:none}#app{height:100dvh;max-width:480px;margin:0 auto;position:relative;overflow:hidden}.screen{height:100%;display:flex;flex-direction:column;padding:12px 14px calc(12px + env(safe-area-inset-bottom))}.hud{display:flex;align-items:baseline;gap:12px;padding:6px 2px 10px}.hud-floor{font:700 var(--text-lg)/1 var(--font-display);letter-spacing:.08em;color:var(--bone-500)}.hud-floor.bump{animation:floor-bump .4s var(--ease-tease, ease-out)}@keyframes floor-bump{30%{transform:scale(1.15);color:var(--accent)}}.hud-power{font:600 var(--text-sm)/1 var(--font-display);color:var(--blood-500);letter-spacing:.05em}.hud-rate{margin-left:auto;font:600 var(--text-sm)/1 var(--font-display);color:var(--brass-500);letter-spacing:.05em}.floor-track{height:6px;border-radius:3px;background:var(--ink-500);overflow:hidden;margin-bottom:10px}.floor-bar{height:100%;width:0%;background:var(--accent);transition:width .3s linear}.gate-banner{display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--brass-700);border-radius:var(--radius-card);background:var(--ink-700);padding:10px 12px;margin-bottom:10px}.gate-banner strong{font:700 var(--text-md)/1.2 var(--font-display);letter-spacing:.08em;color:var(--brass-500)}.gate-banner span{font-size:var(--text-xs);color:var(--bone-700)}.gate-banner.is-stalled{border-color:var(--blood-700)}.gate-banner.is-stalled strong{color:var(--blood-500)}.machine-grid{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:8px 6px}.machine-row{display:flex;justify-content:center;gap:14px}.machine-face{width:84px;height:84px;display:flex;align-items:center;justify-content:center;background:var(--ink-500);border:2px solid var(--brass-700);border-radius:var(--radius-face)}.machine-face .face-icon{width:44px;height:44px;display:block}.machine-face .face-icon svg{width:100%;height:100%}.machine-face.is-spinning{animation:face-blur .22s linear;border-color:var(--ink-300)}@keyframes face-blur{50%{transform:translateY(-4px) scaleY(.92);filter:blur(1.5px)}}.machine-face.is-match{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--ink-500))}.machine-face.is-payline{border-color:var(--accent);box-shadow:0 0 14px color-mix(in srgb,var(--accent) 45%,transparent)}.float-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.float{position:absolute;transform:translate(-50%,-100%);font:700 var(--text-md)/1 var(--font-display);animation:float-up 1.4s ease-out forwards}.float-dmg{color:var(--blood-500)}.float-gold{color:var(--brass-500)}.float-boss{color:var(--accent);letter-spacing:.06em}@keyframes float-up{20%{opacity:1}to{transform:translate(-50%,-260%);opacity:0}}.bank-row{display:flex;align-items:center;gap:10px;padding:10px 0 6px}.bank-cell{flex:1;text-align:center}.bank-label{font:600 var(--text-xs)/1 var(--font-display);letter-spacing:.12em;color:var(--bone-700);margin-bottom:4px}.bank-value{font:700 var(--text-lg)/1 var(--font-display);color:var(--bone-500)}.gold-value{color:var(--brass-500)}.collect-btn{flex:1.2}.collect-btn:disabled{opacity:.5}.prestige-strip{display:flex;gap:14px;justify-content:center;padding:4px 0 2px;min-height:22px}.chip{font:600 var(--text-sm)/1 var(--font-display);letter-spacing:.06em}.chip-markers{color:var(--accent)}.chip-shares{color:var(--brass-500)}.sheet-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;background:#0b0b0db8;display:flex;align-items:flex-end}.sheet{width:100%;background:var(--ink-700);border-top:2px solid var(--brass-700);border-radius:16px 16px 0 0;padding:20px 18px calc(18px + env(safe-area-inset-bottom));animation:sheet-up .25s ease-out}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}}.sheet-title{font:700 var(--text-lg)/1 var(--font-display);letter-spacing:.1em;margin-bottom:12px;color:var(--bone-500)}.sheet-flavor{color:var(--bone-700);margin-bottom:8px;font-size:var(--text-sm)}.sheet-action{width:100%;margin-top:10px}@media (prefers-reduced-motion: reduce){.machine-face.is-spinning,.float,.hud-floor.bump{animation:none}.float{opacity:1}}.gate-banner[hidden]{display:none}.bottom-nav{position:absolute;left:0;right:0;bottom:0;z-index:30;display:flex;border-top:2px solid var(--brass-700);background:var(--ink-700);padding-bottom:env(safe-area-inset-bottom)}.nav-btn{flex:1;min-height:52px;background:none;border:0;font:700 var(--text-sm)/1 var(--font-display);letter-spacing:.14em;color:var(--bone-700)}.nav-btn.is-active{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.screen{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.vault-hud .vault-bal{font:700 var(--text-md)/1 var(--font-display)}.vault-hud .chip-shares{margin-left:0}.vault-wing-title{font:700 var(--text-md)/1 var(--font-display);letter-spacing:.1em;color:var(--brass-500);margin:8px 2px 2px}.vault-wing-sub{font-size:var(--text-xs);color:var(--bone-700);margin:0 2px 12px}.vault-items{display:flex;flex-direction:column;gap:12px;overflow-y:auto}.vault-card{border:1.5px solid var(--ink-300);border-radius:var(--radius-card);background:var(--ink-700);padding:14px}.vault-card.is-afford{border-color:var(--brass-500);box-shadow:0 0 10px color-mix(in srgb,var(--brass-500) 25%,transparent)}.vault-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.vault-card-name{font:700 var(--text-md)/1 var(--font-display);letter-spacing:.08em}.vault-card-pips{display:flex;gap:4px}.pip{width:8px;height:8px;border-radius:50%;background:var(--ink-300)}.pip.is-on{background:var(--accent)}.vault-card-blurb{color:var(--bone-700);font-size:var(--text-sm);margin-bottom:6px}.vault-card-effect{color:var(--accent);font-size:var(--text-sm);font-weight:600;margin-bottom:12px}.vault-buy{width:100%}.screen[hidden]{display:none}.vault-card-tag{font:600 var(--text-xs)/1 var(--font-display);letter-spacing:.1em;color:var(--brass-500);border:1px solid var(--brass-700);border-radius:4px;padding:3px 6px}.prestige-row{display:flex;gap:10px;padding:6px 0 2px}.prestige-btn{flex:1;min-height:52px;line-height:1.25}.prestige-btn small{font-size:var(--text-xs);letter-spacing:.04em;text-transform:none;color:inherit;opacity:.8}.prestige-btn:disabled{opacity:.45}.cashout-btn:not(:disabled){border-color:var(--blood-500);color:var(--blood-500)}.wipe-check{display:flex;gap:8px;align-items:center;margin:12px 0 4px;font-size:var(--text-sm);color:var(--bone-500)}.wipe-check input{width:20px;height:20px;accent-color:var(--blood-500)}.sheet-sub{font:600 var(--text-xs)/1 var(--font-display);letter-spacing:.1em;color:var(--bone-700);text-transform:uppercase;margin:12px 0 6px}.cfg-histo-title{font:700 var(--text-md)/1 var(--font-display);letter-spacing:.1em;color:var(--brass-500);margin:8px 2px 6px}.cfg-histo{display:flex;flex-wrap:wrap;gap:6px;margin:0 2px 14px}.cfg-histo-cell{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--brass-700);border-radius:6px;padding:4px 8px;font-size:var(--text-sm)}.cfg-histo-cell .face-icon svg{width:18px;height:18px}.cfg-histo-cell b{font:700 var(--text-xs)/1 var(--font-display);color:var(--bone-500)}.cfg-dock-title{font:700 var(--text-md)/1 var(--font-display);letter-spacing:.1em;color:var(--brass-500);margin:4px 2px 6px}.cfg-dock{display:flex;gap:8px;margin:0 2px 10px}.cfg-slot{flex:1;min-height:56px;border:1px solid var(--brass-700);border-radius:8px;padding:6px 8px;display:flex;flex-direction:column;gap:3px}.cfg-slot.is-empty{border-style:dashed;align-items:center;justify-content:center;color:var(--bone-700)}.cfg-slot-name{font:700 var(--text-sm)/1.1 var(--font-display);letter-spacing:.04em;display:flex;justify-content:space-between;gap:4px}.cfg-slot-name small{color:var(--brass-500);font-size:var(--text-xs);letter-spacing:.1em}.cfg-slot-desc{font-size:var(--text-xs);color:var(--bone-700)}.cfg-shelf{display:flex;flex-wrap:wrap;gap:6px;margin:0 2px 12px}.cfg-relic{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--brass-700);border-radius:6px;padding:4px 8px}.cfg-relic-name{font-size:var(--text-sm)}.cfg-relic-badge{font:600 var(--text-xs)/1 var(--font-display);letter-spacing:.1em;color:var(--brass-500);border:1px solid var(--brass-700);border-radius:4px;padding:2px 5px}.cfg-tabs{display:flex;gap:6px;margin:4px 2px 10px}.cfg-tab{flex:1;font:700 var(--text-sm)/1 var(--font-display);letter-spacing:.08em;padding:9px 0;background:none;border:1px solid var(--brass-700);border-radius:8px;color:var(--bone-700);cursor:pointer}.cfg-tab.is-active{color:var(--bone-100);border-color:var(--brass-500);box-shadow:0 0 10px color-mix(in srgb,var(--brass-500) 25%,transparent)}.cfg-rows{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-bottom:8px}.cfg-pending{font-size:var(--text-sm);color:var(--bone-700);border:1px dashed var(--brass-700);border-radius:8px;padding:14px 12px}.cfg-row{display:grid;grid-template-columns:28px 1fr auto auto;grid-template-areas:"icon name cost btn" "icon ev cost btn";align-items:center;column-gap:8px;border:1px solid var(--brass-700);border-radius:8px;padding:8px 10px}.cfg-row.is-gated{opacity:.65}.cfg-row-icon{grid-area:icon}.cfg-row-icon svg{width:24px;height:24px}.cfg-row-name{grid-area:name;font:700 var(--text-sm)/1.1 var(--font-display);letter-spacing:.04em;display:flex;gap:6px;align-items:baseline}.cfg-row-name small{color:var(--bone-700);font-size:var(--text-xs)}.cfg-row-ev{grid-area:ev;font-size:var(--text-xs);color:var(--accent)}.cfg-row-cost{grid-area:cost;font-size:var(--text-sm);color:var(--bone-500)}.cfg-row-btn{grid-area:btn}.cfg-row-btn{font-size:var(--text-xs);padding:8px 10px;white-space:nowrap}
