@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(./nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(./nunito-latin-400-normal-DKg4f3fz.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(./nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-latin-900-normal-BVB1fGs6.woff2)format("woff2"),url(./nunito-latin-900-normal-CVn49sIn.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(./jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2"),url(./jetbrains-mono-latin-700-normal-D3wTyLJW.woff)format("woff")}:root{--navy:#0b2545;--navy-2:#13315c;--navy-3:#1d4273;--blue:#3fa7d6;--blue-light:#8ecae6;--blue-50:#eaf4fb;--teal:#1b998b;--teal-dark:#137a6f;--teal-light:#cdefea;--yellow:#ffc914;--yellow-dark:#e0a800;--yellow-light:#fff1b8;--coral:#f07167;--purple:#7b61c9;--bg:#f2f6fb;--card:#fff;--text:#0b2545;--muted:#4d5f78;--border:#d3dce8;--danger:#c43a45;--success:#1f8a4c;--radius:14px;--shadow:0 6px 22px #0b25451f;--hud-h:64px;--font:"Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}html.large-text{font-size:18.5px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100dvh;margin:0;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}code{font-family:var(--mono);background:var(--blue-50);border-radius:5px;padding:1px 5px;font-size:.92em}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{z-index:999;background:var(--yellow);border-radius:8px;padding:8px 12px;font-weight:800;position:absolute;top:8px;left:-999px}.skip-link:focus{left:8px}.muted{color:var(--muted)}.small{font-size:.86rem}.center{text-align:center}.hidden{display:none!important}.ok-text{color:var(--success);font-weight:800}.btn{letter-spacing:.1px;white-space:nowrap;border:2px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 18px;font-weight:800;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 12px #0b25452e}.btn:not(:disabled):active{transform:translateY(1px)}.btn-primary{background:var(--yellow);color:var(--navy);border-color:var(--yellow-dark)}.btn-secondary{background:var(--teal);color:#fff}.btn-ghost{color:var(--navy);border-color:var(--border);background:0 0}.btn-danger{background:var(--danger);color:#fff}.btn-small{border-radius:10px;min-height:36px;padding:6px 12px;font-size:.9rem}.btn-big{min-height:56px;padding:14px 28px;font-size:1.15rem}.icon-btn{width:36px;height:36px;color:inherit;background:0 0;border:0;border-radius:10px;font-size:1rem}.icon-btn:hover{background:#0b254514}.link{color:var(--navy-3);text-align:left;background:0 0;border:0;padding:4px 0;font-weight:700;text-decoration:underline}.chip{background:var(--blue-50);color:var(--navy);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.8rem;font-weight:800;display:inline-flex}.chip-gold{background:var(--yellow-light)}.chips{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}#app{flex-direction:column;min-height:100dvh;display:flex}#stage{flex:1;position:relative}#phaser-container{display:none;position:absolute;top:0;bottom:0;left:0;right:0}#phaser-container canvas{display:block}#screen-root{outline:none;min-height:100%;position:relative}body[data-screen=map] #stage{height:calc(100dvh - var(--hud-h));overflow:hidden}body[data-screen=map] #screen-root{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}body[data-screen=title] #hud,body[data-screen=gate] #hud{display:none}.gate-card{text-align:left;background:#ffffff0f;border:1px solid #ffffff24;border-radius:18px;grid-template-columns:110px 1fr;align-items:center;gap:20px;max-width:640px;padding:22px;display:grid}.gate-card h2{color:var(--yellow);margin:0 0 6px;font-size:1.6rem;font-weight:900}.gate-card p{color:#dbe9f7;margin:0 0 14px}.gate-actions{flex-wrap:wrap;gap:10px;display:flex}.gate-back{color:var(--blue-light);margin-top:14px;font-weight:700;display:inline-block}.gate-perks{color:#cfe0f1;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin:0;padding:0;font-weight:700;list-style:none;display:flex}.hud-sync{color:var(--blue-light);white-space:nowrap;background:#ffffff1a;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.72rem;font-weight:800;display:inline-flex}.hud-sync.error,.hud-sync.offline{color:#ffd0cb;background:#f0716740}.account-line{flex-wrap:wrap;align-items:center;gap:12px;display:flex}@media (max-width:760px){.gate-card{text-align:center;grid-template-columns:1fr;justify-items:center}.gate-actions{justify-content:center}.hud-sync{order:5}}#hud{z-index:60;min-height:var(--hud-h);background:linear-gradient(90deg, var(--navy), var(--navy-2));color:#fff;align-items:center;gap:14px;padding:8px 14px;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #0003}.hud-brand{color:#fff;background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;padding:4px;display:flex}.brand-mark{background:var(--yellow);width:38px;height:38px;color:var(--navy);font-family:var(--mono);box-shadow:inset 0 -3px 0 var(--yellow-dark);border-radius:10px;place-items:center;font-size:1.05rem;font-weight:700;display:inline-grid}.brand-mark.big{border-radius:18px;width:72px;height:72px;font-size:2rem}.brand-text{text-align:left;flex-direction:column;line-height:1.05;display:flex}.brand-text b{font-size:1.05rem;font-weight:900}.brand-text small{color:var(--blue-light);font-size:.72rem}.hud-player{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.hud-avatar svg{display:block}.hud-level{flex:1;min-width:120px;max-width:280px}.hud-name{align-items:center;gap:8px;font-size:.95rem;display:flex}.hud-name b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lv-chip{background:var(--teal);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:900}.hud-title{color:var(--blue-light);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;display:block;overflow:hidden}.xp{background:#ffffff2e;border-radius:99px;height:8px;margin:3px 0 2px;overflow:hidden}.xp-fill{background:linear-gradient(90deg, var(--yellow), #ffe27a);border-radius:99px;height:100%;transition:width .8s}.hud-stats{gap:12px;font-weight:900;display:flex}.hud-stats span{background:#ffffff1a;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;display:inline-flex}.bump{animation:.6s bump}@keyframes bump{40%{transform:scale(1.18)}}.hud-navs{gap:4px;display:flex}.hud-nav{color:#fff;background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:center;gap:0;min-width:52px;padding:4px 8px;font-size:1.1rem;text-decoration:none;display:flex}.hud-nav:hover,.hud-nav.on{background:#ffffff24}.hud-nav.on{box-shadow:inset 0 -3px 0 var(--yellow)}.hud-nav-label{color:var(--blue-light);font-size:.68rem;font-weight:800}.title-screen{text-align:center;color:#fff;background:radial-gradient(ellipse at top, #1d4273 0%, var(--navy) 60%), var(--navy);background-image:radial-gradient(at top,#3fa7d659,#0000 60%),linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:auto,40px 40px,40px 40px;background-color:var(--navy);flex-direction:column;justify-content:center;align-items:center;gap:22px;min-height:100dvh;padding:32px 16px;display:flex}.title-logo{align-items:center;gap:16px;display:flex}.title-logo h1{text-align:left;margin:0;font-size:clamp(2.2rem,7vw,3.8rem);font-weight:900;line-height:1}.title-logo h1 small{color:var(--yellow);margin-top:6px;font-size:.42em;font-weight:800;display:block}.title-tag{color:#dbe9f7;max-width:620px;margin:0;font-size:1.1rem}.cast{flex-wrap:wrap;justify-content:center;gap:14px;max-width:900px;display:flex}.cast-item{width:118px;margin:0}.cast-portrait{filter:drop-shadow(0 6px 10px #00000059);width:96px;height:96px;margin:0 auto;animation:3s ease-in-out infinite float}.cast-item:nth-child(2n) .cast-portrait{animation-delay:-1.5s}.cast-item figcaption{flex-direction:column;margin-top:6px;display:flex}.cast-item small{color:var(--blue-light);font-size:.75rem}.cast-item.villain b{color:#ff7bd5}@keyframes float{50%{transform:translateY(-6px)}}.title-screen .muted{color:#a9c3dd}.map-panel{pointer-events:auto;flex-direction:column;gap:10px;width:min(360px,100% - 28px);max-height:calc(100% - 28px);padding-bottom:4px;display:flex;position:absolute;top:14px;left:14px;overflow:auto}.map-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.map-card.continue{border-top:5px solid var(--yellow);grid-template-columns:84px 1fr;gap:12px;display:grid}.map-card h2{margin:2px 0 4px;font-size:1.15rem;line-height:1.2}.map-card h3{align-items:center;gap:6px;margin:0 0 4px;font-size:1rem;display:flex}.map-card p{margin:0 0 10px;font-size:.92rem}.map-card small{color:var(--muted);font-size:.78rem;font-weight:700}.map-card.small{padding:12px 14px}.map-card.is-done{opacity:.85;border-left:5px solid var(--success)}.mc-portrait{width:84px;height:84px}.weekly-list{margin:0;padding:0;list-style:none}.weekly-list .link.done{color:var(--success)}.list-btn{background:#ffffffeb;align-self:flex-start}.map-fallback{pointer-events:auto;padding:14px;position:absolute;top:0;bottom:0;left:390px;right:0;overflow:auto}.mission-list section{margin-bottom:12px}.mission-list h3{border-left:6px solid var(--wc,var(--blue));margin:6px 0;padding-left:8px}.mission-list ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.ml-item{text-align:left;background:var(--card);border:2px solid var(--border);border-radius:12px;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;width:100%;padding:8px 10px;display:grid}.ml-item:hover{border-color:var(--blue)}.ml-item.done{border-color:var(--teal-light)}.ml-item.locked{opacity:.6}.ml-num{background:var(--yellow);border-radius:50%;place-items:center;width:32px;height:32px;font-weight:900;display:grid}.ml-item.done .ml-num{background:var(--teal);color:#fff}.ml-item.locked .ml-num{background:#dfe6ef}.ml-title{flex-direction:column;font-weight:800;display:flex}.ml-title small{color:var(--muted);font-weight:600}.ml-stars{color:var(--yellow-dark);letter-spacing:1px}.future p{color:var(--muted);margin:4px 0}.briefing .brief-head{grid-template-columns:96px 1fr;align-items:start;gap:14px;display:grid}.brief-concept{margin:2px 0;font-size:1.05rem;font-weight:800}.modes{gap:10px;margin-top:14px;display:grid}.mode-card{border:2px solid var(--border);border-radius:var(--radius);grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.mode-card.hl{border-color:var(--yellow);background:#fffbea}.mode-card.disabled{background:#f6f8fb}.mode-card h3{margin:0;font-size:1.02rem}.mode-card p{margin:2px 0 0;font-size:.9rem}.mode-icon{text-align:center;font-size:1.8rem}.timer-opt{align-items:center;gap:6px;margin-top:6px;font-size:.86rem;font-weight:700;display:flex}.mini-portrait{flex-shrink:0;width:72px;height:72px}.mini-portrait.big{width:110px;height:110px}.mini-portrait svg,.char-portrait svg,.cast-portrait svg,.mc-portrait svg{width:100%;height:100%;display:block}.locked-body{align-items:center;gap:14px;display:flex}.page{flex-direction:column;gap:16px;max-width:1060px;margin:0 auto;padding:18px 16px 60px;display:flex}.page-title{margin:6px 0 0;font-size:1.7rem;font-weight:900}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card h2{margin:0 0 10px;font-size:1.2rem}.muted-card{background:#f7f9fc}.warn-card{border-left:6px solid var(--yellow)}.danger-card{border-left:6px solid var(--danger)}.bar{background:#e3e9f2;border-radius:99px;height:12px;overflow:hidden}.bar.big{height:16px}.bar-fill{background:linear-gradient(90deg, var(--teal), var(--blue));border-radius:99px;height:100%;transition:width .8s}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:12px;display:grid}.stat{background:var(--blue-50);border-radius:12px;flex-direction:column;align-items:flex-start;padding:10px;display:flex}.stat b{font-size:1.35rem;font-weight:900}.stat small{color:var(--muted);font-weight:700}.stat-icon{font-size:1.2rem}.mastery{gap:10px;margin:0;padding:0;list-style:none;display:grid}.mastery li{grid-template-columns:minmax(150px,220px) 1fr 48px;align-items:center;gap:12px;font-weight:700;display:grid}.m-val{text-align:right;font-weight:900}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.badge{border:2px solid var(--border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:12px;display:flex}.badge.got{border-color:var(--yellow);background:#fffbea}.badge.locked{opacity:.6;filter:grayscale(.6)}.badge small{color:var(--muted);font-size:.78rem}.badge .reward{color:var(--teal-dark);font-weight:800}.b-icon{font-size:1.9rem}.tbl{border-collapse:collapse;width:100%;font-size:.92rem}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--border);padding:7px 8px}.tbl th{background:var(--blue-50);font-weight:800}.tbl tr.pending td{color:var(--muted)}.world-prog{margin-bottom:14px;overflow-x:auto}.world-prog h3{border-left:6px solid var(--wc);padding-left:8px}.error-log{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.error-log li{border:1px solid var(--border);border-left:5px solid var(--coral);border-radius:10px;padding:10px 12px}.error-log p{margin:4px 0 8px}.empty-inline{align-items:center;gap:14px;display:flex}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:8px;max-width:460px;margin:60px auto;padding:16px;display:flex}.profile-card{grid-template-columns:160px 1fr;align-items:center;gap:20px;display:grid}.big-avatar svg{width:140px;height:140px;display:block}.form{flex-direction:column;gap:8px;display:flex}.form label{font-weight:800}.form input,.form select,.form-row input,.form-row select,.answer-input{border:2px solid var(--border);background:#fff;border-radius:10px;width:100%;min-height:44px;padding:8px 12px}.form input:focus,.answer-input:focus,.form-row input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #3fa7d640}.inline{gap:8px;display:flex}.form-row{flex-direction:column;gap:6px;margin:8px 0;display:flex}.form-row label,.coins-line{font-weight:800}.tabs{flex-wrap:wrap;gap:6px;display:flex}.tab{border:2px solid var(--border);background:#fff;border-radius:999px;min-height:44px;padding:8px 16px;font-weight:800}.tab.on{background:var(--navy);color:#fff;border-color:var(--navy)}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.shop-item{border:2px solid var(--border);border-radius:var(--radius);text-align:center;background:#fff;flex-direction:column;align-items:center;gap:8px;padding:12px;display:flex}.shop-item.on{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-light)}.shop-prev svg{display:block}.setting{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.setting:last-child{border-bottom:0}.setting label{cursor:pointer;flex-direction:column;display:flex}.setting small{color:var(--muted)}.setting input[type=checkbox]{-webkit-appearance:none;appearance:none;cursor:pointer;background:#cfd8e4;border-radius:99px;flex-shrink:0;width:52px;height:30px;transition:background .2s;position:relative}.setting input[type=checkbox]:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.setting input[type=checkbox]:checked{background:var(--teal)}.setting input[type=checkbox]:checked:after{left:25px}.mission{grid-template-columns:minmax(300px,390px) minmax(0,1fr);align-items:start;gap:16px;max-width:1500px;margin:0 auto;padding:14px;display:grid}.mission-side{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);top:calc(var(--hud-h) + 12px);max-height:calc(100dvh - var(--hud-h) - 28px);flex-direction:column;gap:12px;padding:14px;display:flex;position:sticky;overflow:auto}.ms-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mode-story{background:var(--yellow-light)}.mode-training{background:var(--teal-light)}.mode-challenge{background:#ffd9d4}.timer{font-family:var(--mono);background:var(--navy);color:#fff;border-radius:8px;margin-left:auto;padding:3px 10px;font-weight:700}.timer.warn{background:var(--coral)}.timer.over{background:#7a8699}.ms-title{margin:0;font-size:1.35rem;font-weight:900;line-height:1.2}.ms-title small{color:var(--muted);margin-bottom:2px;font-size:.78rem;font-weight:800;display:block}.char-row{grid-template-columns:76px 1fr;align-items:start;gap:10px;display:grid}.char-portrait{width:76px;height:76px}.char-portrait.pop{animation:.45s pop}@keyframes pop{40%{transform:scale(1.12)rotate(-3deg)}}.story{background:var(--blue-50);border-radius:12px;padding:8px 12px;position:relative}.story:before{content:"";border:8px solid #0000;border-right-color:var(--blue-50);border-left:0;position:absolute;top:18px;left:-8px}.story summary{cursor:pointer;color:var(--navy-3);font-size:.9rem;font-weight:900}.story-text{margin-top:6px;font-size:.93rem}.objective h2,.question h2{margin:0 0 4px;font-size:1.02rem}.objective h3{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:10px 0 4px;font-size:.86rem}.obj-text{margin:0 0 6px;font-weight:800}.steps{gap:3px;margin:0;padding-left:20px;font-size:.92rem;display:grid}.checklist{gap:4px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.checklist li{border-radius:8px;align-items:flex-start;gap:8px;padding:4px 6px;display:flex}.checklist li.ok{background:#e6f6ec}.checklist li.no{background:#fdecec}.question{border:2px dashed var(--blue);border-radius:12px;padding:12px}.question p{margin:0 0 8px}.choices{gap:6px;display:grid}.choice{border:2px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:8px;min-height:44px;padding:8px 10px;font-size:.93rem;font-weight:700;display:flex}.choice:has(input:checked){border-color:var(--teal);background:var(--teal-light)}.energy-row{flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;font-weight:800;display:flex}.energy span{filter:grayscale();opacity:.3;transition:all .3s}.energy span.on{filter:none;opacity:1}.mission-main{flex-direction:column;gap:10px;min-width:0;display:flex}.pu-bar{flex-wrap:wrap;gap:6px;display:flex}.pu{border:2px solid var(--border);background:#fff;border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:6px 12px;font-size:.85rem;font-weight:800;transition:all .15s;display:inline-flex}.pu:not(:disabled):hover{border-color:var(--blue);transform:translateY(-1px)}.pu.on{background:var(--navy);color:#fff;border-color:var(--navy)}.pu.used:not(.on){border-color:var(--teal-light)}.pu-icon{font-size:1.05rem}.pu-panel{border-radius:var(--radius);border-left:6px solid var(--blue);box-shadow:var(--shadow);background:#fff;padding:10px 14px;font-size:.93rem;animation:.25s slidein;display:none}.pu-panel.show{display:block}.pu-panel.pu-professor{border-left-color:var(--purple)}.pu-panel.pu-detector{border-left-color:var(--coral)}.pu-panel.pu-shield{border-left-color:var(--teal)}.pu-panel.pu-compass{border-left-color:var(--yellow)}.pu-panel-head{justify-content:space-between;align-items:center;display:flex}.pu-list{gap:4px;margin:6px 0;padding-left:20px;display:grid}.pu-list.det{padding-left:0;list-style:none}.compass-cat{font-size:1.05rem}.undo-desc{font-family:var(--mono);background:var(--blue-50);border-radius:8px;padding:6px 10px}.prof-steps{gap:6px;margin:6px 0 10px;padding-left:22px;display:grid}@keyframes slidein{0%{opacity:0;transform:translateY(-6px)}}.feedback{border-radius:var(--radius);box-shadow:var(--shadow);border-left:6px solid var(--blue);background:#fff;align-items:flex-start;gap:12px;padding:12px 14px;display:none}.feedback.show{display:flex}.feedback>div:nth-child(2){flex:1}.feedback p{margin:2px 0 0}.fb-error{border-left-color:var(--coral);background:#fff7f5}.fb-success{border-left-color:var(--success);background:#effaf3}.fb-icon{font-size:1.6rem}.shake{animation:.4s shake}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.mission-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.btn-verify{min-width:180px;font-size:1.05rem}.intro{flex-direction:column;gap:12px;display:flex}.speech{background:var(--blue-50);border-radius:14px;grid-template-columns:72px 1fr;align-items:center;gap:12px;padding:10px 14px;display:grid}.speech p{margin:0}.speech.glitch{color:#fbe3ff;background:#2a0f35}.intro-obj{background:var(--yellow-light);border-radius:12px;margin:0;padding:10px 14px;font-weight:700}.result{flex-direction:column;gap:12px;display:flex}.res-head{grid-template-columns:110px 1fr;align-items:center;gap:14px;display:grid}.res-line{margin:0;font-size:1.1rem;font-weight:800}.stars{justify-content:center;gap:10px;font-size:3rem;line-height:1;display:flex}.star{color:#d9e0ea;animation:.5s forwards starin;transform:scale(.4)}.star.on{color:var(--yellow);text-shadow:0 3px 0 var(--yellow-dark)}@keyframes starin{70%{transform:scale(1.25)}to{transform:scale(1)}}.res-rewards{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.rw{background:var(--blue-50);border-radius:999px;padding:8px 14px;font-weight:700}.rw b{font-size:1.2rem;font-weight:900}.bonus,.levelup{background:var(--yellow-light);text-align:center;border-radius:12px;margin:0;padding:10px 14px;font-weight:800}.levelup.unlock{background:var(--teal-light)}.res-badges{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.badge-new{border:2px solid var(--yellow);text-align:center;background:#fffbea;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:10px;animation:.6s pop;display:flex}.badge-new.ach{border-color:var(--teal);background:#effaf8}.badge-new small{color:var(--muted)}.finale{background:#f4f0ff;border-radius:14px;grid-template-columns:72px 1fr;align-items:center;gap:10px;padding:12px;display:grid}.finale p{margin:0}.learned{border:2px solid var(--teal-light);border-radius:12px;padding:10px 14px}.learned summary{cursor:pointer;font-weight:900}.learned ul{margin:8px 0}.realworld{background:var(--blue-50);border-radius:10px;padding:8px 12px}.sheet{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-direction:column;display:flex;position:relative;overflow:visible}.sheet-toolbar{border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;background:#f5f8fc;flex-wrap:wrap;gap:8px;padding:8px;display:flex}.tb-group{border-right:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px;padding-right:8px;display:flex}.tb-group:last-child{border-right:0}.tb-btn{border:1px solid var(--border);background:#fff;border-radius:8px;min-width:38px;min-height:36px;padding:4px 10px;font-size:.86rem;font-weight:800}.tb-btn:hover{border-color:var(--blue);background:var(--blue-50)}.tb-bold{font-family:Georgia,serif;font-weight:900}.tb-accent{background:var(--teal);color:#fff;border-color:var(--teal-dark)}.tb-accent:hover{background:var(--teal-dark);color:#fff}.tb-range.on{background:var(--navy);color:#fff}.swatch{width:36px;padding:0}.swatch-yellow{background:var(--yellow-light)}.swatch-green{background:#d3f2dc}.swatch-red{background:#ffd6d6}.swatch-none{color:var(--muted);background:#fff}.fx-bar{border-bottom:1px solid var(--border);grid-template-columns:80px 36px minmax(0,1fr) 36px 36px 36px;align-items:center;gap:4px;padding:6px 8px;display:grid}.namebox{border:1px solid var(--border);min-height:36px;font-family:var(--mono);text-align:center;background:#f7f9fc;border-radius:8px;min-width:0;padding:4px 8px;font-size:.85rem;font-weight:700}.fx-btn{border:1px solid var(--border);min-height:36px;font-weight:900;font-family:var(--mono);background:#fff;border-radius:8px}.fx-btn:hover{background:var(--blue-50)}.fx-ok{color:var(--success)}.fx-cancel{color:var(--danger)}.fx-field{min-width:0;position:relative}.fx-input{border:2px solid var(--border);width:100%;min-height:38px;font-family:var(--mono);border-radius:8px;padding:4px 10px;font-size:.95rem}.fx-input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #3fa7d640}.fx-input.locked{color:var(--muted);background:#f2f4f8}.is-editing .fx-input{border-color:var(--yellow-dark)}.fx-suggest{z-index:30;border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:10px;max-height:260px;display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.fx-suggest.open{display:block}.sg{cursor:pointer;flex-direction:column;padding:6px 10px;display:flex}.sg b{font-family:var(--mono)}.sg small,.sg-syntax small{color:var(--muted);display:block}.sg.on,.sg:hover{background:var(--blue-50)}.sg-syntax{font-family:var(--mono);padding:8px 10px;font-size:.88rem}.sg-syntax u{background:var(--yellow-light);border-radius:3px;padding:0 2px;font-weight:700;text-decoration:none}.entry-msg{color:#6b3d00;background:#fff4e5;border:1px solid #f7c98b;border-radius:10px;margin:6px 8px 0;padding:8px 12px;font-size:.9rem;font-weight:700;display:none}.entry-msg.show{animation:.2s slidein;display:block}.grid-wrap{border-radius:0 0 var(--radius) var(--radius);-webkit-overflow-scrolling:touch;outline:none;max-height:min(62vh,620px);position:relative;overflow:auto}.grid-wrap:focus-visible{box-shadow:inset 0 0 0 3px var(--blue)}table.grid{border-collapse:separate;border-spacing:0;table-layout:fixed;-webkit-user-select:none;user-select:none;font-size:.9rem}table.grid th{color:#4d5f78;z-index:2;background:#eef2f7;border-bottom:1px solid #d8e0ea;border-right:1px solid #d8e0ea;font-size:.78rem;font-weight:800;position:sticky}table.grid thead th{text-align:center;height:26px;top:0}table.grid th.row-h{text-align:center;z-index:1;left:0}table.grid th.corner{z-index:3;left:0}table.grid th.hl{color:var(--navy);background:#d6e9f7}table.grid th.row-h.filtered{color:var(--blue)}td.cell{white-space:nowrap;text-overflow:ellipsis;cursor:cell;background:#fff;border-bottom:1px solid #e6ebf2;border-right:1px solid #e6ebf2;height:32px;padding:0 8px;position:relative;overflow:hidden}td.cell .cv{text-overflow:ellipsis;display:block;overflow:hidden}td.num{text-align:right;font-variant-numeric:tabular-nums}td.b{font-weight:900}td.err{color:var(--danger);font-weight:800}td.locked{color:#22364f;background:#fbfcfe}td.fill-yellow{background:var(--yellow-light)}td.fill-green{background:#d3f2dc}td.fill-red{background:#ffd6d6}td.fill-teal{background:var(--teal-light)}td.has-formula:after{content:"";border-top:7px solid var(--teal);border-right:7px solid #0000;position:absolute;top:0;left:0}td.sel{background-image:linear-gradient(#3fa7d629,#3fa7d629)}td.active{box-shadow:inset 0 0 0 2px var(--blue);z-index:1}td.mk-target{outline-offset:-3px;outline:2px dashed #3fa7d6b3}td.mk-error{animation:.8s 3 pulse;background:#ffd9d9!important}td.mk-ok{animation:.8s 2 pulse;background:#c9f0d6!important}td.mk-blank{background-image:repeating-linear-gradient(45deg,#ffc91447 0 6px,#0000 6px 12px)}td.mk-dup{background:#ffe0c2!important}td.mk-errcell{box-shadow:inset 0 0 0 3px var(--danger)}td.mk-suspect{box-shadow:inset 0 0 0 3px #f08c00}td.mk-invalid:before{content:"";border:2px solid var(--danger);pointer-events:none;border-radius:50%;position:absolute;top:2px;bottom:2px;left:4px;right:4px}td.mk-shield{box-shadow:inset 0 0 0 3px var(--teal);background:var(--teal-light)!important}td.mk-shield:before{content:"🛡️";font-size:.7rem;position:absolute;top:2px;right:2px}td.mk-shieldwarn{box-shadow:inset 0 0 0 3px var(--yellow-dark)}td.mk-refpick{outline:2px dashed var(--coral);outline-offset:-3px;background:#fff0ee}@keyframes pulse{50%{filter:brightness(.92)}}.filter-btn{border:1px solid var(--border);width:24px;height:24px;color:var(--navy);z-index:2;background:#fff;border-radius:6px;padding:0;font-size:.75rem;line-height:1;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.filter-btn.on{background:var(--navy);color:#fff;border-color:var(--navy)}.hdr-note{cursor:help;font-size:.8rem;position:absolute;top:50%;right:28px;transform:translateY(-50%)}td.cell:has(.filter-btn){padding-right:30px}.sheet-status{color:var(--muted);border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);background:#f7f9fc;min-height:30px;padding:6px 12px;font-size:.8rem;font-weight:700}.filter-pop{z-index:40;border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;gap:8px;width:280px;max-height:420px;padding:10px;display:flex;position:absolute;overflow:auto;box-shadow:0 12px 30px #0b254540}.fp-title{font-weight:900}.fp-sort{gap:6px;display:grid}.fp-links{justify-content:space-between;display:flex}.fp-values{border:1px solid var(--border);border-radius:8px;gap:2px;max-height:190px;padding:6px;display:grid;overflow:auto}.fp-values label{cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:3px 4px;font-size:.9rem;display:flex}.fp-values label:hover{background:var(--blue-50)}.fp-values small{color:var(--muted)}.fp-cond{grid-template-columns:1fr;gap:4px;font-size:.85rem;font-weight:700;display:grid}.fp-cond select,.fp-cond input{border:1px solid var(--border);border-radius:8px;min-height:36px;padding:4px 8px}.fp-actions{justify-content:flex-end;gap:6px;display:flex}.check-list{gap:6px;display:grid}.check-list label{align-items:center;gap:8px;font-weight:700;display:flex}.fn-list{gap:12px;display:grid}.fn-list h3{text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:.9rem}.fn-item{text-align:left;border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;width:100%;margin-bottom:4px;padding:8px 10px;display:flex}.fn-item:hover{border-color:var(--blue);background:var(--blue-50)}.fn-item span{color:var(--muted);font-size:.86rem}.modal-backdrop{z-index:100;background:#0b25459e;place-items:center;padding:16px;animation:.2s fadein;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:#fff;border-radius:18px;flex-direction:column;width:min(560px,100%);max-height:calc(100dvh - 32px);animation:.25s rise;display:flex;overflow:auto;box-shadow:0 20px 60px #00000059}.modal-wide{width:min(820px,100%)}.modal-head{z-index:2;background:#fff;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px 6px;display:flex;position:sticky;top:0}.modal-head h2{margin:0;font-size:1.3rem;font-weight:900}.modal-body{padding:6px 18px 12px}.modal-actions{background:linear-gradient(#0000,#fff 30%);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 18px 18px;display:flex;position:sticky;bottom:0}.result-modal .modal-head{background:linear-gradient(90deg, var(--yellow-light), #fff)}@keyframes fadein{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(16px)scale(.98)}}#toast-root{z-index:200;flex-direction:column;gap:8px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--navy);color:#fff;box-shadow:var(--shadow);border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:.93rem;animation:.25s rise;display:flex}.toast-success{background:var(--success)}.toast-warning{background:#8a5a00}.toast-error{background:var(--danger)}.toast-reward{background:var(--teal-dark)}.toast-out{opacity:0;transition:all .3s;transform:translateY(8px)}.confetti-layer{pointer-events:none;z-index:150;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.confetti{border-radius:2px;width:9px;height:14px;animation:linear forwards fall;position:absolute;top:-12px}@keyframes fall{to{transform:translate(var(--dx), 105vh) rotate(720deg);opacity:.9}}.help section{margin-bottom:10px}.help h3{margin:4px 0}.help ul,.help ol{gap:3px;margin:4px 0;padding-left:22px;display:grid}@media (max-width:1100px){.hud-nav-label{display:none}.hud-nav{min-width:40px}}@media (max-width:960px){.mission{grid-template-columns:1fr;padding:10px}.mission-side{max-height:none;position:static}.mission-actions{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f2f6fbf5;padding:8px 0;position:sticky;bottom:0}.btn-verify{flex:1}}@media (max-width:760px){:root{--hud-h:108px}#hud{flex-wrap:wrap;gap:8px;padding:6px 10px}.brand-text{display:none}.hud-player{flex:60%;order:2}.hud-stats{order:3;gap:6px}.hud-navs{border-top:1px solid #ffffff1f;order:4;justify-content:space-around;width:100%;padding-top:4px}.hud-nav-label{display:block}body[data-screen=map] #stage{height:auto;overflow:visible}body[data-screen=map] #phaser-container{height:78vh;min-height:520px;position:relative}body[data-screen=map] #screen-root{pointer-events:auto;position:static}.map-panel{width:auto;max-height:none;padding:12px;position:static}.map-fallback{padding:12px;position:static}.profile-card{text-align:center;grid-template-columns:1fr;justify-items:center}.mastery li{grid-template-columns:1fr 48px}.mastery .bar{grid-area:2/1/auto/-1}.mode-card{grid-template-columns:36px 1fr}.mode-card>.btn{grid-column:1/-1}.briefing .brief-head,.res-head{grid-template-columns:72px 1fr}.mini-portrait.big{width:72px;height:72px}.pu-name{display:none}.pu{padding:6px 10px}.fx-bar{grid-template-columns:64px 34px minmax(0,1fr) 34px 34px}.fx-cancel{display:none}.tb-group{border-right:0;padding-right:0}.modal-backdrop{place-items:end center;padding:0}.modal,.modal-wide{border-radius:18px 18px 0 0;width:100%;max-height:92dvh}#toast-root{max-width:none;bottom:12px;left:12px;right:12px}.stars{font-size:2.4rem}}html.reduce-motion *,html.reduce-motion :before,html.reduce-motion :after{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html.reduce-motion .star{transform:none}
