:root{--bg: #07080d;--ink: #10141c;--panel: #171d2b;--surface-2: #0d1018;--hairline: #2a3142;--brass: #d7b56a;--brass-deep: #8a6230;--teal: #3ee0c5;--magenta: #ff3d7a;--cream: #f6f0e4;--steel: #8d97a8;--danger: #ff5a3c;--font-ui: -apple-system, "SF Pro Text", "Avenir Next", "Segoe UI", sans-serif;--font-display: Impact, "Arial Narrow", sans-serif;color-scheme:dark;font-family:var(--font-ui)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--cream);overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;width:100%;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}.shell{height:100dvh;display:flex;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.cabinet{width:min(480px,100%);height:100%;display:flex;flex-direction:column;position:relative;background:url(/art/cabinet-texture.webp) repeat 0 0 / 256px 256px,radial-gradient(120% 70% at 50% -10%,#3a3122 0%,transparent 42%),linear-gradient(180deg,#242018,#12151c 28%,#0b0d12);background-blend-mode:soft-light,normal,normal;box-shadow:inset 0 0 0 2px var(--brass),inset 0 0 0 10px #1a140c}.cabinet:before,.cabinet:after{content:"";position:absolute;top:18px;bottom:18px;width:6px;border-radius:6px;pointer-events:none;opacity:.35}.cabinet:before{left:6px;background:linear-gradient(transparent,#3ee0c5 20%,#3ee0c5 80%,transparent)}.cabinet:after{right:6px;background:linear-gradient(transparent,#ff3d7a 20%,#ff3d7a 80%,transparent)}.marquee{position:relative;text-align:center;padding:12px 56px 4px}.marquee h1{margin:0;font-family:var(--font-display);font-weight:400;letter-spacing:.14em;font-size:clamp(28px,8vw,40px);line-height:1.05}.marquee p{margin:2px 0 0;letter-spacing:.22em;font-size:12px;color:var(--brass)}.marquee:after{content:"";display:block;width:120px;height:1px;margin:6px auto 0;background:linear-gradient(90deg,transparent,var(--brass),transparent)}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--steel);padding:0}.icon-btn:active{color:var(--cream);background:#ffffff0f}.marquee .gear{position:absolute;top:10px;right:10px}.glass-wrap{--gutter: 16px;position:relative;z-index:1;flex:1 1 0;min-height:0;width:100%;container-type:size;display:flex;align-items:center;justify-content:center;padding:8px var(--gutter) 0}.glass-frame{position:relative;flex:0 0 auto;aspect-ratio:69 / 100;height:min(100cqh,100cqw * 100 / 69);max-width:100%;border-radius:18px;box-shadow:0 16px 30px #00000059}.glass{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden;background:#090c14}.glass-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 2px var(--brass),inset 0 0 0 4px #1a140c,inset 0 0 0 5px #3ee0c573}.cabinet.attract .glass-wrap{--glass-cap: 44dvh;flex:0 0 auto;height:calc(min(var(--glass-cap),(min(480px,100vw) - 32px) * 100 / 69) + 8px)}.cabinet.attract.settings .glass-wrap{--glass-cap: 32dvh}.cabinet.attract.compact .glass-wrap{--glass-cap: 30dvh}.caption{margin:0;font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--steel)}.caption.center,.note.center{text-align:center}.glass-caption{margin:8px 16px 0;text-align:center;text-transform:none;letter-spacing:.01em}.hud{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 18px 0;font:500 13px/1 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}.hud>span{min-width:0}.hud>span:first-child,.hud>span:last-child{flex:0 0 auto}.hud-status{text-align:center;color:var(--cream);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-spacer{width:1px}.hud b{color:var(--brass);font:400 20px/1 var(--font-display);letter-spacing:.04em;font-variant-numeric:tabular-nums}.turnbar{margin:6px 18px 0;height:3px;border-radius:2px;background:#8d97a82e;overflow:hidden}.turnbar i{display:block;height:100%;background:var(--teal);transform-origin:left center}.turnbar i.low{background:var(--danger)}.deck{display:grid;grid-template-columns:1fr 1fr;align-items:center;justify-items:center;gap:8px;padding:8px 12px 10px;min-height:128px}.joy,.up{width:min(128px,36vw);height:min(128px,36vw);min-width:96px;min-height:96px;border-radius:50%;touch-action:none}.joy{position:relative;background:radial-gradient(circle at 50% 40%,#2a3142,#12151c 70%);box-shadow:inset 0 0 0 3px #3a2a16,0 8px #07080c}.knob{position:absolute;left:50%;top:50%;width:46%;height:46%;margin:-23% 0 0 -23%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f0d7a0,#8a6230 72%);box-shadow:0 6px #3a2a14}.up{border:0;background:radial-gradient(circle at 50% 35%,#ff7a9a,var(--magenta) 55%,#8d1638);color:#fff;font-family:var(--font-display);font-size:28px;letter-spacing:.08em;box-shadow:0 8px #5c1028,0 0 24px #ff3d7a59}.up.is-down{transform:translateY(4px);box-shadow:0 3px #5c1028}.deck.idle{opacity:.4;pointer-events:none;filter:saturate(.5)}.deck.swapped .joy{order:2}.hud .tag{margin-right:6px;padding:2px 6px;border-radius:6px;font:600 11px/1 var(--font-ui);letter-spacing:.06em;color:var(--teal);background:#3ee0c51f;vertical-align:3px}.turnbar.theirs i{background:var(--steel)}.turnbar.theirs i.low{background:var(--brass)}.keys{display:none;text-align:center;color:var(--steel);font-size:12px;padding-bottom:8px}@media (pointer: fine) and (min-width: 800px){.keys{display:block}}.sheet{display:flex;flex-direction:column;gap:8px;padding:8px 16px 12px}.sheet.menu{padding-top:12px}.sheet.menu .row .btn-ghost{font-size:14px;padding:0 6px;white-space:nowrap}.sheet.scroll,.sheet.scroll.sheet{flex:1;min-height:0;overflow-y:auto;touch-action:pan-y;padding-bottom:28px}.sheet.settings-sheet{padding-bottom:16px}.sheet.settings-sheet{gap:4px}.sheet.settings-sheet .caption:not(:first-child){margin-top:8px}.sheet.scroll.lobby{gap:5px;padding-bottom:24px}.sheet.aids{padding-bottom:32px}.cabinet.training .glass-wrap{flex:0 0 176px}.cabinet:not(.play):not(.attract):not(.training) .glass-wrap{min-height:160px}.ms{display:grid;grid-template-columns:44px minmax(0,1fr) auto 44px;gap:6px;align-items:center}.ms input[type=range]{grid-column:1 / -1;min-height:36px;width:100%}.num{display:flex;align-items:center;gap:8px}.num input{flex:1;min-width:96px;font-variant-numeric:tabular-nums}.num span{color:var(--steel);font-size:13px}details.fold{border-radius:12px;background:#ffffff08;padding:4px 10px 8px}details.fold summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--brass);letter-spacing:.06em;list-style:none;cursor:pointer}details.fold summary::-webkit-details-marker{display:none}details.fold summary:after{content:"";flex:0 0 auto;width:8px;height:8px;margin-right:4px;border-right:2px solid var(--brass);border-bottom:2px solid var(--brass);transform:rotate(-45deg)}details.fold[open] summary:after{transform:rotate(45deg)}.analysis-block{display:flex;flex-direction:column;gap:6px}.verdict{font:600 17px/1.25 var(--font-ui);letter-spacing:.04em;font-variant-numeric:tabular-nums}.verdict.hit{color:var(--teal)}.verdict.miss{color:var(--danger)}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;margin:0;padding:0;list-style:none;font-size:13px;line-height:1.35;color:var(--steel);font-variant-numeric:tabular-nums}.analysis-grid .wide{grid-column:1 / -1}.note-box,video{width:100%;min-height:72px;border-radius:10px;border:1px solid #3a4256;background:var(--surface-2);padding:8px;touch-action:manipulation}.bars{display:flex;align-items:flex-end;gap:4px;height:72px}.bars i{display:block;width:12px;min-height:4px;background:var(--teal);border-radius:3px 3px 0 0}.file-btn{position:relative;overflow:hidden;display:grid;place-items:center}.file-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0}.btn,.btn-ghost{min-height:48px;border-radius:12px;border:1px solid var(--brass);background:linear-gradient(#222838,#141924);color:var(--cream);font:600 17px/1 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;padding:0 12px}.btn:active:not(:disabled),.btn-ghost:active:not(:disabled){transform:translateY(1px)}.btn:disabled,.btn-ghost:disabled{opacity:.45}.btn.primary{background:linear-gradient(#1c4f49,#12332f);border-color:var(--teal)}.btn.tall{min-height:52px}.btn-ghost{background:transparent;min-height:44px;font-size:15px}.btn-ghost.small{flex:0 0 auto;font-size:13px;padding:0 16px;border-color:var(--hairline);color:var(--steel)}.chip-btn{font-size:14px;letter-spacing:.01em;text-transform:none;padding:0 6px}.btn-ghost[aria-pressed=true]{background:#3ee0c51f;border-color:var(--teal);color:var(--cream)}.hint{margin:4px 0 0;text-align:center;font-size:13px;color:var(--steel)}.link{border:0;background:none;padding:0 4px;min-height:44px;color:var(--brass);text-decoration:underline;text-underline-offset:3px}.field{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--brass)}.field input,.field select{min-height:48px;border-radius:10px;border:1px solid var(--hairline);background:var(--surface-2);padding:0 12px;touch-action:manipulation;text-transform:none;letter-spacing:normal;font-size:17px;color:var(--cream)}.field input::placeholder{color:#5d6678}.field .code-input::placeholder{color:#333b4b}.field input:focus{outline:2px solid var(--teal);outline-offset:1px}.field .code-input{font-family:var(--font-display);font-size:28px;letter-spacing:.3em;text-align:center;text-transform:uppercase}input[type=range]{accent-color:var(--teal);min-height:44px;width:100%;margin:0}.slider{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:center;gap:12px;min-height:44px;font-size:15px}.slider small{display:block;font-size:12px;color:var(--steel)}.row{display:flex;gap:8px}.row>*{flex:1}.row.end{justify-content:flex-end}.row.end>*{flex:0 0 auto}.code{font-family:var(--font-display);font-size:44px;letter-spacing:.24em;text-align:center;margin:0;color:var(--teal);font-variant-numeric:tabular-nums}button.code{border:0;background:transparent;padding:0 0 0 .24em;min-height:52px}.note,.problem,.coach{margin:0;font-size:14px;line-height:1.35;color:var(--steel)}.problem{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:10px;background:#ff5a3c1a;box-shadow:inset 0 0 0 1px #ff5a3c73;color:var(--cream)}.problem .warn{flex:0 0 auto;color:var(--danger);vertical-align:-3px}.problem p{margin:0 0 8px}.problem.offline{align-items:center}.problem.offline img{flex:0 0 auto;width:auto;height:120px}.problem.offline>div{display:flex;flex-direction:column;min-width:0}.status-line{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:.01em}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--teal);vertical-align:1px}.coach{margin:0 16px;padding:8px 10px;border-radius:10px;background:#3ee0c514;box-shadow:inset 0 0 0 1px #3ee0c559;color:var(--cream);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.players{display:grid;gap:6px}.player{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border-radius:10px;background:#ffffff08;border:1px solid var(--hairline);font-size:15px}.player .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player .score{grid-column:3;font:400 20px/1 var(--font-display);color:var(--brass);font-variant-numeric:tabular-nums}.player.on{border-color:var(--teal);background:#3ee0c50f}.chip{font-size:12px;font-weight:500;padding:3px 8px;border-radius:8px}.chip.ready{color:var(--teal);background:#3ee0c51f}.chip.waiting{color:var(--steel);background:#8d97a81f}.chip.away{color:var(--danger);background:#ff5a3c1f}.waiting{display:flex;align-items:center;gap:12px;padding:4px 4px 0}.waiting img{flex:0 0 auto;width:auto;height:96px}.result{position:relative;display:grid;justify-items:center;gap:2px;padding:8px 0 4px;border-radius:14px}.result .medal{width:80px;height:80px;border-radius:50%}.reason{color:var(--cream)}.invite{color:var(--teal);justify-content:center}.waiting-btn{display:flex;align-items:center;justify-content:center;gap:10px;text-transform:none;letter-spacing:.01em}.player .sub{display:block;margin-top:2px;font-size:12px;color:var(--steel)}.rules.readonly{display:flex;flex-direction:column;gap:2px;padding:4px 0}details.rules summary{color:var(--cream);font-size:15px;letter-spacing:.01em;justify-content:flex-start}details.rules summary:after{margin-left:0}details.rules .change{margin-left:auto;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--brass)}details.rules .row{margin-top:6px}details.rules{padding-bottom:4px}.rules-now{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rules-line{margin:0;font-size:15px;color:var(--cream)}.rules-hint{text-transform:none;letter-spacing:.01em}.segmented .chip-btn{min-width:0;padding:0 4px;white-space:nowrap}.banner{margin:0;padding:8px 10px;border-radius:10px;font-size:14px;line-height:1.35;color:var(--cream);background:#d7b56a1a;box-shadow:inset 0 0 0 1px #d7b56a73}.watch-cue{text-transform:none;letter-spacing:.01em;color:var(--cream)}.run-card .result{padding-top:4px}.run-card .stamp{font-size:36px}.run-card .final{font-size:48px}.new-best{color:var(--teal)}.run-stats{list-style:none;margin:0;padding:0;display:grid;gap:4px}.run-stats li{display:flex;justify-content:space-between;gap:12px;min-height:32px;align-items:center;padding:0 4px;border-bottom:1px solid var(--hairline);font-size:15px;color:var(--steel)}.run-stats b{color:var(--cream);font-weight:600;font-variant-numeric:tabular-nums;text-align:right}.run-stats.two{grid-template-columns:1fr 1fr;column-gap:16px}.run-stats.two li{font-size:14px}.run-card{gap:6px}.bests{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}.bests th,.bests td{padding:6px 4px;text-align:center;border-bottom:1px solid var(--hairline)}.bests thead th{font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--steel)}.bests tbody th{color:var(--steel);font-weight:500}.bests td{color:var(--brass);font-family:var(--font-display);font-size:18px}.record-line{margin:0;font-size:15px;color:var(--steel)}.record-line b{color:var(--cream);font:400 22px/1 var(--font-display)}.setting-block{display:flex;flex-direction:column;gap:6px;padding:4px 0;font-size:15px}.setting-label small,.toggle small{display:block;font-size:12px;color:var(--steel)}.result .stamp{font-size:40px;letter-spacing:.12em}.result.lose .stamp{color:var(--steel)}.result.draw .stamp{color:var(--brass)}.final{margin:0;font:400 32px/1.1 var(--font-display);color:var(--steel);font-variant-numeric:tabular-nums}.final b{color:var(--cream);font-weight:400}.overlay{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;background:#07080d8c;display:grid;place-items:center;font-family:var(--font-display);letter-spacing:.18em}.toggle{display:flex;align-items:center;justify-content:space-between;min-height:44px;gap:12px;font-size:15px}.toggle input{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:0 0 auto;width:51px;height:31px;margin:0;border-radius:16px;background:#3a4256;position:relative}.toggle input:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0000004d}.toggle input:checked{background:var(--teal)}.toggle input:checked:after{transform:translate(20px)}.toggle input:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.cabinet.play .marquee{padding:6px 52px 0}.cabinet.play .marquee h1{font-size:22px;line-height:32px;letter-spacing:.18em}.cabinet.play .marquee p,.cabinet.play .marquee:after{display:none}.marquee .back{position:absolute;top:0;left:6px;color:var(--cream)}.cabinet.play .glass-wrap{--gutter: 0px;padding-top:4px}.cabinet.play .glass-frame{border-radius:12px}.cabinet.play .hud{min-height:32px;padding:8px 16px 0}.cabinet.play .deck{min-height:0;padding:4px 12px 6px}.cabinet.play .joy,.cabinet.play .up{width:clamp(84px,13dvh,116px);height:clamp(84px,13dvh,116px);min-width:0;min-height:0}.playbar{flex:0 0 auto;height:62px;padding:2px 16px 8px;display:flex;flex-direction:column;justify-content:center;gap:4px}.bar-line,.playbar .step{margin:0;font-size:14px;line-height:18px;color:var(--steel);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.playbar .step{-webkit-line-clamp:1;color:var(--teal);font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:12px}.coach-line{color:var(--cream)}.tally{display:flex;align-items:center;justify-content:space-between;gap:10px;font:500 12px/18px var(--font-ui);letter-spacing:.08em;color:var(--steel)}.tally b{color:var(--brass);font:400 17px/1 var(--font-display);letter-spacing:.04em}.tally .dots{display:grid;grid-template-columns:repeat(9,9px);gap:5px}.tally .dots i{width:9px;height:9px;border-radius:50%;background:#262d3c;box-shadow:inset 0 0 0 1px #3a4256}.tally .dots i.lit{background:var(--brass);box-shadow:0 0 6px #d7b56ab3}.practice-bar,.match-bar{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;padding:2px 12px 8px}.practice-bar .bar-line{height:36px;padding:0 4px}.bar-caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none;letter-spacing:.02em}.match-bar .sudden{color:var(--brass);-webkit-line-clamp:1}.match-bar .problem-line{color:var(--cream);-webkit-line-clamp:1}.match-bar .players{grid-template-columns:1fr 1fr}.match-bar .player{min-height:40px;padding:6px 10px;font-size:14px}.glass-card{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:18px 16px;overflow-y:auto;touch-action:pan-y;border-radius:inherit;background:linear-gradient(#07080dc7,#07080de6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.runstart .goal{margin:0;text-align:center;font:400 34px/1.05 var(--font-display);letter-spacing:.08em;color:var(--cream);text-shadow:0 0 18px rgba(215,181,106,.35)}.runstart .goal-sub{margin:0 0 4px;text-align:center;font-size:15px;color:var(--steel)}.runstart .goal-sub b{color:var(--brass);font:400 22px/1 var(--font-display);letter-spacing:.06em}.small-print{text-transform:none;letter-spacing:.01em;font-size:12px}.glass-pill{position:absolute;z-index:2;left:50%;bottom:10px;transform:translate(-50%);max-width:calc(100% - 24px);margin:0;padding:6px 12px;display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:999px;font-size:13px;color:var(--cream);background:#07080dc7;box-shadow:inset 0 0 0 1px #3ee0c566}.glass-frame .turnbar{position:absolute;z-index:2;left:10px;right:10px;top:4px;margin:0}.glass-pill.watch-cue{top:9%;bottom:auto}.round-banner{position:absolute;z-index:3;left:50%;top:46%;transform:translate(-50%,-50%);width:min(86%,320px);display:grid;justify-items:center;gap:4px;padding:14px 16px 12px;border-radius:14px;pointer-events:none;text-align:center;background:#07080de6;box-shadow:inset 0 0 0 2px var(--brass),0 12px 30px #00000080}.round-banner b{font:400 30px/1 var(--font-display);letter-spacing:.12em;color:var(--brass)}.round-banner span{font:400 22px/1.1 var(--font-display);letter-spacing:.04em;color:var(--cream);font-variant-numeric:tabular-nums}.round-banner small{font-size:14px;color:var(--teal)}.best-shot{color:var(--cream)}details.advanced summary{color:var(--steel);font-size:14px;letter-spacing:.02em}.rotate{display:none}@media (orientation: landscape) and (max-height: 500px){.shell:not(.native) .rotate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;align-content:center;gap:10px;padding:24px;text-align:center;background:var(--bg)}.shell:not(.native) .rotate b{font:400 28px/1 var(--font-display);letter-spacing:.12em;color:var(--cream)}.shell:not(.native) .rotate span{color:var(--steel);font-size:15px}.shell:not(.native) .rotate svg{color:var(--brass)}}.update{position:absolute;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom))}@media (prefers-reduced-motion: no-preference){.shell:not([data-reduced-motion]) .btn,.shell:not([data-reduced-motion]) .btn-ghost,.shell:not([data-reduced-motion]) .icon-btn{transition:transform .12s ease-out,background-color .12s ease-out,border-color .12s ease-out,opacity .12s ease-out}.shell:not([data-reduced-motion]) .toggle input,.shell:not([data-reduced-motion]) .toggle input:after{transition:transform .12s ease-out,background-color .12s ease-out}.shell:not([data-reduced-motion]) .turnbar i{transition:transform .5s linear}.shell:not([data-reduced-motion]) details.fold summary:after{transition:transform .12s ease-out}.shell:not([data-reduced-motion]) .pulse{animation:pulse 1.2s ease-in-out infinite}.shell:not([data-reduced-motion]) .result.win:after{content:"";position:absolute;left:50%;top:48px;width:80px;height:80px;margin:-40px 0 0 -40px;border-radius:50%;box-shadow:0 0 0 3px var(--teal);pointer-events:none;animation:ring .9s ease-out 1 both}.shell:not([data-reduced-motion]) .result.lose{animation:edge .42s ease-out 1}.shell:not([data-reduced-motion]) .sheet,.shell:not([data-reduced-motion]) .glass-card,.shell:not([data-reduced-motion]) .practice-bar,.shell:not([data-reduced-motion]) .playbar,.shell:not([data-reduced-motion]) .match-bar{animation:sheet-in .18s ease-out both}.shell:not([data-reduced-motion]) .result .stamp{animation:stamp-in .42s cubic-bezier(.2,1.6,.4,1) both}.shell:not([data-reduced-motion]) .round-banner{animation:banner-in .26s cubic-bezier(.2,1.4,.4,1) both}.shell:not([data-reduced-motion]) .cabinet:before,.shell:not([data-reduced-motion]) .cabinet:after{animation:breathe 4.2s ease-in-out infinite}.shell:not([data-reduced-motion]) .cabinet:after{animation-delay:-2.1s}.shell:not([data-reduced-motion]) .marquee .bulbs{animation:chase 1s steps(4) infinite}}@keyframes sheet-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes stamp-in{0%{opacity:0;transform:scale(1.6) rotate(-4deg)}to{opacity:1;transform:none}}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes breathe{0%,to{opacity:.22}50%{opacity:.6}}@keyframes chase{0%{background-position:0 0}to{background-position:16px 0}}.marquee .bulbs{display:block;width:168px;height:6px;margin:6px auto 0;background:radial-gradient(circle,var(--teal) 0 2px,transparent 2.5px) 0 0 / 16px 6px repeat-x,radial-gradient(circle,var(--magenta) 0 2px,transparent 2.5px) 8px 0 / 16px 6px repeat-x;opacity:.8}.cabinet.play .marquee .bulbs{display:none}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}@keyframes ring{0%{transform:scale(.9);opacity:.9}to{transform:scale(2.2);opacity:0}}@keyframes edge{0%{box-shadow:inset 0 0 0 2px #ff5a3ce6}to{box-shadow:inset 0 0 0 2px #ff5a3c00}}@media (max-height: 680px){.marquee{padding:6px 52px 0}.marquee h1{font-size:26px}.marquee:after{margin-top:4px}.marquee .gear{top:2px}.btn{min-height:44px;font-size:16px}.btn.tall{min-height:48px}.sheet{gap:6px}.deck{min-height:108px}.joy,.up{min-width:84px;min-height:84px}.cabinet.attract .glass-wrap{--glass-cap: 40dvh}.glass-caption,.hint{font-size:12px}.sheet.menu{padding-top:8px}.cabinet.play .marquee{padding-top:2px}.cabinet.play .marquee h1{font-size:18px;line-height:28px}.cabinet.play .marquee .back{top:-6px}.cabinet.play .hud{min-height:26px;padding-top:4px}.cabinet.play .hud b{font-size:18px}.playbar{height:52px;padding-bottom:4px;gap:2px}.bar-line{font-size:13px;line-height:16px}.practice-bar{gap:4px;padding-bottom:4px}.practice-bar .chip-btn{min-height:40px}.practice-bar .bar-line{height:32px}.runstart .goal{font-size:28px}.glass-card{gap:6px;padding:12px}.glass-card .btn.tall{min-height:44px}}@media (max-width: 359px){.sheet.menu .row .btn-ghost{font-size:13px;padding:0 4px}}@media (min-width: 900px){.cabinet{height:min(100%,980px);margin:auto;border-radius:28px}}
