@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:400;src:url(./sora-latin-ext-400-normal-Twk1CgKs.woff2)format("woff2"),url(./sora-latin-ext-400-normal-BmhJC382.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:400;src:url(./sora-latin-400-normal-CRt88UEn.woff2)format("woff2"),url(./sora-latin-400-normal-OW7qkl5a.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(./sora-latin-ext-600-normal-Cue1zdhl.woff2)format("woff2"),url(./sora-latin-ext-600-normal-DLOJK0Ta.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(./sora-latin-600-normal-Cdg4DaK0.woff2)format("woff2"),url(./sora-latin-600-normal-1_7fyUAY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(./sora-latin-ext-700-normal-DM0oy5s8.woff2)format("woff2"),url(./sora-latin-ext-700-normal-Oc7uZIYt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(./sora-latin-700-normal-9waGdLWo.woff2)format("woff2"),url(./sora-latin-700-normal-BKPfQAnC.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:800;src:url(./sora-latin-ext-800-normal-YDFYE6t9.woff2)format("woff2"),url(./sora-latin-ext-800-normal-BvAfeed7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:800;src:url(./sora-latin-800-normal-2tKLL3qT.woff2)format("woff2"),url(./sora-latin-800-normal-c3Huklug.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--obsidian:#101826;--graphite:#202733;--gold:#d5a85b;--gold-hi:#f2ce7e;--silver:#c8d2dc;--cyan:#55dce7;--amber:#ffbe68;--ivory:#f1f1ed;--coral:#f47f73;--glass:#0e14209e;--glass-edge:#d5a85b61;--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)}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:#05070c;height:100%;margin:0;overflow:hidden}body{color:var(--ivory);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-family:Sora,system-ui,-apple-system,Segoe UI,sans-serif}#gl{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;position:fixed;inset:0}#hud button,#hud .interactive,#hud input,#hud select,#hud a{pointer-events:auto}.card{background:var(--glass);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(10px)saturate(1.2);border-radius:14px;box-shadow:0 10px 30px #00000059,inset 0 1px #ffffff0f}.lbl{letter-spacing:.14em;text-transform:uppercase;color:var(--silver);opacity:.85;font-size:11px;display:block}.val{color:var(--ivory);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1.1;display:block}.tl{top:calc(14px + var(--safe-t));left:calc(14px + var(--safe-l));flex-direction:column;gap:9px;width:196px;display:flex;position:absolute}.brand{letter-spacing:.08em;align-items:center;gap:9px;margin:2px 0 4px 2px;font-size:15px;font-weight:600;line-height:1;display:flex}.brand svg{filter:drop-shadow(0 2px 5px #00000080);width:34px;height:34px}.brand .name{letter-spacing:0;font-family:"Bodoni 72",Bodoni MT,Didot,Georgia,Times New Roman,serif;font-size:19px;font-weight:700}.brand .name .g{color:#b8cbeb}.brand .name .m{color:#d8414a}.tl .card{padding:10px 14px}.mult{position:relative}.mult .val{color:var(--gold-hi)}.mult .val.bump{animation:.5s ease-out bump}@keyframes bump{0%{color:#fff;transform:scale(1.5)}to{transform:scale(1)}}.pips{align-items:center;gap:4px;min-height:7px;margin-top:5px;display:flex}.pips i{border:1px solid #d5a85b99;border-radius:50%;width:7px;height:7px}.pips i.on{background:var(--gold-hi);border-color:var(--gold-hi);box-shadow:0 0 6px #f2ce7e99}.pips em{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:9px;font-style:normal}.msrc{letter-spacing:.12em;text-transform:uppercase;min-height:12px;color:var(--silver);margin-top:3px;font-size:10px;display:block}.rush{opacity:0;place-items:center;width:46px;height:46px;margin-top:-23px;transition:opacity .15s,transform .15s;display:grid;position:absolute;top:50%;right:10px;transform:scale(.85)}.rush.on{opacity:1;transform:none}.rush svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.rush circle{fill:#0a0f188c;stroke-width:2.5px}.rush .track{stroke:#c8d2dc2e}.rush .ring{fill:none;stroke:var(--gold-hi);stroke-dasharray:94.25;stroke-linecap:round}.rush b{color:var(--ivory);font-variant-numeric:tabular-nums;margin-top:-5px;font-size:17px;line-height:1;position:relative}.rush small{letter-spacing:.16em;text-transform:uppercase;color:var(--silver);font-size:7px;position:absolute;bottom:9px}.rush.late .ring{stroke:var(--coral)}.rush.late{animation:.25s ease-in-out infinite alternate late}.rush.held .ring{stroke:var(--cyan)}@keyframes late{to{transform:scale(1.06)}}.dbl{display:none}.dbl.on{display:block}.dbl .val{color:var(--cyan)}.dots{gap:8px;margin-top:6px;display:flex}.dot{background:radial-gradient(circle at 35% 35%, #fff2c9, var(--amber) 45%, #a86a1d);border-radius:50%;width:13px;height:13px;box-shadow:0 0 10px #ffbe68b3}.dot.off{box-shadow:none;background:#2a3140}.tr{top:calc(14px + var(--safe-t));right:calc(14px + var(--safe-r));width:236px;position:absolute}.mission{padding:12px 14px}.lvl{letter-spacing:.14em;color:var(--silver);text-transform:uppercase;font-size:12px}.lvlname{letter-spacing:.06em;text-transform:uppercase;margin:2px 0 10px;font-size:15px;font-weight:700}.missions{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.missions li{letter-spacing:.04em;text-transform:uppercase;color:var(--ivory);opacity:.9;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.missions li .chk{border:1.5px solid var(--silver);border-radius:50%;width:16px;height:16px;position:relative}.missions li.done .chk{background:var(--gold);border-color:var(--gold)}.missions li.done .chk:after{content:"";border:2px solid #101826;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:1.5px;left:4.5px;transform:rotate(45deg)}.missions li.done{opacity:.6}.missions li.now{color:var(--gold-hi);opacity:1}.missions li .prog{color:var(--silver);font-variant-numeric:tabular-nums;font-size:11px}.power{letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);min-height:14px;margin-top:10px;font-size:11px}.power:empty{display:none}.topbar{top:calc(14px + var(--safe-t));gap:8px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.ib{border:1px solid var(--glass-edge);background:var(--glass);width:40px;height:40px;color:var(--ivory);cursor:pointer;-webkit-backdrop-filter:blur(8px);border-radius:12px;place-items:center;display:grid}.ib:hover{border-color:var(--gold)}.ib svg{width:19px;height:19px}.ib:focus-visible,.btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.nb{transition:opacity .12s}.overball>.nb{opacity:.2}.mission,.topbar{transition:opacity .12s}.mission.overball,.topbar.overball{opacity:.22}.title-notice{left:50%;top:calc(60px + var(--safe-t));text-align:center;white-space:nowrap;pointer-events:none;opacity:0;width:max-content;max-width:min(92vw,720px);transition:opacity .25s,transform .25s;position:absolute;transform:translate(-50%)translateY(-6px)}.title-notice.show{opacity:1;transition:opacity .12s,transform .12s;transform:translate(-50%)}.title-notice .nb{--fit:1;background:#080c146b;border-radius:12px;padding:4px 16px 6px}.title-notice b{font-weight:800;font-size:calc(var(--fit) * clamp(20px, 2.6vw, 34px));letter-spacing:.08em;text-transform:uppercase;color:var(--gold-hi);text-shadow:0 0 14px #f2ce7e59,0 3px 12px #000000b3;line-height:1.15;display:block}.title-notice span{font-size:calc(var(--fit) * 13px);letter-spacing:.1em;color:var(--silver);margin-top:2px;display:block}.title-notice span:empty{display:none}.title-notice.t-big b{color:var(--ivory)}.title-notice.t-gold b{color:var(--gold-hi)}.toasts{flex-direction:column;gap:6px;margin-top:3px;display:flex}.toast{transition:opacity .25s;animation:.14s ease-out toast-in}.toast.gone{opacity:0}.toast .nb{border-left:2px solid var(--gold);background:var(--glass);-webkit-backdrop-filter:blur(8px);border-radius:4px 10px 10px 4px;padding:6px 12px 7px}.toast b{letter-spacing:.08em;text-transform:uppercase;color:var(--ivory);font-size:13px;font-weight:700;display:block}.toast span{letter-spacing:.06em;color:var(--silver);margin-top:2px;font-size:11px;display:block}.toast.t-mission .nb,.toast.t-level .nb{border-left-color:var(--gold-hi)}.toast.t-mission b,.toast.t-big b,.toast.t-rush b{color:var(--gold-hi)}.toast.t-rush .nb{border-left-color:var(--amber)}.toast.t-save .nb{border-left-color:var(--cyan)}.toast.t-save b{color:var(--cyan)}.toast.t-warn .nb{border-left-color:var(--coral)}.toast.t-warn b{color:var(--coral)}@keyframes toast-in{0%{opacity:0;transform:translate(-8px)}}.meter{right:calc(20px + var(--safe-r));bottom:calc(108px + var(--safe-b));border:1px solid var(--glass-edge);background:var(--glass);opacity:0;border-radius:8px;width:12px;height:130px;transition:opacity .2s;position:absolute;overflow:hidden}.meter.on{opacity:1}.meter i{background:linear-gradient(to top, var(--amber), var(--gold-hi), #fff);height:0%;position:absolute;bottom:0;left:0;right:0}.meter .band{z-index:1;border-top:2px solid var(--cyan);border-bottom:2px solid var(--cyan);opacity:0;background:#55dce72e;position:absolute;left:0;right:0}.meter .band.on{opacity:1}.launch{right:calc(16px + var(--safe-r));bottom:calc(24px + var(--safe-b));border:2px solid var(--gold);width:78px;height:78px;color:var(--gold-hi);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;touch-action:none;background:radial-gradient(circle at 35% 30%,#3a2a12,#120d06);border-radius:50%;font:700 11px Sora,sans-serif;display:none;position:absolute;box-shadow:0 0 22px #d5a85b73}.launch.on{animation:1.4s ease-in-out infinite pulse;display:block}@keyframes pulse{50%{box-shadow:0 0 34px #f2ce7ecc}}.hint{left:50%;bottom:calc(14px + var(--safe-b));letter-spacing:.08em;color:var(--silver);opacity:.75;text-shadow:0 2px 8px #000000e6;white-space:nowrap;font-size:12px;position:absolute;transform:translate(-50%)}.screen{pointer-events:auto;background:radial-gradient(at 50% 40%,#1018268c,#030509db);place-items:center;display:none;position:absolute;inset:0}.screen.on{display:grid}.panel{text-align:center;width:min(520px,100vw - 32px);max-height:calc(100vh - 40px);padding:28px 28px 24px;overflow:auto}.title{letter-spacing:.12em;background:linear-gradient(180deg, #fff6dc, var(--gold-hi) 45%, #a8782f);color:#0000;filter:drop-shadow(0 4px 20px #d5a85b59);-webkit-background-clip:text;background-clip:text;font-size:clamp(38px,7vw,64px);font-weight:800;line-height:1}.subtitle{letter-spacing:.3em;text-transform:uppercase;color:var(--cyan);margin-top:8px;font-size:13px}.panel p{color:var(--silver);margin:16px 0;font-size:14px;line-height:1.6}.btns{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.btn{border:1px solid var(--gold);color:#101826;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#f2ce7e,#c7964a);border-radius:12px;min-width:150px;padding:13px 22px;font:700 14px Sora,sans-serif}.btn.ghost{color:var(--ivory);background:0 0;border-color:#c8d2dc66}.btn:hover{filter:brightness(1.08)}.keys{text-align:left;color:var(--silver);grid-template-columns:auto 1fr;gap:6px 14px;width:-moz-fit-content;width:fit-content;margin:18px auto 0;font-size:13px;display:grid}.keys kbd{color:var(--ivory);border:1px solid #c8d2dc59;border-bottom-width:2px;border-radius:6px;margin-right:3px;padding:2px 7px;font:600 12px Sora,sans-serif}.best{color:var(--gold-hi);letter-spacing:.08em;margin-top:14px;font-size:13px}.final{color:var(--ivory);font-variant-numeric:tabular-nums;margin:6px 0;font-size:clamp(40px,8vw,68px);font-weight:800}.stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;display:grid}.stats div{border:1px solid #d5a85b40;border-radius:10px;padding:9px 4px}.stats b{color:var(--gold-hi);font-size:20px;display:block}.stats span{letter-spacing:.12em;text-transform:uppercase;color:var(--silver);font-size:10px}.set{text-align:left;color:var(--ivory);grid-template-columns:1fr auto;align-items:center;gap:14px 18px;margin-top:18px;font-size:14px;display:grid}.set select,.set input[type=range]{color:var(--ivory);background:#141b28;border:1px solid #d5a85b73;border-radius:8px;padding:6px 8px;font:600 13px Sora,sans-serif}.set input[type=checkbox]{width:20px;height:20px;accent-color:var(--gold)}.set input[type=range]{accent-color:var(--gold);width:min(180px,36vw)}.loading .bar{background:#ffffff1a;border-radius:2px;width:220px;height:3px;margin:22px auto 0;overflow:hidden}.loading .bar i{background:var(--gold);width:40%;height:100%;animation:1.1s ease-in-out infinite load;display:block}@keyframes load{0%{transform:translate(-100%)}to{transform:translate(260%)}}@media (max-width:760px),(max-height:520px){.tl{width:auto;max-width:calc(100vw - 152px - var(--safe-l) - var(--safe-r));flex-flow:wrap;align-items:stretch;gap:6px}.toasts{flex-basis:100%;max-width:190px;margin-top:0}.toast b{font-size:11px}.toast span{font-size:10px}.toast .nb{padding:4px 9px 5px}.rush{width:30px;height:30px;margin-top:0;top:auto;bottom:3px;right:4px}.rush b{margin-top:-4px;font-size:12px}.rush small{font-size:5px;bottom:5px}.pips{gap:3px;margin-top:3px}.pips i{width:6px;height:6px}.msrc,.brand{display:none}.tl .card{padding:6px 10px}.val{font-size:18px}.lbl{font-size:9px}.dot{width:10px;height:10px}.tr{width:178px;top:calc(62px + var(--safe-t))}.tr .lvl{display:none}.mission{padding:8px 10px}.lvlname{font-size:11px}.missions li:not(.now){display:none}.missions li{font-size:10px}.topbar{left:auto;right:calc(10px + var(--safe-r));transform:none}.ib{border-radius:10px;width:34px;height:34px}.hint{display:none}}@media (max-width:760px){.tr{top:calc(58px + var(--safe-t))}}@media (max-aspect-ratio:1){.toasts{left:calc(14px + var(--safe-l));bottom:calc(66px + var(--safe-b));flex-direction:column;justify-content:flex-end;width:min(56vw,230px);max-width:none;position:fixed}.title-notice{top:auto;bottom:calc(12px + var(--safe-b));max-width:calc(100vw - 200px);transform:translate(-50%)translateY(6px)}.title-notice b{font-size:calc(var(--fit) * clamp(16px, 4.6vw, 24px))}.title-notice span{font-size:calc(var(--fit) * 11px)}.hint{transition:opacity .12s}.title-notice.show~.hint{opacity:0}}@media (prefers-reduced-motion:reduce){.title-notice,.title-notice.show{transform:translate(-50%)}.toast,.rush.late,.launch.on{animation:none}}.stage-banner{left:50%;bottom:calc(10px + var(--safe-b));text-align:center;pointer-events:none;opacity:0;z-index:6;width:max-content;max-width:calc(100vw - 24px);position:absolute;transform:translate(-50%)}.stage-banner .sb-in{background:linear-gradient(#0a101ed1,#140e08db);border:1px solid #f2ce7ea6;border-radius:16px;padding:8px 28px 10px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0f,0 0 40px #f2ce7e59,0 12px 30px #00000080}.stage-banner .sb-n{letter-spacing:.42em;text-transform:uppercase;color:var(--cyan);text-shadow:0 0 12px #55dce78c;font-size:clamp(11px,1.2vw,14px);font-weight:700;display:block}.stage-banner .sb-name{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:linear-gradient(180deg, #fff6dc, var(--gold-hi) 45%, #c08a3e);color:#0000;filter:drop-shadow(0 2px 10px #f2ce7e73);-webkit-background-clip:text;background-clip:text;margin-top:2px;font-size:clamp(22px,3.4vw,44px);font-weight:800;line-height:1.08;display:block}.stage-banner .sb-in:after{content:"";background:linear-gradient(100deg,#0000,#fff6dc8c,#0000);width:34%;position:absolute;top:-20%;bottom:-20%;left:-40%;transform:skew(-18deg)}.stage-banner .sb-burst{opacity:0;background:radial-gradient(#f2ce7e8c,#f2ce7e1f 45%,#0000 70%);border-radius:50%;width:140%;height:260%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.4)}.stage-banner.show{animation:2.6s cubic-bezier(.2,.9,.25,1) forwards sb-life}.stage-banner.show .sb-in:after{animation:1.1s ease-out .25s forwards sb-shine}.stage-banner.show .sb-burst{animation:1.2s ease-out forwards sb-burst}@keyframes sb-life{0%{opacity:0;transform:translate(-50%)translateY(18px)scale(.7)}12%{opacity:1;transform:translate(-50%)translateY(0)scale(1.06)}20%{transform:translate(-50%)scale(1)}84%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-14px)scale(.96)}}@keyframes sb-shine{to{left:120%}}@keyframes sb-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}25%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.25)}}@media (max-aspect-ratio:1){.stage-banner{bottom:calc(112px + var(--safe-b))}.stage-banner .sb-name{white-space:normal;text-wrap:balance;overflow-wrap:anywhere;font-size:clamp(18px,5.6vw,30px)}.stage-banner .sb-in{padding:7px 16px 9px}}@media (prefers-reduced-motion:reduce){.stage-banner.show{animation:2.6s linear forwards sb-fade}.stage-banner.show .sb-in:after,.stage-banner.show .sb-burst{animation:none}}@keyframes sb-fade{0%,to{opacity:0;transform:translate(-50%)}8%,88%{opacity:1;transform:translate(-50%)}}
