:root{color-scheme:dark;--ink: #0b0807;--cream: #f1e8d4;--dim: #c9bda6;--brass: #d8b25a;--ember: #ff8a4a;--ember-text: #ffc090;--bang: #ff6a52;--win: #e9cf7a;--panel: rgba(14, 10, 8, .86);--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-size:18px}:root.big{font-size:21px}*{box-sizing:border-box;margin:0;padding:0}button,a{touch-action:manipulation}html{-webkit-tap-highlight-color:transparent}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none}html,body{width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--cream);font-family:var(--sans);line-height:1.4}#stage{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.boot{position:fixed;left:0;right:0;top:42%;text-align:center;letter-spacing:.2em;font-family:var(--serif);color:var(--dim);z-index:6;pointer-events:none}#scan{display:none}#vignette{position:fixed;inset:0;pointer-events:none;z-index:3;background:radial-gradient(ellipse at 50% 40%,transparent 38%,rgba(0,0,0,.7) 100%);transition:background-size .6s ease-in,opacity .6s;background-size:100% 100%;background-position:center}body.aim #vignette{background:radial-gradient(ellipse at 50% 38%,transparent 14%,rgba(0,0,0,.94) 62%);animation:tunnel 1.1s ease-in forwards}@keyframes tunnel{0%{opacity:.4}to{opacity:1}}@media(prefers-reduced-motion:reduce){body.aim #vignette{animation:none}}#flash,#blackout{position:fixed;inset:0;pointer-events:none;opacity:0}#flash{z-index:4}#flash.on{animation:flash .5s ease-out forwards}#flash.bang{background:radial-gradient(ellipse at 50% 40%,rgba(255,220,160,.7),rgba(255,140,60,.25) 55%,transparent 100%);animation-duration:.35s}#flash.safe{background:radial-gradient(ellipse at 50% 45%,rgba(241,232,212,.12),transparent 70%);animation-duration:.3s}#flash.win{background:radial-gradient(ellipse at 50% 55%,rgba(233,207,122,.35),transparent 75%);animation-duration:.9s}@keyframes flash{0%{opacity:1}to{opacity:0}}#splat{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:7;opacity:0}#splat.on{animation:splat 2.4s ease-out forwards}@keyframes splat{0%{opacity:0;transform:scale(1.04)}4%{opacity:1;transform:scale(1)}70%{opacity:1}to{opacity:.55}}#blackout{z-index:8;background:#000}#blackout.on{opacity:1;transition:none}#blackout.fade{opacity:0;transition:opacity 1.4s ease-in}#app{position:relative;z-index:5;min-height:100%;display:flex;flex-direction:column;pointer-events:none}#app button,#app a,#app .panel,#app .hud,#app .skip{pointer-events:auto}.skip{position:fixed;left:12px;top:calc(12px + env(safe-area-inset-top));z-index:30;padding:12px 18px;min-height:48px;background:var(--brass);color:#1a1208;font-weight:700;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;border-radius:6px;transform:translateY(-180%)}.skip:focus,.skip:focus-visible{transform:none;transition:none;outline:3px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 6px var(--cream)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.top{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px}.brand strong{font-family:var(--serif);letter-spacing:.24em;color:var(--brass)}.brand span{display:block;color:var(--dim);font-size:.8rem;font-family:var(--serif);font-style:italic}.top-btns{display:flex;gap:6px;justify-content:flex-end}.panel{display:none;margin:auto 1rem 3.2rem;max-width:30rem;width:calc(100% - 2rem);align-self:center;text-align:center;padding:1.2rem 1.1rem 1.1rem;border:1px solid rgba(216,178,90,.5);background:var(--panel);box-shadow:0 10px 40px #0009;max-height:calc(100vh - 9rem);max-height:calc(100dvh - 9rem);overflow-y:auto}.panel.active{display:block}.gate:not([hidden]){display:block}h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,9vw,3.2rem);letter-spacing:.18em;color:var(--brass)}.sub{color:var(--dim);font-family:var(--serif);font-style:italic;margin:.2rem 0 1.1rem}.gate p{margin-top:.7rem}.gate .lead{font-family:var(--serif);font-size:1.2rem}.gate-btns{display:flex;flex-direction:column;gap:10px;margin-top:1.2rem}.care{font-size:.85rem;color:var(--dim);border-top:1px solid rgba(216,178,90,.25);padding-top:.8rem}.care strong{color:var(--cream)}.modes{display:flex;flex-direction:column;gap:.7rem}.modes button{text-align:left;display:flex;flex-direction:column;gap:.3rem;font-family:var(--serif);font-size:1.15rem;letter-spacing:.1em}.modes button span{font-family:var(--sans);font-size:.85rem;letter-spacing:0;text-transform:none;color:var(--dim);font-weight:400}@media(hover:hover){.modes button:hover:not(:disabled) span{color:#2a1d10}}button,a.button{font-family:inherit;font-size:1rem;font-weight:600;text-transform:uppercase;text-decoration:none;text-align:center;letter-spacing:.08em;color:var(--cream);background:#f1e8d40a;border:2px solid var(--brass);border-radius:6px;padding:14px 16px;min-height:56px;cursor:pointer}@media(hover:hover){button:hover:not(:disabled),a.button:hover{background:var(--brass);color:#1a1208}}button:focus-visible,a:focus-visible,a.button:focus-visible,summary:focus-visible,.chip.use:focus-visible,.skip:focus-visible{outline:3px solid var(--cream);outline-offset:3px;box-shadow:0 0 0 6px #0b0807e6}button:focus,a.button:focus,summary:focus,.chip.use:focus{outline:3px solid var(--cream);outline-offset:3px}button:focus:not(:focus-visible):not(.skip),a.button:focus:not(:focus-visible),summary:focus:not(:focus-visible),.chip.use:focus:not(:focus-visible){outline:none;box-shadow:none}button:disabled{opacity:.4;cursor:not-allowed}.ghost{border-color:#d8b25a8c;font-weight:500}.top .ghost{min-height:44px;padding:6px 8px;font-size:.7rem;letter-spacing:.03em;white-space:nowrap}.hidden{display:none!important}.finish{margin-top:1rem}.finish small{display:block;color:var(--dim);font-size:.72rem;letter-spacing:.14em;margin-bottom:.35rem}.finish div{display:flex;gap:8px;justify-content:center}.finish button{flex:1;min-height:48px;padding:8px;font-size:.85rem;border-color:#d8b25a73}.finish button.on{border-color:var(--brass);background:#d8b25a38}.finish [data-finish=nickel].on{box-shadow:inset 0 -4px #c8ccd2}.finish [data-finish=gold].on{box-shadow:inset 0 -4px #d8b25a}.finish [data-finish=blued].on{box-shadow:inset 0 -4px #4a5466}.high,.record{margin-top:1rem;color:var(--dim);font-size:.9rem}.record{margin-top:.3rem}.high strong,.record strong{color:var(--cream)}.rules{margin-top:1rem;text-align:left;border-top:1px solid rgba(216,178,90,.25);padding-top:.6rem}.rules summary{cursor:pointer;font-family:var(--serif);color:var(--brass);font-size:1.05rem;min-height:44px;display:flex;align-items:center}.rules ul{padding-left:1.1rem;display:grid;gap:.45rem;font-size:.92rem;color:var(--cream)}kbd{font-family:var(--sans);border:1px solid var(--dim);border-radius:4px;padding:0 .3em;font-size:.85em}.hud{margin-top:auto;width:100%;max-width:34rem;align-self:center;padding:0 12px calc(26px + env(safe-area-inset-bottom));background:linear-gradient(to bottom,transparent,rgba(8,6,5,.88) 16%,rgba(8,6,5,.96))}.banner{text-align:center}.turn,.status,.match,.odds,.money,.safe{text-shadow:0 1px 2px #0b0807,0 0 10px rgba(11,8,7,.85)}.turn{min-height:1.2rem;letter-spacing:.18em;font-size:.8rem;color:var(--dim)}.turn.ai{color:var(--ember-text);font-weight:700}.status{font-family:var(--serif);font-size:clamp(1.35rem,5vw,1.7rem);min-height:2.2rem;margin:.1rem 0;font-weight:600}.status.bang{color:var(--bang)}.status.win{color:var(--win)}.status.pop{animation:pop .32s cubic-bezier(.2,1.6,.4,1)}.status.bang.pop{animation:pop .32s cubic-bezier(.2,1.6,.4,1),jolt .4s steps(2) 1}.match{font-size:.9rem;color:var(--dim)}.dial-row{display:flex;align-items:center;justify-content:center;gap:1rem;margin:.5rem 0}.dial{position:relative;width:84px;height:84px;flex:0 0 auto;border-radius:50%;background:radial-gradient(circle,#3a3f48 0 14%,#22252b 15% 100%);border:2px solid #4a505c}.dial span{position:absolute;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:#0d0e10;border:2px solid #5a606c;transition:background .2s,border-color .2s,transform .2s}.dial span.spent{background:transparent;border-color:#3a3f48}.dial span.next{border-color:var(--cream);box-shadow:0 0 8px #f1e8d499}.dial span.live{background:var(--bang);border-color:var(--bang);transform:scale(1.15)}.readout{text-align:left}.readout p{margin:.1rem 0}.odds{font-weight:700;letter-spacing:.06em;min-height:1.4rem}.odds.warn{color:var(--ember-text)}.odds.danger{color:var(--bang);animation:throb .7s ease-in-out infinite alternate}.money{font-size:1.05rem;color:var(--dim)}.money strong{color:var(--win);font-family:var(--serif);font-size:1.35rem}.safe{color:var(--dim);font-size:.9rem}.safe strong{color:var(--cream)}#surv.bump{display:inline-block;animation:bump .35s cubic-bezier(.2,1.8,.4,1)}@keyframes pop{0%{transform:scale(.85);opacity:.4}to{transform:scale(1);opacity:1}}@keyframes bump{0%{transform:scale(1.7)}to{transform:scale(1)}}@keyframes jolt{0%{transform:translate(-4px)}50%{transform:translate(4px)}}@keyframes throb{0%{opacity:.7}to{opacity:1}}.kits{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:.4rem}.kits small{display:block;color:var(--dim);font-size:.72rem;letter-spacing:.14em;margin-bottom:.2rem}.chips{display:flex;flex-wrap:wrap;gap:6px;min-height:2rem}.chip{border:1px solid var(--brass);border-radius:999px;padding:4px 12px;font-size:.8rem;letter-spacing:.08em;color:var(--cream);background:#d8b25a14}.empty{color:var(--dim);font-style:italic;font-size:.85rem}.chip.use{cursor:pointer;min-height:48px;min-width:96px;padding:8px 16px;font-size:.9rem;animation:ready 1.4s ease-in-out infinite alternate}@keyframes ready{0%{box-shadow:0 0 2px #d8b25a33}to{box-shadow:0 0 14px #d8b25a8c}}.hint{text-align:center;font-size:.8rem;color:var(--dim);min-height:1.1rem;margin-bottom:.35rem;font-style:italic}@media(pointer:fine){.hint{visibility:hidden}}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}.actions .side{flex:0 0 auto;min-width:64px}.actions .primary{flex:1 1 7rem;min-height:64px;font-size:1.1rem;font-weight:700;letter-spacing:.14em;background:#d8b25a1f;transition:transform .08s ease-out,background .12s}.actions .primary.pull{border-color:var(--ember);background:#ff8a4a1a}@media(hover:hover){.actions .primary.pull:hover:not(:disabled){background:var(--ember);color:#1a0d00}}.actions .cash{flex:1 1 100%;order:-1;min-height:60px;font-size:1.05rem;border-color:var(--win);color:#1a1208;background:var(--win)}@media(hover:hover){.actions .cash:hover:not(:disabled){background:#f5df98}}.actions .shoot{flex:1 1 100%;order:-1;min-height:60px;font-size:1.05rem;font-weight:700;letter-spacing:.12em;border-color:var(--bang);color:#fff4ee;background:#8c1c16}@media(hover:hover){.actions .shoot:hover:not(:disabled){background:var(--bang);color:#1a0500}}.actions button:active:not(:disabled){transform:scale(.97)}.gate .primary{min-height:64px;background:var(--brass);color:#1a1208}.hold-ring{position:fixed;width:88px;height:88px;margin:-44px 0 0 -44px;pointer-events:none;z-index:7;opacity:0;transform:scale(.6);transition:opacity .1s,transform .12s;display:grid;place-items:center;color:var(--ember);font-size:.7rem;font-weight:700;letter-spacing:.16em}.hold-ring.on{opacity:1;transform:scale(1)}.hold-ring.full{transform:scale(1.25);opacity:0;transition:opacity .25s,transform .25s}.hold-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.hold-ring circle{fill:#08060580;stroke:#ff8a4a40;stroke-width:5}.hold-ring circle.fill{fill:none;stroke:var(--ember);stroke-dasharray:100;stroke-dashoffset:100;stroke-linecap:round}.disclaimer{position:fixed;left:0;right:0;bottom:calc(5px + env(safe-area-inset-bottom));text-align:center;font-size:.7rem;color:var(--dim);opacity:.92;letter-spacing:.08em;pointer-events:none;z-index:6;text-shadow:0 1px 2px #0b0807}@media(max-width:520px){.panel{margin-bottom:2.6rem}.actions .primary{font-size:1rem;letter-spacing:.1em}}@media(prefers-reduced-motion:reduce){.status.pop,.status.bang.pop,#surv.bump,.odds.danger,.chip.use{animation:none}#flash.on{animation-duration:.9s}#blackout.fade{transition-duration:.6s}.actions button:active:not(:disabled){transform:none}}
