:root{--font:"Chakra Petch", system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", "Source Han Sans SC", sans-serif;--font-display:"Tektur", "Chakra Petch", system-ui, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", monospace;--cut-xs:2px;--cut-sm:3px;--cut:4px;--cut-lg:5px;--r-sm:var(--cut-sm);--r:var(--cut);--r-lg:var(--cut-lg);--gap:14px;--topbar:56px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--fs-xs:11px;--fs-sm:12.5px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:28px;--fs-3xl:40px;--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.2, 1.4, .4, 1);--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--top:calc(var(--sat) + 8px);--bot:calc(var(--sab) + 8px);--lft:calc(var(--sal) + 8px);--rgt:calc(var(--sar) + 8px);--sceneR:calc(var(--px,50vw) - var(--g,12px));--colL:calc(var(--px,50vw) + var(--g,12px));--infoB:calc(var(--py,50vh) - var(--g,12px));--actT:calc(var(--py,50vh) + var(--g,12px));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{touch-action:manipulation;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}:where(button,a,[role=button],[role=tab],[role=switch],input,select,label,summary){touch-action:manipulation}@supports (corner-shape:bevel){:root{--cut-xs:5px;--cut-sm:8px;--cut:12px;--cut-lg:18px}}:root,[data-theme=dark]{--bg:#04050b;--surface:#0a0f1e;--surface2:#0e1528;--surface3:#162038;--panel:linear-gradient(180deg, #0e152af2, #070a16f2);--hover:#00e5ff14;--border:#78d6ff21;--border2:#78d6ff42;--text:#e8f4ff;--text2:#abbdd6;--muted:#8395b4;--accent:#00e5ff;--accent-strong:#6ff4ff;--accent-ink:#00141a;--accent-soft:#00e5ff21;--accent2:#ff2bd6;--accent2-soft:#ff2bd624;--matrix:#00ff6a;--power:#ffb627;--power-soft:#ffb62721;--cool:#00e5ff;--grid:#18223b;--axis:#2d3b5e;--s1:#3d8bff;--s2:#ff6a2b;--s3:#19c98a;--s4:#e3a000;--s5:#ff4fa3;--s6:#3fbf3f;--s7:#a28bff;--s8:#ff6b6b;--good:#00c864;--good-text:#3dff8f;--warn:#ffb627;--warn-text:#ffc552;--star:#ffd23f;--serious:#ff7a45;--crit:#ff2a55;--crit-text:#ff7590;--star-off:#e8f4ff38;--glass:#050914e0;--glass-border:#00e5ff3d;--shadow:0 18px 44px #0009;--shadow-sm:0 4px 14px #00000073;--glow:0 0 16px #00e5ff61;--glow2:0 0 16px #ff2bd661;--text-glow:0 0 10px #00e5ff73;--tile-empty:#0b1222;--tile-line:#172340;--scan:#00000029;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#eef1f6;--surface:#fff;--surface2:#f5f7fb;--surface3:#e9eef6;--panel:linear-gradient(180deg, #fff, #f7f9fc);--hover:#0369a10f;--border:#0b1e3c1f;--border2:#0b1e3c38;--text:#0b1424;--text2:#3f4b60;--muted:#5a6679;--accent:#0369a1;--accent-strong:#075985;--accent-ink:#fff;--accent-soft:#0369a11a;--accent2:#a3007f;--accent2-soft:#a3007f17;--matrix:#00733a;--power:#8a5a00;--power-soft:#d977061a;--cool:#0e7490;--grid:#e1e6ee;--axis:#c0c7d2;--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300;--s7:#6250d6;--s8:#e34948;--good:#0ca30c;--good-text:#006300;--warn:#fab219;--warn-text:#8a5a00;--star:#a16207;--serious:#ec835a;--crit:#d03b3b;--crit-text:#b42323;--star-off:#0e17262e;--glass:#ffffffed;--glass-border:#0369a147;--shadow:0 12px 30px #0f172a24;--shadow-sm:0 2px 8px #0f172a14;--glow:0 0 0 transparent;--glow2:0 0 0 transparent;--text-glow:none;--tile-empty:#f3f5f8;--tile-line:#e2e6ee;--scan:transparent;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:14px;line-height:1.5}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(1100px 620px at 88% -12%,#ff2bd61c,#0000 62%),radial-gradient(1000px 640px at -12% 112%,#00e5ff1a,#0000 60%),linear-gradient(#00e5ff0a 1px,#0000 1px) 0 0/56px 56px,linear-gradient(90deg,#00e5ff0a 1px,#0000 1px) 0 0/56px 56px;position:fixed;top:0;bottom:0;left:0;right:0}body:after{content:"";z-index:400;pointer-events:none;background:repeating-linear-gradient(180deg, transparent 0 2px, var(--scan) 2px 3px);opacity:.45;position:fixed;top:0;bottom:0;left:0;right:0}[data-theme=light] body:before{background:radial-gradient(1200px 600px at 10% -10%,#0ea5e914,#0000 60%)}h1,h2,h3,h4{letter-spacing:.01em;margin:0 0 8px;font-weight:700;line-height:1.2}h1{font-size:28px;font-family:var(--font-display);letter-spacing:.02em}h2{font-size:20px}h3{font-size:16px}h4{color:var(--text2);font-size:14px}p{margin:0 0 10px}a{color:var(--accent)}button,input,select{font:inherit;color:inherit}::selection{background:var(--accent2-soft);color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--surface3) transparent}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.dim{color:var(--text2)}.small{font-size:var(--fs-sm)}.tiny{font-size:var(--fs-xs)}.mono{font-family:var(--mono)}.nowrap{white-space:nowrap}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.col{flex-direction:column;gap:10px;display:flex}.grow{flex:auto;min-width:0}.spacer{flex:1}.show-sm{display:none!important}.center{text-align:center}.good{color:var(--good-text)}.bad{color:var(--crit-text)}.warnc{color:var(--warn-text)}.kpi .value,.date-chip,.table td.r,.facts div span:last-child,.summary-panel .kv span:last-child,.slider .val,.log-item .when,.sb-v,.counter{font-family:var(--mono);font-variant-numeric:tabular-nums}.app{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:40;height:calc(var(--topbar) + var(--sat));padding:var(--sat) calc(16px + var(--sar)) 0 calc(16px + var(--sal));background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.3);backdrop-filter:blur(12px)saturate(1.3);border-bottom:1px solid var(--border);align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar:after{content:"";background:linear-gradient(90deg, transparent, var(--accent) 22%, var(--accent2) 70%, transparent);opacity:.7;height:1px;position:absolute;bottom:-1px;left:0;right:0}[data-theme=light] .topbar:after{opacity:.35}@media (max-width:1000px){.topbar :is(.brand-t small,.topnav .hide-sm){display:none}}.brand{letter-spacing:.2px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:10px;font-weight:700;display:flex}.brand-logo{border-radius:var(--cut-sm) 0;corner-shape:bevel;border:1px solid var(--accent);width:30px;height:30px;color:var(--accent);box-shadow:var(--glow);background:linear-gradient(135deg,#00e5ff38,#ff2bd638);place-items:center;display:grid}.brand small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:500;font-family:var(--mono);display:block}.main{flex:1;width:100%;max-width:1480px;margin:0 auto;padding:18px 18px 40px}.main.wide{max-width:1680px}.btn{border-radius:var(--cut-sm) 0;corner-shape:bevel;border:1px solid var(--border2);background:linear-gradient(180deg, #00e5ff12, #00e5ff05), var(--surface2);height:36px;color:var(--text);cursor:pointer;letter-spacing:.02em;white-space:nowrap;transition:background var(--dur-1), border-color var(--dur-1), transform 80ms, box-shadow var(--dur-1), color var(--dur-1), filter var(--dur-1);justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";pointer-events:none;transition:transform .55s var(--ease-out);background:linear-gradient(105deg,#0000 35%,#ffffff47 50%,#0000 65%);position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-130%)}.btn:hover:not([disabled]){border-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent), var(--glow);color:var(--text)}.btn:hover:not([disabled]):after{transform:translate(130%)}.btn:active:not([disabled]){filter:brightness(1.35);transform:scale(.97)}:where(button,a,input,select,textarea,summary,[role=button],[role=switch],[role=tab],[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:linear-gradient(180deg, #5ef2ff, var(--accent));border-color:var(--accent);color:var(--accent-ink);text-transform:uppercase;letter-spacing:.08em;font-weight:700;box-shadow:0 0 22px #00e5ff66,inset 0 -2px #0000002e}.btn.primary:hover:not([disabled]){background:linear-gradient(180deg, #b5fbff, var(--accent-strong));color:var(--accent-ink);box-shadow:0 0 30px #00e5ffa6,inset 0 -2px #0000002e}[data-theme=light] .btn.primary{background:var(--accent);box-shadow:var(--shadow-sm)}[data-theme=light] .btn.primary:hover:not([disabled]){background:var(--accent-strong);color:#fff}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover:not([disabled]){background:var(--hover);border-color:var(--border2);box-shadow:none}.btn.danger{border-color:color-mix(in srgb, var(--crit) 65%, transparent);color:var(--crit-text);background:color-mix(in srgb, var(--crit) 10%, var(--surface2))}.btn.danger:hover:not([disabled]){border-color:var(--crit);box-shadow:0 0 16px color-mix(in srgb, var(--crit) 45%, transparent)}.btn.sm{border-radius:var(--cut-xs) 0;height:30px;padding:0 10px;font-size:13px}.btn.lg{border-radius:var(--cut) 0;height:48px;padding:0 24px;font-size:16px}.btn.icon{width:36px;padding:0}.btn.sm.icon{width:30px}.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--cut-lg) 0;corner-shape:bevel;box-shadow:inset 0 1px 0 #ffffff0a, var(--shadow-sm);min-width:0;padding:16px;position:relative}.card:before{content:"";top:-1px;left:calc(var(--cut-lg) + 6px);background:var(--accent);width:46px;height:2px;box-shadow:var(--glow);opacity:.85;position:absolute}.card.flat{box-shadow:none}.card.flat:before{display:none}.card.pad-sm{padding:12px}.card-h{align-items:center;gap:8px;margin-bottom:10px;display:flex}.card-h h3{text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:14.5px}.card-h .sub{color:var(--muted);font-size:12px}.section-title{letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:8px;margin:18px 0 10px;font-size:15px;font-weight:700;display:flex}.section-title:first-child{margin-top:0}.section-title .ico{color:var(--accent)}.grid{gap:var(--gap);display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g6{grid-template-columns:repeat(6,minmax(0,1fr))}.split{gap:var(--gap);grid-template-columns:minmax(0,1fr) 380px;align-items:start;display:grid}.sticky{top:calc(var(--topbar) + 14px);position:sticky}.divider{background:linear-gradient(90deg, var(--border2), transparent);height:1px;margin:12px 0}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--cut) 0;corner-shape:bevel;min-width:0;padding:10px 12px;position:relative}.kpi .label{color:var(--text2);white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;font-size:11.5px;display:flex;overflow:hidden}.kpi .label svg{color:var(--accent)}.kpi .value{letter-spacing:-.02em;white-space:nowrap;text-shadow:var(--text-glow);margin-top:2px;font-size:21px;font-weight:650}.kpi .value small{color:var(--muted);margin-left:3px;font-size:12px;font-weight:500}.kpi .sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.kpi .spark{height:22px;margin-top:4px}.kpi.hero .value{font-size:28px}.badge{border-radius:var(--cut-xs) 0;corner-shape:bevel;letter-spacing:.04em;background:var(--surface3);height:21px;color:var(--text2);border:1px solid var(--border);white-space:nowrap;align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.badge.accent{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.badge.power{background:var(--power-soft);color:var(--power);border-color:color-mix(in srgb, var(--power) 35%, transparent)}.badge.good{background:color-mix(in srgb, var(--good) 14%, transparent);color:var(--good-text);border-color:color-mix(in srgb, var(--good) 35%, transparent)}.badge.warn{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn-text);border-color:color-mix(in srgb, var(--warn) 35%, transparent)}.badge.bad{background:color-mix(in srgb, var(--crit) 16%, transparent);color:var(--crit-text);border-color:color-mix(in srgb, var(--crit) 40%, transparent)}.chip{border-radius:var(--cut-xs) 0;corner-shape:bevel;border:1px solid var(--border2);background:var(--surface2);cursor:pointer;color:var(--text2);transition:border-color var(--dur-1), color var(--dur-1), box-shadow var(--dur-1);align-items:center;gap:5px;padding:3px 10px;font-size:12px;display:inline-flex}.chip:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--glow)}.term{border-bottom:1px dashed var(--accent);cursor:help;color:inherit;background:0 0;border-top:0;border-left:0;border-right:0;padding:0}.status-dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:4px;margin-bottom:14px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{height:40px;color:var(--text2);cursor:pointer;letter-spacing:.03em;white-space:nowrap;transition:color var(--dur-1), border-color var(--dur-1), background var(--dur-1);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:0 14px;font-weight:600;display:inline-flex}.tab:hover{color:var(--text);background:var(--hover)}.tab.active{color:var(--accent);border-bottom-color:var(--accent);text-shadow:var(--text-glow);background:linear-gradient(0deg, var(--accent-soft), transparent 70%)}.tab .count{background:var(--crit);color:#fff;border-radius:999px;padding:0 6px;font-size:11px}.seg{border-radius:var(--cut-sm) 0;corner-shape:bevel;background:var(--surface2);border:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--text2);border-radius:var(--cut-xs) 0;corner-shape:bevel;cursor:pointer;white-space:nowrap;height:28px;transition:background var(--dur-1), color var(--dur-1), box-shadow var(--dur-1);background:0 0;border:0;padding:0 11px;font-size:13px;font-weight:600}.seg button:hover:not([disabled]){color:var(--text);background:var(--hover)}.seg button.on{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 12px #00e5ff73}[data-theme=light] .seg button.on{box-shadow:none}.seg button[disabled]{opacity:.4;cursor:not-allowed}.opts{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.opt{text-align:left;border:1px solid var(--border2);background:var(--surface2);border-radius:var(--cut) 0;corner-shape:bevel;cursor:pointer;transition:border-color var(--dur-1), background var(--dur-1), box-shadow var(--dur-1);min-width:0;padding:11px 12px;position:relative}.opt:hover:not(.locked){border-color:color-mix(in srgb, var(--accent) 60%, var(--border2));box-shadow:var(--glow)}.opt.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, var(--surface2));box-shadow:0 0 0 1px var(--accent) inset, var(--glow)}.opt.locked{opacity:.5;cursor:not-allowed}.opt .t{align-items:center;gap:6px;font-weight:650;display:flex}.opt .d{color:var(--text2);margin-top:4px;font-size:12px}.opt .deltas{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.opt .check{color:var(--accent);position:absolute;top:9px;right:10px}.field{border-bottom:1px solid var(--border);grid-template-columns:200px minmax(0,1fr);align-items:center;gap:10px 16px;padding:10px 0;display:grid}.field:last-child{border-bottom:0}.field>.lbl{font-weight:600}.field>.lbl .why{color:var(--muted);font-size:12px;font-weight:400;display:block}.why-box{color:var(--text2);background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--accent);padding:8px 10px;font-size:12.5px}.slider{align-items:center;gap:12px;width:100%;display:flex}.slider input[type=range]{accent-color:var(--accent);flex:1;min-width:100px;height:24px}.slider .val{text-align:right;min-width:74px;color:var(--accent);font-weight:600}[data-theme=light] .slider .val{color:var(--text)}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.switch .track{border-radius:var(--cut-xs) 0;corner-shape:bevel;background:var(--surface3);border:1px solid var(--border2);width:40px;height:22px;transition:background var(--dur-1), box-shadow var(--dur-1);flex:none;position:relative}.switch .track:after{content:"";background:var(--text2);width:14px;height:14px;transition:transform var(--dur-1), background var(--dur-1);position:absolute;top:3px;left:3px}.switch.on .track{background:var(--accent-soft);border-color:var(--accent);box-shadow:var(--glow)}.switch.on .track:after{background:var(--accent);transform:translate(18px)}.switch.disabled{opacity:.45;cursor:not-allowed}.meter{background:color-mix(in srgb, var(--accent) 12%, var(--surface3));border-radius:1px;height:8px;overflow:hidden}.meter>div{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 55%, transparent), var(--accent));height:100%;box-shadow:var(--glow);transition:width .4s}.meter.warn>div{background:var(--warn)}.meter.bad>div{background:var(--crit)}.meter.good>div{background:var(--good)}.table{border-collapse:collapse;width:100%;font-size:13px}.table th,.table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:7px 8px}.table th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:var(--surface);font-size:11.5px;font-weight:600;position:sticky;top:0}.table td.r,.table th.r{text-align:right;font-variant-numeric:tabular-nums}.table tr:hover td{background:var(--hover)}.table-wrap{max-height:460px;overflow:auto}.issues{flex-direction:column;gap:6px;display:flex}.issue{border-radius:var(--cut-sm) 0;corner-shape:bevel;background:var(--surface2);border:1px solid var(--border);align-items:flex-start;gap:8px;padding:7px 9px;font-size:12.5px;display:flex}.issue .ico{flex:none;margin-top:1px}.issue.error{border-color:color-mix(in srgb, var(--crit) 55%, transparent);background:color-mix(in srgb, var(--crit) 9%, var(--surface2))}.issue.warn{border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.issue.good{border-color:color-mix(in srgb, var(--good) 45%, transparent)}.log{flex-direction:column;gap:2px;font-size:12.5px;display:flex}.log-item{border-left:2px solid #0000;grid-template-columns:62px 10px minmax(0,1fr);align-items:baseline;gap:8px;padding:5px 6px;display:grid}.log-item:hover{background:var(--hover);border-left-color:var(--accent)}.log-item .when{color:var(--muted);font-size:11.5px}.overlay{z-index:100;-webkit-backdrop-filter:blur(4px)saturate(.8);backdrop-filter:blur(4px)saturate(.8);background:radial-gradient(900px 600px at 50% 40%,#00283c59,#02030ac7);place-items:center;padding:16px;animation:.15s fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}[data-theme=light] .overlay{background:#0f172a73}.modal{background:var(--panel);border:1px solid var(--glass-border);border-radius:var(--cut-lg) 0;corner-shape:bevel;width:min(680px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow), 0 0 40px #00e5ff1f, inset 0 1px 0 #ffffff0d;animation:holo-in .32s var(--ease-out);padding:20px;position:relative;overflow:auto}[data-theme=light] .modal{box-shadow:var(--shadow)}.modal.wide{width:min(960px,100%)}.modal-h{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.modal-h h2{text-transform:uppercase;letter-spacing:.06em}.modal-ico{border-radius:var(--cut-sm) 0;corner-shape:bevel;background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);width:44px;height:44px;color:var(--accent);box-shadow:var(--glow);flex:none;place-items:center;display:grid}.choices{gap:8px;margin-top:14px;display:grid}.choice{text-align:left;border:1px solid var(--border2);background:var(--surface2);border-radius:var(--cut) 0;corner-shape:bevel;cursor:pointer;transition:border-color var(--dur-1), background var(--dur-1), box-shadow var(--dur-1), transform var(--dur-1);align-items:center;gap:12px;padding:11px 13px;display:flex}.choice:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface2));box-shadow:var(--glow);transform:translate(3px)}.choice .cost{color:var(--power);white-space:nowrap;font-weight:650;font-family:var(--mono);margin-left:auto}.drawer{z-index:110;background:var(--panel), var(--surface);border-left:1px solid var(--glass-border);width:min(460px,100%);box-shadow:var(--shadow), -1px 0 0 #00e5ff40;animation:slide .22s var(--ease-out);padding:18px;position:fixed;top:0;bottom:0;right:0;overflow:auto}.toasts{z-index:120;flex-direction:column;gap:8px;max-width:min(420px,100% - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border2);border-left:3px solid var(--accent);border-radius:0 0 var(--cut) 0;corner-shape:bevel;box-shadow:var(--shadow);animation:holo-in .24s var(--ease-out);padding:10px 12px;font-size:13px}.toast.good{border-left-color:var(--good)}.toast.bad{border-left-color:var(--crit);border-color:color-mix(in srgb, var(--crit) 55%, transparent);animation:holo-in .24s var(--ease-out), glitch-box .5s steps(1) .24s}.toast.warn{border-left-color:var(--warn);animation:holo-in .24s var(--ease-out), glitch-box .5s steps(1) .24s}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.985)}}@keyframes holo-in{0%{opacity:0;clip-path:inset(48% 0);filter:brightness(2)}55%{opacity:1;clip-path:inset(0)}70%{opacity:.75}to{opacity:1;filter:none}}@keyframes slide{0%{opacity:0;transform:translate(30px)}}@keyframes glitch-box{0%{transform:translate(-4px);box-shadow:-3px 0 #ff2bd6b3,3px 0 #00e5ffb3}20%{transform:translate(3px)skew(-6deg)}40%{clip-path:inset(10% 0 40%);transform:translate(-2px)}60%{clip-path:inset(50% 0 0);transform:none}80%{clip-path:none;box-shadow:none}to{transform:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}[data-motion=reduce] *,[data-motion=reduce] :before,[data-motion=reduce] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.glitch{display:inline-block;position:relative}.glitch:before,.glitch:after{content:attr(data-text);pointer-events:none;opacity:0;white-space:inherit;position:absolute;top:0;bottom:0;left:0;right:0}.glitch:before{color:var(--accent);text-shadow:none;animation:4.2s step-end infinite glitch-a}.glitch:after{color:var(--accent2);text-shadow:none;animation:4.2s step-end infinite glitch-b}.glitch.hot:before,.glitch.hot:after{animation-duration:1.6s}@keyframes glitch-a{0%,88%,to{opacity:0}89%{opacity:.85;clip-path:inset(10% 0 62%);transform:translate(-4px,-1px)}91%{clip-path:inset(46% 0 28%);transform:translate(3px)}93%{clip-path:inset(78% 0 4%);transform:translate(-2px,1px)}95%{opacity:0}}@keyframes glitch-b{0%,89%,to{opacity:0}90%{opacity:.85;clip-path:inset(60% 0 12%);transform:translate(4px,1px)}92%{clip-path:inset(20% 0 55%);transform:translate(-3px)}94%{opacity:0}}[data-theme=light] .glitch:before,[data-theme=light] .glitch:after{display:none}.counter.flash-up,.counter.flash-down{animation:.65s ease-out num-flash}@keyframes num-flash{0%{filter:brightness(1.9);text-shadow:0 0 12px}}.chart{-webkit-user-select:none;user-select:none;width:100%;position:relative}.chart svg{display:block;overflow:visible}.chart .tt{pointer-events:none;z-index:5;background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:var(--cut-sm) 0;corner-shape:bevel;box-shadow:var(--shadow);white-space:nowrap;min-width:120px;padding:7px 9px;font-size:12px;position:absolute}.chart .tt .tt-h{color:var(--muted);font-size:11px;font-family:var(--mono);margin-bottom:3px}.chart .tt .tt-r{align-items:center;gap:7px;display:flex}.chart .tt .tt-r b{font-variant-numeric:tabular-nums;font-family:var(--mono);margin-left:auto;padding-left:10px}.chart .key{flex:none;width:12px;height:2px;display:inline-block}.chart .key.box{width:9px;height:9px}.legend{color:var(--text2);flex-wrap:wrap;gap:4px 12px;margin-bottom:6px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.chart-card .card-h{margin-bottom:4px}.empty{color:var(--muted);border:1px dashed var(--border2);text-align:center;place-items:center;min-height:120px;padding:12px;font-size:13px;display:grid}.hero{border-radius:var(--cut-lg) 0;corner-shape:bevel;border:1px solid var(--glass-border);background:radial-gradient(700px 300px at 0% 0%, #00e5ff24, transparent 70%), radial-gradient(600px 300px at 100% 100%, #ff2bd61f, transparent 70%), var(--panel);box-shadow:var(--shadow), inset 0 1px 0 #ffffff0d;padding:36px 32px;position:relative;overflow:hidden}.hero h1{letter-spacing:.02em;text-shadow:var(--text-glow);margin-bottom:6px;font-size:40px}.hero .tagline{color:var(--text2);max-width:720px;font-size:16px}.ladder{margin:4px 0 0;padding:4px 8px 0;position:relative}.level-card{text-align:left;cursor:pointer;border:1px solid var(--border);background:var(--panel);border-radius:var(--cut-lg) 0;corner-shape:bevel;transition:transform var(--dur-1), border-color var(--dur-1), box-shadow var(--dur-1);box-shadow:var(--shadow-sm);min-width:0;color:var(--text);flex-direction:column;gap:8px;padding:16px;display:flex;position:relative}.level-card:hover:not(.locked){border-color:var(--accent);box-shadow:var(--shadow), var(--glow);transform:translateY(-2px)}.level-card.locked{cursor:not-allowed;opacity:.55}.level-card .lv{color:var(--accent);letter-spacing:.12em;font-size:12px;font-weight:700;font-family:var(--mono)}.level-card .scale{color:var(--power);font-size:12px;font-weight:600}.stars{color:var(--star);gap:2px;display:inline-flex}.stars .off{color:var(--star-off)}.stars .on svg{filter:drop-shadow(0 0 4px #ffd23f8c)}[data-theme=light] .stars .on svg{filter:none}.site-card{text-align:left;border:1px solid var(--border2);background:var(--panel);border-radius:var(--cut-lg) 0;corner-shape:bevel;cursor:pointer;transition:border-color var(--dur-1), box-shadow var(--dur-1);flex-direction:column;gap:8px;min-width:0;padding:14px;display:flex}.site-card:hover{border-color:color-mix(in srgb, var(--accent) 60%, var(--border2));box-shadow:var(--glow)}.site-card.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset, var(--glow)}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;font-size:12px;display:grid}.facts div{border-bottom:1px dashed var(--border);justify-content:space-between;gap:8px;padding:2px 0;display:flex}.facts div span:first-child{color:var(--muted)}.facts div span:last-child{text-align:right;font-weight:560}.cc{border-radius:var(--cut-xs) 0;corner-shape:bevel;background:var(--surface3);min-width:26px;height:18px;color:var(--text2);letter-spacing:.5px;font-size:10px;font-weight:700;font-family:var(--mono);place-items:center;display:inline-grid}.summary-panel .kv{border-bottom:1px dashed var(--border);justify-content:space-between;gap:8px;padding:4px 0;font-size:13px;display:flex}.summary-panel .kv span:last-child{text-align:right;font-weight:600}.tier-badge{border-radius:var(--cut-xs) 0;corner-shape:bevel;letter-spacing:.08em;background:var(--surface3);min-width:64px;height:26px;font-size:13px;font-weight:700;font-family:var(--mono);justify-content:center;align-items:center;padding:0 10px;display:inline-flex}.tier-badge.t3,.tier-badge.t4{background:color-mix(in srgb, var(--good) 16%, var(--surface3));color:var(--good-text)}.tier-badge.t0{background:color-mix(in srgb, var(--crit) 16%, var(--surface3));color:var(--crit-text)}.editor{gap:var(--gap);grid-template-columns:220px minmax(0,1fr);align-items:start;display:grid}.palette{flex-direction:column;gap:6px;display:flex}.tool{border-radius:var(--cut-sm) 0;corner-shape:bevel;border:1px solid var(--border2);background:var(--surface2);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.tool.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface2));box-shadow:var(--glow)}.tool .sw{flex:none;width:22px;height:16px}.board{border-radius:var(--cut) 0;corner-shape:bevel;border:1px solid var(--border);background:var(--surface2);touch-action:manipulation;width:100%;overflow:auto}.board svg{margin:0 auto;display:block}.cell{cursor:pointer}.heat-legend{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.heat-legend .bar{background:linear-gradient(90deg,#1e6bff,#19d6a0 45%,#ffd23f 70%,#ff7a2b 85%,#ff2a55);width:160px;height:8px}.opsbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.date-chip{border-radius:var(--cut-xs) 0;corner-shape:bevel;background:var(--surface2);border:1px solid var(--border2);color:var(--accent);padding:4px 10px;font-size:15px;font-weight:700}.progress-line{background:var(--surface3);min-width:80px;height:3px;overflow:hidden}.progress-line>div{background:linear-gradient(90deg, var(--accent2), var(--accent));height:100%;box-shadow:var(--glow)}.block-row{border-bottom:1px dashed var(--border);grid-template-columns:90px minmax(0,1fr) 130px;align-items:center;gap:10px;padding:6px 0;font-size:13px;display:grid}.pulse{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.lesson-card{max-width:820px;margin:0 auto}.lesson-body p{font-size:15px;line-height:1.75}.formula{font-family:var(--mono);border:1px solid color-mix(in srgb, var(--matrix) 25%, transparent);border-left:3px solid var(--matrix);white-space:pre-wrap;color:var(--text);background:#00ff6a0a;margin:10px 0;padding:10px 12px;font-size:13px;overflow-x:auto}.figure{border-radius:var(--cut) 0;corner-shape:bevel;border:1px solid var(--border);background:var(--surface2);margin:12px 0;padding:10px;overflow-x:auto}.figure svg{max-width:100%;height:auto;margin:0 auto;display:block}.calc{border-radius:var(--cut) 0;corner-shape:bevel;border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 5%, var(--surface2));margin:12px 0;padding:12px}.dots{justify-content:center;gap:6px;display:flex}.dots i,.dots button{background:var(--star-off);width:8px;height:8px;transition:width var(--dur-2) var(--ease-out), background var(--dur-2);border:0;padding:0;transform:skew(-20deg)}.dots button{cursor:pointer}.dots i.seen,.dots button.seen{background:color-mix(in srgb, var(--accent) 50%, transparent)}.dots i.on,.dots button.on{background:var(--accent);width:22px;box-shadow:var(--glow)}.quiz-opt{text-align:left;border-radius:var(--cut) 0;corner-shape:bevel;border:1px solid var(--border2);background:var(--surface2);cursor:pointer;width:100%;transition:border-color var(--dur-1), box-shadow var(--dur-1), transform var(--dur-1);align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;display:flex}.quiz-opt:hover:not([disabled]){border-color:var(--accent);box-shadow:var(--glow);transform:translate(3px)}.quiz-opt.right{border-color:var(--good);background:color-mix(in srgb, var(--good) 12%, var(--surface2));box-shadow:0 0 16px color-mix(in srgb, var(--good) 35%, transparent)}.quiz-opt.wrong{border-color:var(--crit);background:color-mix(in srgb, var(--crit) 10%, var(--surface2));animation:.45s step-end glitch-box}.quiz-opt .letter{border-radius:var(--cut-xs) 0;corner-shape:bevel;background:var(--surface3);width:24px;height:24px;font-size:12px;font-weight:700;font-family:var(--mono);color:var(--accent);flex:none;place-items:center;display:grid}.gl-item{border:1px solid var(--border);background:var(--panel);border-radius:var(--cut) 0;corner-shape:bevel;padding:12px 14px}.gl-item h3{margin:0;font-size:15px}.gl-item .short{color:var(--text2);margin-top:3px;font-size:13px}.bottomnav{display:none}@media (max-width:1180px){.split{grid-template-columns:minmax(0,1fr)}.sticky{position:static}.g6{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.g3,.g2,.editor{grid-template-columns:minmax(0,1fr)}.palette{flex-flow:wrap}.field{grid-template-columns:minmax(0,1fr);gap:6px}.hero h1{font-size:30px}.hero{padding:24px 18px}}@media (max-width:640px){body{font-size:14px}.main{padding:12px 10px 90px}.hide-sm{display:none!important}.show-sm{display:block!important}.g6,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{padding:var(--sat) calc(10px + var(--sar)) 0 calc(10px + var(--sal));gap:6px}.kpi .value{font-size:17px}.card{padding:12px}.opts,.facts{grid-template-columns:minmax(0,1fr)}.modal{padding:16px}.bottomnav{z-index:50;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.bottomnav button{min-width:58px;color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1 0 auto;align-items:center;gap:2px;padding:4px 6px;font-size:10.5px;display:flex}.bottomnav button.active{color:var(--accent)}.tabs.desk-only{display:none}.block-row{grid-template-columns:70px minmax(0,1fr)}.block-row>:last-child{grid-column:1/-1}}.skip-link{z-index:200;background:var(--accent);color:var(--accent-ink);padding:8px 12px;font-weight:700;position:absolute;top:-60px;left:8px}.skip-link:focus{top:8px}.main:focus{outline:none}button.brand{color:inherit;font:inherit;text-align:left;background:0 0;border:0;padding:4px 6px 4px 0;font-weight:700}.brand-t{line-height:1.15;font-family:var(--font-display);letter-spacing:.06em;font-size:15px}.topnav{gap:2px;display:flex}.btn.ghost.current{color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 35%, transparent);text-shadow:var(--text-glow)}.lang-btn{font-weight:650}.btn.resume{height:30px}.btn.snd[aria-pressed=true]{color:var(--accent)}.page{animation:page-in-scan .42s var(--ease-out)}@keyframes page-in-scan{0%{opacity:0;clip-path:inset(0 0 100%)}35%{opacity:1;clip-path:inset(0 0 45%)}45%{opacity:.6}55%{opacity:1}to{clip-path:inset(0)}}@keyframes page-fade{0%{opacity:0}}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}.link-btn{color:var(--accent);cursor:pointer;font:inherit;text-underline-offset:3px;background:0 0;border:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.stars .on{color:var(--star)}.stars.anim .on{animation:star-pop .55s var(--ease-spring) both}.stars.anim .on svg{filter:drop-shadow(0 0 10px #ffd23fbf)}@keyframes star-pop{0%{opacity:0;transform:scale(.2)rotate(-40deg)}70%{opacity:1;transform:scale(1.25)rotate(8deg)}to{transform:scale(1)rotate(0)}}.home-hero{padding:40px 36px}.title-screen{min-height:min(780px, calc(100vh - var(--topbar) - 40px));isolation:isolate;background:linear-gradient(#03020a 0%,#080521 38%,#170a33 64%,#2b0b36 82%,#120616 100%);border-color:#00e5ff4d;align-items:center;padding:56px 48px 120px;display:flex}[data-theme=light] .title-screen{color:#e8f4ff;--text:#e8f4ff;--text2:#b8c8de;--muted:#93a5c2;--accent:#00e5ff;--accent-ink:#00141a;--accent2:#ff2bd6;--star:#ffd23f;--star-off:#e8f4ff3d;--surface2:#0e1528;--border2:#78d6ff4d;--text-glow:0 0 10px #00e5ff73}.ts-layer{pointer-events:none;position:absolute}.ts-rain{z-index:0;opacity:.34;width:100%;height:100%;top:0;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#000 0% 45%,#0000 82%);mask-image:linear-gradient(#000 0% 45%,#0000 82%)}.ts-sky{z-index:1;width:100%;height:66%;bottom:0;left:0;right:0}.ts-haze{z-index:2;background:radial-gradient(70% 38% at 62% 100%,#ff2bd647,#0000 70%),radial-gradient(50% 30% at 18% 100%,#ff8c282e,#0000 70%),linear-gradient(90deg,#03020aeb 0%,#03020a8c 38%,#0000 62%);top:0;bottom:0;left:0;right:0}.ts-drops{z-index:3;opacity:.55;background-image:repeating-linear-gradient(104deg,#0000 0 22px,#aacdff29 22px 23px,#0000 23px 57px),repeating-linear-gradient(101deg,#0000 0 37px,#aacdff1a 37px 38px,#0000 38px 91px);background-size:100% 140px,100% 230px;animation:.55s linear infinite rain-fall;top:-30%;bottom:0;left:0;right:0}@keyframes rain-fall{to{background-position:-40px 140px,-60px 230px}}.ts-beam{z-index:1;transform-origin:50% 100%;clip-path:polygon(46% 100%,54% 100%,100% 0,0 0);filter:blur(2px);background:linear-gradient(#0000 15%,#96dcff2e);width:7%;height:90%;animation:11s ease-in-out infinite alternate beam-sweep;bottom:18%}.ts-beam.b2{background:linear-gradient(#0000 15%,#ff78e624);animation-duration:14s;animation-delay:-6s}@keyframes beam-sweep{0%{transform:rotate(-24deg)}to{transform:rotate(22deg)}}.ts-body{z-index:5;max-width:660px;position:relative}.ts-kicker{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--matrix);text-shadow:0 0 8px #00ff6a80;font-size:12px}.title-screen h1.ts-logo{font-family:var(--font-display);letter-spacing:.03em;color:#effcff;text-shadow:0 0 22px #00e5ff99,0 0 60px #ff2bd659;margin:0;font-size:clamp(52px,9.2vw,112px);font-weight:700;line-height:.95}.ts-logo .two{color:var(--accent2);text-shadow:0 0 22px #ff2bd6b3}.ts-sub{font-family:var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--accent);text-shadow:var(--text-glow);font-size:15px}.title-screen .tagline{color:var(--text);text-shadow:0 1px 8px #000c;max-width:560px;font-size:18px;line-height:1.5}.ts-hud{z-index:5;font-family:var(--mono);letter-spacing:.1em;color:var(--muted);pointer-events:none;text-transform:uppercase;font-size:11px;line-height:1.7;position:absolute}.ts-hud.tl{text-align:right;top:16px;right:22px}.ts-hud.bl{bottom:16px;left:22px}.ts-hud b{color:var(--accent);font-weight:600}.ts-hud i{color:var(--accent2);font-style:normal}.ts-sound{z-index:6;position:absolute;bottom:14px;right:18px}.hero-body{align-items:flex-start;gap:var(--sp-3);flex-direction:column;max-width:640px;display:flex;position:relative}.hero-body h1{margin:0}.hero-body .tagline{margin:0;font-size:18px;line-height:1.5}.hero-cta{margin-top:var(--sp-2)}.hero-progress{align-items:center;gap:var(--sp-3);font-family:var(--mono);flex-wrap:wrap;display:flex}.hero-progress .small{font-size:12px}.steps{gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.step{align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--cut) 0;corner-shape:bevel;border:1px solid var(--border);background:var(--panel);display:flex;position:relative}.step>svg{color:var(--accent);filter:drop-shadow(0 0 6px #00e5ff80);flex:none}.step b{font-size:var(--fs-lg);text-transform:uppercase;letter-spacing:.06em}.step-n{border-radius:var(--cut-xs) 0;corner-shape:bevel;background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);width:28px;height:28px;color:var(--accent);font-size:13px;font-weight:800;font-family:var(--mono);flex:none;place-items:center;display:grid}.pillars{gap:var(--gap);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.pillar{align-items:center;gap:var(--sp-3);padding:14px var(--sp-4);border-radius:var(--cut) 0;corner-shape:bevel;border:1px solid var(--border);background:var(--panel);transition:border-color var(--dur-1), box-shadow var(--dur-1);display:flex}.pillar:hover{border-color:var(--border2);box-shadow:var(--glow)}.pillar-ico{border-radius:var(--cut-xs) 0;corner-shape:bevel;background:var(--surface3);border:1px solid var(--border);flex:none;place-items:center;width:38px;height:38px;display:grid}.foot{margin:0}.lad-node.open{cursor:pointer}.lad-node.open:hover circle{stroke-width:4px}.lad-node:focus-visible circle{stroke-width:4px}.lad-node:focus-visible{outline:none}.scale-bars{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sb{border-radius:var(--cut-sm) 0;corner-shape:bevel;border:1px solid var(--border);background:var(--surface2);text-align:left;cursor:pointer;width:100%;color:var(--text);grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.sb.locked{cursor:not-allowed;opacity:.6}.sb-n{border-radius:var(--cut-xs) 0;corner-shape:bevel;border:2px solid var(--accent);width:24px;height:24px;font-size:12px;font-weight:750;font-family:var(--mono);place-items:center;display:grid}.sb.locked .sb-n{border-color:var(--axis);color:var(--muted)}.sb-n.done{background:var(--accent);color:var(--accent-ink)}.sb-main{flex-direction:column;gap:4px;min-width:0;display:flex}.sb-t{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sb-bar{background:var(--surface3);height:5px;display:block;overflow:hidden}.sb-bar i{background:linear-gradient(90deg, var(--accent), var(--accent2));height:100%;display:block}.sb-v{color:var(--text2);font-size:12px}.levels-page{gap:var(--sp-4)}.lv-head{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.lv-head h2{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;text-shadow:var(--text-glow);margin:0;font-size:26px}.citymap-wrap{gap:var(--gap);grid-template-columns:minmax(0,1fr) 340px;align-items:stretch;display:grid}.citymap{border:1px solid var(--glass-border);border-radius:var(--cut-lg) 0;corner-shape:bevel;box-shadow:var(--shadow), inset 0 0 60px #00e5ff0f;aspect-ratio:5/3;isolation:isolate;background:radial-gradient(60% 55% at 50% 58%,#00e5ff1f,#0000 70%),radial-gradient(40% 40% at 80% 15%,#ff2bd61a,#0000 70%),linear-gradient(#03040c,#070a1c);position:relative;overflow:hidden}.citymap svg.cm-art{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.citymap .cm-scan{pointer-events:none;mix-blend-mode:screen;background:linear-gradient(#0000 0%,#00e5ff17 48%,#00e5ff38 50%,#0000 52%) 0 0/100% 260%;animation:6s linear infinite holo-scan;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes holo-scan{0%{background-position:0 100%}to{background-position:0 -160%}}.cm-flow{animation:1.4s linear infinite cm-flow}@keyframes cm-flow{to{stroke-dashoffset:-24px}}.cm-beacon{transform-box:fill-box;transform-origin:50% 100%;animation:1.6s ease-in-out infinite cm-beacon}@keyframes cm-beacon{50%{opacity:.35}}.cm-node{z-index:3;border-radius:var(--cut-xs) 0;corner-shape:bevel;color:#e8f4ff;font:600 12px var(--font);letter-spacing:.03em;white-space:nowrap;cursor:pointer;transition:transform var(--dur-1), box-shadow var(--dur-1), border-color var(--dur-1), background var(--dur-1);background:#030a16db;border:1px solid #00e5ff73;align-items:center;gap:6px;padding:3px 9px 3px 4px;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 0 14px #00e5ff40}.cm-node .n{color:#00141a;min-width:22px;height:20px;font:700 12px var(--mono);background:#00e5ff;place-items:center;padding:0 4px;display:grid}.cm-node:hover,.cm-node.sel{background:#00283ceb;border-color:#00e5ff;transform:translate(-50%,calc(-100% - 3px));box-shadow:0 0 22px #00e5ff99}.cm-node:focus-visible{background:#00283ceb;border-color:#00e5ff;transform:translate(-50%,calc(-100% - 3px));box-shadow:0 0 22px #00e5ff99}.cm-node.done .n{background:#ffd23f}.cm-node.locked{color:#9fb0c8;box-shadow:none;border-color:#8ca0be59}.cm-node.locked .n{color:#b9c6da;background:#2a3550}.cm-node.current{border-color:#ff2bd6;box-shadow:0 0 20px #ff2bd68c}.cm-node.current .n{color:#1a0014;background:#ff2bd6}.cm-node .st{color:#ffd23f;letter-spacing:-1px;font-size:10px}.cm-legend{z-index:3;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#93a5c2;pointer-events:none;gap:14px;display:flex;position:absolute;bottom:10px;left:14px}.cm-legend i{vertical-align:-1px;width:10px;height:10px;margin-right:5px;display:inline-block}.cm-title{z-index:3;font:600 11px var(--mono);letter-spacing:.16em;color:#00ff6a;text-transform:uppercase;text-shadow:0 0 8px #00ff6a80;pointer-events:none;position:absolute;top:12px;left:16px}.dossier{animation:holo-in .3s var(--ease-out);flex-direction:column;gap:10px;display:flex}.dossier .lv{font-family:var(--mono);color:var(--accent);letter-spacing:.14em;font-size:12px;font-weight:700}.dossier h3{font-size:21px;font-family:var(--font-display);letter-spacing:.03em;margin:0;line-height:1.15}.dossier .scale{color:var(--power);font-size:13px;font-weight:600}.dossier .facts{grid-template-columns:minmax(0,1fr)}.dossier .btn.lg{width:100%;margin-top:auto}.dossier .lock-note{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.level-card h3{margin:0;font-size:17px}.lc-top{align-items:center;gap:10px;display:flex}.lc-ico{border-radius:var(--cut-sm) 0;corner-shape:bevel;background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);width:38px;height:38px;color:var(--accent);flex:none;place-items:center;display:grid}.level-card.locked .lc-ico{background:var(--surface2);border-color:var(--border);color:var(--muted)}.lc-sub{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.lc-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:6px;display:flex}.lc-cta{border-radius:var(--cut-xs) 0;corner-shape:bevel;letter-spacing:.04em;border:1px solid var(--border2);height:30px;color:var(--text);background:var(--surface2);align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.lc-cta.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:var(--glow)}.level-card.current{border-color:var(--accent2);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent2) 40%, transparent), 0 10px 30px #ff2bd629;background:linear-gradient(160deg, color-mix(in srgb, var(--accent2) 9%, var(--surface)), var(--surface) 60%)}.level-card.locked{opacity:.62}.level-card.locked h3{color:var(--text2)}.brief-hero{gap:var(--sp-3);flex-direction:column;padding:26px;display:flex}.brief-hero h1{margin:0;font-size:30px}.brief-hero .tagline{margin:0;font-size:15px;line-height:1.65}.brief-cta{margin-top:var(--sp-2)}.goal-tiers{gap:var(--sp-3);flex-direction:column;display:flex}.goal-tier-h{align-items:center;gap:6px;margin-bottom:4px;display:flex}.goal-tier ul{font-size:var(--fs-sm);margin:0;padding-left:18px;line-height:1.6}.goal-tier li::marker{color:var(--accent)}.chip.more{color:var(--accent);font-weight:650}.sticky-cta{z-index:30;padding:10px 10px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);margin:0 -10px -90px;position:sticky;bottom:0}.sticky-cta .brief-cta{flex-wrap:nowrap;margin:0}.sticky-cta .btn.lg{flex:1;height:44px;padding:0 12px;font-size:15px}.result-hero.pass{background:radial-gradient(600px 260px at 0% 0%, #ffd23f2e, transparent 70%), var(--panel);border-color:#ffd23f66}.result-hero.fail{background:radial-gradient(600px 260px at 0% 0%, #ff2a5529, transparent 70%), var(--panel);border-color:#ff2a5566}.result-kicker{letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:700;font-family:var(--mono);color:var(--accent);align-items:center;gap:6px;display:flex}.result-hero.pass .result-kicker{color:var(--warn-text)}.result-hero.fail .result-kicker{color:var(--crit-text)}.result-hint{color:var(--text2);flex-wrap:wrap;align-items:center;gap:4px;margin:10px 0 0;display:flex}.settings.modal{width:min(580px,100%)}.set-list{flex-direction:column;display:flex}.set-row{border-bottom:1px solid var(--border);grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;display:grid}.set-row:last-child{border-bottom:0}.set-ico{border-radius:var(--cut-xs) 0;corner-shape:bevel;background:var(--surface2);border:1px solid var(--border);width:32px;height:32px;color:var(--accent);place-items:center;display:grid}.set-l{flex-direction:column;font-weight:600;display:flex}.set-l small{font-weight:400;font-size:var(--fs-xs);color:var(--muted)}.set-c{justify-content:flex-end;display:flex}.toast{align-items:flex-start;gap:8px;display:flex}.toast-ico{color:var(--accent);margin-top:2px}.toast.good .toast-ico{color:var(--good-text)}.toast.warn .toast-ico{color:var(--warn-text)}.toast.bad .toast-ico{color:var(--crit-text)}.toasts.in-play{pointer-events:none;align-items:center;width:min(460px,100% - 24px);top:76px;bottom:auto;left:50%;right:auto;transform:translate(-50%)}.toasts.in-play .toast{pointer-events:auto;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.gl-backdrop{z-index:105;background:#02030a73}.gl-drawer:focus{outline:none}.calc-row{grid-template-columns:170px minmax(0,1fr);padding:6px 0}.lesson-title{animation:page-in var(--dur-2) var(--ease-out)}.boot-seq{z-index:300;color:#c8ffd9;cursor:pointer;background:#000;place-items:center;animation:.2s fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.boot-seq.out{animation:.55s steps(5,end) forwards boot-out}@keyframes boot-out{0%{clip-path:inset(0);filter:brightness()}40%{clip-path:inset(44% 0);filter:brightness(3)}to{clip-path:inset(50% 0);opacity:0}}.boot-seq .code-rain{opacity:.55;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.boot-term{z-index:2;border-radius:var(--cut-lg) 0;corner-shape:bevel;width:min(640px,100% - 32px);font:500 14px/1.75 var(--mono);text-shadow:0 0 6px #00ff6a8c;background:#000803db;border:1px solid #00ff6a73;padding:22px 24px 18px;position:relative;box-shadow:0 0 40px #00ff6a33,inset 0 0 30px #00ff6a0f}.boot-term .l{white-space:pre-wrap;word-break:break-word;gap:10px;display:flex}.boot-term .l .ok{color:#00ff6a;margin-left:auto;font-weight:700}.boot-term .l.big{color:#effff4;letter-spacing:.12em;margin-top:6px;font-size:22px;font-weight:700}.boot-term .cur{vertical-align:-.2em;background:#00ff6a;width:.6em;height:1.1em;animation:.8s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.boot-bar{background:#00ff6a24;height:4px;margin-top:12px;overflow:hidden}.boot-bar i{background:#00ff6a;height:100%;transition:width .25s linear;display:block;box-shadow:0 0 12px #00ff6a}.boot-skip{z-index:3;font:500 12px var(--mono);letter-spacing:.1em;color:#9fe8b8;cursor:pointer;text-transform:uppercase;background:#001408cc;border:1px solid #00ff6a66;padding:6px 12px;position:absolute;bottom:16px;right:18px}.boot-skip:hover{background:#003c19e6}.boot-flash{z-index:4;pointer-events:none;background:radial-gradient(circle,#dcffebe6,#00ff6a33 40%,#0000 70%);animation:.5s ease-out forwards boot-flash;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes boot-flash{0%{opacity:1}to{opacity:0}}@media (max-width:1100px){.citymap-wrap{grid-template-columns:minmax(0,1fr)}}@media (min-width:821px){.level-list{display:none}}@media (max-width:820px){.steps,.pillars{grid-template-columns:minmax(0,1fr)}.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero{padding:26px 20px}.title-screen{min-height:min(720px, calc(100svh - var(--topbar) - 24px));align-items:flex-start;padding:34px 20px 150px}.ts-haze{background:radial-gradient(90% 40% at 60% 100%,#ff2bd64d,#0000 70%),linear-gradient(#03020ad1 0%,#03020a66 55%,#0000 75%)}.ts-sky{height:48%}.ts-hud.tl{display:none}.calc-row{grid-template-columns:minmax(0,1fr);gap:2px}}@media (max-width:640px){.slider{gap:8px}.slider .val{min-width:56px}.slider input[type=range]{min-width:0}.hero-body .tagline,.title-screen .tagline{font-size:15.5px}.ts-sub{letter-spacing:.2em;font-size:12px}.ts-hud.bl{display:none}.step{padding:12px}.pillar{padding:10px 12px}.pillar-ico{width:32px;height:32px}.brief-hero{padding:18px}.brief-hero h1{font-size:24px}.settings .seg{flex-wrap:wrap;justify-content:flex-end}.set-row{grid-template-columns:32px minmax(0,1fr)}.set-c{grid-column:2;justify-content:flex-start}.toasts:not(.in-play){bottom:76px}.cm-node{padding:2px 6px 2px 3px;font-size:11px}.cm-node .t,.cm-legend{display:none}}.app-play{color:var(--text);background:#04050b;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.play{-webkit-user-select:none;user-select:none;--hud-r:14px;--hud-gap:8px;position:absolute;top:0;bottom:0;left:0;right:0}.play-canvas{position:absolute;top:0;bottom:0;left:0;right:0}.play-canvas canvas{outline:none;display:block}.glass,.play .hud-title,.play .hud-time,.play .hud-actions,.play .pill,.play .hud-left-tab{-webkit-backdrop-filter:blur(12px)saturate(1.4);backdrop-filter:blur(12px)saturate(1.4);border:1px solid var(--glass-border);border-radius:var(--cut) 0;corner-shape:bevel;background:linear-gradient(#080e1fe6,#03060fe6);box-shadow:0 10px 30px #00000080,inset 0 0 20px #00e5ff0d,inset 0 1px #ffffff0d}[data-theme=light] .glass,[data-theme=light] .play .pill,[data-theme=light] .play .hud-title,[data-theme=light] .play .hud-time,[data-theme=light] .play .hud-actions,[data-theme=light] .play .hud-left-tab{background:var(--glass);box-shadow:0 8px 24px #0f172a24}.play kbd{font:600 10px/1.4 var(--mono);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);color:var(--accent);background:#00e5ff0f;padding:0 4px}[data-theme=light] .play kbd{color:var(--text2)}.ell{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.world-loading{z-index:60;transition:opacity var(--dur-3) ease;background:radial-gradient(800px 500px at 50% 45%,#00e5ff1a,#0000 70%),#020306;place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.wl-rain{opacity:.4;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.world-loading.out{opacity:0;pointer-events:none}.wl-card{text-align:center;color:#e8f4ff;border-radius:var(--cut) 0;corner-shape:bevel;background:#000604d1;border:1px solid #00ff6a66;flex-direction:column;align-items:center;gap:8px;max-width:360px;padding:20px 24px;display:flex;position:relative;box-shadow:0 0 30px #00ff6a29}.wl-card b{font:700 var(--fs-lg) var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#c9ffdc;text-shadow:0 0 8px #00ff6a99}.wl-sub{font:500 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#7fe0a6}.wl-tip{color:#b8c8de}.spinner{border:2px solid #00ff6a;border-color:#00ff6a #00e5ff #00ff6a33 #00ff6a33;width:34px;height:34px;animation:.9s linear infinite spin;box-shadow:0 0 16px #00ff6a59}@keyframes spin{to{transform:rotate(360deg)}}.hud-top{top:var(--hud-gap);left:var(--hud-gap);right:var(--hud-gap);gap:var(--hud-gap);pointer-events:none;z-index:20;align-items:stretch;display:flex;position:absolute}.hud-top>*{pointer-events:auto}.hud-title{align-items:center;gap:8px;min-width:0;max-width:300px;padding:6px 10px 6px 6px;display:flex}.lvl-badge{border-radius:var(--cut-xs) 0;corner-shape:bevel;border:1px solid var(--accent);min-width:30px;height:26px;color:var(--accent);font:700 13px var(--mono);box-shadow:var(--glow);background:linear-gradient(135deg,#00e5ff40,#ff2bd640);flex:none;place-items:center;padding:0 5px;display:grid}[data-theme=light] .lvl-badge{background:var(--accent);color:#fff}.hud-name{font-size:var(--fs-md);letter-spacing:.04em;text-transform:uppercase;min-width:0}.phase{font:700 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;border-radius:var(--cut-xs) 0;corner-shape:bevel;background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent);flex:none;padding:3px 8px}[data-theme=light] .phase.plan{color:var(--accent-strong)}.phase.run{border-color:color-mix(in srgb, var(--good) 45%, transparent);color:var(--good-text);background:#00c86424}.phase.done{border-color:color-mix(in srgb, var(--warn) 45%, transparent);color:var(--warn-text);background:#ffb62724}.hud-kpis{scrollbar-width:none;flex:1;gap:6px;min-width:0;padding:1px;display:flex;overflow-x:auto}.hud-kpis::-webkit-scrollbar{display:none}.pill{color:var(--text);text-align:left;cursor:default;font:inherit;flex:none;align-items:center;gap:7px;min-width:76px;padding:6px 10px 6px 9px;display:flex}.pill.click{cursor:pointer}.pill.click:hover{border-color:var(--accent);box-shadow:var(--glow)}.pill>svg{color:var(--accent);filter:drop-shadow(0 0 4px #00e5ff99)}.pill.good>svg,.pill.good .pill-v{color:var(--good-text)}.pill.warn>svg,.pill.warn .pill-v{color:var(--warn-text)}.pill.bad>svg,.pill.bad .pill-v{color:var(--crit-text)}.pill.bad{border-color:#ff2a55b3;animation:1.1s ease-in-out infinite pill-alarm}.pill.bad>svg{filter:drop-shadow(0 0 5px #ff2a55cc)}@keyframes pill-alarm{50%{border-color:#ff2a55;box-shadow:0 0 18px #ff2a5573,inset 0 0 14px #ff2a5533}}.pill-b{flex-direction:column;min-width:0;line-height:1.15;display:flex}.pill-l{font:600 10px var(--font);letter-spacing:.09em;text-transform:uppercase;color:var(--text2);white-space:nowrap}.pill-v{font:650 15px var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:var(--text-glow)}.pill-m{background:#ffffff1a;height:3px;margin-top:3px;display:block;overflow:hidden}.pill-m i{background:var(--accent);height:100%;box-shadow:var(--glow);display:block}.pill.warn .pill-m i{background:var(--warn)}.pill.bad .pill-m i{background:var(--crit)}.hud-time{flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.hud-time .date{font-variant-numeric:tabular-nums;flex-direction:column;gap:4px;min-width:66px;padding:0 4px;display:flex}.hud-time .date b{font:650 var(--fs-md) var(--mono);color:var(--accent);text-shadow:var(--text-glow)}.play-btn{min-width:40px;padding:0 12px}.hud-actions{flex:none;align-items:center;gap:6px;padding:6px;display:flex}.btn.go{height:40px;padding:0 16px;font-size:15px;animation:2.2s ease-in-out infinite go-pulse}.btn.go.blocked{animation:none}@keyframes go-pulse{50%{box-shadow:0 0 34px #00e5ffbf,inset 0 -2px #0000002e}}.hud-left{top:76px;left:var(--hud-gap);z-index:15;width:286px;max-height:calc(100% - 230px);font-size:var(--fs-sm);animation:hud-in var(--dur-2) var(--ease-out);padding:10px 12px 12px;position:absolute;overflow:auto}@keyframes hud-in{0%{opacity:0;transform:translateY(-4px)}}.hl-h{align-items:center;gap:6px;margin-bottom:6px;display:flex}.hl-h>svg{color:var(--accent)}.hl-h b,.hud-left-tab span{font:700 12px var(--mono);letter-spacing:.14em;text-transform:uppercase}.hud-left-tab{top:76px;left:var(--hud-gap);z-index:15;color:var(--text);cursor:pointer;font:inherit;align-items:center;gap:6px;padding:8px 12px;font-weight:650;display:flex;position:absolute}.hud-left-tab>svg{color:var(--accent)}.goals{flex-direction:column;margin:0 0 8px;padding:0;list-style:none;display:flex}.goals li{border-radius:6px;grid-template-columns:28px minmax(0,1fr) auto 16px;align-items:center;gap:6px;padding:4px 2px;line-height:1.3;display:grid}.goals li.tier-start{border-top:1px dashed var(--border);margin-top:4px;padding-top:7px}.g-st{color:var(--star);letter-spacing:-1px;white-space:nowrap;font-size:10px}.g-l{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.g-v{font:600 12px var(--mono);font-variant-numeric:tabular-nums;color:var(--text2);white-space:nowrap}.g-ic{color:var(--muted);place-items:center;display:grid}.goals li.pass .g-ic,.goals li.pass .g-v{color:var(--good-text)}.goals li.miss .g-ic,.goals li.miss .g-v{color:var(--crit-text)}.advisor{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:8px;display:flex}.advisor .link-btn{align-self:flex-start}.tip{text-align:left;font:inherit;font-size:var(--fs-sm);border:0;border-left:3px solid var(--accent);color:var(--text);cursor:pointer;background:linear-gradient(90deg,#00e5ff14,#ffffff05);align-items:flex-start;gap:7px;padding:7px 9px;line-height:1.4;display:flex}.tip:disabled{cursor:default;opacity:1}.tip>svg{color:var(--accent);flex:none;margin-top:2px}.tip.warn{border-left-color:var(--warn)}.tip.warn>svg{color:var(--warn-text)}.tip.bad{border-left-color:var(--crit)}.tip.bad>svg{color:var(--crit-text)}.tip.good{border-left-color:var(--good)}.tip.good>svg{color:var(--good-text)}.hud-right{top:76px;right:var(--hud-gap);z-index:16;width:352px;max-height:calc(100% - 200px);font-size:var(--fs-sm);animation:hud-in var(--dur-2) var(--ease-out);padding:12px;position:absolute;overflow:auto}.insp-h{align-items:flex-start;gap:9px;display:flex}.insp-h b{font-size:15px}.insp-ico{border-radius:var(--cut-xs) 0;corner-shape:bevel;border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);background:var(--accent-soft);width:32px;height:32px;color:var(--accent);flex:none;place-items:center;display:grid}.insp-status{background:#ffffff0d;border-left:3px solid;margin:8px 0 2px;padding:5px 9px;font-weight:650}.insp-status.good{color:var(--good-text);background:#22c55e1a}.insp-status.warn{color:var(--warn-text);background:#fab2191a}.insp-status.bad{color:var(--crit-text);background:#dc262624;animation:1.1s ease-in-out infinite pill-alarm}.insp-stats{flex-direction:column;margin-top:8px;display:flex}.insp-row{border-bottom:1px dashed var(--border);grid-template-columns:1fr auto;gap:2px 10px;padding:5px 0;display:grid}.insp-row .k{color:var(--text2)}.insp-row .v{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.insp-f{font:11px/1.35 var(--mono);color:#7dffb4;white-space:normal;word-break:break-word;background:#00ff6a0f;border-left:2px solid #00ff6a8c;grid-column:1/-1;margin-top:2px;padding:3px 6px;display:block}[data-theme=light] .insp-f{color:#0369a1}.insp-f.big{margin:6px 0;padding:6px 8px;font-size:12.5px}.insp-notes{color:var(--text2);margin:8px 0 0;padding-left:18px;line-height:1.4}.insp-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.sys-list{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:12px;padding-top:10px;display:flex}.sys-h{align-items:center;gap:6px;margin-bottom:5px;font-weight:650;display:flex}.sys-h svg{color:var(--accent)}.sys-opts{flex-wrap:wrap;gap:5px;display:flex}.sys-opt{border-radius:var(--cut-xs) 0;corner-shape:bevel;border:1px solid var(--border2);color:var(--text);font:inherit;cursor:pointer;text-align:left;max-width:100%;transition:border-color var(--dur-1), background var(--dur-1);background:#00e5ff08;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 9px;font-size:12px;display:flex}.sys-opt:hover:not(:disabled){border-color:var(--accent)}.sys-opt.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent), var(--glow);font-weight:650}.sys-opt:disabled{opacity:.45;cursor:not-allowed}.sys-d{flex-wrap:wrap;gap:4px;display:flex}.sys-d i{font-style:normal;font:500 10.5px var(--mono);font-variant-numeric:tabular-nums;background:#ffffff0f;padding:0 4px}.sys-d i.good{color:var(--good-text)}.sys-d i.bad{color:var(--crit-text)}.sys-d i.warnc{color:var(--warn-text)}.hud-bottom{left:var(--hud-gap);right:var(--hud-gap);bottom:var(--hud-gap);align-items:flex-end;gap:var(--hud-gap);pointer-events:none;z-index:18;display:flex;position:absolute}.hud-bottom>*{pointer-events:auto}.hotbar-wrap{pointer-events:none;flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.hotbar-wrap>*{pointer-events:auto}.tool-opts{animation:hud-in var(--dur-2) var(--ease-out);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:6px 8px 6px 12px;display:flex}.hotbar{scrollbar-width:thin;align-items:stretch;gap:4px;max-width:100%;padding:6px;display:flex;overflow-x:auto}.slot-wrap{flex:none;gap:4px;display:flex}.slot-sep{background:linear-gradient(180deg, transparent, var(--accent), transparent);opacity:.6;width:1px;margin:8px 3px}.slot{border-radius:var(--cut-sm) 0;corner-shape:bevel;width:auto;min-width:78px;max-width:108px;min-height:64px;color:var(--text);font:inherit;cursor:pointer;transition:background var(--dur-1), border-color var(--dur-1), transform var(--dur-1), box-shadow var(--dur-1);background:linear-gradient(#00e5ff0f,#00e5ff03);border:1px solid #00e5ff1f;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:3px;padding:7px 4px 6px;display:flex;position:relative}.slot:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 60%, transparent);background:linear-gradient(#00e5ff29,#00e5ff0a);transform:translateY(-2px);box-shadow:0 0 14px #00e5ff40}.slot:active:not(:disabled){filter:brightness(1.5);transform:translateY(0)scale(.95)}.slot.on{border-color:var(--accent);background:linear-gradient(#00e5ff47,#00e5ff14);box-shadow:0 0 22px #00e5ff73,inset 0 0 12px #00e5ff40}.slot.accent{background:linear-gradient(#ff2bd633,#ff2bd60d);border-color:#ff2bd699;box-shadow:0 0 14px #ff2bd640}.slot.accent>svg{color:var(--accent2)}.slot:disabled{opacity:.4;cursor:not-allowed}.slot>svg{color:var(--accent);filter:drop-shadow(0 0 4px #00e5ff8c)}.slot.on>svg{color:#fff}.slot kbd{padding:0 3px;font-size:9px;position:absolute;top:3px;left:4px}.slot-l{text-align:center;letter-spacing:.02em;font-size:11.5px;font-weight:700;line-height:1.15}.slot-s{font:500 10px var(--mono);color:var(--text2);text-align:center;font-variant-numeric:tabular-nums;line-height:1.1}[data-theme=light] .slot,[data-theme=light] .slot:hover:not(:disabled){box-shadow:none;background:#0369a10d}[data-theme=light] .slot.on{background:var(--accent-soft)}[data-theme=light] .slot.on>svg{color:var(--accent)}.overlay-bar{flex-direction:column;gap:2px;width:168px;padding:6px;display:flex}.overlay-bar>button{color:var(--text2);font:inherit;font-size:var(--fs-sm);border-radius:var(--cut-xs) 0;corner-shape:bevel;cursor:pointer;transition:background var(--dur-1), border-color var(--dur-1), color var(--dur-1), box-shadow var(--dur-1);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:6px 8px;display:flex}.overlay-bar>button span{text-align:left;flex:1}.overlay-bar>button:hover{color:var(--text);background:#00e5ff14}.overlay-bar>button.on{color:var(--text);border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 14px #00e5ff4d}.overlay-bar>button.dv{color:#8dffbe;border-color:#00ff6a38;margin-bottom:2px}.overlay-bar>button.dv>svg{color:#00ff6a;filter:drop-shadow(0 0 4px #00ff6ab3)}.overlay-bar>button.dv kbd{color:#8dffbe;background:#00ff6a0f;border-color:#00ff6a66}.overlay-bar>button.dv:hover{background:#00ff6a14}.overlay-bar>button.dv.on{color:#eafff1;background:#00ff6a29;border-color:#00ff6a;box-shadow:0 0 16px #00ff6a66}[data-theme=light] .overlay-bar>button.dv,[data-theme=light] .overlay-bar>button.dv kbd{color:var(--matrix)}[data-theme=light] .overlay-bar>button.dv.on{color:#fff;background:var(--matrix)}.dv-legend em{color:#8dffbe}[data-theme=light] .dv-legend em{color:var(--matrix)}.ov-legend{color:var(--text2);grid-template-columns:auto 1fr auto;align-items:center;gap:4px 6px;padding:6px 4px 0;font-size:10.5px;display:grid}.ov-legend i{min-width:60px;height:6px;display:block;box-shadow:0 0 8px #ffffff26}.ov-legend em{color:var(--text2);grid-column:1/-1;font-style:normal}.ov-legend i:first-child{grid-column:1/-1}.cam-bar{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.cams{align-items:center;gap:2px;padding:4px;display:flex}.cam-sep{background:linear-gradient(180deg, transparent, var(--accent), transparent);opacity:.6;width:1px;height:20px;margin:0 3px}.crumbs{z-index:17;font-size:var(--fs-sm);white-space:nowrap;align-items:center;gap:4px;max-width:calc(100% - 640px);padding:4px 12px 4px 4px;display:flex;position:absolute;top:76px;left:50%;transform:translate(-50%)}.crumbs .link{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tooltip{z-index:70;pointer-events:none;border:1px solid var(--glass-border);border-radius:var(--cut-sm) 0;corner-shape:bevel;max-width:300px;box-shadow:var(--shadow);color:var(--text);background:linear-gradient(#060c1cf5,#03060ef5);flex-direction:column;gap:2px;padding:8px 10px;font-size:12px;line-height:1.4;display:flex;position:fixed}[data-theme=light] .tooltip{background:#fffffffa}.tooltip.good{box-shadow:var(--shadow), 0 0 18px #00ff6a38;border-color:#00c864cc}.tooltip.warn{box-shadow:var(--shadow), 0 0 18px #ffb62738;border-color:#ffb627d9}.tooltip.bad{box-shadow:var(--shadow), 0 0 18px #ff2a554d;border-color:#ff2a55e6}.tooltip .verdict{font:700 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--good-text);background:#00c86424;align-self:flex-start;align-items:center;gap:5px;margin-bottom:3px;padding:2px 8px 2px 6px;display:flex}.tooltip .verdict.warn{color:var(--warn-text);background:#fab21924}.tooltip .verdict.bad{color:var(--crit-text);background:#ef444424}.tooltip .cost{font-weight:650;font-family:var(--mono);color:var(--power);margin-top:2px}.tooltip .tag{background:#ffffff12;align-self:flex-start;padding:1px 6px;font-size:10.5px}.tooltip .tag.good{color:var(--good-text)}.tooltip .tag.bad{color:var(--crit-text)}.tooltip .tag.warn{color:var(--warn-text)}.lesson-pop{left:calc(var(--hud-gap) + 176px);z-index:30;width:372px;max-width:calc(100% - 16px);animation:holo-in .35s var(--ease-out);border-color:#00e5ff80;padding:12px 14px;font-size:13px;line-height:1.5;position:absolute;bottom:148px}.lesson-pop p{color:var(--text2);margin:8px 0 4px}@keyframes pop-in{0%{opacity:0;transform:translateY(16px)scale(.96)}}.tour-ring{z-index:64;pointer-events:none;border-radius:var(--cut) 0;corner-shape:bevel;border:2px solid var(--accent2);transition:left var(--dur-2) var(--ease-out), top var(--dur-2) var(--ease-out), width var(--dur-2) var(--ease-out), height var(--dur-2) var(--ease-out);animation:1.6s ease-in-out infinite tour-pulse;position:fixed;box-shadow:0 0 0 4px #ff2bd633,0 0 26px #ff2bd68c}@keyframes tour-pulse{50%{box-shadow:0 0 0 7px #ff2bd61a,0 0 36px #ff2bd6bf}}.tour-card{z-index:65;width:min(330px,100vw - 16px);animation:holo-in .3s var(--ease-out);transition:left var(--dur-2) var(--ease-out), top var(--dur-2) var(--ease-out);border-color:#ff2bd699;padding:12px 14px;font-size:13.5px;line-height:1.45;position:fixed;box-shadow:0 10px 30px #0000008c,0 0 24px #ff2bd62e}.tour-card p{color:var(--text);margin:6px 0 10px}.tour-arrow{background:inherit;border:inherit;width:14px;height:14px;position:absolute;transform:rotate(45deg)}.tour-card.up .tour-arrow{border-bottom:0;border-right:0;top:-8px}.tour-card.down .tour-arrow{border-top:0;border-left:0;bottom:-8px}.tour-h{align-items:center;gap:8px;display:flex}.tour-h b{letter-spacing:.04em;text-transform:uppercase;flex:1;font-size:15px}.tour-n{font:700 11px var(--mono);color:#1a0014;background:var(--accent2);box-shadow:var(--glow2);padding:1px 7px}[data-theme=light] .tour-n{color:#fff}.tour-f{align-items:center;gap:8px;display:flex}.tour-dots{flex:1;gap:4px;display:flex}.tour-dots i{background:var(--border2);width:6px;height:6px;transform:skew(-20deg)}.tour-dots i.seen{background:color-mix(in srgb, var(--accent) 55%, transparent)}.tour-dots i.on{background:var(--accent2);width:16px;box-shadow:var(--glow2)}.tour-wait{align-items:center;gap:6px;display:flex}.dot-pulse{background:var(--accent2);width:7px;height:7px;animation:1.2s ease-in-out infinite pulse}.pdrawer.drawer{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-left:1px solid var(--glass-border);width:min(640px,100%);animation:slide-in var(--dur-2) var(--ease-out);background:linear-gradient(#070b18f7,#03050cfa);flex-direction:column;padding:0;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;box-shadow:-18px 0 40px #00000080,-1px 0 #00e5ff59,inset 1px 0 20px #00e5ff0d}[data-theme=light] .pdrawer.drawer{background:var(--bg)}.pdrawer.drawer.menu{width:min(340px,100%)}@keyframes slide-in{0%{opacity:0;transform:translate(40px)}}.drawer-h{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 12px;display:flex}.drawer-h .tabs{margin:0;overflow-x:auto}.drawer-b{flex:1;padding:12px;overflow:auto}.drawer-b .split{grid-template-columns:1fr}.menu-list{flex-direction:column;gap:4px;display:flex}.menu-item{border-radius:var(--cut-sm) 0;corner-shape:bevel;height:44px;color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:12px;padding:0 12px;font-size:15px;font-weight:560;display:flex}.menu-item:hover{background:var(--hover);border-color:color-mix(in srgb, var(--accent) 45%, transparent);box-shadow:var(--glow);transform:translate(3px)}.menu-item{transition:background var(--dur-1), border-color var(--dur-1), transform var(--dur-1), box-shadow var(--dur-1)}.menu-item>svg{color:var(--accent)}.help-modal .help-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;display:grid}.help-group h4{color:var(--accent);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin:0 0 6px;display:flex}.help-group.touch{margin-bottom:12px}.keys{margin:0}.key-row{border-bottom:1px dashed var(--border);font-size:var(--fs-sm);grid-template-columns:120px minmax(0,1fr);align-items:center;gap:8px;padding:4px 0;display:grid}.key-row dt{color:var(--text2);flex-wrap:wrap;align-items:center;gap:3px;display:flex}.key-row dd{margin:0}.help-modal kbd,.tour-card kbd{font:600 11px/1.5 var(--mono);text-align:center;border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);min-width:20px;color:var(--accent);background:var(--surface2);border-bottom-width:2px;padding:0 6px}[data-theme=light] .help-modal kbd,[data-theme=light] .tour-card kbd{color:var(--text)}.level-end.modal{width:min(520px,100%);animation:holo-in .4s var(--ease-out);padding:0 0 18px;position:relative;overflow:hidden auto}.le-x{z-index:2;position:absolute;top:10px;right:10px}.le-banner{text-align:center;background:radial-gradient(420px 180px at 50% 0%, var(--accent-soft), transparent 80%);flex-direction:column;align-items:center;gap:4px;padding:26px 20px 18px;display:flex}.le-banner.pass{background:radial-gradient(420px 200px at 50% 0,#ffd23f3d,#0000 80%)}.le-banner.fail{background:radial-gradient(420px 200px at 50% 0,#ff2a5533,#0000 80%)}.le-banner h2{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;text-shadow:var(--text-glow);margin:8px 0 0;font-size:28px}.le-banner.pass h2{color:var(--star);text-shadow:0 0 18px #ffd23f8c}[data-theme=light] .le-banner.pass h2{color:var(--text);text-shadow:none}.le-banner.fail h2{color:var(--crit-text)}.le-banner p{color:var(--text2);margin:0}.le-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 18px;display:grid}.le-stats>div{border-radius:var(--cut-sm) 0;corner-shape:bevel;background:var(--surface2);border:1px solid var(--border);grid-template-columns:auto 1fr;align-items:center;gap:0 6px;padding:8px 10px;display:grid}.le-stats svg{color:var(--accent);grid-row:span 2}.le-stats b{font:650 var(--fs-lg) var(--mono);font-variant-numeric:tabular-nums;color:var(--accent);text-shadow:var(--text-glow)}.le-goals{font-size:var(--fs-sm);margin:12px 18px 0;padding:0;list-style:none}.le-goals li{border-bottom:1px dashed var(--border);align-items:center;gap:8px;padding:5px 2px;display:flex}.le-goals li.pass>svg{color:var(--good-text)}.le-goals li.miss>svg{color:var(--crit-text)}.le-goals li b{font-family:var(--mono);font-variant-numeric:tabular-nums}.le-goals li.pass b{color:var(--good-text)}.le-goals li.miss b{color:var(--crit-text)}.le-actions{flex-direction:column;align-items:center;gap:10px;margin-top:16px;padding:0 18px;display:flex}.le-actions .btn.primary.lg{min-width:260px}.play .hud-top,.play .hud-left,.play .hud-left-tab,.play .hud-bottom,.play .hud-right,.play .crumbs{transition:opacity .6s var(--ease-out), transform .6s var(--ease-out)}.play.intro .hud-top,.play.intro .hud-left,.play.intro .hud-left-tab,.play.intro .hud-bottom,.play.intro .hud-right,.play.intro .crumbs{opacity:0;pointer-events:none;transform:translateY(-6px)}.intro-layer{z-index:55;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.intro-layer .lb{height:11vh;animation:lb-in .7s var(--ease-out) both;background:#000;position:absolute;left:0;right:0}.intro-layer .lb.top{top:0;box-shadow:0 1px #00e5ff59}.intro-layer .lb.bottom{transform-origin:bottom;bottom:0;box-shadow:0 -1px #ff2bd659}@keyframes lb-in{0%{transform:scaleY(0)}}.intro-card{max-width:min(640px,88vw);animation:holo-in .9s var(--ease-out) .3s both;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:calc(11vh + 28px);left:6vw}.intro-card .ic-k{font:600 12px var(--mono);letter-spacing:.22em;text-transform:uppercase;color:#00ff6a;text-shadow:0 0 10px #00ff6a99}.intro-card h2{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:#f0fbff;text-shadow:0 0 22px #00e5ff99,0 2px #000c;margin:0;font-size:clamp(28px,4.4vw,54px);line-height:1.05}.intro-card .ic-s{font:500 14px var(--mono);letter-spacing:.08em;color:#ffd27a;text-shadow:0 0 10px #ffb62780}.intro-skip{pointer-events:auto;position:absolute;bottom:calc(11vh + 14px);right:18px}.play.alarm:after{content:"";z-index:12;pointer-events:none;animation:1.4s ease-in-out infinite alarm-edge;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 0 90px #ff1e4652}@keyframes alarm-edge{50%{box-shadow:inset 0 0 50px #ff1e461f}}.play.data-view.q-low .play-canvas canvas{filter:grayscale()sepia()hue-rotate(78deg)saturate(3.2)brightness(.8)contrast(1.2)}.dv-rain{z-index:1;pointer-events:none;opacity:.35;mix-blend-mode:screen;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.dtag{pointer-events:none;white-space:nowrap;font:600 11px/1.25 var(--mono);color:#c9ffdc;text-shadow:0 0 6px #00ff6ab3;background:#000c05d1;border:1px solid #00ff6a8c;border-left-width:3px;padding:2px 6px;transform:translate(-50%,-100%);box-shadow:0 0 10px #00ff6a33}.dtag.warn{color:#ffe2a6;text-shadow:0 0 6px #ffb627b3;border-color:#ffb627cc}.dtag.bad{color:#ffd0da;text-shadow:0 0 6px #ff2a55cc;border-color:#ff2a55e6}.dtag.big{padding:3px 8px;font-size:12.5px}.dtag small{letter-spacing:.1em;text-transform:uppercase;color:#7fe0a6;text-shadow:none;font-size:9.5px;display:block}.crumbs .link{font-family:var(--mono);letter-spacing:.04em}@media (max-width:1560px){.play.run .phase,.play.done .phase{display:none}.play.run .hud-title,.play.done .hud-title{max-width:260px}}@media (max-width:1180px){.hud-left{width:252px}.hud-right{width:320px}.crumbs{max-width:calc(100% - 560px)}.pill{min-width:0;padding:6px 10px 6px 8px}.pill-v{font-size:var(--fs-md)}}@media (max-width:900px){.hud-top{flex-wrap:wrap}.hud-kpis{flex-basis:100%;order:3}.hud-title{flex:1;max-width:none}.hud-left,.hud-left-tab{top:128px}.crumbs{top:128px;left:auto;right:var(--hud-gap);max-width:60%;transform:none}.lesson-pop{left:var(--hud-gap);bottom:150px}}@media (max-width:760px){.play{--hud-gap:6px}.hud-top{gap:6px}.hud-title{padding:4px 8px 4px 4px}.hud-name{font-size:13px}.phase{display:none}.hud-time{gap:4px;padding:4px 6px}.hud-time .date{min-width:54px}.hud-time .date b{font-size:12.5px}.hud-time .seg button{padding:0 7px}.hud-actions{padding:4px}.btn.go{height:36px;padding:0 12px;font-size:14px}.pill{border-radius:var(--cut-sm) 0;gap:5px;padding:4px 9px 4px 7px}.pill>svg{width:13px;height:13px}.pill-l{font-size:9.5px}.pill-v{font-size:13px}.hud-left,.hud-left-tab,.crumbs{top:112px}.hud-left{left:var(--hud-gap);right:var(--hud-gap);z-index:25;width:auto;max-height:46vh}.hud-right{top:auto;left:var(--hud-gap);right:var(--hud-gap);width:auto;max-height:44vh;bottom:132px}.hud-bottom{flex-wrap:wrap;gap:6px}.overlay-bar{flex-direction:row;order:2;width:auto;padding:3px}.overlay-bar>button{padding:8px 7px}.overlay-bar>button span,.overlay-bar kbd,.ov-legend{display:none}.hotbar-wrap{flex-basis:100%;order:1}.hotbar{width:100%;padding:4px}.slot{min-width:64px;max-width:88px;min-height:56px;padding:5px 6px}.slot-l{font-size:10.5px}.slot-s{font-size:9px}.cam-bar{order:3;margin-left:auto}.cams{gap:0;padding:3px}.cams .btn.sm.icon{width:32px;height:34px}.cam-sep{margin:0 2px}.lesson-pop{left:var(--hud-gap);right:var(--hud-gap);width:auto;bottom:132px}.help-modal .help-grid{grid-template-columns:minmax(0,1fr)}.key-row{grid-template-columns:104px minmax(0,1fr)}.le-stats{gap:6px;padding:0 12px}.le-stats>div{padding:6px 8px}.le-goals{margin:10px 12px 0}.le-actions .btn.primary.lg{width:100%;min-width:0}}@media (max-width:520px){.hud-title{flex:none;gap:4px;padding:3px 5px 3px 3px}.play.run .hud-name,.play.done .hud-name{display:none}.hud-title .btn.icon{width:28px}.hud-time{gap:3px;padding:3px 4px}.hud-time .date{min-width:48px;padding:0 2px}.hud-time .progress-line{min-width:0}.hud-time .date b{font-size:12px}.hud-time .seg button{padding:0 6px;font-size:12px}.play-btn{min-width:34px;padding:0 8px}.hud-actions{padding:3px}.hud-sheets.btn.sm{padding:0 8px}}@media (max-width:420px){.cams .btn.sm.icon[aria-keyshortcuts=Q],.cams .btn.sm.icon[aria-keyshortcuts=E]{display:none}}html.in-play,html.in-play body{overscroll-behavior:none;overflow:hidden}.app-play{touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app-play :-webkit-any(input,textarea,select){-webkit-user-select:text;user-select:text}.app-play :is(input,textarea,select){-webkit-user-select:text;user-select:text}.app-play :is(.play-canvas,.play-canvas canvas){touch-action:none}.app-play :is(.hud-left,.hud-right,.hud-right>.insp,.drawer-b,.peek-b,.lesson-pop,.modal,.drawer,.overlay){touch-action:pan-y;overscroll-behavior:contain}.app-play :is(.hud-kpis,.hotbar,.drawer-h .tabs,.tabs,.sel-bar .insp-actions){touch-action:pan-x;overscroll-behavior:contain}.play.lay-desk .hud-top{top:calc(var(--hud-gap) + var(--sat));left:calc(var(--hud-gap) + var(--sal));right:calc(var(--hud-gap) + var(--sar))}.play.lay-desk .hud-bottom{bottom:calc(var(--hud-gap) + var(--sab));left:calc(var(--hud-gap) + var(--sal));right:calc(var(--hud-gap) + var(--sar))}[data-touch="1"] .app-play :-webkit-any(.btn,.btn.sm){min-width:44px;min-height:44px}[data-touch="1"] .app-play :is(.btn,.btn.sm){min-width:44px;min-height:44px}[data-touch="1"] .play .cams .btn.sm.icon,[data-touch="1"] .play .hud-title .btn.icon{width:44px;min-width:44px;height:44px}[data-touch="1"] .app-play :-webkit-any(.btn.icon,.btn.sm.icon){width:44px;min-width:44px;height:44px}[data-touch="1"] .app-play :is(.btn.icon,.btn.sm.icon){width:44px;min-width:44px;height:44px}[data-touch="1"] .app-play :is(.seg button,.tabs button,[role=tab],.sys-opt,.menu-item,.tip,.link-btn,.hud-left-tab,.pill.click,.chip){min-height:44px}[data-touch="1"] .app-play .seg button{min-width:44px}[data-touch="1"] .app-play :is(.term,.crumbs .link){align-items:center;min-width:44px;min-height:44px;display:inline-flex}[data-touch="1"] .app-play .insp-row{align-items:center}[data-touch="1"] .app-play .insp-row .term{text-align:left;-webkit-text-decoration:underline dashed color-mix(in srgb, var(--accent) 75%, transparent);text-decoration:underline dashed color-mix(in srgb, var(--accent) 75%, transparent);text-underline-offset:4px;border-bottom:0}[data-touch="1"] .play .overlay-bar>button{justify-content:center;min-width:44px;min-height:44px}[data-touch="1"] .app-play .switch{padding:10px 0}[data-touch="1"] .play :-webkit-any(.insp-actions,.slot,.overlay-bar,.tool-opts) kbd{display:none}[data-touch="1"] .play :is(.insp-actions,.slot,.overlay-bar,.tool-opts) kbd{display:none}[data-touch="1"] .app-play :-webkit-any(button,[role=button],[role=switch]):active:not(:disabled){filter:brightness(1.5)saturate(1.2)}[data-touch="1"] .app-play :is(button,[role=button],[role=switch]):active:not(:disabled){filter:brightness(1.5)saturate(1.2)}[data-touch="1"] .app-play :is(.btn,.slot,.menu-item,.overlay-bar>button,.pill.click,.sys-opt,.hud-left-tab,.tip,.seg button,.sheet-grip):active:not(:disabled){transition-duration:60ms;transform:scale(.95)}[data-touch="1"] .app-play :is(.slot,.overlay-bar>button,.seg button):active:not(:disabled){box-shadow:0 0 0 2px var(--accent), 0 0 18px #00e5ff99}@media (hover:none){.app-play :-webkit-any(.slot,.menu-item,.choice):hover:not(:active){transform:none}.app-play :is(.slot,.menu-item,.choice):hover:not(:active){transform:none}.app-play .btn:hover:after{transform:translate(-130%)}}.touch-fx{z-index:80;pointer-events:none;position:fixed;transform:translate(-50%,-50%)}.tap-ripple{border:2px solid var(--accent);border-radius:50%;width:48px;height:48px;animation:.45s ease-out forwards tap-ripple;box-shadow:0 0 16px #00e5ffa6,inset 0 0 10px #00e5ff66}@keyframes tap-ripple{0%{opacity:.95;transform:translate(-50%,-50%)scale(.3)}to{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}@property --fill{syntax:"<number>";inherits:false;initial-value:0}.press-ring{background:conic-gradient(var(--accent2) calc(var(--fill) * 1%), #ff2bd62e 0);filter:drop-shadow(0 0 8px #ff2bd6cc);width:68px;height:68px;animation:press-fill var(--ms,.36s) linear forwards;border-radius:50%;-webkit-mask:radial-gradient(circle,#0000 27px,#000 28px);mask:radial-gradient(circle,#0000 27px,#000 28px)}@keyframes press-fill{to{--fill:100}}.press-ring.pop{--fill:100;animation:.26s ease-out forwards press-pop}@keyframes press-pop{to{opacity:0;transform:translate(-50%,-50%)scale(1.6)}}.press-ring.gone{opacity:0;transition:opacity .15s}[data-motion=reduce] .tap-ripple{opacity:0;animation:none}.hud-prim{display:flex}.hud-prim .btn.go,.hud-prim .btn.primary{flex:1;height:50px;font-size:15px}.hud-prim:empty{display:none}.place-bar{animation:hud-in var(--dur-2) var(--ease-out);border-color:#00e5ff73;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px;display:flex}.place-bar.good{border-color:#00c864d9;box-shadow:0 10px 30px #00000080,0 0 18px #00ff6a2e}.place-bar.warn{border-color:#ffb627d9}.place-bar.bad{border-color:#ff2a55e6}.pb-info{flex-wrap:wrap;flex:220px;align-items:center;gap:4px 8px;min-width:0;font-size:12.5px;line-height:1.35;display:flex}.pb-tool{font:700 11.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);align-items:center;gap:5px;display:inline-flex}.pb-hint{color:var(--text);align-items:center;gap:6px;display:inline-flex}.pb-hint>svg{color:var(--accent2);flex:none}.pb-line{color:var(--text2);flex-basis:100%;min-width:0}.place-bar .cost{font:650 12.5px var(--mono);color:var(--power)}.place-bar .verdict,.peek .verdict{font:700 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--good-text);background:#00c86424;align-items:center;gap:5px;padding:2px 8px 2px 6px;display:inline-flex}.place-bar .verdict.warn{color:var(--warn-text);background:#fab21924}.place-bar .verdict.bad{color:var(--crit-text);background:#ef444424}.pb-actions{flex-wrap:wrap;flex:auto;justify-content:flex-end;align-items:center;gap:6px;display:flex}.pb-ok{flex:1 0 auto;min-width:108px}.btn.pb-row.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent), var(--glow)}.peek{z-index:48;width:320px;font-size:var(--fs-sm);animation:holo-in .28s var(--ease-out);border-color:#ff2bd68c;flex-direction:column;padding:12px;display:flex;position:absolute;box-shadow:0 10px 30px #0000008c,0 0 22px #ff2bd633}.peek>*{flex:none}.peek>.peek-b{flex:auto;min-height:0;overflow:auto}.peek-k{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent2)}.peek-actions{gap:8px;padding-top:10px;display:flex}.sel-bar{animation:hud-in var(--dur-2) var(--ease-out);border-color:#00e5ff73;padding:5px}.sel-bar .insp-actions{scrollbar-width:none;flex-wrap:nowrap;margin:0;overflow-x:auto}.sel-bar .insp-actions::-webkit-scrollbar{display:none}.sel-bar .insp-actions>*{flex:none}.peek-actions .btn{flex:1}.play.lay-desk .peek{left:clamp(8px, calc(var(--peek-x) + 18px), calc(100% - 330px));top:clamp(8px, calc(var(--peek-y) - 60px), calc(100% - 380px));position:fixed}.sheet-grip{display:none}.play.lay-compact :-webkit-any(.hud-right,.hud-left,.peek,.lesson-pop,.pdrawer)>.sheet-grip{cursor:grab;touch-action:none;background:0 0;border:0;flex:none;justify-content:center;align-items:flex-start;width:calc(100% + 24px);height:44px;margin:0 -12px -18px;padding:8px 0 0;display:flex}.play.lay-compact :is(.hud-right,.hud-left,.peek,.lesson-pop,.pdrawer)>.sheet-grip{cursor:grab;touch-action:none;background:0 0;border:0;flex:none;justify-content:center;align-items:flex-start;width:calc(100% + 24px);height:44px;margin:0 -12px -18px;padding:8px 0 0;display:flex}.sheet-grip i{background:color-mix(in srgb, var(--accent) 55%, transparent);width:44px;height:5px;box-shadow:var(--glow);border-radius:3px;display:block}.play.lay-fold{--hud-gap:8px}.play.lay-fold .hud-top{top:var(--top);left:var(--lft);width:calc(var(--sceneR) - var(--lft));flex-wrap:wrap;align-items:flex-start;gap:6px;right:auto}.play.lay-fold .hud-title{flex:100%;max-width:none}.play.lay-fold .hud-kpis{flex:100%;order:0;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;padding:0;display:grid;overflow:visible}.play.lay-fold .pill{min-width:0}.play.lay-fold .hud-top-r,.play.lay-compact .hud-top-r{top:var(--top);right:var(--rgt);z-index:21;padding:4px;position:absolute}.play.lay-fold .hud-top-r{max-width:calc(100% - var(--colL) - var(--rgt))}.play.lay-fold :-webkit-any(.hud-left,.hud-right,.peek,.lesson-pop){left:var(--colL);right:var(--rgt);width:auto;top:calc(var(--top) + 60px);max-height:calc(var(--infoB) - var(--top) - 60px);position:absolute;bottom:auto;overflow:auto}.play.lay-fold :is(.hud-left,.hud-right,.peek,.lesson-pop){left:var(--colL);right:var(--rgt);width:auto;top:calc(var(--top) + 60px);max-height:calc(var(--infoB) - var(--top) - 60px);position:absolute;bottom:auto;overflow:auto}.play.lay-fold .hud-left-tab{top:calc(var(--top) + 60px);left:var(--colL)}.play.lay-fold .hud-left{z-index:15}.play.lay-fold .hud-right{z-index:16}.play:-webkit-any(.lay-fold,.lay-compact):has(>.hud-right)>.hud-left{display:none}.play:is(.lay-fold,.lay-compact):has(>.hud-right)>.hud-left{display:none}.play:-webkit-any(.lay-fold,.lay-compact) .peek{overflow:hidden}.play:is(.lay-fold,.lay-compact) .peek{overflow:hidden}.play.lay-fold .crumbs{top:calc(var(--top) + var(--top-h,120px) + 8px);left:var(--lft);max-width:calc(var(--sceneR) - var(--lft));right:auto;overflow-x:auto;transform:none}.play.lay-fold .hud-views{left:var(--lft);bottom:var(--bot);width:calc(var(--sceneR) - var(--lft));z-index:18;pointer-events:none;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute}.play.lay-fold .hud-views>*{pointer-events:auto}.play.lay-fold .cam-bar{align-items:flex-start}.play.lay-fold .hud-thumb{left:var(--colL);right:var(--rgt);bottom:var(--bot);max-height:calc(100% - var(--actT) - var(--bot));z-index:18;pointer-events:none;flex-direction:column;justify-content:flex-end;gap:8px;display:flex;position:absolute}.play.lay-fold .hud-thumb>*{pointer-events:auto}.play.lay-fold .hotbar-wrap{flex:none;align-items:stretch}.play.lay-fold .hotbar{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:4px;width:100%;padding:5px;display:grid;overflow:visible}.play.lay-fold .slot-wrap{display:contents}.play.lay-fold .slot-sep{display:none}.play.lay-fold .slot{width:100%;min-width:0;max-width:none;min-height:58px}.play.lay-fold .hud-time{flex-wrap:wrap;row-gap:4px}.play.lay-fold .hud-time .date{flex-direction:row;flex:calc(100% - 56px);align-items:center;gap:10px;padding:2px 4px 0}.play.lay-fold .hud-time .date b{white-space:nowrap}.play.lay-fold .hud-time .progress-line{flex:1}.play.lay-fold .hud-time .ff{order:1}.play.lay-fold .hud-time .ff.hide-sm{display:inline-flex!important}.play.lay-fold .hud-time :-webkit-any(.play-btn,.seg,.btn.icon:not(.ff)){order:2}.play.lay-fold .hud-time :is(.play-btn,.seg,.btn.icon:not(.ff)){order:2}.play.lay-fold .hud-time .play-btn{flex:1}.play.lay-fold .pill,.play.lay-fold .pill-b{overflow:hidden}.play.lay-fold .pill-l{text-overflow:ellipsis;overflow:hidden}.play.lay-fold .pdrawer.drawer{left:var(--colL);width:auto;padding:var(--sat) var(--sar) var(--sab) 0;right:0}html[data-layout=fold] .app-play .overlay{padding:calc(var(--sat) + 8px) calc(var(--sar) + 8px) calc(var(--sab) + 8px) var(--colL)}html[data-layout=fold] .app-play :-webkit-any(.modal,.modal.wide){width:100%;max-height:100%}html[data-layout=fold] .app-play :is(.modal,.modal.wide){width:100%;max-height:100%}html[data-layout=fold] .app-play .gl-drawer{left:var(--colL);width:auto}html[data-layout=fold] .toasts.in-play{left:var(--lft);width:calc(var(--sceneR) - var(--lft));top:calc(var(--top) + var(--top-h,120px) + 8px);transform:none}.play.lay-fold .intro-card{max-width:calc(var(--sceneR) - 6vw - 8px)}.play.lay-fold .intro-card h2{font-size:clamp(24px,3.6vw,40px)}.play.lay-fold .world-loading{justify-items:start}.play.lay-fold .wl-card{margin-left:var(--lft);max-width:calc(var(--sceneR) - var(--lft))}.play.lay-compact{--hud-gap:6px}.play.lay-compact .hud-top{top:var(--top);left:var(--lft);right:var(--rgt);flex-wrap:wrap;gap:6px}.play.lay-compact .hud-title{flex:0 auto;max-width:calc(100% - 64px)}.play.lay-compact .hud-kpis{flex:100%;order:3}.play.lay-compact :-webkit-any(.hud-left-tab,.crumbs){top:calc(var(--top) + var(--top-h,104px) + 6px)}.play.lay-compact :is(.hud-left-tab,.crumbs){top:calc(var(--top) + var(--top-h,104px) + 6px)}.play.lay-compact .hud-left-tab{left:var(--lft)}.play.lay-compact .crumbs{left:auto;right:var(--rgt);max-width:calc(100% - 150px);overflow-x:auto;transform:none}.play.lay-compact :-webkit-any(.hud-right,.hud-left,.peek,.lesson-pop){width:auto;max-height:min(62%, calc(100% - var(--top) - 64px));padding:0 calc(12px + var(--sar)) calc(14px + var(--sab)) calc(12px + var(--sal));border-radius:var(--cut-lg) var(--cut-lg) 0 0;z-index:46;animation:sheet-up var(--dur-3) var(--ease-out);border-bottom:0;position:fixed;top:auto;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -16px 40px #0000008c,0 -1px #00e5ff59}.play.lay-compact :is(.hud-right,.hud-left,.peek,.lesson-pop){width:auto;max-height:min(62%, calc(100% - var(--top) - 64px));padding:0 calc(12px + var(--sar)) calc(14px + var(--sab)) calc(12px + var(--sal));border-radius:var(--cut-lg) var(--cut-lg) 0 0;z-index:46;animation:sheet-up var(--dur-3) var(--ease-out);border-bottom:0;position:fixed;top:auto;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -16px 40px #0000008c,0 -1px #00e5ff59}.play.lay-compact .hud-left{z-index:45}.play.lay-compact .hud-right{flex-direction:column;display:flex;overflow:hidden}.play.lay-compact .hud-right>*{flex:none}.play.lay-compact .hud-right>.insp{flex:auto;min-height:0;overflow:auto}.play.lay-compact .hud-right>.sel-bar{margin:8px calc(-12px - var(--sar)) 0 calc(-12px - var(--sal));padding:8px calc(12px + var(--sar)) 0 calc(12px + var(--sal));border:0;border-top:1px solid var(--glass-border);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-radius:0;animation:none}.play.lay-compact .lesson-pop{z-index:47}.play.lay-compact .peek{z-index:48;max-height:54%}@keyframes sheet-up{0%{opacity:0;transform:translateY(36%)}}.play.lay-compact .hud-thumb{left:var(--lft);right:var(--rgt);bottom:var(--bot);z-index:18;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute}.play.lay-compact .hud-thumb>*{pointer-events:auto}.play.lay-compact .hud-views{pointer-events:none;justify-content:space-between;align-items:flex-end;gap:6px;display:flex}.play.lay-compact .hud-views>*{pointer-events:auto}.play.lay-compact .overlay-bar{position:relative}.play.lay-compact .ov-legend{background:var(--glass);border:1px solid var(--glass-border);width:min(240px,60vw);padding:6px 8px;display:grid;position:absolute;bottom:calc(100% + 6px);left:0}.play.lay-compact .hotbar-wrap{flex:none}.play.lay-compact .hotbar{scroll-snap-type:x proximity;width:100%}.play.lay-compact .slot-wrap{scroll-snap-align:start}.play.lay-compact .pdrawer.drawer{width:auto;left:0;right:0;top:calc(var(--sat) + 8px);padding:0 var(--sar) var(--sab) var(--sal);border-left:0;border-top:1px solid var(--glass-border);border-radius:var(--cut-lg) var(--cut-lg) 0 0;animation:sheet-up var(--dur-3) var(--ease-out)}.play.lay-compact .pdrawer>.sheet-grip{width:100%;margin:0 0 -14px}html[data-layout=compact] .app-play .overlay{padding:calc(var(--sat) + 8px) 0 0;align-items:end}html[data-layout=compact] .app-play .modal{border-radius:var(--cut-lg) var(--cut-lg) 0 0;width:100%;max-height:100%;padding-bottom:calc(16px + var(--sab));padding-left:calc(16px + var(--sal));padding-right:calc(16px + var(--sar));animation:sheet-up var(--dur-3) var(--ease-out)}html[data-layout=compact] .toasts.in-play{top:calc(var(--top) + var(--top-h,104px) + 8px)}:-webkit-any(.play.lay-fold,.play.lay-compact) .overlay-bar{flex-flow:wrap;gap:2px;width:auto;max-width:100%;padding:3px}:is(.play.lay-fold,.play.lay-compact) .overlay-bar{flex-flow:wrap;gap:2px;width:auto;max-width:100%;padding:3px}:-webkit-any(.play.lay-fold,.play.lay-compact) .overlay-bar>button{padding:8px 9px}:is(.play.lay-fold,.play.lay-compact) .overlay-bar>button{padding:8px 9px}:-webkit-any(.play.lay-fold,.play.lay-compact) .overlay-bar>button span{display:none}:is(.play.lay-fold,.play.lay-compact) .overlay-bar>button span{display:none}:-webkit-any(.play.lay-fold,.play.lay-compact) .overlay-bar kbd{display:none}:is(.play.lay-fold,.play.lay-compact) .overlay-bar kbd{display:none}.play.lay-fold .ov-legend{flex-basis:100%;display:grid}:-webkit-any(.play.lay-fold,.play.lay-compact) .cams :-webkit-any(.cam-snd,.cam-help){display:none}:is(.play.lay-fold,.play.lay-compact) .cams :is(.cam-snd,.cam-help){display:none}:-webkit-any(.play.lay-fold,.play.lay-compact) .cam-sep{display:none}:is(.play.lay-fold,.play.lay-compact) .cam-sep{display:none}.play.lay-compact .cams :-webkit-any(.cam-rotL,.cam-rotR){display:none}.play.lay-compact .cams :is(.cam-rotL,.cam-rotR){display:none}:-webkit-any(.play.lay-fold,.play.lay-compact) .cams{gap:2px;padding:3px}:is(.play.lay-fold,.play.lay-compact) .cams{gap:2px;padding:3px}:-webkit-any(.play.lay-fold,.play.lay-compact) .hud-time{gap:6px;padding:4px 6px}:is(.play.lay-fold,.play.lay-compact) .hud-time{gap:6px;padding:4px 6px}.play.lay-compact .hud-time .date{flex:1}:-webkit-any(.play.lay-fold,.play.lay-compact) .play-btn{min-width:52px}:is(.play.lay-fold,.play.lay-compact) .play-btn{min-width:52px}:-webkit-any(.play.lay-fold,.play.lay-compact) .hud-time .seg button{padding:0 9px}:is(.play.lay-fold,.play.lay-compact) .hud-time .seg button{padding:0 9px}:-webkit-any(.play.lay-fold,.play.lay-compact) .lesson-pop{width:auto}:is(.play.lay-fold,.play.lay-compact) .lesson-pop{width:auto}
