@font-face{font-family:Sora;src:url(../fonts/Sora-VF.subset.woff2)format("woff2");font-weight:100 800;font-display:swap}@font-face{font-family:Figtree;src:url(../fonts/Figtree-VF.subset.woff2)format("woff2");font-weight:300 900;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(../fonts/NotoSansSC-VF.subset.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--ink:#1b1838;--ink-2:#2a2552;--ink-3:#3d3673;--cream:#fff7e8;--snow:#f5f9ff;--gold:#ffd35c;--gold-2:#ffb020;--orange:#ff6a3d;--orange-2:#e2461f;--cyan:#7ef9ff;--cyan-2:#2fc6d8;--red:#ff4d6d;--green:#52e08a;--display:"Sora", "Noto Sans SC", system-ui, sans-serif;--body:"Figtree", "Noto Sans SC", system-ui, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--shadow:0 5px 0 var(--ink);--shadow-lg:0 8px 0 var(--ink)}:lang(zh-CN){--display:"Noto Sans SC", "Sora", system-ui, sans-serif;--body:"Noto Sans SC", "Figtree", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--cream);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;margin:0;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;font-size:clamp(12px,1.25vw + .4vh,18px);position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}kbd{border:3px solid var(--ink);min-width:1.9em;color:var(--ink);font:900 .85em var(--display);box-shadow:0 3px 0 var(--ink);vertical-align:.08em;-webkit-text-stroke:0;text-align:center;background:linear-gradient(#fff,#dfe7f6);border-radius:.45em;margin:0 .15em;padding:.12em .5em .18em;display:inline-block}.outlined,.logo-main,.logo-sub,.modal-title,.popup,.readout-num,.hud-total,.card-dist,.score-num,.boot-logo{font-family:var(--display);paint-order:stroke fill;-webkit-text-stroke:.14em var(--ink)}.boot{z-index:50;background:radial-gradient(circle at 50% 40%,#3d6fcf,#1b1838 70%);place-content:center;justify-items:center;gap:24px;transition:opacity .45s;display:grid;position:fixed;inset:0}.boot.is-done{opacity:0;pointer-events:none}.boot-logo{color:#fff;text-align:center;text-shadow:0 6px 0 var(--ink);font-size:64px;font-weight:900;line-height:1}.boot-logo small{color:var(--gold);letter-spacing:.2em;margin-top:8px;font-size:.45em;display:block}.boot-bar{border:4px solid var(--ink);background:var(--ink-2);width:240px;height:16px;box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.boot-bar i{background:linear-gradient(90deg, var(--gold), var(--orange));width:5%;height:100%;transition:width .3s;display:block}.boot-error{text-align:center;max-width:420px;padding:24px;font-size:18px;line-height:1.5}.screen{opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s linear .25s;position:absolute;inset:0}.screen.is-active{opacity:1;visibility:visible;transition:opacity .25s}.screen.is-active :is(button,input,form,.link-btn){pointer-events:auto}.panel{border:4px solid var(--ink);box-shadow:var(--shadow), inset 0 2px 0 #ffffff1f;background:linear-gradient(#2a2552eb,#1b1838eb);border-radius:18px}.btn{border:4px solid var(--ink);min-height:3.2em;color:var(--ink);font-family:var(--display);box-shadow:0 6px 0 var(--ink), inset 0 -5px 0 #1b183829, inset 0 3px 0 #fffc;background:linear-gradient(#fff 0%,#e6ecf8 55%,#cdd7ec 100%);border-radius:16px;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:.55em 1.4em .65em;transition:transform 80ms,box-shadow 80ms,filter .15s;display:inline-flex;position:relative}.btn b{letter-spacing:.02em;font-size:1.15em;font-weight:900}.btn small{opacity:.75;font-size:.72em;font-weight:700;font-family:var(--body)}.btn em{font-size:.72em;font-style:normal;font-weight:900}.btn:hover{filter:brightness(1.06);box-shadow:0 8px 0 var(--ink), inset 0 -5px 0 #1b183829, inset 0 3px 0 #fffc;transform:translateY(-2px)}.btn:active{box-shadow:0 1px 0 var(--ink), inset 0 -2px 0 #1b183829;transform:translateY(5px)}.btn:focus-visible{outline:4px solid var(--cyan);outline-offset:3px}.btn-primary{background:linear-gradient(180deg, #ffe58a 0%, var(--gold) 45%, var(--gold-2) 100%)}.btn-secondary{background:linear-gradient(180deg, #a8fbff 0%, var(--cyan) 45%, var(--cyan-2) 100%)}.btn-cyan{background:linear-gradient(180deg, #a8fbff, var(--cyan-2))}.btn-gold{background:linear-gradient(180deg, #ffc2a8, var(--orange));color:#fff}.btn-gold b{paint-order:stroke fill;-webkit-text-stroke:.12em var(--ink)}.btn-ghost{background:linear-gradient(180deg, #5a5296, var(--ink-3));color:var(--cream)}.btn-small{border-radius:13px;min-height:2.6em;padding:.4em 1em .5em}.btn-small b{font-size:.95em}.icon-btn{border:4px solid var(--ink);width:3em;height:3em;color:var(--ink);box-shadow:0 5px 0 var(--ink);font:900 .95em var(--display);pointer-events:auto;background:linear-gradient(#fff,#d5deef);border-radius:14px;place-items:center;transition:transform 80ms,box-shadow 80ms;display:grid}.icon-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}.icon-btn span{display:block}.link-btn{color:var(--cyan);background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.ico-trophy{background:var(--gold-2);border:3px solid var(--ink);border-radius:0 0 .6em .6em;width:1.2em;height:1.1em;position:relative}.ico-trophy:after{content:"";background:var(--ink);border-radius:2px;width:.8em;height:.25em;position:absolute;bottom:-.45em;left:50%;transform:translate(-50%)}.ico-gear{border:.3em dotted var(--ink);width:1.15em;height:1.15em;box-shadow:inset 0 0 0 .15em var(--ink);border-radius:50%}.ico-sound{border-top:.55em solid #0000;border-bottom:.55em solid #0000;border-right:.8em solid var(--ink);width:0;height:0;position:relative}.ico-sound:after{content:"";border-right:3px solid var(--ink);border-radius:50%;width:.5em;height:1.1em;position:absolute;top:-.55em;left:.25em}.is-muted .ico-sound:after{border-right-color:#0000}.is-muted .ico-sound:before{content:"";background:var(--red);width:.9em;height:3px;position:absolute;top:-.1em;left:.1em;transform:rotate(45deg)}.corner-buttons{z-index:5;top:calc(12px + var(--safe-t));right:calc(12px + var(--safe-r));gap:10px;display:flex;position:absolute}#ui[data-screen=hud] .corner-buttons{display:none}#ui[data-screen=results] .corner-buttons{right:auto;left:calc(12px + var(--safe-l))}.is-card .hud-center,.is-card .hud-bottom,.is-card .popups{visibility:hidden}#s-title{background:linear-gradient(90deg,#1b1838c7 0%,#1b183859 38%,#1b183800 62%)}.title-wrap{left:calc(4vw + var(--safe-l));flex-direction:column;gap:1.1em;width:min(560px,50vw);display:flex;position:absolute;top:50%;transform:translateY(-50%)}.logo{flex-direction:column;margin:0;line-height:.95;display:flex}.logo-main{color:#fff;letter-spacing:.02em;-webkit-text-stroke:.12em var(--ink);text-shadow:.05em .1em 0 var(--ink);font-size:clamp(44px,6.4vw,96px);font-weight:900}.logo-sub{color:var(--gold);letter-spacing:.28em;background:var(--orange);border:4px solid var(--ink);box-shadow:var(--shadow);-webkit-text-stroke:.1em var(--ink);border-radius:12px;align-self:flex-start;margin-top:.2em;padding:.05em .45em .12em;font-size:clamp(20px,2.4vw,36px);font-weight:900;transform:rotate(-3deg)}.challenge-banner{border:4px solid var(--ink);background:linear-gradient(90deg, var(--red), var(--orange));box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:.7em;padding:.55em .9em;animation:1.4s ease-in-out infinite pulse;display:flex}.challenge-banner .flag{font:900 1em var(--display);color:var(--gold);border:3px solid var(--ink);background:var(--ink);border-radius:8px;padding:.1em .4em}.challenge-banner b{font:900 1.05em var(--display);color:#fff;paint-order:stroke fill;-webkit-text-stroke:.12em var(--ink)}.title-buttons{grid-template-columns:1fr 1fr;gap:14px;display:grid}.btn-mode{text-align:left;align-items:flex-start;min-height:5.6em;padding:.7em 1.1em}.btn-mode b{font-size:1.45em}.btn-mode.is-default{animation:1.6s ease-in-out infinite nudge}.btn-mode.is-default:after{content:"";pointer-events:none;border:4px dashed #ffffffd9;border-radius:22px;position:absolute;inset:-10px}.press-hint{font:800 1.05em var(--display);color:#fff;text-shadow:0 3px 0 var(--ink);animation:1.2s steps(2,jump-none) infinite blink}.howto{grid-template-columns:repeat(3,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.howto li{border:4px solid var(--ink);color:var(--ink);box-shadow:var(--shadow);counter-increment:step;background:#fff7e8f2;border-radius:14px;flex-direction:column;align-items:flex-start;gap:3px;padding:.65em .75em;display:flex}.howto li b{font:900 1em var(--display)}.howto li b:before{content:counter(step) ". ";color:var(--orange)}.howto li small{opacity:.8;font-size:.78em;font-weight:700}.howto-icon{border:3px solid var(--ink);background:var(--cyan);border-radius:50%;width:2.2em;height:2.2em;position:relative}.icon-balance:after{content:"";background:var(--ink);border-radius:50%;width:.55em;height:.55em;animation:1.8s ease-in-out infinite wobble;position:absolute;top:50%;left:50%;transform:translate(-10%,-60%)}.icon-jump{background:var(--gold)}.icon-jump:after{content:"";background:var(--ink);border-radius:3px;width:56%;height:.3em;position:absolute;top:50%;left:22%;transform:rotate(-24deg)}.icon-land{background:var(--green)}.icon-land:after{content:"";background:var(--ink);width:.35em;height:55%;box-shadow:.55em .35em 0 var(--ink);border-radius:3px;position:absolute;top:22%;left:30%}.series-hint{color:#e6eeff;text-shadow:0 2px 0 var(--ink);margin:0;font-size:.92em;font-weight:700}.hud-tl{top:calc(12px + var(--safe-t));left:calc(12px + var(--safe-l));flex-direction:column;gap:.35em;min-width:12em;padding:.6em .9em;display:flex;position:absolute}.hud-tl-row{align-items:center;gap:.6em;display:flex}.chip{font:900 .72em var(--display);border:3px solid var(--ink);background:var(--cyan);color:var(--ink);letter-spacing:.06em;border-radius:8px;padding:.2em .6em}.chip.is-daily{background:var(--gold)}.jump-label{font:900 1em var(--display)}.pips{gap:6px;display:flex}.pips i{border:3px solid var(--ink);background:var(--ink-3);border-radius:6px;width:2.2em;height:.6em}.pips i.is-now{background:var(--cyan);animation:1s ease-in-out infinite pulse}.pips i.is-done{background:var(--gold)}.pips i.is-great{background:var(--green)}.pips i.is-fell{background:var(--red)}.hud-score{align-items:baseline;gap:.5em;display:flex}.hud-score small{opacity:.8;font-weight:800}.hud-total{color:var(--gold);font-size:2em;font-weight:900;display:inline-block}.hud-total.bump{animation:.5s bump}.hud-tr{top:calc(12px + var(--safe-t));right:calc(12px + var(--safe-r) + 3.6em);flex-direction:column;gap:.25em;min-width:9em;padding:.55em .85em;display:flex;position:absolute}.hud-row{align-items:baseline;gap:.5em;display:flex}.hud-row small{opacity:.8;min-width:2.8em;font-weight:800}.hud-row b{font:900 1.25em var(--display);color:var(--gold)}.hud-target b{color:var(--cyan)}.hud-target .need{color:#ffd1dc;font-size:.78em;font-weight:800}.hud-target.is-beaten .need{color:var(--green)}.pause-btn{top:calc(12px + var(--safe-t));right:calc(12px + var(--safe-r));position:absolute}.hud-wind{top:calc(12px + var(--safe-t));align-items:center;gap:.5em;padding:.35em .8em;font-size:.9em;font-weight:800;display:flex;position:absolute;left:50%;transform:translate(-50%)}.wind-arrow{background:var(--cyan);clip-path:polygon(0 50%,45% 0,45% 30%,100% 30%,100% 70%,45% 70%,45% 100%);width:1.4em;height:.9em}.hud-wind.is-tail .wind-arrow{background:var(--orange);transform:scaleX(-1)}.hud-center{text-align:center;position:absolute;top:17%;left:50%;transform:translate(-50%)}.readout{justify-content:center;align-items:baseline;gap:.25em;display:flex}.readout-num{color:#fff;text-shadow:0 .08em 0 var(--ink);font-variant-numeric:tabular-nums;font-size:3.6em;font-weight:900;line-height:1}.readout-unit{font:900 1.1em var(--display);color:var(--gold);text-shadow:0 2px 0 var(--ink)}.readout-sub{color:#e6eeff;text-shadow:0 2px 0 var(--ink);min-height:1.2em;font-weight:800}.slowmo-tag{font:900 1.1em var(--display);color:var(--ink);background:var(--gold);border:4px solid var(--ink);box-shadow:var(--shadow);opacity:0;letter-spacing:.2em;border-radius:10px;padding:.15em .8em;transition:opacity .15s;position:absolute;top:32%;left:50%;transform:translate(-50%)skew(-10deg)}.is-slowmo .slowmo-tag{opacity:1}.is-slowmo #s-hud:before{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 12vw #1b18388c}.popups{flex-direction:column;align-items:center;gap:.2em;width:90vw;display:flex;position:absolute;top:38%;left:50%;transform:translate(-50%)}.popup{color:#fff;text-align:center;text-shadow:0 .09em 0 var(--ink);white-space:nowrap;font-size:2.1em;font-weight:900;animation:1.5s forwards popIn}.popup.tone-perfect{color:var(--gold);font-size:2.6em}.popup.tone-good{color:var(--green)}.popup.tone-bad{color:var(--red)}.popup.tone-warn{color:#ffd1a8;font-size:1.6em}.popup.tone-info{color:#e6eeff;font-size:1.6em}.popup.tone-combo{color:var(--cyan);font-size:1.8em}.popup.tone-best{color:var(--gold);font-size:2.3em;animation:1.5s forwards popIn,.4s linear infinite rainbow}.hud-bottom{left:50%;bottom:calc(14px + var(--safe-b));flex-direction:column;align-items:center;gap:.5em;width:min(640px,80vw);display:flex;position:absolute;transform:translate(-50%)}.timing{width:100%}.timing-track{border:4px solid var(--ink);height:1.4em;box-shadow:var(--shadow);background:linear-gradient(90deg,#2a2552e6,#3d3673e6);border-radius:12px;position:relative;overflow:visible}.timing-track i{position:absolute;top:0;bottom:0}.zone-good{background:#52e08a8c;left:86.6667%;right:0}.zone-perfect{background:var(--gold);box-shadow:0 0 12px var(--gold);left:95%;right:0}.edge{background:#fff;width:4px;right:-4px}.marker{border:3px solid var(--ink);width:1.1em;height:1.9em;box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:6px;position:absolute;top:50%;transform:translate(-50%,-50%)}.timing[data-grade=perfect] .marker{background:var(--gold)}.timing[data-grade=good] .marker{background:var(--green)}.timing[data-grade=early] .marker{background:var(--red)}.prompt{align-items:center;min-height:2.2em;display:flex}.prompt-hot{font:900 1.8em var(--display);color:var(--gold);paint-order:stroke fill;-webkit-text-stroke:.14em var(--ink);text-shadow:0 .09em 0 var(--ink);animation:.35s ease-in-out infinite alternate throb}.prompt-ok{font:900 1.3em var(--display);color:var(--green);paint-order:stroke fill;-webkit-text-stroke:.12em var(--ink)}.balance{width:8.5em;height:8.5em;filter:drop-shadow(0 5px 0 var(--ink))}.balance svg{width:100%;height:100%;overflow:visible}.bal-outer{fill:#1b18388c;stroke:var(--ink);stroke-width:6px}.bal-safe{fill:#7ef9ff38;stroke:var(--cyan);stroke-width:3px;stroke-dasharray:6 5}.bal-cross{stroke:#ffffff40;stroke-width:2px}.bal-dot{fill:#fff;stroke:var(--ink);stroke-width:4px;transition:fill .15s}.balance[data-level=warn] .bal-dot{fill:var(--gold)}.balance[data-level=danger] .bal-dot{fill:var(--red)}.balance[data-level=danger] .bal-outer{stroke:var(--red);animation:.25s steps(2,jump-none) infinite flash}.balance.is-flat .bal-safe{transform:scaleY(.35)}.bal-gust{opacity:0;fill:var(--cyan);stroke:var(--ink);stroke-width:3px;transition:opacity .1s}.bal-gust.is-on{opacity:1;animation:.2s steps(2,jump-none) infinite flash}.hint{color:#fff;text-shadow:0 2px 0 var(--ink);text-align:center;min-height:1.3em;font-size:.9em;font-weight:800}.jump-card{width:min(360px,80vw);color:var(--ink);box-shadow:var(--shadow-lg);background:linear-gradient(#fff7e8,#f1e4cc);padding:1em 1.2em;position:absolute;top:50%;left:50%;transform:translate(-50%,-46%)}.jump-card.is-in{animation:.35s cubic-bezier(.2,1.4,.4,1) both cardIn}.card-head{font:900 1em var(--display);color:var(--orange-2);text-transform:uppercase}.card-dist{color:var(--gold);font-size:3.4em;font-weight:900;line-height:1.05}.card-dist small{color:var(--ink);-webkit-text-stroke:0;margin-left:.15em;font-size:.4em}.card-best{font:900 .95em var(--display);color:#fff;background:var(--red);border:3px solid var(--ink);border-radius:8px;margin-bottom:.4em;padding:.1em .5em;display:inline-block;transform:rotate(-2deg)}.card-row{border-bottom:2px dashed #1b18382e;justify-content:space-between;padding:.18em 0;font-weight:800;display:flex}.card-row b{font-family:var(--display)}.card-row.grade-perfect b{color:#c98a00}.card-row.grade-fall b,.card-row.grade-missed b{color:var(--red)}.card-total{justify-content:space-between;align-items:baseline;margin-top:.4em;font-size:1.1em;font-weight:900;display:flex}.card-total b{font:900 1.8em var(--display);color:var(--orange-2)}.card-next{text-align:center;opacity:.8;margin-top:.4em;font-size:.9em;font-weight:800}#s-results{background:linear-gradient(90deg,#1b183800 30%,#1b183899 70%)}.results-panel{right:calc(3vw + var(--safe-r));width:min(520px,56vw);max-height:calc(100% - 24px);box-shadow:var(--shadow-lg);scrollbar-width:none;flex-direction:column;gap:.7em;padding:1.1em 1.3em 1.3em;display:flex;position:absolute;top:50%;overflow:auto;transform:translateY(-50%)}#s-results.is-active .results-panel{animation:.4s cubic-bezier(.2,1.3,.4,1) both cardIn}.results-title{color:var(--cyan);text-align:center;margin:0;font-size:1.6em;font-weight:900}.results-title.is-fell{color:var(--red)}.results-score{flex-direction:column;align-items:center;display:flex}.score-num{color:var(--gold);text-shadow:0 .08em 0 var(--ink);font-variant-numeric:tabular-nums;font-size:4.6em;font-weight:900;line-height:1}.results-score small{opacity:.8;font-weight:800}.results-badges{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.badge{font:900 .85em var(--display);border:3px solid var(--ink);background:var(--ink-3);box-shadow:0 3px 0 var(--ink);border-radius:10px;padding:.3em .7em}.badge-best{background:var(--gold);color:var(--ink);animation:.9s ease-in-out infinite pulse}.badge-cyan{background:var(--cyan-2);color:var(--ink)}.badge-win{background:var(--green);color:var(--ink)}.badge-miss{background:var(--red);color:#fff}.results-jumps{flex-direction:column;gap:5px;display:flex}.rj{border:3px solid var(--ink);color:var(--ink);background:#fff7e8f0;border-radius:10px;grid-template-columns:1fr 1fr .8fr .8fr;align-items:center;gap:6px;padding:.35em .7em;font-weight:800;display:grid}.rj.is-fell{background:#ffd4dc}.rj-d{font-family:var(--display)}.rj-s{opacity:.7;font-size:.9em}.rj-p{text-align:right;font:900 1.15em var(--display);color:var(--orange-2)}.results-online{text-align:center;flex-direction:column;align-items:center;gap:.35em;min-height:3.2em;display:flex}.online-lead{margin:0;font-weight:800}.online-lead.is-muted{opacity:.75}.online-err{color:#ffb3c1;margin:0;font-size:.9em;font-weight:800}.name-form{gap:8px;width:100%;display:flex}.name-input{border:4px solid var(--ink);min-width:0;color:var(--ink);font:800 1em var(--body);-webkit-user-select:text;user-select:text;background:#fff;border-radius:12px;flex:1;padding:.55em .8em;box-shadow:inset 0 3px #1b18381f}.name-input:focus{outline:4px solid var(--cyan);outline-offset:0}.rank-line{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.rank-chip{font:900 1.05em var(--display);border:3px solid var(--ink);background:var(--cyan);color:var(--ink);box-shadow:0 3px 0 var(--ink);border-radius:10px;padding:.3em .8em}.rank-chip.is-daily{background:var(--gold)}.beat-line{font:900 1.2em var(--display);color:#fff;margin:0}.name-line{opacity:.85;margin:0;font-size:.85em}.results-actions{flex-direction:column;gap:12px;display:flex}.btn-retry{width:100%}.btn-retry b{font-size:1.4em}.results-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.results-row .btn{padding-left:.3em;padding-right:.3em}.modal-layer{z-index:10;pointer-events:auto;background:#1b183899;place-items:center;display:grid;position:absolute;inset:0}.modal{width:min(480px,92vw);max-height:calc(100% - 24px);box-shadow:var(--shadow-lg);scrollbar-width:none;flex-direction:column;gap:.8em;padding:1.1em 1.3em 1.3em;display:none;overflow:auto}.modal.is-open{animation:.3s cubic-bezier(.2,1.3,.4,1) both cardIn;display:flex}.modal :is(button,input){pointer-events:auto}.modal-title{text-align:center;color:var(--gold);text-shadow:0 .08em 0 var(--ink);margin:0;font-size:1.7em;font-weight:900}.tabs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tab{border:4px solid var(--ink);background:var(--ink-3);font:900 1em var(--display);box-shadow:0 4px 0 var(--ink);border-radius:12px;padding:.5em}.tab.is-on{background:var(--gold);color:var(--ink)}.board-meta{text-align:center;opacity:.8;min-height:1.2em;font-size:.85em;font-weight:800}.board-list{scrollbar-width:thin;flex-direction:column;gap:4px;max-height:46vh;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.board-list li{border:3px solid var(--ink);color:var(--ink);background:#fff7e8f0;border-radius:10px;grid-template-columns:2.4em 1fr auto;align-items:center;gap:8px;padding:.35em .7em;font-weight:800;display:grid}.board-list li.is-me{background:var(--cyan)}.board-list li.sep{border-style:dashed;margin-top:6px}.board-list li.top-1 .br-rank{background:var(--gold)}.board-list li.top-2 .br-rank{background:#dfe7f6}.board-list li.top-3 .br-rank{background:#f0a86a}.board-list li.board-empty{text-align:center;color:var(--cream);background:0 0;border-style:dashed;border-color:#ffffff4d;display:block}.br-rank{font:900 .95em var(--display);text-align:center;border:3px solid var(--ink);background:#fff;border-radius:8px}.br-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.br-name em{background:var(--ink);color:var(--cyan);border-radius:6px;padding:0 .4em;font-size:.75em;font-style:normal}.br-score{font:900 1.1em var(--display)}.set-row{justify-content:space-between;align-items:center;gap:12px;font-weight:800;display:flex}.seg{border:4px solid var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:12px;display:flex;overflow:hidden}.seg button{background:var(--ink-3);border:0;padding:.4em .8em;font-weight:900}.seg button+button{border-left:3px solid var(--ink)}.seg button.is-on{background:var(--gold);color:var(--ink)}input[type=range]{width:50%;accent-color:var(--gold);pointer-events:auto}.share-img{object-fit:contain;border:4px solid var(--ink);background:var(--ink-2);width:100%;max-height:46vh;box-shadow:var(--shadow);border-radius:14px}.share-actions{grid-template-columns:repeat(auto-fit,minmax(8em,1fr));gap:8px;display:grid}.share-url{border:3px solid var(--ink);background:var(--ink);width:100%;color:var(--cyan);font:700 .8em var(--body);-webkit-user-select:text;user-select:text;border-radius:10px;padding:.45em .7em}#m-pause{width:min(340px,90vw)}#m-pause .btn{width:100%}.toast{left:50%;bottom:calc(24px + var(--safe-b));z-index:20;border:4px solid var(--ink);background:var(--gold);color:var(--ink);font:900 1em var(--display);box-shadow:var(--shadow);border-radius:14px;padding:.6em 1.2em;position:absolute;transform:translate(-50%)}.toast.is-in{animation:.3s cubic-bezier(.2,1.4,.4,1) both toastIn}.touch{display:none}.touch.is-visible{display:block}.touch-zone{pointer-events:auto;touch-action:none;width:45%;height:70%;position:absolute;bottom:0;left:0}.touch-stick{left:calc(16% + var(--safe-l));border:4px solid var(--ink);opacity:.75;background:#1b183859;border-radius:50%;width:120px;height:120px;position:absolute;top:62%;transform:translate(-50%,-50%);box-shadow:0 5px #1b183880}.touch-stick.is-active{opacity:1}.touch-knob{border:4px solid var(--ink);background:linear-gradient(#fff,#cfd9ee);border-radius:50%;width:54px;height:54px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-btn{right:calc(5% + var(--safe-r));bottom:calc(10% + var(--safe-b));border:5px solid var(--ink);background:radial-gradient(circle at 40% 35%, #ffe58a, var(--gold) 55%, var(--gold-2));width:118px;height:118px;box-shadow:0 7px 0 var(--ink);font:900 20px var(--display);color:var(--ink);pointer-events:auto;touch-action:none;border-radius:50%;position:absolute}.touch-btn.is-down{box-shadow:0 2px 0 var(--ink);transform:translateY(5px)}.touch-btn.is-hot{animation:.35s ease-in-out infinite alternate throb}.is-touch .hud-bottom{width:min(460px,50vw)}.is-touch .hint{display:none}@keyframes popIn{0%{opacity:0;transform:scale(.4)rotate(-6deg)}14%{opacity:1;transform:scale(1.18)rotate(2deg)}24%{transform:scale(1)rotate(0)}78%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.8em)}}@keyframes cardIn{0%{opacity:0;transform:translate(var(--tx,0), calc(var(--ty,0px) + 30px)) scale(.9)}}.jump-card{--tx:-50%;--ty:-46%}.jump-card.is-in{animation-name:cardInCenter}@keyframes cardInCenter{0%{opacity:0;transform:translate(-50%,-30%)scale(.85)}to{opacity:1;transform:translate(-50%,-46%)scale(1)}}#s-results.is-active .results-panel{animation-name:panelIn}@keyframes panelIn{0%{opacity:0;transform:translate(40px,-50%)scale(.95)}to{opacity:1;transform:translateY(-50%)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,20px)scale(.9)}}@keyframes pulse{50%{transform:scale(1.04)}}@keyframes nudge{50%{transform:translateY(-3px)}}@keyframes blink{50%{opacity:.35}}@keyframes throb{0%{transform:scale(1)}to{transform:scale(1.12)}}@keyframes flash{50%{opacity:.35}}@keyframes bump{30%{color:#fff;transform:scale(1.35)}}@keyframes wobble{0%,to{transform:translate(-90%,-40%)}50%{transform:translate(10%,-70%)}}@keyframes rainbow{0%{color:var(--gold)}33%{color:var(--cyan)}66%{color:#ff9ecb}}@media (max-height:520px){#ui{font-size:12px}.title-wrap{gap:.6em;width:min(520px,56vw)}.logo-main{font-size:44px}.logo-sub{font-size:18px}.btn-mode{min-height:4.4em}.howto li{padding:.45em .55em}.howto-icon,.series-hint{display:none}.balance{width:6.5em;height:6.5em}.readout-num{font-size:2.8em}.hud-center{top:14%}.popups{top:34%}.results-panel{gap:.45em;width:min(470px,62vw);padding:.7em .9em}.score-num{font-size:3.2em}.touch-btn{width:96px;height:96px;font-size:17px}.touch-stick{width:104px;height:104px}}@media (max-width:720px) and (orientation:portrait){.title-wrap{width:92vw;left:50%;transform:translate(-50%,-50%)}.title-buttons{grid-template-columns:1fr}.results-panel{width:92vw;right:4vw}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
