:root{--p1:#35e0ff;--p1-deep:#0a6d94;--p2:#ff4d9d;--p2-deep:#8a1f52;--gold:#ffcf5c;--danger:#ff3b30;--steel:#8fa3bd;--mystery:#b06bff;--frost:#9ff0ff;--bg0:#05070f;--bg1:#0b1226;--ink:#eef5ff;--ink-2:#b6cade;--dim:#7b93b4;--pane:linear-gradient(157deg,rgba(28,42,72,.7),rgba(8,13,26,.8));--pane-hi:linear-gradient(157deg,rgba(44,64,104,.78),rgba(10,16,32,.86));--stroke:rgba(146,196,255,.2);--stroke-hi:rgba(146,196,255,.42);--lip:inset 0 1px 0 rgba(198,228,255,.16), inset 0 -1px 0 rgba(0,0,0,.55);--drop:0 22px 48px -22px rgba(0,0,0,.92), 0 2px 10px -4px rgba(0,0,0,.7);--blur:blur(16px) saturate(1.25);--f-display:"Bahnschrift","DIN Alternate","Roboto Condensed","Arial Narrow", ui-sans-serif,system-ui,"Segoe UI",sans-serif;--f-ui:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--fs-micro:clamp(8.5px,.62vw,10.5px);--fs-label:clamp(9.5px,.72vw,12px);--fs-body:clamp(12px,.86vw,14.5px);--fs-lead:clamp(15px,1.1vw,19px);--fs-num:clamp(26px,2.5vw,46px);--fs-head:clamp(26px,3.4vw,52px);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:18px;--sp-5:26px;--sp-6:38px;--r-1:6px;--r-2:10px;--r-3:16px;--r-4:22px;--e-out:cubic-bezier(.16,.84,.32,1);--e-in:cubic-bezier(.6,.02,.9,.3);--e-back:cubic-bezier(.2,1.5,.42,1);--danger-a:0}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none;background:var(--bg0);color:var(--ink);font-family:var(--f-ui);font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0;height:100dvh;touch-action:none}#gl{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}#ui-root{position:absolute;inset:0;pointer-events:none;user-select:none}.hidden{display:none!important}.hud{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s var(--e-out)}.hud.is-live{opacity:1}.hud.is-paused{filter:saturate(.55) brightness(.72)}.hud-bar{position:absolute;top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:clamp(8px,2vw,34px);padding:calc(clamp(8px,1.5vh,20px) + env(safe-area-inset-top)) calc(clamp(10px,1.6vw,28px) + env(safe-area-inset-right)) clamp(8px,1.5vh,20px) calc(clamp(10px,1.6vw,28px) + env(safe-area-inset-left))}.pcard{--pc:var(--p1);--pc-deep:var(--p1-deep);--pc-soft:rgba(53,224,255,.45);--pc-edge:rgba(53,224,255,.46);position:relative;grid-column:1;justify-self:start;width:100%;max-width:clamp(180px,21vw,300px);min-width:0;padding:var(--sp-3) var(--sp-3) calc(var(--sp-3) - 2px);background:var(--pane);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:var(--lip),var(--drop);clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%);transform:translateY(0);transition:box-shadow .3s var(--e-out),background .3s var(--e-out);animation:cardDrop .55s var(--e-out) both}.pcard.p2{--pc:var(--p2);--pc-deep:var(--p2-deep);--pc-soft:rgba(255,77,157,.45);--pc-edge:rgba(255,77,157,.46);grid-column:3;justify-self:end;clip-path:polygon(0 0,100% 0,100% 100%,14px 100%,0 calc(100% - 14px));animation-delay:.07s}.pcard.is-off{display:none}.pcard-edge{position:absolute;inset:0;pointer-events:none;border:1px solid var(--stroke);border-top:1px solid var(--pc-edge);clip-path:inherit}.pcard:after{content:"";position:absolute;left:0;top:0;height:2px;width:38%;background:linear-gradient(90deg,var(--pc),transparent);opacity:.9}.pcard.is-lead{background:var(--pane-hi);box-shadow:var(--lip),var(--drop),0 0 0 1px var(--pc-edge)}.pcard-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:12px}.pcard-tag{font-family:var(--f-display);font-size:var(--fs-label);font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--dim)}.pcard.is-lead .pcard-tag{color:var(--pc)}.pcard-lives{display:flex;gap:5px;align-items:center}.pcard-lives.is-off{display:none}.pcard-stack{display:inline-flex;align-items:center;gap:.34em;font-family:var(--font-display,inherit);letter-spacing:.02em;line-height:1}.pcard-stack i{width:.62em;height:.62em;border-radius:50%;background:radial-gradient(circle at 32% 30%,#fff,var(--p1) 62%,transparent 74%);box-shadow:0 0 .5em var(--p1);flex:none}.p2 .pcard-stack i{background:radial-gradient(circle at 32% 30%,#fff,var(--p2) 62%,transparent 74%);box-shadow:0 0 .5em var(--p2)}.pcard-stack b{font-weight:700;font-size:1.06em;font-variant-numeric:tabular-nums;color:#eaf4ff;text-shadow:0 1px 2px rgba(0,0,0,.6)}.pcard-stack b:before{content:"×";opacity:.55;margin-right:.08em;font-weight:600}.pcard-stack.is-grew{animation:stackPop .38s var(--ease-out,ease-out)}@keyframes stackPop{0%{transform:scale(1)}38%{transform:scale(1.28);filter:brightness(1.7)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.pcard-stack.is-grew{animation:none}}.pip{width:10px;height:10px;display:none;border-radius:3px;transform:rotate(45deg);background:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff29}.pip.is-shown{display:block}.pip.is-lit{background:linear-gradient(150deg,#fff,var(--pc) 62%,var(--pc-deep));box-shadow:0 0 9px -1px var(--pc),inset 0 0 0 1px #ffffff80}.pcard-lives.is-low .pip.is-lit{background:linear-gradient(150deg,#fff,var(--danger));box-shadow:0 0 12px -1px var(--danger);animation:lowLife .9s ease-in-out infinite}@keyframes lowLife{0%,to{opacity:.65}50%{opacity:1}}.pcard-score{position:relative;display:flex;align-items:baseline;gap:var(--sp-2);margin-top:2px}.score-num{font-family:var(--f-display);font-variation-settings:"wght" 700,"wdth" 88;font-weight:700;font-size:var(--fs-num);line-height:.94;letter-spacing:-.005em;font-variant-numeric:tabular-nums;color:var(--ink);transform:scale(calc(1 + var(--surge,0) * .055));text-shadow:0 0 calc(6px + var(--surge,0) * 26px) var(--pc-soft),0 2px 14px rgba(0,0,0,.75);transition:transform .12s var(--e-out)}.p1 .score-num{color:#f2fdff}.p2 .score-num{color:#fff2f8}.score-chip{font-family:var(--f-display);font-size:var(--fs-body);font-weight:700;letter-spacing:.06em;color:var(--gold);opacity:0;white-space:nowrap;text-shadow:0 0 12px rgba(255,207,92,.6)}.score-chip.is-on.a{animation:chipA .9s var(--e-out) forwards}.score-chip.is-on.b{animation:chipB .9s var(--e-out) forwards}.score-chip.hard{font-size:var(--fs-lead);color:#fff;text-shadow:0 0 18px var(--gold)}@keyframes chipA{0%{opacity:0;transform:translateY(6px) scale(.86)}18%{opacity:1;transform:translateY(0) scale(1.06)}30%{transform:translateY(0) scale(1)}70%{opacity:1}to{opacity:0;transform:translateY(-9px)}}@keyframes chipB{0%{opacity:0;transform:translateY(6px) scale(.86)}18%{opacity:1;transform:translateY(0) scale(1.06)}30%{transform:translateY(0) scale(1)}70%{opacity:1}to{opacity:0;transform:translateY(-9px)}}.combo{--tc:var(--frost);display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);opacity:0;transform:translateY(-5px);transition:opacity .2s var(--e-out),transform .2s var(--e-out)}.combo.is-on{opacity:1;transform:none}.combo[data-tier="1"]{--tc:#9ff0ff}.combo[data-tier="2"]{--tc:#7cffd4}.combo[data-tier="3"]{--tc:#c9ff6b}.combo[data-tier="4"]{--tc:var(--gold)}.combo[data-tier="5"]{--tc:#ff9a3d}.combo[data-tier="6"]{--tc:#ff5f7a}.combo[data-tier="7"]{--tc:#ff3bd0}.combo-mult{font-family:var(--f-display);font-weight:700;font-size:var(--fs-lead);line-height:1;color:var(--tc);font-variant-numeric:tabular-nums;text-shadow:0 0 14px var(--tc);transform:scale(calc(1 + var(--pop,0) * .26));transform-origin:left center}.combo-body{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;min-width:0;flex:1}.combo-name{flex:1 1 auto;min-width:0;font-family:var(--f-display);font-size:var(--fs-micro);font-weight:600;letter-spacing:.34em;color:var(--tc);opacity:.9;white-space:nowrap;overflow:hidden}.combo-count{flex:0 0 auto;font-family:var(--f-display);font-size:var(--fs-micro);letter-spacing:.14em;color:var(--dim);font-variant-numeric:tabular-nums}.combo-count:after{content:" HIT";letter-spacing:.2em}.combo-fuse{flex:0 0 100%;display:block;height:2px;margin-top:4px;border-radius:2px;background:#ffffff1a;overflow:hidden}.combo-fuse>i{display:block;height:100%;width:100%;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,rgba(255,255,255,.28),var(--tc))}.gauge{margin-top:var(--sp-2)}.gauge-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.gauge-label{font-family:var(--f-display);font-size:var(--fs-micro);font-weight:600;letter-spacing:.32em;color:var(--dim)}.gauge-pct{font-family:var(--f-display);font-size:var(--fs-micro);letter-spacing:.1em;color:var(--dim);font-variant-numeric:tabular-nums}.gauge-track{display:block;height:6px;margin-top:4px;border-radius:3px;overflow:hidden;background:#040810a8;box-shadow:inset 0 0 0 1px #ffffff17,inset 0 1px 2px #0009}.gauge-fill{display:block;height:100%;width:100%;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,var(--pc-deep),var(--pc) 62%,#fff)}.gauge.is-ready .gauge-label,.gauge.is-ready .gauge-pct{color:var(--gold)}.gauge.is-ready .gauge-track{animation:readyPulse 1.1s ease-in-out infinite}.gauge.is-live .gauge-label{color:#fff;text-shadow:0 0 12px var(--gold)}.gauge.is-live .gauge-fill{background:linear-gradient(90deg,#ff8a1e,var(--gold) 45%,#fff);background-size:200% 100%;animation:odFlow .7s linear infinite}.gauge.is-live .gauge-track{box-shadow:inset 0 0 0 1px #ffcf5c80,0 0 16px -2px var(--gold)}@keyframes readyPulse{0%,to{box-shadow:inset 0 0 0 1px #ffcf5c59}50%{box-shadow:inset 0 0 0 1px #ffcf5ce6,0 0 14px -2px var(--gold)}}@keyframes odFlow{to{background-position:-200% 0}}.queue{display:flex;gap:3px;margin-top:var(--sp-2);opacity:0;transition:opacity .2s}.queue.is-on{opacity:1}.qbar{flex:1;height:4px;border-radius:2px;background:#ffffff14}.qbar.is-lit{background:linear-gradient(90deg,var(--danger),#ff8a6a);box-shadow:0 0 8px -1px var(--danger);animation:qPulse .9s ease-in-out infinite}@keyframes qPulse{0%,to{opacity:.65}50%{opacity:1}}.hud-core{grid-column:2;justify-self:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding-top:2px;min-width:0;animation:cardDrop .55s .04s var(--e-out) both}.sector{font-family:var(--f-display);font-size:var(--fs-label);font-weight:600;letter-spacing:.42em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;text-shadow:0 2px 10px rgba(0,0,0,.8)}.sector b{margin-left:.7em;color:var(--p1);font-variant-numeric:tabular-nums;letter-spacing:.16em}.clock{font-family:var(--f-display);font-variation-settings:"wght" 600,"wdth" 88;font-size:clamp(17px,1.5vw,26px);line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.06em;text-shadow:0 2px 12px rgba(0,0,0,.85)}.descent{display:flex;flex-direction:column;align-items:center;gap:3px;width:clamp(90px,9vw,150px);margin-top:2px}.descent-label{font-family:var(--f-display);font-size:var(--fs-micro);letter-spacing:.3em;color:var(--dim)}.descent-track{display:block;width:100%;height:3px;border-radius:2px;overflow:hidden;background:#ffffff17}.descent-track>i{display:block;height:100%;width:100%;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,rgba(143,163,189,.5),var(--steel));transition:background .3s}.descent.is-hot .descent-track>i{background:linear-gradient(90deg,var(--gold),var(--danger))}.descent.is-hot .descent-label{color:var(--gold)}.core-tags{display:flex;gap:var(--sp-2);margin-top:var(--sp-2);min-height:14px}.tag{display:none;font-family:var(--f-display);font-size:var(--fs-micro);font-weight:600;letter-spacing:.22em;padding:2px 8px;border-radius:999px;white-space:nowrap;background:#0a101e99;box-shadow:inset 0 0 0 1px var(--stroke)}.tag.is-on{display:block}.tag-team{color:var(--ink-2)}.tag-sync{color:var(--gold);box-shadow:inset 0 0 0 1px #ffcf5c73;text-shadow:0 0 10px rgba(255,207,92,.6)}.banner{position:absolute;left:50%;top:46%;translate:-50% -50%;text-align:center;opacity:0;pointer-events:none}.banner.is-on{animation:bannerIn 1.6s var(--e-out) forwards}.banner b{display:block;font-family:var(--f-display);font-weight:700;font-variation-settings:"wght" 700,"wdth" 82;font-size:clamp(26px,3.6vw,58px);line-height:1;letter-spacing:.16em;color:#fff;text-shadow:0 0 30px currentColor,0 4px 24px rgba(0,0,0,.9)}.banner i{display:block;margin-top:var(--sp-2);font-style:normal;font-family:var(--f-display);font-size:var(--fs-label);letter-spacing:.42em;color:var(--ink-2)}.banner[data-tone=gold] b{color:var(--gold)}.banner[data-tone=p1] b{color:var(--p1)}@keyframes bannerIn{0%{opacity:0;transform:scale(1.3) translateY(8px);filter:blur(6px)}12%{opacity:1;transform:scale(1);filter:blur(0)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96) translateY(-10px)}}.alert{position:absolute;left:50%;bottom:clamp(14px,4vh,42px);translate:-50% 0;font-family:var(--f-display);font-weight:700;font-size:var(--fs-label);letter-spacing:.46em;color:var(--danger);white-space:nowrap;padding:6px 16px;border-radius:var(--r-1);background:#1e04068c;box-shadow:inset 0 0 0 1px #ff3b306b;opacity:0;transition:opacity .25s var(--e-out)}.alert.is-on{opacity:1;animation:alertPulse 1s ease-in-out infinite}@keyframes alertPulse{0%,to{opacity:.62;box-shadow:inset 0 0 0 1px #ff3b304d}50%{opacity:1;box-shadow:inset 0 0 0 1px #ff3b30e6,0 0 26px -6px var(--danger)}}.threat{position:absolute;inset:0;pointer-events:none;opacity:var(--danger-a);transition:opacity .3s linear;box-shadow:inset 0 -170px 190px -140px var(--danger),inset 0 0 130px -60px #ff3b308c}.float-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;contain:layout paint}.float{position:absolute;left:0;top:0;white-space:nowrap;font-family:var(--f-display);font-weight:700;font-variation-settings:"wght" 700,"wdth" 88;font-size:clamp(13px,1.05vw,18px);letter-spacing:.05em;font-variant-numeric:tabular-nums;color:var(--ink);text-shadow:0 1px 6px rgba(0,0,0,.95),0 0 10px rgba(0,0,0,.7);will-change:transform,opacity;backface-visibility:hidden}.float.o1{color:#bfe9fb}.float.o2{color:#ffc4de}.float.big{font-size:clamp(17px,1.5vw,26px);color:#fff}.float.crit{color:var(--gold);text-shadow:0 1px 6px rgba(0,0,0,.95),0 0 18px rgba(255,207,92,.8)}@keyframes cardDrop{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}.overlay{position:absolute;inset:0;display:grid;place-items:center;pointer-events:auto;padding:calc(clamp(12px,3vh,40px) + env(safe-area-inset-top)) calc(clamp(12px,3vw,40px) + env(safe-area-inset-right)) calc(clamp(12px,3vh,40px) + env(safe-area-inset-bottom)) calc(clamp(12px,3vw,40px) + env(safe-area-inset-left));background:radial-gradient(120% 90% at 50% 8%,rgba(53,224,255,.07),transparent 60%),radial-gradient(140% 100% at 50% 100%,rgba(255,77,157,.05),transparent 55%),radial-gradient(ellipse at center,#0508109e,#020409f0);backdrop-filter:blur(9px) saturate(.85);-webkit-backdrop-filter:blur(9px) saturate(.85);animation:veilIn .22s var(--e-out) both}.overlay.is-out{animation:veilOut .12s var(--e-in) both}@keyframes veilIn{0%{opacity:0}to{opacity:1}}@keyframes veilOut{0%{opacity:1}to{opacity:0}}.card{position:relative;width:min(880px,100%);max-height:100%;overflow:auto;padding:clamp(20px,3.2vw,44px) clamp(18px,3vw,46px) clamp(14px,2vw,26px);background:var(--pane);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-radius:var(--r-4);box-shadow:var(--lip),0 40px 100px -30px #000000f2,0 0 0 1px var(--stroke);scrollbar-width:thin;scrollbar-color:rgba(146,196,255,.3) transparent;animation:cardIn .34s var(--e-out) both}.card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.055),transparent 22%)}.card::-webkit-scrollbar{width:6px}.card::-webkit-scrollbar-thumb{background:#92c4ff47;border-radius:3px}.overlay.is-out .card{animation:cardOut .12s var(--e-in) both}.card.quiet,.card.quiet *{animation:none!important}@keyframes cardIn{0%{opacity:0;transform:translateY(20px) scale(.975)}to{opacity:1;transform:none}}@keyframes cardOut{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px) scale(.99)}}.brand{text-align:center;margin-bottom:clamp(18px,3vh,34px)}.wordmark{font-family:var(--f-display);font-weight:700;line-height:.86;font-variation-settings:"wght" 700,"wdth" 80;display:flex;flex-direction:column;align-items:center}.wordmark span{font-size:clamp(30px,5.4vw,70px);letter-spacing:.24em;text-indent:.24em;color:var(--ink-2);opacity:.9}.wordmark em{font-style:normal;font-size:clamp(46px,9vw,124px);letter-spacing:.06em;text-indent:.06em;background:linear-gradient(178deg,#ffffff 4%,#7ce9ff 42%,var(--p1) 62%,#0d5f86 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 8px 30px rgba(53,224,255,.35))}.tagline{margin-top:var(--sp-3);font-family:var(--f-display);font-size:var(--fs-label);letter-spacing:.62em;text-indent:.62em;color:var(--dim);text-transform:uppercase}.head{text-align:center;margin-bottom:clamp(16px,2.6vh,30px)}.heading{font-family:var(--f-display);font-weight:700;font-variation-settings:"wght" 700,"wdth" 84;font-size:var(--fs-head);line-height:1;letter-spacing:.12em;background:linear-gradient(178deg,#fff 10%,#a8ddff 60%,#3f8fb8);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 22px rgba(53,224,255,.28))}.heading.win{background-image:linear-gradient(178deg,#fff 10%,#a9ffd8,#0f9e70);filter:drop-shadow(0 6px 22px rgba(54,245,200,.3))}.heading.lose{background-image:linear-gradient(178deg,#fff 10%,#ffb0a8,#a32a20);filter:drop-shadow(0 6px 22px rgba(255,59,48,.3))}.heading.win-p1{background-image:linear-gradient(178deg,#fff 10%,#8ceaff,#0a6d94)}.heading.win-p2{background-image:linear-gradient(178deg,#fff 10%,#ffa7cf,#8a1f52);filter:drop-shadow(0 6px 22px rgba(255,77,157,.3))}.sub{margin-top:var(--sp-2);font-family:var(--f-display);font-size:var(--fs-label);letter-spacing:.4em;text-indent:.4em;color:var(--dim);text-transform:uppercase}.cores{color:var(--gold);font-weight:700}.menu{display:grid;gap:var(--sp-2);margin-top:clamp(14px,2.4vh,26px)}.menu.tight{margin-top:var(--sp-3)}.btn{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px var(--sp-3);width:100%;text-align:left;cursor:pointer;padding:clamp(11px,1.5vh,16px) clamp(14px,1.6vw,22px);background:#ffffff09;border:0;border-radius:var(--r-2);box-shadow:inset 0 0 0 1px var(--stroke);color:var(--ink);font-family:var(--f-display);transition:background .16s var(--e-out),box-shadow .16s var(--e-out),transform .16s var(--e-out);animation:itemIn .32s var(--e-out) both;animation-delay:calc(var(--i,0) * 34ms + 80ms)}.btn-label{grid-column:1;font-size:var(--fs-lead);font-weight:600;letter-spacing:.16em}.btn-sub{grid-column:1;grid-row:2;font-size:var(--fs-micro);letter-spacing:.16em;color:var(--dim);margin-top:3px}.btn-arrow{grid-column:2;grid-row:1/3;width:9px;height:9px;opacity:.35;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);transition:opacity .16s,transform .16s var(--e-out)}.btn:hover{background:#ffffff0f}.btn.is-sel{background:linear-gradient(90deg,rgba(53,224,255,.2),rgba(53,224,255,.05) 65%,transparent);box-shadow:inset 0 0 0 1px #35e0ff8c,0 0 26px -10px var(--p1);transform:translate(5px)}.btn.is-sel .btn-arrow{opacity:1;transform:rotate(45deg) translate(2px,-2px)}.btn.is-sel:before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:3px;border-radius:2px;background:linear-gradient(180deg,#fff,var(--p1));box-shadow:0 0 12px var(--p1)}.btn.is-hit{animation:hit .22s var(--e-out)}@keyframes hit{0%{transform:translate(5px) scale(1)}40%{transform:translate(5px) scale(.985)}to{transform:translate(5px) scale(1)}}@keyframes itemIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.modegrid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}.modecard{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"g n p" "g b b";gap:2px var(--sp-3);align-items:center;text-align:left;cursor:pointer;border:0;padding:clamp(13px,1.6vw,20px);border-radius:var(--r-3);background:linear-gradient(150deg,#ffffff0d,#ffffff04);box-shadow:inset 0 0 0 1px var(--stroke);color:var(--ink);font-family:var(--f-display);transition:background .18s var(--e-out),box-shadow .18s var(--e-out),transform .18s var(--e-out);animation:itemIn .32s var(--e-out) both;animation-delay:calc(var(--i,0) * 42ms + 85ms)}.modecard-glyph{grid-area:g;position:relative;width:26px;height:26px;align-self:center}.modecard-glyph:before,.modecard-glyph:after{content:"";position:absolute;top:3px;bottom:3px;width:5px;border-radius:3px;background:linear-gradient(180deg,#fff,var(--p1));box-shadow:0 0 10px -2px var(--p1)}.modecard-glyph[data-g=i]:before{left:50%;translate:-50% 0}.modecard-glyph[data-g=i]:after{display:none}.modecard-glyph[data-g=ii]:before{left:5px}.modecard-glyph[data-g=ii]:after{right:5px}.modecard-glyph[data-g=x]:before{left:10px;rotate:24deg}.modecard-glyph[data-g=x]:after{left:10px;rotate:-24deg;background:linear-gradient(180deg,#fff,var(--p2));box-shadow:0 0 10px -2px var(--p2)}.modecard-glyph[data-g=v]:before{left:3px}.modecard-glyph[data-g=v]:after{right:3px;background:linear-gradient(180deg,#fff,var(--p2));box-shadow:0 0 10px -2px var(--p2)}.modecard-name{grid-area:n;font-size:var(--fs-lead);font-weight:700;letter-spacing:.18em}.modecard-players{grid-area:p;font-size:var(--fs-micro);letter-spacing:.2em;color:var(--dim);padding:3px 8px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--stroke)}.modecard-blurb{grid-area:b;font-family:var(--f-ui);font-size:var(--fs-body);line-height:1.5;color:var(--ink-2);opacity:.8;margin-top:5px}.modecard:hover{background:linear-gradient(150deg,#ffffff14,#ffffff05)}.modecard.is-sel{background:linear-gradient(150deg,#35e0ff2e,#35e0ff08);box-shadow:inset 0 0 0 1px #35e0ff99,0 16px 40px -22px var(--p1);transform:translateY(-3px)}.modecard.is-sel .modecard-blurb{opacity:1}.modecard.is-hit{animation:hit2 .22s var(--e-out)}@keyframes hit2{0%{transform:translateY(-3px) scale(1)}40%{transform:translateY(-3px) scale(.985)}to{transform:translateY(-3px) scale(1)}}.shop{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}.up{display:grid;grid-template-columns:1fr auto;gap:3px var(--sp-2);text-align:left;cursor:pointer;border:0;padding:clamp(11px,1.3vw,16px);border-radius:var(--r-2);background:#ffffff08;box-shadow:inset 0 0 0 1px var(--stroke);color:var(--ink);font-family:var(--f-display);transition:background .16s var(--e-out),box-shadow .16s var(--e-out),transform .16s var(--e-out);animation:itemIn .3s var(--e-out) both;animation-delay:calc(var(--i,0) * 30ms + 75ms)}.up-name{font-size:var(--fs-body);font-weight:700;letter-spacing:.14em}.up-lvl{font-size:var(--fs-micro);letter-spacing:.1em;color:var(--dim);font-variant-numeric:tabular-nums}.up-desc{grid-column:1/3;font-family:var(--f-ui);font-size:var(--fs-body);color:var(--ink-2);opacity:.75;line-height:1.45}.up-pips{grid-column:1;display:flex;gap:3px;align-items:center;margin-top:4px}.up-pips i{width:14px;height:4px;border-radius:2px;background:#ffffff21}.up-pips i.on{background:linear-gradient(90deg,var(--p1),#fff);box-shadow:0 0 8px -2px var(--p1)}.up-cost{grid-column:2;align-self:end;font-size:var(--fs-body);font-weight:700;letter-spacing:.08em;color:var(--gold)}.up.broke .up-cost{color:var(--dim)}.up.maxed .up-cost{color:var(--frost)}.up:hover{background:#ffffff0e}.up.is-sel{background:linear-gradient(150deg,#35e0ff29,#35e0ff08);box-shadow:inset 0 0 0 1px #35e0ff8c,0 14px 34px -24px var(--p1);transform:translateY(-2px)}.up.deny{animation:deny .3s ease-out}@keyframes deny{0%,to{transform:translate(0)}20%{transform:translate(-5px)}50%{transform:translate(5px)}80%{transform:translate(-2px)}}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);margin-top:var(--sp-4)}.stat{padding:clamp(12px,1.6vw,20px);border-radius:var(--r-2);text-align:center;background:#ffffff08;box-shadow:inset 0 0 0 1px var(--stroke)}.stat b{display:block;font-family:var(--f-display);font-weight:700;font-size:clamp(20px,2.2vw,34px);line-height:1;letter-spacing:.02em;font-variant-numeric:tabular-nums}.stat b i{font-style:normal;font-size:.5em;color:var(--dim);margin-left:2px}.stat span{display:block;margin-top:var(--sp-2);font-family:var(--f-display);font-size:var(--fs-micro);letter-spacing:.3em;color:var(--dim)}.versus{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4)}.versus-side{padding:clamp(14px,1.8vw,22px);border-radius:var(--r-3);text-align:center;background:#ffffff08;box-shadow:inset 0 0 0 1px var(--stroke);transition:box-shadow .3s var(--e-out)}.versus-side b{display:block;font-family:var(--f-display);font-weight:700;font-size:clamp(24px,3vw,44px);line-height:1;font-variant-numeric:tabular-nums}.versus-side span{display:block;margin-top:var(--sp-2);font-family:var(--f-display);font-size:var(--fs-micro);letter-spacing:.3em;color:var(--dim)}.versus-side.p1 b{color:var(--p1)}.versus-side.p2 b{color:var(--p2)}.versus-side.p1.is-win{box-shadow:inset 0 0 0 1px #35e0ff99,0 0 40px -16px var(--p1)}.versus-side.p2.is-win{box-shadow:inset 0 0 0 1px #ff4d9d99,0 0 40px -16px var(--p2)}.versus-vs{font-family:var(--f-display);font-size:var(--fs-label);letter-spacing:.3em;color:var(--dim)}.roomcode{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-4);margin-bottom:var(--sp-3);border-radius:var(--r-3);background:#35e0ff0f;box-shadow:inset 0 0 0 1px #35e0ff4d}.roomcode-label,.roomcode-hint{font-family:var(--f-display);font-size:var(--fs-micro);letter-spacing:.36em;color:var(--dim)}.roomcode-val{font-family:var(--f-display);font-weight:700;font-size:clamp(34px,4.4vw,60px);letter-spacing:.28em;text-indent:.28em;line-height:1;color:var(--p1);text-shadow:0 0 28px rgba(53,224,255,.55)}.joinrow{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);margin-top:var(--sp-2);align-items:stretch}input.code{background:#02050c99;border:0;box-shadow:inset 0 0 0 1px var(--stroke);color:var(--ink);border-radius:var(--r-2);padding:12px 16px;font-family:var(--f-display);font-size:clamp(18px,2vw,28px);font-weight:700;letter-spacing:.44em;text-indent:.44em;text-align:center;text-transform:uppercase;width:100%;animation:itemIn .32s var(--e-out) both;animation-delay:calc(var(--i,0) * 34ms + 80ms)}input.code::placeholder{color:var(--dim);opacity:.55}input.code:focus{outline:0;box-shadow:inset 0 0 0 1px #35e0ffb3,0 0 26px -10px var(--p1)}input.code.is-sel{box-shadow:inset 0 0 0 1px #35e0ff8c}.sheet{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-3)}.sheet-row{display:grid;grid-template-columns:clamp(74px,9vw,116px) 1fr;gap:var(--sp-3);align-items:baseline;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-1);background:#ffffff06}.sheet-row b{font-family:var(--f-display);font-size:var(--fs-micro);letter-spacing:.26em;color:var(--p1)}.sheet-row span{font-family:var(--f-ui);font-size:var(--fs-body);line-height:1.7;color:var(--ink-2)}.hint{margin-top:var(--sp-3);text-align:center;font-size:var(--fs-body);color:var(--dim)}.key{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:19px;padding:0 6px;margin:0 3px;font-family:var(--f-display);font-size:var(--fs-micro);font-weight:600;letter-spacing:.1em;font-style:normal;color:var(--ink-2);background:linear-gradient(180deg,#ffffff1a,#ffffff08);border-radius:5px;box-shadow:inset 0 0 0 1px var(--stroke-hi),0 1px #00000080;vertical-align:middle}.key.round{border-radius:999px;min-width:19px;padding:0;color:var(--ink)}.prompts{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-top:clamp(14px,2.2vh,24px);padding-top:var(--sp-3);box-shadow:inset 0 1px #92c4ff24}.legend{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-family:var(--f-display);font-size:var(--fs-micro);letter-spacing:.26em;color:var(--dim)}.legend .key{margin-right:5px;margin-left:9px}.legend .key:first-child{margin-left:0}.padlist{display:flex;gap:var(--sp-2);flex-wrap:wrap}.padchip{font-family:var(--f-display);font-size:var(--fs-micro);letter-spacing:.14em;color:var(--frost);padding:3px 9px;border-radius:999px;background:#35e0ff12;box-shadow:inset 0 0 0 1px #35e0ff47}@media (min-width:1600px){:root{--fs-num:clamp(38px,2.4vw,50px)}.hud-bar{padding:26px 40px}}@media (max-width:900px){.modegrid,.shop,.stats{grid-template-columns:1fr}.stats{gap:var(--sp-2)}.stat{display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left}.stat span{margin-top:0}}@media (max-width:760px){:root{--fs-num:clamp(16px,4.6vw,23px);--fs-lead:13px;--fs-body:11px;--fs-label:9px;--fs-micro:8px;--fs-head:clamp(24px,7vw,38px)}.hud-bar{gap:6px;padding:calc(8px + env(safe-area-inset-top)) 8px 8px;align-items:stretch;grid-template-columns:minmax(0,1fr) minmax(0,auto) minmax(0,1fr)}.hud-core{min-width:0;max-width:34vw}.core-tags{display:none}.pcard{max-width:none;min-width:0;padding:5px 7px;clip-path:none;border-radius:var(--r-1)}.pcard-tag,.combo-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcard-head{min-height:0}.pcard-score{line-height:1}.combo{margin-top:2px}.gauge{margin-top:3px}.gauge-track{height:4px;margin-top:2px}.gauge-head{font-size:8px}.score-chip{font-size:10px}.pcard-edge{clip-path:none;border-radius:var(--r-1)}.pcard:after{width:46%}.combo-count:after{content:""}.gauge-label{letter-spacing:.18em}.hud-core{gap:2px;padding:0 2px}.descent{width:74px}.sector{letter-spacing:.22em;font-size:9px}.core-tags{min-height:0;margin-top:4px}.pip{width:8px;height:8px}.pcard-lives{gap:4px}.banner{top:22vh}.banner i{letter-spacing:.28em}.alert{letter-spacing:.24em;font-size:10px;padding:5px 10px}.float{font-size:13px}.float.big{font-size:17px}.card{padding:20px 16px 14px;border-radius:var(--r-3)}.joinrow{grid-template-columns:1fr}.versus{grid-template-columns:1fr;gap:var(--sp-2)}.versus-vs{justify-self:center}.sheet-row{grid-template-columns:1fr;gap:2px}.prompts{justify-content:center}.btn{padding:12px 14px}}@media (max-height:520px){.hud-bar{padding:6px 10px}.card{padding:14px 18px 10px}.brand{margin-bottom:10px}.wordmark span{font-size:22px}.wordmark em{font-size:44px}.menu{gap:6px;margin-top:10px}.btn{padding:8px 14px}.btn-sub{display:none}.banner{top:14vh}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.score-chip.is-on,.banner.is-on{animation:none!important;opacity:1}.card,.btn,.modecard,.up,input.code,.pcard,.hud-core{animation:none!important;opacity:1;transform:none}.alert.is-on{animation:none!important}}
