@font-face{font-family:Lilita One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lilita-one-latin-400-normal-87r-Z-Re.woff2)format("woff2"),url(/assets/lilita-one-latin-400-normal-DXkechA3.woff)format("woff")}:root{--font-display:"Lilita One", system-ui, sans-serif;--font-ui:system-ui, "Segoe UI", sans-serif;--fs-hero:clamp(26px, 7dvh, 52px);--fs-title:clamp(16px, 4dvh, 26px);--fs-label:clamp(11px, 2.4dvh, 15px);--fs-micro:clamp(9px, 1.8dvh, 11px);--sun-core:#ffd98a;--sun-mid:#ff9e2c;--sun-deep:#ef6c07;--sun-edge:#a83704;--ray:#ffffff1a;--felt-hi:#46b0f2;--felt-mid:#1f7fd0;--felt-lo:#114f88;--rail-hi:#c96a3d;--rail-mid:#9a3f22;--rail-lo:#5e2313;--pocket-rim:#ffc94d;--panel:#123a5c;--panel-hi:#1c5480;--panel-line:#ffd67a73;--scrim:#0a1a2ab8;--green-t:#9ceb57;--green-b:#4fb016;--green-e:#2c6c0c;--blue-t:#7ad6ff;--blue-b:#1d8ede;--blue-e:#0f5486;--red-t:#ff9a7a;--red-b:#e8452a;--red-e:#9c2010;--gold-t:#ffe9a3;--gold-b:#f5a623;--gold-e:#a9610a;--purple-t:#cfa6ff;--purple-b:#8b46e0;--purple-e:#57229c;--grey-t:#d8dee6;--grey-b:#9aa6b4;--grey-e:#5f6b79;--ink:#3a1e07;--paper:#fffaf0;--paper-dim:#d9c6a8;--e-1:0 2px 6px #14080040;--e-2:0 6px 16px #14080059;--e-3:0 14px 34px #14080073;--inset-lip:inset 0 2px 0 #ffffff8c, inset 0 -2px 0 #0003;--r-s:8px;--r-m:14px;--r-l:22px;--r-pill:999px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-pop:cubic-bezier(.34, 1.56, .64, 1)}html,body{overscroll-behavior:none;height:100%;font-family:var(--font-ui);color:var(--paper);touch-action:none;background:#0b2137;margin:0;overflow:hidden}:where(.btn,.modal .box button:not(.seg-btn)){--t:var(--green-t);--b:var(--green-b);--e:var(--green-e);color:var(--paper);text-shadow:0 2px #00000059}.btn,.modal .box button:not(.seg-btn){isolation:isolate;font-family:var(--font-display);font-size:var(--fs-label);letter-spacing:.5px;text-transform:uppercase;border-radius:var(--r-m);background:linear-gradient(180deg, var(--t) 0%, var(--b) 52%, var(--b) 100%);box-shadow:var(--inset-lip), 0 6px 0 0 var(--e), 0 9px 14px #14080061;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:transform 90ms var(--ease), box-shadow 90ms var(--ease), filter .15s;border:0;justify-content:center;align-items:center;gap:.4em;padding:.7em 1.4em;display:inline-flex;position:relative}.btn:before,.modal .box button:not(.seg-btn):before{content:"";z-index:-1;border-radius:calc(var(--r-m) - 2px) calc(var(--r-m) - 2px) 40% 40% / calc(var(--r-m) - 2px) calc(var(--r-m) - 2px) 100% 100%;pointer-events:none;background:linear-gradient(#ffffff8c,#ffffff0f);position:absolute;inset:2px 2px 48%}.btn:after,.modal .box button:not(.seg-btn):after{content:"";z-index:-2;border-radius:calc(var(--r-m) + 2px);background:#1a0a0059;position:absolute;inset:-2px}@media (hover:hover){.btn:hover,.modal .box button:not(.seg-btn):hover{filter:brightness(1.07)}}.btn:active,.btn.is-pressed,.modal .box button:not(.seg-btn):active{box-shadow:var(--inset-lip), 0 1px 0 0 var(--e), 0 2px 4px #14080059;transform:translateY(5px)}.btn:disabled,.modal .box button:not(.seg-btn):disabled{filter:grayscale(.7)brightness(.85);cursor:not-allowed}.btn:focus-visible,.modal .box button:not(.seg-btn):focus-visible{outline:3px solid var(--gold-t);outline-offset:3px}.btn--green{--t:var(--green-t);--b:var(--green-b);--e:var(--green-e)}.btn--blue{--t:var(--blue-t);--b:var(--blue-b);--e:var(--blue-e)}.btn--red{--t:var(--red-t);--b:var(--red-b);--e:var(--red-e)}.btn--purple{--t:var(--purple-t);--b:var(--purple-b);--e:var(--purple-e)}.btn--gold{--t:var(--gold-t);--b:var(--gold-b);--e:var(--gold-e);color:var(--ink);text-shadow:0 1px #fff6}.btn--grey{--t:var(--grey-t);--b:var(--grey-b);--e:var(--grey-e);color:var(--ink);text-shadow:0 1px #fff6}.btn--lg{font-size:var(--fs-title);border-radius:var(--r-l);padding:.85em 1.8em}.btn--icon{width:2.4em;height:2.4em;font-size:var(--fs-title);border-radius:50%;padding:0}.btn--icon svg{fill:currentColor;width:1.1em;height:1.1em}.btn--compact{font-size:var(--fs-micro);border-radius:var(--r-s);box-shadow:var(--inset-lip), 0 4px 0 0 var(--e), 0 6px 10px #14080057;padding:.55em .9em}.btn--compact:before{border-radius:calc(var(--r-s) - 2px) calc(var(--r-s) - 2px) 40% 40% / calc(var(--r-s) - 2px) calc(var(--r-s) - 2px) 100% 100%}.btn--compact:after{border-radius:calc(var(--r-s) + 2px)}.btn--compact:active{box-shadow:var(--inset-lip), 0 1px 0 0 var(--e), 0 2px 4px #14080059;transform:translateY(3px)}.btn--block{width:100%}.tile{--t:var(--blue-t);--b:var(--blue-b);--e:var(--blue-e);border-radius:var(--r-l);cursor:pointer;touch-action:manipulation;min-width:0;color:var(--paper);background:radial-gradient(120% 70% at 50% 0%, #ffffff59, transparent 60%), linear-gradient(180deg, var(--t), var(--b) 60%, var(--b));box-shadow:var(--inset-lip), 0 8px 0 var(--e), var(--e-3);transition:transform .1s var(--ease), box-shadow .1s var(--ease);border:0;flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:.2em;padding:0 .4em .8em;display:flex;position:relative;overflow:hidden}.tile:active{box-shadow:var(--inset-lip), 0 2px 0 var(--e), var(--e-1);transform:translateY(6px)}.tile:focus-visible{outline:3px solid var(--gold-t);outline-offset:3px}.tile .art{flex:1;place-items:center;width:100%;min-height:0;display:grid}.tile .art svg{fill:currentColor;opacity:.92;filter:drop-shadow(0 4px 8px #14080073);width:min(58%,76px);height:min(58%,76px)}.tile--gold{color:var(--ink)}.tile .bar{width:74%;height:.55em}.tile .label{font-family:var(--font-display);font-size:var(--fs-label);text-align:center;color:var(--paper);text-transform:uppercase;text-shadow:0 2px #00000059;line-height:1.1}.tile .entry{font-family:var(--font-display);font-size:var(--fs-micro);color:var(--gold-t);align-items:center;gap:.25em;display:inline-flex}.tile .entry svg{fill:currentColor;width:1.1em;height:1.1em}.tile--green{--t:var(--green-t);--b:var(--green-b);--e:var(--green-e)}.tile--purple{--t:var(--purple-t);--b:var(--purple-b);--e:var(--purple-e)}.tile--gold{--t:var(--gold-t);--b:var(--gold-b);--e:var(--gold-e)}.tile--gold .label{color:var(--ink);text-shadow:0 1px #fff6}.tile--red{--t:var(--red-t);--b:var(--red-b);--e:var(--red-e)}.chip{border-radius:var(--r-pill);border:1px solid var(--panel-line);font-family:var(--font-display);font-size:var(--fs-label);color:var(--paper);box-shadow:var(--e-1), inset 0 1px 0 #ffffff1f;white-space:nowrap;background:linear-gradient(#0d2e4a,#08202f);align-items:center;gap:.35em;padding:3px 3px 3px 9px;display:inline-flex}.chip>svg{fill:currentColor;flex:none;width:1.25em;height:1.25em}.chip.no-plus{padding-right:9px}.chip .plus{background:linear-gradient(180deg, var(--green-t), var(--green-b));width:1.5em;height:1.5em;box-shadow:0 2px 0 var(--green-e);color:#fff;cursor:pointer;touch-action:manipulation;border-radius:50%;place-items:center;font-size:.9em;line-height:1;display:grid}.chip .plus:active{box-shadow:0 0 0 var(--green-e);transform:translateY(2px)}.bar{border-radius:var(--r-pill);background:#00000073;height:.75em;overflow:hidden;box-shadow:inset 0 2px 4px #00000080}.bar>i{height:100%;width:calc(var(--p,0) * 100%);background:linear-gradient(180deg, var(--gold-t), var(--gold-b));transition:width .6s var(--ease);display:block;box-shadow:inset 0 1px #fff9}.ribbon{font-family:var(--font-display);font-size:var(--fs-title);color:var(--ink);text-transform:uppercase;text-align:center;background:linear-gradient(180deg, var(--gold-t), var(--gold-b));box-shadow:var(--inset-lip), var(--e-2);clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);padding:.35em 1.6em .7em;position:relative}.ribbon--grey{background:linear-gradient(180deg, var(--grey-t), var(--grey-b))}.stars{font-size:var(--fs-title);color:#3d2a10;gap:.2em;display:flex}.stars i{font-style:normal}.stars i.on{color:var(--gold-b);text-shadow:0 0 10px #ffbe3ce6, 0 2px 0 var(--gold-e)}.avatar{width:var(--sz,2.6em);height:var(--sz,2.6em);font-family:var(--font-display);font-size:var(--fs-label);color:var(--ink);background:var(--av-color,#4ee892);box-shadow:0 0 0 3px #0c2438, 0 0 0 5px var(--gold-b), var(--e-2);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.avatar.timed:before{content:"";background:conic-gradient(var(--gold-b) calc(var(--t,1) * 360deg), #00000073 0);border-radius:50%;position:absolute;inset:-5px;-webkit-mask:radial-gradient(closest-side,#0000 78%,#000 79%);mask:radial-gradient(closest-side,#0000 78%,#000 79%)}.avatar.timed.low:before{background:conic-gradient(#ff5a5a calc(var(--t,1) * 360deg), #00000073 0)}.avatar .lvl{font-size:var(--fs-micro);border-radius:var(--r-pill);color:var(--ink);background:linear-gradient(180deg, var(--gold-t), var(--gold-b));box-shadow:0 2px 0 var(--gold-e);padding:0 .35em;line-height:1.4;position:absolute;bottom:-.25em;right:-.35em}.countdown{font-family:var(--font-display);font-size:var(--fs-micro);color:var(--paper-dim);border-radius:var(--r-pill);white-space:nowrap;background:#00000073;padding:.15em .6em}.countdown.ready{color:var(--ink);background:linear-gradient(180deg, var(--green-t), var(--green-b));animation:readyPulse 1.4s var(--ease) infinite}@keyframes readyPulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}@media (prefers-reduced-motion:reduce){.countdown.ready{animation:none}}.panel-card{background:linear-gradient(180deg, var(--panel-hi), var(--panel));border:1px solid var(--panel-line);border-radius:var(--r-m);box-shadow:var(--e-2), inset 0 1px 0 #ffffff24;color:var(--paper)}.svg-icon{fill:currentColor;flex:none;width:1em;height:1em}.screen{flex-direction:column;align-items:center;gap:clamp(6px,1.6dvh,14px);display:none}.screen.active{animation:screenIn .35s var(--ease) both;display:flex}@keyframes screenIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}#install-banner{border-radius:var(--r-m);border:1px solid var(--panel-line);font-size:var(--fs-micro);color:var(--paper);background:#00000059;align-items:center;gap:8px;padding:8px 10px;display:flex}#install-banner .install-text{text-align:left;flex:1;min-width:0}.install-dismiss{color:var(--paper-dim);cursor:pointer;opacity:.7;background:0 0;border:none;padding:4px;font-size:16px;line-height:1}.install-dismiss:hover{opacity:1}#menu{z-index:10;background: radial-gradient(60% 42% at 50% 118%, var(--felt-mid) 0 58%, var(--felt-lo) 58% 63%, var(--rail-mid) 63% 70%, transparent 71%),  repeating-conic-gradient(from 8deg at 50% 30%, var(--ray) 0deg 5.2deg, transparent 5.2deg 11deg), radial-gradient(circle at 50% 30%, var(--sun-core) 0%, var(--sun-mid) 30%, var(--sun-deep) 58%, var(--sun-edge) 100%);display:block;position:fixed;inset:0}#menu.hidden{display:none}#screen-main.active{align-items:stretch}.lobby{box-sizing:border-box;width:100%;height:100dvh;padding:calc(6px + env(safe-area-inset-top)) calc(10px + env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left));flex-direction:column;gap:clamp(4px,1.5dvh,10px);display:flex}.topbar{flex:none;justify-content:space-between;align-items:center;gap:clamp(6px,2dvw,16px);height:clamp(34px,13dvh,52px);display:flex}.profile-card{border:1px solid var(--panel-line);border-radius:var(--r-pill);min-width:0;box-shadow:var(--e-1), inset 0 1px 0 #ffffff1f;cursor:pointer;touch-action:manipulation;font-family:var(--font-display);background:linear-gradient(#0d2e4a,#08202f);align-items:center;gap:.5em;padding:3px 12px 3px 3px;display:flex}.profile-card .avatar{--sz:clamp(26px, 9dvh, 38px)}.profile-card .who{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.profile-card .pname{font-size:var(--fs-label);color:var(--paper);text-overflow:ellipsis;white-space:nowrap;max-width:clamp(56px,16dvw,130px);overflow:hidden}.profile-card .bar{width:clamp(50px,14dvw,110px);height:.5em}.chip-row{gap:clamp(4px,1dvw,8px);min-width:0;display:flex}.topbar-actions{flex:none;gap:clamp(4px,1dvw,8px);display:flex}.topbar-actions .btn--icon{font-size:var(--fs-label)}.tile-row{flex:1;gap:clamp(6px,2dvw,16px);min-height:0;display:flex}.strip{flex:none;align-items:center;gap:clamp(6px,2dvw,14px);height:clamp(38px,15dvh,58px);display:flex}.chest{border:1px solid var(--panel-line);border-radius:var(--r-m);height:100%;box-shadow:var(--e-1), inset 0 1px 0 #ffffff1f;cursor:pointer;touch-action:manipulation;color:var(--paper);background:linear-gradient(#0d2e4a,#08202f);align-items:center;gap:.5em;padding:0 clamp(8px,2dvw,16px);display:flex}.chest .chest-art{width:clamp(22px,9dvh,34px);height:clamp(22px,9dvh,34px);color:var(--gold-b);fill:currentColor;filter:drop-shadow(0 2px 4px #14080080);flex:none}.chest .chest-meta{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.chest .label{font-family:var(--font-display);font-size:var(--fs-micro);color:var(--paper);text-transform:uppercase;white-space:nowrap}.streak{border:1px solid var(--panel-line);border-radius:var(--r-m);height:100%;box-shadow:var(--e-1), inset 0 1px 0 #ffffff1f;background:linear-gradient(#0d2e4a,#08202f);align-items:center;gap:.5em;padding:0 clamp(8px,2dvw,14px);display:flex}.streak-label{font-family:var(--font-display);font-size:var(--fs-micro);text-transform:uppercase;color:var(--paper-dim)}.pips{gap:3px;display:flex}.pips .pip{background:#00000073;border-radius:50%;width:clamp(8px,2.4dvh,12px);height:clamp(8px,2.4dvh,12px);box-shadow:inset 0 1px 2px #0009}.pips .pip.on{background:linear-gradient(180deg, var(--gold-t), var(--gold-b));box-shadow:inset 0 1px #fff9,0 0 6px #ffc94d99}.pips .pip.goal{border:1.5px solid var(--gold-t);box-sizing:border-box}#install-banner{flex:1;min-width:0}.strip>#install-banner[hidden]{display:none}.strip>#btn-shop{margin-left:auto}#menu>.screen:not(#screen-main){justify-content:center;height:100dvh}#app{box-sizing:border-box;padding:max(8px, var(--hud-h,0px)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#app canvas{cursor:grab;touch-action:none;border-radius:var(--r-l);width:auto;max-width:100%;height:auto;max-height:100%;box-shadow:var(--e-3)}#app canvas:active{cursor:grabbing}#hud{z-index:5;padding:calc(6px + env(safe-area-inset-top)) calc(10px + env(safe-area-inset-right)) 6px calc(10px + env(safe-area-inset-left));pointer-events:none;animation:hudIn .4s var(--ease) both;align-items:flex-start;gap:clamp(6px,2dvw,14px);display:none;position:fixed;top:0;left:0;right:0}@keyframes hudIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}#hud.show{display:flex}.hud-side{border:1px solid var(--panel-line);border-radius:var(--r-pill);min-width:0;box-shadow:var(--e-1), inset 0 1px 0 #ffffff1f;background:linear-gradient(#0d2e4a,#08202f);align-items:center;gap:.5em;padding:3px 12px 3px 3px;transition:opacity .2s,box-shadow .2s;display:flex}.hud-side--r{padding:3px 3px 3px 12px}.hud-side.inactive{opacity:.55}.hud-side.active{box-shadow:var(--e-2), 0 0 0 2px var(--gold-b), 0 0 16px #ffc94d73}#hud-opp.hidden{display:none}.hud-side .avatar{--sz:clamp(24px, 8dvh, 34px);font-size:var(--fs-micro)}.hud-meta{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.hud-side--r .hud-meta{align-items:flex-end}.hud-meta .name{font-family:var(--font-display);font-size:var(--fs-micro);color:var(--paper);text-overflow:ellipsis;white-space:nowrap;max-width:clamp(50px,14dvw,120px);overflow:hidden}.rack{align-items:center;gap:3px;display:none}.rack.show{display:flex}.rack .dot{border-radius:50%;flex-shrink:0;width:clamp(7px,2.2dvh,11px);height:clamp(7px,2.2dvh,11px);transition:opacity .3s,transform .3s;box-shadow:inset -1px -2px 3px #00000073,inset 2px 2px 3px #ffffff8c,0 1px 2px #00000080}.rack .dot.gone{transform:scale(.86);box-shadow:inset 0 0 0 1.5px #ffffff40;background:0 0!important}.hud-centre{flex:1;justify-content:center;min-width:0;display:flex}.hud-pot{border-radius:var(--r-pill);font-family:var(--font-display);font-size:var(--fs-label);color:var(--ink);background:linear-gradient(180deg, var(--gold-t), var(--gold-b));box-shadow:var(--inset-lip), 0 3px 0 var(--gold-e), var(--e-2);align-items:center;gap:.35em;padding:.25em .8em;display:inline-flex}.hud-pot[hidden]{display:none}.hud-corner{pointer-events:auto;flex:none;align-items:center;gap:clamp(3px,1dvw,6px);display:flex}.hud-corner .btn--icon{font-size:var(--fs-label)}.reactions{gap:3px;display:none}.reactions.show{display:flex}.reactions button{border:1px solid var(--panel-line);border-radius:var(--r-pill);color:var(--paper);font-size:var(--fs-label);cursor:pointer;touch-action:manipulation;background:#0006;padding:.3em .45em;line-height:1}.reactions button:active{transform:scale(.92)}#hint{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:6;border-radius:var(--r-m);max-width:min(62dvw,520px);font-family:var(--font-display);font-size:var(--fs-micro);text-align:center;color:var(--paper);border:1px solid var(--panel-line);box-shadow:var(--e-2);transition:opacity .4s var(--ease);pointer-events:none;background:#061624d1;padding:.6em 1.1em;line-height:1.5;position:fixed;transform:translate(-50%)}#hint.gone{opacity:0}#toast{top:calc(var(--hud-h,0px) + 8px);left:calc(18px + env(safe-area-inset-left));z-index:20;border-radius:var(--r-m);font-family:var(--font-display);font-size:var(--fs-label);color:var(--paper);background:linear-gradient(180deg, var(--panel-hi), var(--panel));border:1px solid var(--panel-line);box-shadow:var(--e-2);opacity:0;transition:opacity .35s var(--ease), transform .35s var(--ease);pointer-events:none;padding:.6em 1.1em;position:fixed;transform:translate(-20px)}#toast.show{opacity:1;transform:translate(0)}#banner{z-index:18;pointer-events:none;opacity:0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#banner .txt{font-family:var(--font-display);text-align:center;color:var(--gold-t);text-shadow:0 4px 0 var(--gold-e), 0 8px 30px #000000b3;padding:0 30px;font-size:clamp(32px,11dvh,64px)}#banner.show{animation:bannerPop 2.4s var(--ease) forwards}@keyframes bannerPop{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.08)}25%{transform:scale(1)}78%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}#spin-widget{right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));z-index:6;touch-action:none;cursor:pointer;border:2px solid var(--gold-b);width:clamp(48px,17dvh,66px);height:clamp(48px,17dvh,66px);box-shadow:var(--e-2), inset 0 -4px 10px #00000040;background:radial-gradient(circle at 35% 32%,#fff 0%,#e2e2e2 55%,#a8a8a8 100%);border-radius:50%;display:none;position:fixed}#spin-widget.show{display:block}#spin-widget.disabled{opacity:.35;cursor:not-allowed}#spin-dot{background:var(--red-b);pointer-events:none;border:2px solid #fff;border-radius:50%;width:13px;height:13px;transition:left 50ms linear,top 50ms linear;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #00000080}#power-slider{left:calc(10px + env(safe-area-inset-left));z-index:6;border-radius:var(--r-pill);width:clamp(20px,6dvh,26px);height:min(56dvh,300px);box-shadow:inset 0 2px 6px #000000b3, 0 0 0 2px var(--panel-line);touch-action:none;background:linear-gradient(#0a2438,#061725);display:none;position:fixed;top:50%;transform:translateY(-50%)}#power-slider.show{display:block}#power-slider .fill{border-radius:inherit;transform-origin:bottom;transform:scaleY(var(--pw,0));background:linear-gradient(#ff5a3c 0%,#ffb02e 45%,#8ee24a 100%);position:absolute;inset:3px}#power-slider .stick{width:12px;height:78px;left:50%;bottom:calc(var(--pw,0) * (100% - 78px));background:linear-gradient(90deg,#8a5b1e,#e8bb63 38%,#fff0cd 50%,#c58f38 70%,#6d3f13);border-radius:6px 6px 3px 3px;position:absolute;transform:translate(-50%);box-shadow:0 3px 8px #0000008c}#power-slider .stick:after{content:"";background:#1c1c1c;border-radius:2px;height:10px;position:absolute;top:46px;left:0;right:0}#vs-intro{z-index:19;background:radial-gradient(circle,#143c5fe6,#040c16f7);justify-content:space-around;align-items:center;gap:2dvw;padding:0 4dvw;display:none;position:fixed;inset:0}#vs-intro.show{animation:vsOut .4s var(--ease) 1.9s forwards;display:flex}.vs-side{flex-direction:column;align-items:center;gap:.4em;min-width:0;display:flex}.vs-side .avatar{--sz:clamp(54px, 22dvh, 104px);font-size:var(--fs-title)}.vs-name{font-family:var(--font-display);font-size:var(--fs-title);color:var(--paper);text-shadow:0 2px #00000080;text-overflow:ellipsis;white-space:nowrap;max-width:26dvw;overflow:hidden}.vs-mid{flex-direction:column;flex:none;align-items:center;gap:.5em;display:flex}.vs-glyph{font-family:var(--font-display);font-size:var(--fs-hero);color:var(--gold-t);text-shadow:0 5px 0 var(--gold-e), 0 0 30px #ffc94db3;line-height:1}.vs-pot{border-radius:var(--r-pill);font-family:var(--font-display);font-size:var(--fs-label);color:var(--ink);background:linear-gradient(180deg, var(--gold-t), var(--gold-b));box-shadow:var(--inset-lip), 0 3px 0 var(--gold-e);align-items:center;gap:.35em;padding:.25em .9em;display:inline-flex}.vs-pot[hidden]{display:none}#vs-intro.show .vs-left{animation:vsSlide .5s var(--ease-pop) both;--dir:-1}#vs-intro.show .vs-right{animation:vsSlide .5s var(--ease-pop) 80ms both;--dir:1}#vs-intro.show .vs-glyph{animation:vsPop .45s var(--ease-pop) .3s both}@keyframes vsSlide{0%{opacity:0;transform:translateX(calc(var(--dir) * 55dvw))}}@keyframes vsPop{0%{opacity:0;transform:scale(2.4)rotate(-12deg)}70%{transform:scale(.92)}to{opacity:1;transform:none}}@keyframes vsOut{to{opacity:0;visibility:hidden}}.vs-coin{background:radial-gradient(circle at 35% 30%, var(--gold-t), var(--gold-b) 65%, var(--gold-e));opacity:0;pointer-events:none;border-radius:50%;width:16px;height:16px;position:absolute;top:58%;left:50%}#vs-intro.show .vs-coin{animation:vsCoin .55s var(--ease) calc(.55s + var(--i) * 70ms) both}.vs-coin:first-of-type{--sx:-34dvw;--sy:-8dvh}.vs-coin:nth-of-type(2){--sx:-26dvw;--sy:10dvh}.vs-coin:nth-of-type(3){--sx:-18dvw;--sy:-14dvh}.vs-coin:nth-of-type(4){--sx:18dvw;--sy:-14dvh}.vs-coin:nth-of-type(5){--sx:26dvw;--sy:10dvh}.vs-coin:nth-of-type(6){--sx:34dvw;--sy:-8dvh}@keyframes vsCoin{0%{transform:translate(var(--sx), var(--sy)) scale(.4);opacity:0}60%{opacity:1}to{opacity:0;transform:none}}@media (prefers-reduced-motion:reduce){#vs-intro.show,#vs-intro.show .vs-left,#vs-intro.show .vs-right,#vs-intro.show .vs-glyph,#vs-intro.show .vs-coin{animation-duration:10ms}}#app canvas.shake{animation:.26s ease-in-out tableShake}@keyframes tableShake{0%,to{transform:translate(0)}20%{transform:translate(-5px,3px)}40%{transform:translate(4px,-3px)}60%{transform:translate(-3px,-2px)}80%{transform:translate(2px,2px)}}.coin-fly{z-index:40;pointer-events:none;background:radial-gradient(circle at 35% 30%, var(--gold-t), var(--gold-b) 65%, var(--gold-e));width:18px;height:18px;animation:coinFly .75s var(--ease) calc(var(--i) * 60ms) both;border-radius:50%;position:fixed;top:0;left:0;box-shadow:0 2px 6px #14080080}@keyframes coinFly{0%{transform:translate(calc(var(--tx) + var(--sx)), calc(var(--ty) + var(--sy))) scale(.4);opacity:0}30%{opacity:1}to{transform:translate(var(--tx), var(--ty)) scale(1);opacity:0}}.confetti{top:-20px;left:var(--x);z-index:40;pointer-events:none;width:9px;height:14px;animation:confettiFall var(--d) linear var(--delay) both;border-radius:2px;position:fixed}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)}to{transform:translateY(110vh) rotate(var(--r));opacity:0}}@media (prefers-reduced-motion:reduce){#app canvas.shake{animation:none}.coin-fly,.confetti{display:none}}.modal{z-index:30;background:var(--scrim);-webkit-backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:12px;display:none;position:fixed;inset:0}.modal.show{animation:modalIn .2s var(--ease);display:flex}@keyframes modalIn{0%{opacity:0}to{opacity:1}}.modal .box{border-radius:var(--r-l);text-align:center;box-sizing:border-box;width:380px;max-width:86vw;max-height:90dvh;color:var(--paper);background:radial-gradient(130% 60% at 50% 0%, #ffffff29, transparent 60%), linear-gradient(180deg, var(--panel-hi), var(--panel));border:2px solid var(--panel-line);box-shadow:var(--e-3), inset 0 2px 0 #fff3;animation:settleIn .25s var(--ease);padding:clamp(14px,3.4dvh,26px);overflow-y:auto}@keyframes settleIn{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:none}}.modal .box h2,.modal .box .box-title{font-family:var(--font-display);font-size:var(--fs-title);text-transform:uppercase;color:var(--gold-t);text-shadow:0 2px #0006;margin:0 0 .5em}.modal .box p{font-size:var(--fs-label);color:var(--paper);margin:0 0 18px;line-height:1.6}.modal .box .row{justify-content:center;gap:10px;display:flex}.modal .box .row button{flex:1}.modal .box .set-label{margin:14px 0 8px;display:block}.panel{border-radius:var(--r-l);box-sizing:border-box;width:340px;max-width:calc(100vw - 32px);color:var(--paper);background:radial-gradient(130% 60% at 50% 0%, #ffffff29, transparent 60%), linear-gradient(180deg, var(--panel-hi), var(--panel));border:2px solid var(--panel-line);box-shadow:var(--e-3), inset 0 2px 0 #fff3;flex-direction:column;align-items:center;gap:clamp(6px,1.6dvh,14px);padding:clamp(12px,3dvh,28px);display:flex}.panel .hint{font-size:var(--fs-label);opacity:.85;text-align:center}.code{font-family:var(--font-display);letter-spacing:10px;color:var(--gold-t);text-shadow:0 3px 0 var(--gold-e), 0 0 24px #ffc94d73;padding:4px 0 4px 10px;font-size:clamp(30px,8dvh,54px)}.panel input{font-family:var(--font-display);letter-spacing:10px;text-align:center;text-transform:uppercase;border-radius:var(--r-m);width:100%;color:var(--paper);box-sizing:border-box;border:2px solid var(--panel-line);background:#00000061;outline:none;padding:clamp(6px,1.6dvh,12px) 0;font-size:clamp(18px,5dvh,28px);transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 2px 6px #00000080}.panel input:focus{border-color:var(--gold-t);box-shadow:inset 0 2px 6px #00000080,0 0 0 3px #ffc94d40}.status{font-size:var(--fs-label);min-height:18px;color:var(--paper-dim);text-align:center}.status.error{color:#ff9b9b}#host-qr{border-radius:var(--r-s);box-sizing:border-box;background:#fff;padding:8px;width:clamp(96px,22dvh,160px)!important;height:clamp(96px,22dvh,160px)!important}#settings{color:var(--paper);text-align:left;flex-direction:column;align-items:stretch;gap:14px;margin-top:14px;display:flex}#settings .set-label,.set-label{font-family:var(--font-display);font-size:var(--fs-micro);letter-spacing:2px;text-transform:uppercase;color:var(--gold-t);opacity:.9;text-align:center}.seg{border-radius:var(--r-m);background:#00000061;gap:6px;padding:5px;display:flex;box-shadow:inset 0 2px 6px #00000080}.seg-btn{border-radius:var(--r-s);cursor:pointer;touch-action:manipulation;font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;color:var(--paper-dim);transition:background .15s var(--ease), color .15s, transform 80ms;background:0 0;border:none;flex:1;padding:10px 0}.seg-btn:hover{color:var(--paper);background:#ffffff1a}.seg-btn:active{transform:scale(.96)}.seg-btn.active{color:var(--ink);background:linear-gradient(180deg, var(--gold-t), var(--gold-b));box-shadow:var(--inset-lip), 0 2px 0 var(--gold-e)}#nickname-input{font-family:var(--font-ui);font-size:var(--fs-label);text-align:center;color:var(--paper);border-radius:var(--r-s);box-sizing:border-box;border:2px solid var(--panel-line);background:#00000061;outline:none;width:100%;padding:10px 0;transition:border-color .15s,box-shadow .15s}#nickname-input:focus{border-color:var(--gold-t);box-shadow:0 0 0 3px #ffc94d40}#mn-recovery-pin,#mn-recovery-code,#mn-contract-input{font-family:var(--font-ui);font-size:var(--fs-micro);text-align:left;color:var(--paper);border-radius:var(--r-s);box-sizing:border-box;border:2px solid var(--panel-line);background:#00000061;outline:none;width:100%;padding:8px 10px}#mn-recovery-code{resize:vertical;min-height:4.5em;margin-top:8px}#mn-recovery-qr{background:#fff;border-radius:8px;max-width:180px;margin:10px auto 0;display:block}.set-blurb{font-size:var(--fs-micro);color:var(--paper-dim);text-align:left;margin:0 0 10px;line-height:1.45}.modal .box.box--wide{text-align:left;width:min(520px,92vw)}.hall-body{text-align:left}.hall-link{color:var(--gold-t);word-break:break-all}.audit-mode{text-transform:uppercase;letter-spacing:.04em;opacity:.8;font-size:.75em}.audit-mode.real{color:var(--gold-t)}.audit-mode.mock{color:var(--paper-dim)}.check-row{font-size:var(--fs-label);color:var(--paper-dim);cursor:pointer;justify-content:center;align-items:center;gap:8px;display:flex}.check-row input{accent-color:var(--gold-b)}.pip-row{justify-content:center;gap:6px;margin:14px 0;display:flex}.pip-row .pip{border-radius:var(--r-s);width:30px;height:30px;font-family:var(--font-display);font-size:var(--fs-micro);color:var(--paper-dim);border:1px solid var(--panel-line);background:#00000061;justify-content:center;align-items:center;display:flex}.pip-row .pip.done{color:var(--ink);background:linear-gradient(180deg, var(--gold-t), var(--gold-b));border-color:var(--gold-e)}.pip-row .pip.today{border-color:var(--gold-t);box-shadow:0 0 10px #ffc94d80}.item-list{flex-direction:column;gap:8px;max-height:240px;margin-bottom:16px;display:flex;overflow-y:auto}.item-row{border-radius:var(--r-s);border:1px solid var(--panel-line);text-align:left;background:#00000047;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.item-row .info{flex-direction:column;gap:2px;min-width:0;display:flex}.item-row .info .name{font-family:var(--font-display);font-size:var(--fs-label);color:var(--paper)}.item-row .info .sub{font-size:var(--fs-micro);color:var(--paper-dim)}.item-row button{flex-shrink:0;width:auto}.item-row.rarity-common{border-left:3px solid #9ca3af}.item-row.rarity-uncommon{border-left:3px solid #4ade80}.item-row.rarity-rare{border-left:3px solid #60a5fa}.item-row.rarity-epic{border-left:3px solid #c084fc}.midnight-badge{font-family:var(--font-display);font-size:var(--fs-micro);color:var(--ink);background:linear-gradient(180deg, var(--purple-t), var(--purple-b));border-radius:var(--r-pill);white-space:nowrap;margin-left:6px;padding:1px 6px}.league-row .status-icon{margin-right:4px;font-size:16px}#rotate-overlay{z-index:9999;text-align:center;color:var(--paper);background:radial-gradient(circle at 50% 40%, var(--sun-mid), var(--sun-edge) 75%, #6d2103 100%);flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:0 32px;display:none;position:fixed;inset:0}@media (orientation:portrait){#rotate-overlay{display:flex}}#rotate-overlay .icon{font-size:64px;animation:1.8s ease-in-out infinite rotateHint}@keyframes rotateHint{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}#rotate-overlay p{font-family:var(--font-display);font-size:var(--fs-title);text-shadow:0 2px #0000004d;max-width:320px;margin:0;line-height:1.5}@media (prefers-reduced-motion:reduce){#rotate-overlay .icon{animation:none}}.modal--victory .box{flex-direction:column;align-items:center;gap:clamp(6px,1.8dvh,14px);display:flex}.modal--victory .ribbon{box-sizing:border-box;width:100%}.modal--victory .stars{gap:.15em;font-size:clamp(22px,6dvh,36px)}.modal--victory .reward{border-radius:var(--r-pill);font-family:var(--font-display);font-size:var(--fs-title);color:var(--ink);background:linear-gradient(180deg, var(--gold-t), var(--gold-b));box-shadow:var(--inset-lip), 0 3px 0 var(--gold-e);align-items:center;gap:.35em;padding:.25em .9em;display:inline-flex}.modal--victory .xp-row{align-items:center;gap:.6em;width:100%;display:flex}.modal--victory .xp-row .bar{flex:1}.modal--victory .lvl-tag{font-family:var(--font-display);font-size:var(--fs-micro);border-radius:var(--r-pill);color:var(--ink);background:linear-gradient(180deg, var(--gold-t), var(--gold-b));box-shadow:0 2px 0 var(--gold-e);padding:.15em .6em}.modal--victory .lvl-tag.pop{animation:lvlPop .5s var(--ease-pop)}@keyframes lvlPop{0%{transform:scale(1)}45%{transform:scale(1.5)}to{transform:scale(1)}}.modal--victory .row{width:100%}@media (prefers-reduced-motion:reduce){.modal--victory .lvl-tag.pop{animation:none}}
