:root{--void:#03040b;--abyss:#060915;--deep:#0a0f22;--deep-2:#0e1530;--plate:#0d142cd1;--plate-solid:#0d1430;--plate-hi:#162146e0;--glass:#6ea0ff0d;--surface-0:#060a1ac7;--surface-1:#080d20a8;--surface-2:#142046b8;--surface-3:#080d20e6;--surface-hover:#78aaff0d;--track:#78aaff1a;--overlay:#02030ac7;--rail-bg:linear-gradient(180deg, #080c1ef5, #050814f0);--topbar-bg:linear-gradient(180deg, #040610f5, #040610db);--page-bg:radial-gradient(120% 90% at 50% 0%, #0a1030 0%, var(--void) 62%);--line:#78afff21;--line-mid:#78beff3d;--line-strong:#6edcff80;--text:#e9f2ff;--text-strong:#fff;--text-2:#b8c6e4;--text-dim:#8495ba;--text-faint:#6a789f;--on-accent:#021018;--cyan:#46e6ff;--cyan-2:#1fb7ff;--blue:#4d7cff;--violet:#a283ff;--indigo:#5d4bff;--magenta:#ff4fd8;--amber:#ffb84d;--red:#ff5b7f;--green:#48f5b0;--accent:var(--cyan);--accent-2:var(--violet);--accent-rgb:70, 230, 255;--accent-grad:linear-gradient(180deg, var(--accent), var(--cyan-2));--st-unknown:#52628c;--st-assessed:#7d8db0;--st-weak:#ff5b7f;--st-developing:#ffb84d;--st-proficient:#46e6ff;--st-mastered:#b48cff;--st-locked:#2e3550;--glow:0 0 18px rgba(var(--accent-rgb), .35), 0 0 2px rgba(var(--accent-rgb), .8);--glow-cyan:var(--glow);--glow-violet:0 0 22px #a283ff66, 0 0 2px #a283ffe6;--text-glow:0 0 14px rgba(var(--accent-rgb), .55);--shadow-deep:0 30px 80px -30px #000c;--shadow-card:none;--badge-l:72%;--font-display:"Chakra Petch", "Rajdhani", "Segoe UI", system-ui, sans-serif;--font-body:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", "Consolas", ui-monospace, monospace;--font-read:var(--font-body);--fs-base:15px;--fs-prompt:clamp(17px, 1.6vw, 21px);--label-case:uppercase;--label-spacing:.2em;--r-xs:3px;--r-sm:6px;--r-md:10px;--r-btn:0px;--chamfer:14px;--btn-cut:10px;--nav-w:248px;--top-h:64px;--gutter:clamp(16px, 2.6vw, 36px);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-snap:cubic-bezier(.2, .9, .1, 1.2);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--t-fast:.14s;--t-med:.32s;--t-slow:.7s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=violet]{--accent:#b48cff;--accent-2:#46e6ff;--accent-rgb:180, 140, 255;--accent-grad:linear-gradient(180deg, #c7a6ff, #9b6bff)}[data-theme=magenta]{--accent:#ff5fe0;--accent-2:#a283ff;--accent-rgb:255, 95, 224;--accent-grad:linear-gradient(180deg, #ff7fe7, #e040c0)}[data-theme=aurora]{--accent:#48f5b0;--accent-2:#46e6ff;--accent-rgb:72, 245, 176;--accent-grad:linear-gradient(180deg, #6dffc4, #1fd894)}[data-appearance=day]{--void:#eef4ff;--abyss:#fff;--deep:#f4f8ff;--deep-2:#e8f0ff;--plate:#fff;--plate-solid:#fff;--plate-hi:#fff;--glass:#285ac80a;--surface-0:#fff;--surface-1:#f7faff;--surface-2:#eaf2ff;--surface-3:#fff;--surface-hover:#2864e60f;--track:#1e46a01a;--overlay:#141e3c73;--rail-bg:#fff;--topbar-bg:#fffffff5;--page-bg:linear-gradient(180deg, #dcecff 0%, #f1f7ff 45%, #fdf8ff 100%);--line:#1e3c8c1f;--line-mid:#1e3c8c33;--line-strong:#1d63ed8c;--text:#1b2340;--text-strong:#0d1430;--text-2:#3a4566;--text-dim:#56617f;--text-faint:#6b7592;--on-accent:#fff;--cyan:#0a87b5;--cyan-2:#1d63ed;--blue:#1d63ed;--violet:#7446e0;--magenta:#c42aa5;--amber:#b26a00;--red:#d42b57;--green:#0f8a5f;--accent:#1d63ed;--accent-2:#7446e0;--accent-rgb:29, 99, 237;--accent-grad:linear-gradient(180deg, #3b7bff, #1d56d6);--st-unknown:#8a94b0;--st-assessed:#5b6b95;--st-weak:#d42b57;--st-developing:#c26d00;--st-proficient:#0a87b5;--st-mastered:#7446e0;--st-locked:#c9cfdf;--glow:0 4px 14px #1d63ed38;--glow-violet:0 4px 14px #7446e038;--text-glow:none;--shadow-deep:0 24px 60px -30px #14285a59;--shadow-card:0 2px 10px #14286412, 0 1px 2px #1428640f;--badge-l:36%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-motion=off] *,[data-motion=off] :before,[data-motion=off] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-motion=reduced] *,[data-motion=reduced] :before,[data-motion=reduced] :after{scroll-behavior:auto!important;transition-duration:.12s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#root{min-height:100%}body{background:var(--void);color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:.01em;overflow-wrap:anywhere;margin:0;font-weight:600;line-height:1.15}h1{font-size:clamp(28px,3.6vw,44px)}h2{font-size:clamp(20px,2.2vw,26px)}h3{font-size:1.13em}p{margin:0 0 .6em}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img,svg{max-width:100%;display:block}code,kbd,.mono{font-family:var(--font-mono)}kbd{border:1px solid var(--line-mid);color:var(--text-dim);background:var(--surface-hover);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-size:11px}::selection{background:rgba(var(--accent-rgb), .35)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.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}.skip-link{z-index:1000;background:var(--accent);color:var(--on-accent);border-radius:6px;padding:8px 14px;font-weight:600;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--track);background-clip:padding-box;border:2px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--line-strong);background-clip:padding-box}.atmosphere{z-index:0;pointer-events:none;background:var(--page-bg);contain:strict;position:fixed;inset:0;overflow:hidden}.atmosphere>*{position:absolute}.atmosphere .cloud{opacity:.8;will-change:transform;border-radius:50%}.atmosphere .c1{background:radial-gradient(closest-side,#1fa0ff38,#1fa0ff14 55%,#0000);width:70vw;height:60vw;top:-26vw;left:-22vw}.atmosphere .c2{background:radial-gradient(closest-side,#8c5aff33,#8c5aff0f 55%,#0000);width:60vw;height:60vw;top:2vh;right:-24vw}.atmosphere .c3{background:radial-gradient(closest-side,#ff46d21a,#0000);width:56vw;height:46vw;bottom:-30vw;left:20vw}.atmosphere .grid{transform-origin:50% 100%;background-image:linear-gradient(#5aaaff17 1px,#0000 1px),linear-gradient(90deg,#5aaaff17 1px,#0000 1px);background-size:64px 64px;height:60%;bottom:-10%;left:-50%;right:-50%;transform:perspective(600px)rotateX(64deg);-webkit-mask-image:linear-gradient(#0000 25%,#000000bf);mask-image:linear-gradient(#0000 25%,#000000bf)}.atmosphere .horizon{background:linear-gradient(90deg, transparent, rgba(var(--accent-rgb), .35), transparent);height:1px;bottom:38%;left:0;right:0}.atmosphere canvas{width:100%;height:100%;inset:0}.atmosphere .scan{background:repeating-linear-gradient(#ffffff04 0 1px,#0000 1px 3px);inset:0}.atmosphere .sweep{background:linear-gradient(to bottom, transparent, rgba(var(--accent-rgb), .045), transparent);will-change:transform;height:30vh;top:0;left:0;right:0;transform:translateY(-30vh)}.atmosphere .vignette{background:radial-gradient(120% 100% at 50% 40%,#0000 55%,#0000008c 100%);inset:0}[data-motion=full][data-effects=medium] .atmosphere .cloud,[data-motion=full][data-effects=high] .atmosphere .cloud{animation:40s ease-in-out infinite alternate drift}[data-motion=full][data-effects=medium] .atmosphere .c2,[data-motion=full][data-effects=high] .atmosphere .c2{animation-duration:52s}[data-motion=full][data-effects=high] .atmosphere .sweep{animation:12s linear infinite sweep}[data-effects=off] .atmosphere>:not(.vignette),[data-effects=low] .atmosphere canvas,[data-effects=low] .atmosphere .sweep,[data-effects=low] .atmosphere .scan,[data-effects=medium] .atmosphere .sweep,[data-effects=medium] .atmosphere .scan,[data-appearance=day] .atmosphere .grid,[data-appearance=day] .atmosphere .scan,[data-appearance=day] .atmosphere .horizon,[data-appearance=day] .atmosphere .vignette{display:none}[data-appearance=day] .atmosphere .c1{background:radial-gradient(closest-side,#78beff59,#0000)}[data-appearance=day] .atmosphere .c2{background:radial-gradient(closest-side,#c8a0ff47,#0000)}[data-appearance=day] .atmosphere .c3{background:radial-gradient(closest-side,#ffc87840,#0000)}@keyframes drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(4vw,3vh)scale(1.1)}}@keyframes sweep{0%{transform:translateY(-30vh)}to{transform:translateY(130vh)}}.shell{z-index:1;grid-template-columns:var(--nav-w) minmax(0, 1fr);min-height:100vh;display:grid;position:relative}.main{flex-direction:column;min-width:0;display:flex}.page{padding:26px var(--gutter) 90px;width:100%;max-width:1480px;animation:page-in .52s var(--ease-out) both;margin:0 auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:26px;display:flex}.page-head .lede{color:var(--text-dim);max-width:70ch;margin-top:8px}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.rail{border-right:1px solid var(--line);background:var(--rail-bg);flex-direction:column;height:100vh;padding:18px 14px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.rail:after{content:"";background:linear-gradient(to bottom, transparent, rgba(var(--accent-rgb), .5), transparent 60%);width:1px;height:100%;position:absolute;top:0;right:-1px}.brand{color:var(--text);align-items:center;gap:12px;padding:4px 8px 18px;display:flex;text-decoration:none!important}.brand-mark{flex:none;width:34px;height:34px}.brand-name{font-family:var(--font-display);letter-spacing:.32em;font-size:17px;font-weight:700}.brand-sub{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-faint);text-transform:uppercase;font-size:9.5px}.nav-group{margin-top:14px}.nav-group-label{font-family:var(--font-mono);letter-spacing:.24em;color:var(--text-faint);text-transform:uppercase;align-items:center;gap:8px;padding:0 10px 6px;font-size:10px;display:flex}.nav-group-label:after{content:"";background:linear-gradient(90deg, var(--line-mid), transparent);flex:1;height:1px}.nav-item{color:var(--text-dim);transition:color var(--t-fast), background var(--t-fast), transform var(--t-fast);border-radius:6px;align-items:center;gap:11px;padding:7px 10px;font-size:14px;display:flex;position:relative;text-decoration:none!important}.nav-item svg{opacity:.8;width:17px;height:17px;transition:transform var(--t-med) var(--ease-bounce);flex:none}.nav-item:hover{color:var(--text);background:var(--surface-hover)}.nav-item:hover svg{transform:scale(1.15)}.nav-item.active{color:var(--text);background:linear-gradient(90deg, rgba(var(--accent-rgb), .16), rgba(var(--accent-rgb), .02) 70%)}.nav-item.active:before{content:"";background:var(--accent);width:3px;box-shadow:var(--glow);border-radius:0 3px 3px 0;position:absolute;top:6px;bottom:6px;left:-14px}.nav-item.active svg{color:var(--accent);opacity:1}.nav-item .count{font-family:var(--font-mono);color:var(--red);background:#ff5b7f26;border-radius:8px;margin-left:auto;padding:0 6px;font-size:10.5px}.nav-item .count.cool{background:rgba(var(--accent-rgb), .12);color:var(--accent)}.nav-item .new{font-family:var(--font-mono);letter-spacing:.12em;background:rgba(var(--accent-rgb), .16);color:var(--accent);border-radius:8px;margin-left:auto;padding:1px 6px;font-size:9px}.nav-item.feature{color:var(--text);border:1px solid rgba(var(--accent-rgb), .35);background:linear-gradient(90deg, rgba(var(--accent-rgb), .12), transparent)}.nav-group.collapsible>summary{cursor:pointer;list-style:none}.nav-group.collapsible>summary::-webkit-details-marker{display:none}.rail-foot{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.08em;margin-top:auto;padding:12px 8px 4px;font-size:10px}.topbar{z-index:20;height:var(--top-h);padding:0 var(--gutter);background:var(--topbar-bg);border-bottom:1px solid var(--line);align-items:center;gap:14px;display:flex;position:sticky;top:0}.topbar:after{content:"";background:linear-gradient(90deg, transparent 5%, rgba(var(--accent-rgb), .45), transparent 60%);height:1px;position:absolute;bottom:-1px;left:0;right:0}.cmd-trigger{border:1px solid var(--line-mid);background:var(--surface-0);max-width:520px;color:var(--text-faint);text-align:left;transition:border-color var(--t-fast), box-shadow var(--t-fast);border-radius:8px;flex:1;align-items:center;gap:10px;padding:9px 14px;font-size:14px;display:flex}.cmd-trigger:hover{border-color:var(--line-strong);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .08);color:var(--text-dim)}.cmd-trigger svg{width:16px;height:16px}.cmd-trigger kbd{margin-left:auto}.top-stats{align-items:center;gap:14px;margin-left:auto;display:flex}.icon-btn{width:38px;height:38px;color:var(--text-dim);transition:all var(--t-fast);background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:grid;position:relative}.icon-btn:hover{color:var(--text);border-color:var(--line-mid);background:var(--surface-hover)}.icon-btn svg{width:19px;height:19px}.icon-btn .dot{background:var(--magenta);width:8px;height:8px;box-shadow:0 0 10px var(--magenta);border-radius:50%;position:absolute;top:8px;right:8px}.lang-switch{border:1px solid var(--line-mid);border-radius:8px;display:inline-flex;overflow:hidden}.lang-switch button{color:var(--text-faint);font-family:var(--font-mono);letter-spacing:.08em;background:0 0;border:0;padding:6px 9px;font-size:11px}.lang-switch button.on{background:rgba(var(--accent-rgb), .16);color:var(--text)}.mobile-nav{display:none}@media (max-width:900px){.shell{grid-template-columns:1fr}.rail{display:none}.rail.open{z-index:60;height:100%;display:flex;position:fixed;inset:0 22% 0 0}.rail-scrim{z-index:59;background:var(--overlay);position:fixed;inset:0}.mobile-nav{z-index:40;height:64px;padding-bottom:env(safe-area-inset-bottom);background:var(--topbar-bg);border-top:1px solid var(--line-mid);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav a,.mobile-nav button{font-size:10.5px;font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-faint);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex;text-decoration:none!important}.mobile-nav a.active{color:var(--accent)}.mobile-nav svg{width:20px;height:20px}.page{padding:18px 16px 100px}.top-stats .hide-sm,.cmd-trigger kbd{display:none}.topbar{gap:8px;padding:0 12px}}@media (min-width:901px){.only-mobile{display:none!important}}.row{align-items:center;gap:12px;display:flex}.row.wrap{flex-wrap:wrap}.row.top{align-items:flex-start}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:12px;display:flex}.stack.tight{gap:6px}.stack.loose{gap:22px}.grow{flex:1;min-width:0}.grid{gap:16px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.split{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:28px;display:grid}@media (max-width:1200px){.split{grid-template-columns:1fr}.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.small{font-size:.87em}.tiny{font-size:.77em}.center{text-align:center}.nowrap{white-space:nowrap}.wrap-any{overflow-wrap:anywhere}.mt{margin-top:14px}.mt-l{margin-top:28px}.mb{margin-bottom:14px}.sys{font-family:var(--font-mono);letter-spacing:var(--label-spacing);text-transform:var(--label-case);color:var(--text-faint);align-items:center;gap:8px;font-size:10.5px;display:inline-flex}.sys .code{color:var(--accent);opacity:.9}.sys:before{content:"";border:1px solid var(--accent);width:6px;height:6px;box-shadow:0 0 8px rgba(var(--accent-rgb), .5);flex:none;transform:rotate(45deg)}.sys.plain:before{display:none}.divider{background:linear-gradient(90deg, rgba(var(--accent-rgb), .5), var(--line) 40%, transparent);height:1px;margin:22px 0;position:relative}.divider:before{content:"";background:var(--accent);width:5px;height:5px;box-shadow:var(--glow);position:absolute;top:-2px;left:0;transform:rotate(45deg)}.plate{background:linear-gradient(135deg, rgba(var(--accent-rgb), .06), transparent 40%), var(--plate);border:1px solid var(--line);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));box-shadow:var(--shadow-card);padding:18px 20px;position:relative}.plate:before{content:"";top:0;left:var(--chamfer);background:linear-gradient(90deg, rgba(var(--accent-rgb), .7), transparent);width:40%;height:1px;position:absolute}.plate.flat{clip-path:none;border-radius:var(--r-md)}.plate.hi{background:linear-gradient(135deg, rgba(var(--accent-rgb), .1), transparent 50%), var(--plate-hi);border-color:var(--line-mid)}.plate.interactive{transition:transform var(--t-med) var(--ease-out), border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-med);cursor:pointer}.plate.interactive:hover{border-color:var(--line-strong);transform:translateY(-3px)}.plate.tight{padding:12px 14px}.bracket{min-width:0;padding:22px 24px;position:relative}.bracket>.bk{border-color:rgba(var(--accent-rgb), .75);pointer-events:none;border-style:solid;width:16px;height:16px;position:absolute}.bracket>.bk.tl{border-width:2px 0 0 2px;top:0;left:0}.bracket>.bk.tr{border-width:2px 2px 0 0;top:0;right:0}.bracket>.bk.bl{border-width:0 0 2px 2px;bottom:0;left:0}.bracket>.bk.br{border-width:0 2px 2px 0;bottom:0;right:0}.bracket.violet>.bk{border-color:#a283ffd9}.band{padding-left:18px;position:relative}.band:before{content:"";background:linear-gradient(to bottom, var(--accent), rgba(var(--accent-rgb), .05));width:2px;position:absolute;top:4px;bottom:4px;left:0}.btn{border:1px solid rgba(var(--accent-rgb), .55);background:linear-gradient(180deg, rgba(var(--accent-rgb), .18), rgba(var(--accent-rgb), .06));color:var(--text);font-family:var(--font-display);letter-spacing:.06em;text-transform:var(--label-case);border-radius:var(--r-btn);clip-path:polygon(var(--btn-cut) 0, 100% 0, 100% calc(100% - var(--btn-cut)), calc(100% - var(--btn-cut)) 100%, 0 100%, 0 var(--btn-cut));transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast), background var(--t-fast), filter var(--t-fast);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;display:inline-flex;position:relative;overflow:hidden;text-decoration:none!important}.btn:hover{background:linear-gradient(180deg, rgba(var(--accent-rgb), .32), rgba(var(--accent-rgb), .1));box-shadow:0 0 24px rgba(var(--accent-rgb), .3);transform:translateY(-1px)}.btn:active{transform:translateY(1px)scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.btn svg{width:16px;height:16px;transition:transform var(--t-med) var(--ease-bounce)}.btn:hover svg{transform:translate(2px)}.btn.primary{background:var(--accent-grad);color:var(--on-accent);text-shadow:none;border-color:#0000}.btn.primary:hover{box-shadow:0 0 30px rgba(var(--accent-rgb), .55);filter:brightness(1.06)}.btn.primary:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff59,#0000);width:40%;transition:left;position:absolute;top:0;bottom:0;left:-60%;transform:skew(-20deg)}.btn.primary:hover:after{transition:left .7s var(--ease-out);left:130%}.btn.violet{--accent-rgb:162, 131, 255;border-color:#a283ff99}.btn.ghost{border-color:var(--line-mid);color:var(--text-2);background:0 0}.btn.ghost:hover{border-color:var(--line-strong);color:var(--text);box-shadow:none;background:var(--surface-hover)}.btn.danger{--accent-rgb:255, 91, 127;border-color:#ff5b7f80}.btn.sm{--btn-cut:7px;padding:6px 12px;font-size:12px}.btn.lg{padding:14px 26px;font-size:15.5px}.btn.block{width:100%}.link-btn{color:var(--accent);font-size:inherit;background:0 0;border:0;padding:0}.link-btn:hover{text-decoration:underline}.ripple{animation:ripple .52s var(--ease-out) forwards;pointer-events:none;background:#ffffff59;border-radius:50%;position:absolute;transform:scale(0)}@keyframes ripple{to{opacity:0;transform:scale(2.6)}}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:var(--label-case);color:var(--text-dim);font-size:10.5px}.input,.select,.textarea{background:var(--surface-0);border:1px solid var(--line-mid);border-radius:var(--r-sm);width:100%;color:var(--text);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:10px 12px}.input:focus,.select:focus,.textarea:focus{border-color:rgba(var(--accent-rgb), .8);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .15);outline:none}.textarea{resize:vertical;min-height:120px;line-height:1.6}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-dim) 50%), linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px;padding-right:30px}.select option{background:var(--plate-solid);color:var(--text)}.input.big{font-size:20px;font-family:var(--font-mono);padding:14px 16px}.tiles{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.tile{text-align:left;border:1px solid var(--line-mid);background:var(--surface-1);border-radius:var(--r-sm);transition:all var(--t-fast);flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex;position:relative}.tile:hover{border-color:var(--line-strong);background:var(--surface-2);transform:translateY(-2px)}.tile.on{border-color:var(--accent);background:linear-gradient(135deg, rgba(var(--accent-rgb), .18), var(--surface-1));box-shadow:0 0 0 1px rgba(var(--accent-rgb), .4), 0 0 26px rgba(var(--accent-rgb), .15)}.tile .t-title{font-family:var(--font-display);font-size:15px;font-weight:600}.tile .t-sub{color:var(--text-dim);font-size:12.5px}.chip{font-family:var(--font-mono);letter-spacing:.08em;text-transform:var(--label-case);border:1px solid var(--line-mid);color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:2px 9px;font-size:10.5px;display:inline-flex;overflow:hidden}.chip.accent{border-color:rgba(var(--accent-rgb), .5);color:var(--accent)}.chip.violet{color:var(--violet);border-color:#a283ff80}.chip.amber{color:var(--amber);border-color:#ffb84d80}.chip.red{color:var(--red);border-color:#ff5b7f80}.chip.green{color:var(--green);border-color:#48f5b080}.chip.magenta{color:var(--magenta);border-color:#ff4fd880}.chip.official{border-color:var(--line-strong);color:var(--text-strong)}.chip.derived{color:var(--cyan);border-color:#46e6ff66}.chip.demo{color:var(--amber);border-color:#ffb84d73}.chip.ai{color:var(--magenta);border-color:#ff4fd880}.status{font-family:var(--font-mono);letter-spacing:.12em;text-transform:var(--label-case);white-space:nowrap;align-items:center;gap:7px;font-size:10.5px;display:inline-flex}.status i{border:1.5px solid;flex:none;width:9px;height:9px;transform:rotate(45deg)}.status.UNKNOWN{color:var(--st-unknown)}.status.UNKNOWN i{border-style:dotted}.status.ASSESSED{color:var(--st-assessed)}.status.ASSESSED i{border-style:dashed}.status.WEAK{color:var(--st-weak)}.status.WEAK i{background:color-mix(in srgb, var(--st-weak) 30%, transparent)}.status.DEVELOPING{color:var(--st-developing)}.status.DEVELOPING i{background:color-mix(in srgb, var(--st-developing) 35%, transparent)}.status.PROFICIENT{color:var(--st-proficient)}.status.PROFICIENT i{background:color-mix(in srgb, var(--st-proficient) 55%, transparent)}.status.MASTERED{color:var(--st-mastered)}.status.MASTERED i{background:var(--st-mastered);animation:2.4s ease-in-out infinite pulse-m}.status.LOCKED{color:var(--st-locked)}@keyframes pulse-m{50%{box-shadow:0 0 12px var(--st-mastered)}}.band-tag{font-family:var(--font-display);letter-spacing:.12em;text-transform:var(--label-case);clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%);white-space:nowrap;border:1px solid;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.band-tag.AHEAD{color:var(--text-strong);border-color:var(--violet);background:linear-gradient(90deg,#a283ff66,#ff4fd833)}.band-tag.ADVANCED{color:var(--violet);background:#a283ff1f;border-color:#a283ff99}.band-tag.INTERMEDIATE{color:var(--cyan);background:#46e6ff14;border-color:#46e6ff8c}.band-tag.DEVELOPING{color:var(--amber);background:#ffb84d14;border-color:#ffb84d8c}.band-tag.BELOW_EXPECTED{color:var(--red);background:#ff5b7f14;border-color:#ff5b7f8c}.band-tag.UNASSESSED{color:var(--text-faint);border-color:var(--line-mid);border-style:dashed}.meter{background:var(--track);border-radius:2px;height:8px;position:relative;overflow:hidden}.meter>span{background:linear-gradient(90deg, rgba(var(--accent-rgb), .45), var(--accent));transition:width .9s var(--ease-out);position:absolute;inset:0 auto 0 0}.meter>span:after{content:"";background:linear-gradient(90deg,#0000,#ffffff59,#0000);animation:2.8s ease-in-out infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{60%,to{transform:translate(100%)}}.meter.seg{background-image:repeating-linear-gradient(90deg, transparent 0 calc(10% - 2px), var(--void) calc(10% - 2px) 10%)}.meter.violet>span{background:linear-gradient(90deg, #a283ff73, var(--violet))}.meter.amber>span{background:linear-gradient(90deg, #ffb84d66, var(--amber))}.meter.red>span{background:linear-gradient(90deg, #ff5b7f66, var(--red))}.meter.green>span{background:linear-gradient(90deg, #48f5b066, var(--green))}.meter.thin{height:4px}.meter.tall{height:12px}.meter .gain{background:var(--text-strong);animation:1.2s ease-out forwards gain-flash;position:absolute;top:0;bottom:0}@keyframes gain-flash{0%{opacity:1}to{opacity:0}}.metric{flex-direction:column;gap:2px;min-width:0;display:flex}.metric .v{font-family:var(--font-display);letter-spacing:.02em;font-size:30px;font-weight:600;line-height:1}.metric .v small{color:var(--text-dim);margin-left:3px;font-size:.5em}.metric .k{font-family:var(--font-mono);letter-spacing:.18em;text-transform:var(--label-case);color:var(--text-faint);font-size:10px}.glow-text{text-shadow:var(--text-glow);color:var(--text-strong)}.tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:20px;display:flex;overflow-x:auto}.tab{color:var(--text-dim);font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;background:0 0;border:0;padding:10px 14px;font-size:14px;font-weight:500;position:relative}.tab:hover,.tab.on{color:var(--text)}.tab.on:after{content:"";background:var(--accent);height:2px;box-shadow:var(--glow);animation:tab-in .26s var(--ease-out);position:absolute;bottom:-1px;left:8px;right:8px}@keyframes tab-in{0%{transform:scaleX(0)}}.list{flex-direction:column;display:flex}.list-row{border-bottom:1px solid var(--line);transition:background var(--t-fast);align-items:center;gap:14px;min-width:0;padding:12px 6px;display:flex}.list-row:hover{background:var(--surface-hover)}.list-row:last-child{border-bottom:0}.list-row .title{font-weight:500}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;font-family:var(--font-mono);letter-spacing:.16em;text-transform:var(--label-case);color:var(--text-faint);border-bottom:1px solid var(--line-mid);padding:8px 10px;font-size:10px;font-weight:500}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:9px 10px}.empty{text-align:center;color:var(--text-dim);border:1px dashed var(--line-mid);border-radius:10px;padding:34px 20px}.empty h3{color:var(--text);margin-bottom:6px}.toasts{z-index:80;pointer-events:none;flex-direction:column;gap:10px;width:min(360px,100vw - 32px);display:flex;position:fixed;top:76px;right:20px}.toast{pointer-events:auto;background:var(--surface-3);border:1px solid rgba(var(--accent-rgb), .45);box-shadow:var(--shadow-deep);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);animation:toast-in .52s var(--ease-out) both;padding:12px 16px 12px 18px;position:relative}.toast:before{content:"";background:var(--accent);width:3px;position:absolute;top:0;bottom:0;left:0}.toast .t-k{font-family:var(--font-mono);letter-spacing:.22em;color:var(--accent);text-transform:var(--label-case);font-size:10px}.toast .t-t{font-family:var(--font-display);margin-top:2px;font-size:15px;font-weight:600}.toast .t-b{color:var(--text-2);margin-top:2px;font-size:13px}.toast.mastery{border-color:#c3a6ff99}.toast.mastery:before{background:var(--violet)}.toast.mastery .t-k{color:var(--violet)}.toast.gap{border-color:#ffb84d99}.toast.gap:before{background:var(--amber)}.toast.gap .t-k{color:var(--amber)}.toast.error{border-color:#ff5b7f99}.toast.error:before{background:var(--red)}.toast.error .t-k{color:var(--red)}.toast.achievement,.toast.quest{border-color:#ff4fd88c}.toast.achievement:before,.toast.quest:before{background:var(--magenta)}.toast.achievement .t-k,.toast.quest .t-k{color:var(--magenta)}.toast.leaving{animation:.38s ease-in forwards toast-out}.xp-float{z-index:90;pointer-events:none;font-family:var(--font-display);color:var(--accent);text-shadow:var(--text-glow);animation:xp-float 1.4s var(--ease-out) forwards;font-size:20px;font-weight:700;position:fixed}@keyframes toast-in{0%{opacity:0;transform:translate(40px)skew(-8deg)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translate(30px)}}@keyframes xp-float{0%{opacity:0;transform:translateY(10px)scale(.8)}20%{opacity:1;transform:translateY(0)scale(1.15)}to{opacity:0;transform:translateY(-50px)scale(1)}}.overlay{z-index:100;background:var(--overlay);place-items:start center;padding:10vh 16px 16px;animation:.2s both fade-in;display:grid;position:fixed;inset:0}.modal{width:min(680px,100%);max-height:78vh;animation:modal-in .32s var(--ease-out) both;overflow:auto}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.palette-input{width:100%;color:var(--text);font-size:18px;font-family:var(--font-body);background:0 0;border:0;padding:16px 18px}.palette-input:focus{outline:none}.palette-list{border-top:1px solid var(--line);max-height:52vh;padding:6px;overflow-y:auto}.palette-item{text-align:left;width:100%;color:var(--text-2);background:0 0;border:0;border-radius:6px;align-items:center;gap:12px;padding:10px 12px;display:flex}.palette-item.sel,.palette-item:hover{background:rgba(var(--accent-rgb), .12);color:var(--text)}.palette-item .pk{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);flex:none;width:86px;font-size:9.5px}.xpbar{align-items:center;gap:10px;min-width:200px;display:flex}.lvl-hex{width:36px;height:40px;font-family:var(--font-display);color:var(--text-strong);place-items:center;font-size:15px;font-weight:700;display:grid;position:relative}.lvl-hex svg{width:100%;height:100%;position:absolute;inset:0}.lvl-hex span{text-shadow:var(--text-glow);position:relative}.xpbar .xp-meta{flex-direction:column;flex:1;gap:4px;display:flex}.xpbar .xp-line{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-faint);justify-content:space-between;gap:8px;font-size:10px;display:flex}.streak{font-family:var(--font-display);color:var(--amber);align-items:center;gap:6px;font-weight:600;display:flex}.streak svg{width:18px;height:18px}.streak.hot svg{transform-origin:50% 90%;animation:1.6s ease-in-out infinite flicker}@keyframes flicker{0%,to{transform:scale(1)rotate(0)}30%{transform:scale(1.08,.94)rotate(-3deg)}60%{transform:scale(.96,1.06)rotate(2deg)}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);z-index:30;width:max-content;max-width:260px;font-size:12px;font-family:var(--font-body);letter-spacing:0;text-transform:none;color:var(--text);background:var(--surface-3);border:1px solid var(--line-mid);white-space:normal;pointer-events:none;box-shadow:var(--shadow-deep);border-radius:6px;padding:6px 10px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.reveal{animation:reveal .64s var(--ease-out) both}.reveal-1{animation-delay:70ms}.reveal-2{animation-delay:.14s}.reveal-3{animation-delay:.21s}.reveal-4{animation-delay:.28s}.reveal-5{animation-delay:.35s}@keyframes reveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.stagger>*{animation:reveal .56s var(--ease-out) both}.stagger>:nth-child(2){animation-delay:50ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.15s}.stagger>:nth-child(5){animation-delay:.2s}.stagger>:nth-child(6){animation-delay:.25s}.stagger>:nth-child(n+7){animation-delay:.3s}.pop-in{animation:pop-in .52s var(--ease-bounce) both}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.scanning{position:relative;overflow:hidden}.scanning:after{content:"";background:linear-gradient(to bottom, transparent, rgba(var(--accent-rgb), .1), transparent);pointer-events:none;height:40%;animation:3.4s linear infinite scan-y;position:absolute;top:0;left:0;right:0;transform:translateY(-100%)}@keyframes scan-y{to{transform:translateY(260%)}}.prov{flex-wrap:wrap;gap:6px;display:inline-flex}.seg{border:1px solid var(--line-mid);border-radius:8px;flex-wrap:wrap;max-width:100%;display:inline-flex;overflow:hidden}.seg button{color:var(--text-dim);border:0;border-right:1px solid var(--line);transition:background var(--t-fast), color var(--t-fast);background:0 0;padding:7px 12px;font-size:13px}.seg button:last-child{border-right:0}.seg button:hover:not(.on){background:var(--surface-hover);color:var(--text)}.seg button.on{background:rgba(var(--accent-rgb), .22);color:var(--text-strong);font-weight:600}.seg button.correct{background:#48f5b033}.seg button.wrong{background:#ff5b7f33}.seg.big button{font-family:var(--font-display);letter-spacing:.06em;padding:10px 26px;font-size:14px;font-weight:600}.qv{flex-direction:column;gap:16px;min-width:0;display:flex;position:relative}.qv-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.qv-context{color:var(--text-2);overflow-wrap:anywhere;margin:0;font-style:italic}.qv-prompt{font-size:var(--fs-prompt);color:var(--text-strong);font-weight:500;line-height:1.5;font-family:var(--font-read);overflow-wrap:anywhere;align-items:flex-start;gap:10px;display:flex}.qv-prompt>.grow{min-width:0}.qv-prompt strong{color:var(--text-strong);text-shadow:var(--text-glow)}.read-btn{border:1px solid rgba(var(--accent-rgb), .45);background:rgba(var(--accent-rgb), .1);width:38px;height:38px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.read-btn:hover{background:rgba(var(--accent-rgb), .2)}.read-btn.speaking{animation:1.2s ease-in-out infinite vpulse}.qv-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:4px;display:flex}.qv-hints{flex-direction:column;gap:8px;display:flex}.hint{border-left:2px solid var(--amber);color:var(--text-2);overflow-wrap:anywhere;background:#ffb84d14;align-items:flex-start;gap:8px;padding:10px 12px;font-size:14px;display:flex}.hint svg{color:var(--amber);flex:none;margin-top:2px}.qv-conf{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.qv-conf .label{margin-right:6px}.conf-btn{border:1px solid var(--line-mid);color:var(--text-dim);background:0 0;border-radius:999px;padding:5px 10px;font-size:12px}.conf-btn.on{border-color:var(--violet);color:var(--text-strong);background:#a283ff33}.pips{align-items:center;gap:3px;display:inline-flex}.pips i{background:var(--track);width:10px;height:4px;transform:skew(-20deg)}.pips i.on{background:var(--accent)}.pips .mono{color:var(--text-faint);margin-left:6px}.opts{gap:8px;display:grid}.opt{text-align:left;border:1px solid var(--line-mid);background:var(--surface-1);border-radius:var(--r-sm);transition:transform var(--t-fast) var(--ease-out), border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);color:var(--text);align-items:center;gap:12px;min-width:0;padding:12px 14px;display:flex}.opt:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-2);transform:translate(3px)}.opt.sel{border-color:var(--accent);background:linear-gradient(90deg, rgba(var(--accent-rgb), .2), var(--surface-1));box-shadow:0 0 0 1px rgba(var(--accent-rgb), .35);animation:sel-pop .26s var(--ease-bounce)}@keyframes sel-pop{50%{transform:scale(1.015)}}.opt.correct{border-color:var(--green);background:#48f5b01f}.opt.correct .opt-key{border-color:var(--green);color:var(--green)}.opt.wrong{border-color:var(--red);background:#ff5b7f1a}.opt.dim{opacity:.45}.opt:disabled{cursor:default}.opt-key{width:24px;height:24px;font-family:var(--font-mono);color:var(--text-faint);border:1px solid var(--line-mid);border-radius:4px;flex:none;place-items:center;font-size:11px;display:grid}.opt.sel .opt-key{color:var(--accent);border-color:var(--accent)}.opt-label{overflow-wrap:anywhere;min-width:0;font-family:var(--font-read);flex:1}.answer-row{align-items:center}.answer-row .input{max-width:420px}.input.ok{border-color:var(--green);box-shadow:0 0 0 3px #48f5b026}.input.bad{border-color:var(--red);box-shadow:0 0 0 3px #ff5b7f1f}.unit{font-family:var(--font-mono);color:var(--text-dim)}.match{flex-direction:column;gap:8px;display:flex}.match-row{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-1);grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);align-items:center;gap:10px;padding:8px 10px;display:grid}.match-row>*{overflow-wrap:anywhere;min-width:0}.match-arrow{color:var(--accent);text-align:center}.match-row.correct,.cat-row.correct,.step-row.correct,.order-item.correct{border-color:#48f5b099}.match-row.wrong,.cat-row.wrong,.step-row.wrong,.order-item.wrong{border-color:#ff5b7f99}@media (max-width:640px){.match-row{grid-template-columns:1fr}.match-arrow{display:none}}.order{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.order-item{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-1);transition:transform var(--t-med) var(--ease-out);align-items:center;gap:12px;padding:10px 12px;display:flex}.order-item>.grow{overflow-wrap:anywhere}.icon-btn.sm{border:1px solid var(--line-mid);width:28px;height:28px;font-size:10px}.cats{flex-direction:column;gap:8px;display:flex}.cat-row{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-1);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.cat-item{overflow-wrap:anywhere;flex:1;min-width:160px}.steps-in{flex-direction:column;gap:8px;display:flex}.step-row{border:1px solid var(--line);border-radius:var(--r-sm);grid-template-columns:minmax(0,1fr) 180px auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.step-label{overflow-wrap:anywhere}@media (max-width:640px){.step-row{grid-template-columns:1fr}}.tokens{flex-direction:column;gap:10px;display:flex}.token-line{border:1px dashed var(--line-strong);border-radius:var(--r-sm);background:rgba(var(--accent-rgb), .04);flex-wrap:wrap;gap:6px;min-height:54px;padding:10px;display:flex}.token-line.correct{border-style:solid;border-color:var(--green)}.token-line.wrong{border-style:solid;border-color:var(--red)}.token-bank{flex-wrap:wrap;gap:6px;display:flex}.token{border:1px solid var(--line-mid);background:var(--surface-2);transition:transform var(--t-fast) var(--ease-bounce);animation:pop-in .3s var(--ease-bounce) both;border-radius:6px;padding:8px 12px;font-size:15px}.token:hover:not(:disabled){border-color:var(--line-strong);transform:translateY(-2px)}.token.on{border-color:rgba(var(--accent-rgb), .6);background:rgba(var(--accent-rgb), .14)}.qv-feedback{border:1px solid var(--line-mid);background:var(--surface-3);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);overflow-wrap:anywhere;flex-direction:column;gap:12px;min-width:0;padding:16px 18px;display:flex}.qv-feedback.ok{background:linear-gradient(135deg, #48f5b01f, var(--surface-3) 55%);border-color:#48f5b08c}.qv-feedback.bad{background:linear-gradient(135deg, #ff5b7f1a, var(--surface-3) 55%);border-color:#ff5b7f80}.fb-head{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.fb-k{font-family:var(--font-mono);letter-spacing:.26em;font-size:11px}.qv-feedback.ok .fb-k{color:var(--green)}.qv-feedback.bad .fb-k{color:var(--red)}.fb-t{color:var(--text-2)}.fb-expected{border-left:2px solid var(--green);background:#48f5b012;padding:10px 12px}.fb-mis{border-left:2px solid var(--amber);background:#ffb84d14;padding:10px 12px}.fb-mis .fix{color:var(--amber);margin:0}.solution{color:var(--text-2);flex-direction:column;gap:4px;margin:8px 0 0;padding-left:22px;display:flex}.solution li::marker{color:var(--accent);font-family:var(--font-mono)}.combo{font-family:var(--font-display);color:var(--amber);animation:pop-in .42s var(--ease-bounce) both;align-items:center;gap:6px;font-weight:700;display:inline-flex}.qv.fx-ok:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 60%,#48f5b02e,#0000 60%);animation:.9s ease-out forwards ok-pulse;position:absolute;inset:-20px}.qv.fx-bad{animation:shake .42s var(--ease-out) 1}@keyframes ok-pulse{0%{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(1.1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes glitch{0%,to{transform:translate(0)}25%{transform:translate(-3px,1px)}50%{transform:translate(3px,-1px)}75%{transform:translate(-2px)}}.burst-layer{z-index:140;pointer-events:none;position:fixed;inset:0;overflow:hidden}.burst-bit{width:9px;height:14px;animation:burst-bit var(--dur,1.1s) cubic-bezier(.2, .7, .3, 1) forwards;border-radius:2px;position:absolute}.burst-bit.round{border-radius:50%;width:10px;height:10px}.burst-bit.star{width:16px;height:16px;background:0 0!important}.burst-bit.star:before{content:"★";color:var(--c,gold);place-items:center;font-size:16px;display:grid;position:absolute;inset:0}@keyframes burst-bit{0%{opacity:1;transform:translate(0)rotate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) rotate(var(--rot)) scale(.6);opacity:0}}.frac{vertical-align:middle;text-align:center;flex-direction:column;margin:0 2px;font-size:.85em;line-height:1.1;display:inline-flex}.frac .n{border-bottom:1px solid;padding:0 3px}.frac .d{padding:0 3px}sup{font-size:.7em}code{background:var(--track);border-radius:4px;padding:1px 5px;font-size:.9em}.emoji-row{letter-spacing:.08em;font-size:1.8em;line-height:1.4;display:inline-block}.stim{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-0);flex-direction:column;align-items:flex-start;gap:8px;max-width:100%;margin:0;padding:14px;display:flex;overflow-x:auto}.stim figcaption{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-dim);font-size:11px}.stim-table{width:auto;min-width:220px}.stim-table td{text-align:right}.passage{background:var(--surface-1);align-items:stretch}.passage p{color:var(--text);font-size:16px;line-height:1.75;font-family:var(--font-read);overflow-wrap:anywhere;margin:0}.passage-title{font-family:var(--font-display);color:var(--accent)}.audio{align-items:center;padding:22px}.audio-orb{border:1px solid rgba(var(--accent-rgb), .6);background:radial-gradient(circle, rgba(var(--accent-rgb), .3), rgba(var(--accent-rgb), .04));width:84px;height:84px;color:var(--text-strong);border-radius:50%;place-items:center;display:grid;position:relative}.audio-orb .ring{border:1px solid rgba(var(--accent-rgb), .4);border-radius:50%;animation:2.2s ease-out infinite ring-out;position:absolute;inset:-6px}.audio-orb .ring.r2{animation-delay:1.1s}@keyframes ring-out{0%{opacity:.9;transform:scale(.9)}to{opacity:0;transform:scale(1.5)}}.big-word{font-family:var(--font-display);color:var(--text-strong);margin:0;font-size:28px}.big-emoji{animation:pop-in .52s var(--ease-bounce) both;font-size:64px;line-height:1.1}.punnett{border-collapse:collapse;font-family:var(--font-mono)}.punnett th,.punnett td{text-align:center;border:1px solid var(--line-mid);width:54px;height:44px}.punnett th{color:var(--accent)}.punnett td{color:var(--text-faint)}.clock-face{width:170px;height:170px}.visual{width:100%;max-width:420px;height:auto}.v-draw{stroke-dasharray:600;stroke-dashoffset:600px;animation:draw 1.6s var(--ease-out) forwards}.v-draw.d2{animation-delay:.5s}.v-fill{animation:vfill .6s var(--ease-out) both}.v-grow{transform-origin:0;animation:vgrow 1.2s var(--ease-out) both}.v-spin{transform-origin:160px 80px;animation:18s linear infinite spin}.v-hop{stroke-dashoffset:0;animation:1.4s linear infinite dash}.v-pulse{transform-origin:50%;transform-box:fill-box;animation:1.6s ease-in-out infinite vpulse}.v-tilt{transform-origin:160px 50px;animation:4s ease-in-out infinite tilt}@keyframes draw{to{stroke-dashoffset:0}}@keyframes vfill{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes vgrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes dash{to{stroke-dashoffset:-16px}}@keyframes vpulse{50%{transform:scale(1.15)}}@keyframes tilt{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}50%{transform:rotate(0)}75%{transform:rotate(4deg)}}.qv-boss .qv-prompt{font-family:var(--font-display);letter-spacing:.01em}.skill-pill{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-1);color:var(--text-2);transition:all var(--t-fast);align-items:center;gap:8px;max-width:100%;padding:6px 10px;display:inline-flex;text-decoration:none!important}.skill-pill:hover{border-color:var(--line-strong);color:var(--text);transform:translateY(-1px)}.levelup{z-index:200;background:radial-gradient(circle at 50% 45%, rgba(var(--accent-rgb), .2), var(--overlay) 60%);place-items:center;animation:.3s both fade-in;display:grid;position:fixed;inset:0}[data-appearance=day] .levelup{background:radial-gradient(circle at 50% 45%,#fffffff5,#dcebfff2 60%)}.levelup .burst{background:conic-gradient(from 0deg, transparent 0 8deg, rgba(var(--accent-rgb), .1) 8deg 10deg, transparent 10deg 20deg);width:140vmax;height:140vmax;animation:spin 30s linear infinite, burst-in 1.2s var(--ease-out) both;border-radius:50%;position:absolute;-webkit-mask-image:radial-gradient(circle,#000 10%,#0000 55%);mask-image:radial-gradient(circle,#000 10%,#0000 55%)}.levelup .lu-core{text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:560px;padding:30px;display:flex;position:relative}.levelup .lu-k{font-family:var(--font-mono);letter-spacing:.5em;color:var(--accent);animation:reveal .6s .2s var(--ease-out) both;font-size:12px}.levelup .lu-num{font-family:var(--font-display);color:var(--text-strong);text-shadow:0 0 40px rgba(var(--accent-rgb), .7);animation:lu-num 1.3s var(--ease-snap) both;font-size:clamp(90px,16vw,170px);font-weight:700;line-height:.9}.levelup .lu-title{font-family:var(--font-display);letter-spacing:.2em;text-transform:var(--label-case);animation:reveal .7s .6s var(--ease-out) both;font-size:26px}.levelup .lu-unlock{animation:reveal .7s .9s var(--ease-out) both;width:100%}.levelup .lu-bar{width:min(420px,80vw);animation:reveal .7s .4s var(--ease-out) both}.levelup .ptl{background:var(--accent);width:5px;height:5px;animation:ptl 1.6s var(--ease-out) forwards;border-radius:50%;position:absolute}@keyframes burst-in{0%{opacity:0;transform:scale(.2)rotate(-40deg)}to{opacity:1;transform:scale(1)}}@keyframes lu-num{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}@keyframes ptl{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(0);opacity:0}}.mastery-flash{z-index:150;pointer-events:none;background:radial-gradient(circle,#c3a6ff40,#0000 50%);animation:1.6s ease-out forwards mflash;position:fixed;inset:0}@keyframes mflash{0%{opacity:1}to{opacity:0}}.loading-scan{place-items:center;height:40vh;display:grid}.meter .indeterminate{animation:1.2s ease-in-out infinite alternate indet;width:40%!important}@keyframes indet{0%{left:0}to{left:60%}}.welcome{z-index:1;place-items:center;min-height:100vh;padding:40px 16px;display:grid;position:relative}.welcome-core{text-align:center;flex-direction:column;align-items:center;gap:18px;max-width:760px;display:flex}.welcome-mark{animation:6s ease-in-out infinite float}.welcome-title{letter-spacing:.32em;background:linear-gradient(180deg, var(--text-strong) 20%, var(--accent) 70%, var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;margin-right:-.32em;font-size:clamp(64px,12vw,132px);font-weight:700}.welcome-lede{color:var(--text-2);max-width:620px;font-size:17px}.welcome-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px;display:flex}.welcome-facts{color:var(--text-dim);flex-wrap:wrap;justify-content:center;gap:18px;margin-top:18px;font-size:13px;display:flex}.welcome-facts span{align-items:center;gap:6px;display:inline-flex}.welcome-facts svg{color:var(--accent)}.welcome-lang{z-index:5;position:fixed;top:16px;right:16px}.demo-loading{text-align:left;background:var(--plate);width:min(560px,100%)}@keyframes float{50%{transform:translateY(-8px)}}.wizard{z-index:1;flex-direction:column;gap:28px;max-width:1040px;min-height:100vh;margin:0 auto;padding:24px 16px 40px;display:flex;position:relative}.wizard-head{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.wizard-steps{flex-wrap:wrap;gap:6px;display:flex}.wizard-steps span{font-family:var(--font-mono);letter-spacing:.12em;text-transform:var(--label-case);color:var(--text-faint);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:10.5px;display:inline-flex}.wizard-steps span i{background:var(--text-faint);border-radius:50%;width:6px;height:6px}.wizard-steps span.on{color:var(--accent);border-color:rgba(var(--accent-rgb), .5)}.wizard-steps span.on i{background:var(--accent)}.wizard-steps span.done{color:var(--text-2)}.wizard-steps span.done i{background:var(--green)}.wizard-body{flex:1}.wizard-foot{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.stage-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;display:grid}.se-row{border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:14px 0;display:flex}.se-opts{flex-wrap:wrap;gap:6px;display:flex}.se-opt{border:1px solid var(--line-mid);background:var(--surface-1);color:var(--text-2);transition:all var(--t-fast);border-radius:999px;padding:7px 12px;font-size:13px}.se-opt:hover{border-color:var(--line-strong)}.se-opt.on{border-color:var(--accent);color:var(--text-strong);background:rgba(var(--accent-rgb), .2)}.init-summary{background:var(--plate)}input[type=range]{accent-color:var(--accent);width:100%}.today-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch;gap:36px;margin-bottom:36px;display:grid}.hero-greet{margin:10px 0 18px;font-size:clamp(30px,4vw,52px);font-weight:600}.where{align-items:center;gap:16px;max-width:520px;display:flex}.where-title{font-family:var(--font-display);letter-spacing:.18em;text-transform:var(--label-case);font-size:18px}.hero-metrics{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:28px;padding-top:18px;display:grid}.hero-objective{background:radial-gradient(120% 120% at 100% 0%, rgba(var(--accent-rgb), .16), transparent 55%), var(--plate-hi);flex-direction:column;gap:10px;min-width:0;display:flex}.obj-kind{font-family:var(--font-mono);letter-spacing:.18em;text-transform:var(--label-case);color:var(--accent);align-items:center;gap:8px;margin-top:6px;font-size:11px;display:inline-flex}.obj-kind svg{width:16px;height:16px}.obj-title{overflow-wrap:anywhere;font-size:clamp(22px,2.4vw,32px);line-height:1.15}.obj-reasons{color:var(--text-2);flex-direction:column;gap:3px;margin:4px 0 0;padding-left:18px;display:flex}.obj-reasons li::marker{content:"▸ ";color:var(--accent)}.today-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:36px;margin-bottom:40px;display:grid}.mission-list{margin:16px 0 0;padding:0;list-style:none;position:relative}.mission-list:before{content:"";background:linear-gradient(to bottom, rgba(var(--accent-rgb), .6), rgba(var(--accent-rgb), .05));width:1px;position:absolute;top:10px;bottom:10px;left:17px}.mission{animation:reveal .6s var(--ease-out) both;gap:16px;padding:10px 0 18px;display:flex;position:relative}.m-node{z-index:1;width:35px;height:35px;color:var(--accent);background:var(--abyss);border:1px solid rgba(var(--accent-rgb), .55);clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);flex:none;place-items:center;display:grid;position:relative}.m-body{border-bottom:1px solid var(--line);flex-direction:column;flex:1;gap:3px;min-width:0;padding-bottom:14px;display:flex}.m-kind{font-family:var(--font-mono);letter-spacing:.2em;text-transform:var(--label-case);color:var(--text-faint);font-size:10px}.m-title{font-family:var(--font-display);color:var(--text);overflow-wrap:anywhere;font-size:18px;font-weight:600}.m-why{color:var(--text-dim);font-size:13.5px}.signals{flex-direction:column;gap:10px;display:flex}.signal-list{flex-direction:column;gap:4px;margin-top:10px;display:flex}.signal{color:var(--text);transition:background var(--t-fast);border-radius:8px;align-items:center;gap:14px;padding:10px 8px;display:flex;text-decoration:none!important}.signal:hover{background:var(--surface-hover)}.today-lower{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;display:grid}.gain-list{flex-direction:column;margin-top:12px;display:flex}.gain{border-bottom:1px solid var(--line);color:var(--text);align-items:center;gap:10px;padding:9px 4px;font-size:14px;display:flex;text-decoration:none!important}.gain:hover{background:var(--surface-hover)}.gain-pct{font-family:var(--font-display);color:var(--green);font-weight:600}.quest-mini{flex-direction:column;gap:5px;padding:8px 0;display:flex}.map-teaser{flex-direction:column;gap:10px;display:flex}.mini-constellation{border:1px solid var(--line);background:radial-gradient(circle, rgba(var(--accent-rgb), .06), transparent 70%);border-radius:10px;width:100%;height:260px}.legend{flex-wrap:wrap;gap:10px;display:flex}@media (max-width:1100px){.today-hero,.today-grid,.today-lower{grid-template-columns:1fr}.hero-metrics{grid-template-columns:repeat(2,1fr)}}.notif-panel{z-index:50;width:min(380px,92vw);max-height:70vh;position:absolute;top:48px;right:0;overflow-y:auto}.notif{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--text);background:0 0}.notif-dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.notif-dot.mastery,.notif-dot.unlock{background:var(--violet)}.notif-dot.gap{background:var(--amber)}.notif-dot.achievement,.notif-dot.quest,.notif-dot.boss{background:var(--magenta)}.notif-dot.levelup{background:var(--text-strong)}@media (max-width:760px){.hide-sm{display:none!important}}.dim{opacity:.55}.lead{color:var(--text);font-size:1.15em;line-height:1.6}.callout{border:1px solid var(--line-mid);border-left:3px solid var(--accent);background:rgba(var(--accent-rgb), .06);overflow-wrap:anywhere;border-radius:6px;align-items:flex-start;gap:12px;min-width:0;padding:14px 16px;font-size:14px;display:flex}.callout>svg{width:18px;height:18px;color:var(--accent);flex:none;margin-top:2px}.callout.violet{border-left-color:var(--violet);background:#a283ff14}.callout.violet>svg{color:var(--violet)}.callout.amber{border-left-color:var(--amber);background:#ffb84d14}.callout.amber>svg{color:var(--amber)}.callout.magenta{border-left-color:var(--magenta);background:#ff4fd812}.callout.magenta>svg{color:var(--magenta)}.cal-hud{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:20px 28px;margin-bottom:22px;padding-bottom:20px;display:flex}.cal-hud-left{flex:320px;align-items:center;gap:20px;min-width:0;display:flex}.cal-hud-left>.stack{min-width:0}.cal-hud-left h2{overflow-wrap:anywhere}.cal-orb{flex:none;place-items:center;width:84px;height:84px;display:grid;position:relative}.cal-orb span{border:1px solid rgba(var(--accent-rgb), .45);border-radius:50%;position:absolute;inset:0}.cal-orb .o1{border-style:dashed;animation:6s linear infinite spin}.cal-orb .o2{border-color:#0000 #a283ff99 #a283ff99;animation:9s linear infinite reverse spin;inset:10px}.cal-orb .o3{background:radial-gradient(circle, rgba(var(--accent-rgb), .35), transparent 70%);border:0;animation:2.4s ease-in-out infinite vpulse;inset:22px}.cal-orb-core{font-family:var(--font-display);color:var(--text-strong);font-size:24px;font-weight:700;border:0!important;position:relative!important;inset:auto!important}.cal-trace{flex-direction:column;flex:none;gap:4px;display:flex}.trace-svg{border-bottom:1px solid var(--line);width:170px;height:54px}.cal-question{background:var(--surface-1);min-height:340px}.cal-why{border-bottom:1px dashed var(--line-mid);flex-wrap:wrap;align-items:flex-start;gap:8px 10px;min-width:0;margin-bottom:18px;padding-bottom:14px;display:flex}.cal-why .chip{white-space:normal;text-overflow:clip;text-align:left}.cal-why>.small{overflow-wrap:anywhere;flex:240px;min-width:0}.cal-analysing{place-items:center;min-height:260px;display:grid}.cal-log{min-width:0}.adapt-list{flex-direction:column;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.adapt{color:var(--text-2);align-items:flex-start;gap:10px;min-width:0;padding-left:4px;display:flex}.adapt>.small{overflow-wrap:anywhere;min-width:0}.adapt.fresh{animation:reveal .6s var(--ease-out) both;color:var(--text)}.adapt-dir{text-align:center;width:20px;color:var(--accent);flex:none;font-size:12px}.adapt.down .adapt-dir{color:var(--amber)}.adapt.probe .adapt-dir{color:var(--violet)}.cal-reveal-head{margin-bottom:22px}.cal-result{background:var(--surface-1);min-width:0}.cal-result h2{overflow-wrap:anywhere}.domain-bands{flex-direction:column;gap:10px;margin-top:20px;display:flex}.domain-band{flex-wrap:wrap;align-items:center;gap:8px 14px;min-width:0;display:flex}.db-name{font-family:var(--font-display);overflow-wrap:anywhere;flex:180px;min-width:0;font-size:16px}.db-line{background:linear-gradient(90deg, var(--line-mid), transparent);flex:20px;min-width:20px;height:1px}.db-cov{text-align:right;flex:none;width:42px}.cal-narrative{color:var(--text);border-left:2px solid var(--violet);overflow-wrap:anywhere;background:#a283ff12;margin-top:20px;padding:12px 16px;font-size:1.05em}.cal-depth{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:640px;display:grid}@media (max-width:640px){.db-line{display:none}.cal-depth{grid-template-columns:1fr}.trace-svg{width:130px}}.learn-top{flex-direction:column;gap:18px;margin-bottom:24px;display:flex}.skill-header{align-items:center;gap:20px;min-width:0;display:flex}.skill-header>.stack{min-width:0}.crumbs{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.skill-title{overflow-wrap:anywhere;font-size:clamp(24px,3vw,38px)}.learn-stages{flex-wrap:wrap;gap:4px;display:flex}.ls{border:1px solid var(--line);color:var(--text-faint);font-family:var(--font-display);letter-spacing:.06em;text-transform:var(--label-case);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);background:0 0;align-items:center;gap:8px;padding:7px 14px;font-size:12.5px;display:inline-flex}.ls-n{font-family:var(--font-mono);font-size:10px}.ls.on{color:var(--text-strong);border-color:rgba(var(--accent-rgb), .6);background:rgba(var(--accent-rgb), .16)}.ls.done{color:var(--text-2)}.explain p{color:var(--text-2);font-size:1.03em;font-family:var(--font-read)}.defs{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:0;display:grid}.defs>div{border:1px solid var(--line);background:var(--surface-1);overflow-wrap:anywhere;border-radius:6px;min-width:0;padding:10px 12px}.defs dt{font-family:var(--font-display);color:var(--accent);font-weight:600}.defs dd{color:var(--text-2);margin:4px 0 0;font-size:14px}.intuition{background:var(--surface-1)}.worked .qv{margin-top:10px}.mis-list{flex-direction:column;gap:10px;display:flex}.mis-item{border:1px solid var(--line);background:var(--surface-1);overflow-wrap:anywhere;border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.mis-wrong{color:var(--red);flex-wrap:wrap;align-items:center;gap:8px;font-weight:500;display:flex}.mis-fix{color:var(--green);align-items:center;gap:8px;font-size:14px;display:flex}.phase-bar{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.phase-name{font-family:var(--font-display);letter-spacing:.06em;text-transform:var(--label-case);color:var(--accent);align-items:center;gap:8px;font-size:15px;display:inline-flex}.phase-steps{flex-wrap:wrap;gap:4px;display:inline-flex}.phase-steps i{background:var(--track);width:22px;height:4px;transition:background var(--t-med)}.phase-steps i.done{background:var(--green)}.phase-steps i.on{background:var(--accent)}.adapt-note{color:var(--amber);font-family:var(--font-mono)}.practice-frame{background:var(--surface-1);min-width:0}.summary-frame{background:radial-gradient(circle at 100% 0%, #a283ff2e, transparent 50%), var(--surface-1)}.debrief{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}@media (max-width:760px){.debrief{grid-template-columns:repeat(2,1fr)}}.learn-rail{min-width:0}.learn-rail .plate{padding:16px}.tutor{flex-direction:column;gap:8px;display:flex}.tutor-thread{flex-direction:column;gap:10px;max-height:320px;display:flex;overflow-y:auto}.tutor-q{background:rgba(var(--accent-rgb), .14);overflow-wrap:anywhere;border-radius:8px;align-self:flex-end;padding:6px 10px;font-size:13.5px}.tutor-a{border-left:2px solid var(--violet);color:var(--text-2);overflow-wrap:anywhere;padding:8px 10px;font-size:13.5px}.rec-strip{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.rec-tile{color:var(--text);flex-direction:column;gap:6px;min-width:0;display:flex;text-decoration:none!important}.rec-title{font-family:var(--font-display);overflow-wrap:anywhere;font-size:16px;font-weight:600}.posterior{width:100%;height:90px;margin-top:10px}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.subject-card{color:var(--text);border:1px solid hsla(var(--hue), 90%, 55%, .3);background:radial-gradient(circle at 100% 0%, hsla(var(--hue), 90%, 55%, .14), transparent 60%), var(--plate);box-shadow:var(--shadow-card);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);transition:transform var(--t-med) var(--ease-out), border-color var(--t-fast);flex-direction:column;gap:6px;min-width:0;padding:18px;display:flex;position:relative;text-decoration:none!important}.subject-card:hover{border-color:hsla(var(--hue), 90%, 55%, .7);transform:translateY(-3px)}.topic-block{margin-top:14px}.topic-name{font-family:var(--font-mono);letter-spacing:.16em;text-transform:var(--label-case);color:var(--text-faint);margin-bottom:6px;font-size:11px}.skill-rows{flex-direction:column;display:flex}.skill-row{border-bottom:1px solid var(--line);color:var(--text);align-items:center;gap:12px;min-width:0;padding:8px 6px;font-size:14px;display:flex;text-decoration:none!important}.skill-row>.grow{overflow-wrap:anywhere}.skill-row:hover{background:var(--surface-hover)}.skill-row.other-track,.skill-row.unavailable{opacity:.45}.stage-tag{flex:none;width:56px}.map-page{height:calc(100vh - var(--top-h));flex-direction:column;display:flex;position:relative}.map-toolbar{padding:12px var(--gutter);border-bottom:1px solid var(--line);background:var(--topbar-bg);flex-wrap:wrap;align-items:center;gap:12px;display:flex}.map-search{border:1px solid var(--line-mid);background:var(--surface-0);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex;position:relative}.map-search input{color:var(--text);background:0 0;border:0;width:180px}.map-search input:focus{outline:none}.map-hits{z-index:10;background:var(--surface-3);border:1px solid var(--line-mid);min-width:240px;box-shadow:var(--shadow-deep);border-radius:6px;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.map-hits button{text-align:left;color:var(--text-2);background:0 0;border:0;border-radius:4px;padding:6px 8px}.map-hits button:hover{background:rgba(var(--accent-rgb), .12);color:var(--text-strong)}.map-status-filter{padding:8px var(--gutter);flex-wrap:wrap;gap:6px;display:flex}.status-toggle{border:1px solid var(--line);opacity:.4;background:0 0;border-radius:999px;padding:4px 8px}.status-toggle.on{opacity:1;border-color:var(--line-mid)}.map-stage{flex:1;min-height:420px;position:relative;overflow:hidden}.map-svg{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.map-svg:active{cursor:grabbing}.edge{stroke:#78aaff59;stroke-width:1.4px}[data-appearance=day] .edge{stroke:#2850aa47}.edge.lit{stroke:var(--accent);stroke-width:2.2px;stroke-dasharray:6 8;opacity:.85}[data-motion=full] .edge.lit{animation:1.6s linear infinite flow}.edge.path{stroke:var(--text-strong);stroke-width:2.6px;opacity:1!important}@keyframes flow{to{stroke-dashoffset:-28px}}.node{cursor:pointer;transition:opacity var(--t-med)}.node:focus{outline:none}.node:focus circle:nth-of-type(2),.node:hover circle:nth-of-type(2){stroke:var(--text-strong);stroke-width:2.5px}.halo-pulse{transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out infinite halo}@keyframes halo{50%{opacity:.4;transform:scale(1.25)}}.rec-marker{animation:1.6s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(-4px)}}.sel-ring{transform-box:fill-box;transform-origin:50%;animation:8s linear infinite spin}.map-label{fill:var(--text);font-size:12px;font-family:var(--font-body);paint-order:stroke;stroke:var(--void);stroke-width:4px;pointer-events:none}.map-domain-label{fill:var(--text-dim);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;paint-order:stroke;stroke:var(--void);stroke-width:5px;pointer-events:none}.map-subject-label{fill:var(--text-strong);opacity:.85;font-family:var(--font-display);letter-spacing:.3em;paint-order:stroke;stroke:var(--void);stroke-width:8px;pointer-events:none;font-size:34px;font-weight:700}.map-domain-label{font-size:15px}.map-svg.far .map-domain-label{font-size:30px}.map-svg.far .map-subject-label{font-size:64px}.map-label{display:none}.map-svg.labels .node:not(.dim) .map-label,.node:hover .map-label,.node:focus .map-label,.node.sel .map-label,.node.focus .map-label{display:block}.map-panel{width:min(340px,100% - 32px);max-height:calc(100% - 32px);position:absolute;top:16px;right:16px;overflow-y:auto}.map-legend{background:var(--surface-3);border:1px solid var(--line);color:var(--text-dim);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex;position:absolute;bottom:14px;left:16px}.lg-edge{vertical-align:middle;background:#78aaff73;width:26px;height:2px;margin-right:6px;display:inline-block}.lg-edge.lit{background:var(--accent)}.lg-rec{border-left:5px solid #0000;border-right:5px solid #0000;border-top:8px solid var(--magenta);width:0;height:0;margin-right:6px;display:inline-block}@media (max-width:900px){.map-page{height:calc(100vh - var(--top-h) - 64px)}.map-legend{display:none}.map-panel{top:auto;bottom:10px}}.course-gen{background:radial-gradient(circle at 0% 0%, rgba(var(--accent-rgb), .12), transparent 50%), var(--surface-1)}.course-modules{flex-direction:column;gap:22px;display:flex}.module{border-left:1px solid var(--line-mid);padding-left:18px}.module-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.lesson-list{flex-direction:column;margin:10px 0 0;padding:0;list-style:none;display:flex}.lesson{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-width:0;padding:10px 4px;display:flex}.lesson-dot{border:1px solid var(--line-strong);width:18px;height:18px;color:var(--on-accent);border-radius:50%;flex:none;place-items:center;display:grid}.lesson.done .lesson-dot{background:var(--green);border-color:var(--green)}.lesson.done>.grow{opacity:.6}.week{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}@media (max-width:1000px){.week{grid-template-columns:repeat(2,minmax(0,1fr))}}.day{border:1px solid var(--line);background:var(--surface-1);border-radius:8px;flex-direction:column;gap:6px;min-width:0;min-height:170px;padding:10px;display:flex}.day.today{border-color:rgba(var(--accent-rgb), .55);box-shadow:inset 0 0 30px rgba(var(--accent-rgb), .06)}.day-head{color:var(--text-faint);justify-content:space-between;align-items:baseline;display:flex}.day-num{font-family:var(--font-display);color:var(--text);font-size:22px}.ev{border-left:3px solid var(--c);background:var(--surface-hover);overflow-wrap:anywhere;border-radius:0 6px 6px 0;flex-direction:column;gap:2px;min-width:0;padding:6px 8px;display:flex}.ev.done{opacity:.45;text-decoration:line-through}.ev-time{color:var(--c);font-size:10.5px}.ev-title{font-size:13px;line-height:1.3}.goal-row{border-bottom:1px solid var(--line);align-items:flex-start;gap:18px;min-width:0;padding:16px 0;display:flex}.exam-row{background:var(--surface-1)}.exam-bar{top:var(--top-h);z-index:10;background:var(--topbar-bg);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:18px;padding:12px 0 14px;display:flex;position:sticky}.exam-timer{font-family:var(--font-display);letter-spacing:.08em;color:var(--text-strong);margin-left:auto;font-size:34px;font-weight:600}.exam-timer.low{color:var(--red);animation:1s ease-in-out infinite vpulse}.exam-layout{grid-template-columns:72px minmax(0,1fr);align-items:start;gap:20px;display:grid}.exam-nav{top:calc(var(--top-h) + 90px);flex-direction:column;gap:6px;display:flex;position:sticky}.qnav{border:1px solid var(--line-mid);width:44px;height:36px;color:var(--text-dim);font-family:var(--font-mono);background:0 0;border-radius:4px}.qnav.ans{background:rgba(var(--accent-rgb), .16);color:var(--text-strong)}.qnav.on{border-color:var(--accent);box-shadow:0 0 10px rgba(var(--accent-rgb), .4)}.qnav.flag{border-color:var(--violet)}@media (max-width:760px){.exam-layout{grid-template-columns:1fr}.exam-nav{flex-flow:wrap;position:static}}.exam-q{background:var(--surface-1);min-width:0}.exam-score{flex-wrap:wrap;align-items:center;gap:30px;display:flex}.score-big{font-family:var(--font-display);font-size:36px;font-weight:700}.mastery-subject{border-bottom:1px solid var(--line);padding-bottom:28px}.mastery-domains{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px 26px;display:grid}.mastery-domain{flex-direction:column;gap:10px;min-width:0;display:flex}.node-grid{flex-wrap:wrap;gap:6px;display:flex}.mnode{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--track);width:30px;height:34px;transition:transform var(--t-fast) var(--ease-bounce);position:relative}.mnode:hover{transform:scale(1.15)}.mnode:before{content:"";clip-path:inherit;background:var(--abyss);position:absolute;inset:1.5px}.mnode-fill{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(to top, var(--c) calc(var(--m) * 100%), transparent calc(var(--m) * 100%));opacity:.9;position:absolute;inset:1.5px}.mnode.UNKNOWN{background:color-mix(in srgb, var(--st-unknown) 45%, transparent)}.mnode.UNKNOWN .mnode-fill{background:0 0}.mnode.MASTERED{background:var(--c);animation:2.4s ease-in-out infinite pulse-m}.mnode:not(.UNKNOWN){background:var(--c)}.chart-tip{z-index:20;white-space:nowrap;background:var(--surface-3);border:1px solid var(--line-mid);color:var(--text);pointer-events:none;box-shadow:var(--shadow-deep);border-radius:6px;padding:6px 10px;font-size:12px;position:absolute;transform:translate(-50%,-100%)}.chart-legend{flex-wrap:wrap;gap:12px;display:flex}.status-stack{background:var(--track);border-radius:4px;height:20px;position:relative}.status-stack>span{transition:width .9s var(--ease-out), left .9s var(--ease-out);border-radius:4px;place-items:center;display:grid;position:absolute;top:0;bottom:0}.status-stack em{font-style:normal;font-family:var(--font-mono);color:#050812;font-size:10.5px;font-weight:600}.status-stack .seg-UNKNOWN em,.status-stack .seg-ASSESSED em{color:#e9f2ff}.bars{margin:14px 0 26px;position:relative}.bars-grid{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.bars-grid span{background:var(--line);height:1px}.bar-col{justify-content:center;align-items:flex-end;display:flex;position:absolute;top:0;bottom:0}.bar{opacity:.85;width:62%;max-width:28px;min-height:1px;transition:height .7s var(--ease-out);border-radius:4px 4px 0 0}.bar-col:hover .bar{opacity:1;filter:brightness(1.15)}.bars-axis{font-family:var(--font-mono);color:var(--text-faint);border-top:1px solid var(--line-mid);padding-top:4px;font-size:9.5px;display:flex;position:absolute;bottom:-20px;left:0;right:0}.bars-axis span{text-align:center;white-space:nowrap;overflow:hidden}.line-chart{margin-top:10px;position:relative}.heatmap{gap:3px;margin-top:12px;padding-bottom:6px;display:flex;position:relative;overflow-x:auto}.hm-col{flex-direction:column;gap:3px;display:flex}.hm-cell{border-radius:3px;width:13px;height:13px}.kpis{border-bottom:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:28px;padding-bottom:20px;display:grid}@media (max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}}.an-section{margin-bottom:30px}.an-row{align-items:center;gap:14px;display:flex}.an-label{flex:none;width:170px;font-size:13.5px}@media (max-width:640px){.an-row{flex-wrap:wrap}.an-label{width:100%}}.calib{flex-direction:column;gap:10px;margin-top:12px;display:flex}.calib-row{align-items:center;gap:12px;display:flex}.mistake{background:var(--surface-1)}.recovery-flow{flex-wrap:wrap;gap:4px;margin-top:12px;display:flex}.recovery-flow span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:var(--label-case);color:var(--text-faint);border:1px solid var(--line);clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%);align-items:center;gap:6px;padding:3px 10px;font-size:10px;display:inline-flex}.recovery-flow span i{background:var(--text-faint);border-radius:50%;width:6px;height:6px}.recovery-flow span.done{color:var(--green)}.recovery-flow span.done i{background:var(--green)}.recovery-flow span.on{color:var(--text-strong);border-color:rgba(var(--accent-rgb), .5);background:rgba(var(--accent-rgb), .12)}.recovery-flow span.on i{background:var(--accent)}.review-row{border-bottom:1px solid var(--line);align-items:center;gap:14px;min-width:0;padding:12px 6px;display:flex}.flashcard{background:var(--surface-1);perspective:1200px;flex-direction:column;gap:12px;min-height:260px;display:flex}.flashcard.flipped{background:linear-gradient(160deg, #a283ff1f, var(--surface-1))}.fc-face{color:var(--text);text-align:center;overflow-wrap:anywhere;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;min-height:200px;display:flex}.flashcard.flipped .fc-face{animation:flip-in .42s var(--ease-out)}@keyframes flip-in{0%{opacity:.2;transform:rotateY(90deg)}to{opacity:1;transform:none}}.fc-text{font-family:var(--font-display);font-size:clamp(22px,3vw,34px)}.profile-subject{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.level-band{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:22px;padding:22px 0;display:flex}.quest{border-bottom:1px solid var(--line);gap:14px;min-width:0;padding:14px 0;display:flex}.quest-cad{writing-mode:vertical-rl;font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--violet);border-left:1px solid #a283ff66;padding-left:6px;font-size:10px;transform:rotate(180deg)}.quest-cad.weekly{color:var(--magenta);border-color:#ff4fd866}.boss-card{background:var(--surface-1)}.boss-card.open{background:radial-gradient(circle at 100% 0%, #ff4fd829, transparent 55%), var(--surface-1)}.ach-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.ach{border:1px solid var(--line);background:var(--surface-1);filter:grayscale(.9);opacity:.55;border-radius:10px;align-items:flex-start;gap:14px;min-width:0;padding:16px;display:flex}.ach.on{filter:none;opacity:1;border-color:rgba(var(--accent-rgb), .35);animation:pop-in .52s var(--ease-bounce) both}.ach-glyph{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--track);width:50px;height:56px;color:var(--text-dim);flex:none;place-items:center;display:grid}.ach.on.bronze .ach-glyph{color:#fff;background:linear-gradient(160deg,#c98a4e,#6b3d1d)}.ach.on.silver .ach-glyph{color:#0a1024;background:linear-gradient(160deg,#d6e3ff,#6a7ba3)}.ach.on.gold .ach-glyph{color:#2a1a00;background:linear-gradient(160deg,#ffe38a,#b57a12);box-shadow:0 0 20px #ffd25a66}.ach.on.mythic .ach-glyph{background:linear-gradient(160deg, var(--magenta), var(--violet));color:#fff}.notes-layout{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:24px;display:grid}@media (max-width:900px){.notes-layout{grid-template-columns:1fr}}.notes-list{flex-direction:column;gap:8px;display:flex}.note-item{text-align:left;border:1px solid var(--line);background:var(--surface-1);color:var(--text);overflow-wrap:anywhere;border-radius:8px;flex-direction:column;gap:3px;min-width:0;padding:10px 12px;display:flex}.note-item.on{border-color:rgba(var(--accent-rgb), .55);background:rgba(var(--accent-rgb), .08)}.note-editor{flex-direction:column;gap:16px;min-width:0;display:flex}.note-title{font-family:var(--font-display);font-size:22px}.note-body{min-height:300px;font-size:15.5px}.writing-scores{flex-direction:column;gap:8px;display:flex}.finding{border-left:3px solid var(--line-strong);background:var(--surface-1);overflow-wrap:anywhere;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.finding.important{border-left-color:var(--red)}.finding.check{border-left-color:var(--amber)}.finding.tip{border-left-color:var(--accent)}.rule-table td{vertical-align:top;overflow-wrap:anywhere}.rule-table td:first-child{width:28%}.boss-page{--bh:var(--boss-hue,300)}.boss-arena{border:1px solid hsla(var(--bh), 90%, 60%, .35);background:radial-gradient(ellipse at 50% 0%, hsla(var(--bh), 90%, 50%, .28), transparent 60%), radial-gradient(ellipse at 50% 120%, #ff285a2e, transparent 50%), #060410f0;clip-path:polygon(24px 0,100% 0,100% calc(100% - 24px),calc(100% - 24px) 100%,0 100%,0 24px);color:#f1e8ff;padding:40px 28px 28px;position:relative;overflow:hidden}.boss-sigil{opacity:.5;pointer-events:none;width:320px;height:320px;position:absolute;top:-60px;right:-60px}.boss-sigil span{border:1px solid hsla(var(--bh), 90%, 65%, .5);animation:24s linear infinite spin;position:absolute;inset:0;transform:rotate(45deg)}.boss-sigil span:nth-child(2){animation-duration:16s;animation-direction:reverse;inset:40px}.boss-sigil span:nth-child(3){border-style:dashed;border-radius:50%;inset:90px}.boss-head{flex-direction:column;gap:8px;max-width:720px;display:flex;position:relative}.boss-name{letter-spacing:.06em;color:#fff;text-shadow:0 0 30px hsla(var(--bh), 100%, 60%, .8);overflow-wrap:anywhere;font-size:clamp(32px,5vw,60px)}.boss-title{font-family:var(--font-mono);letter-spacing:.26em;text-transform:uppercase;color:hsla(var(--bh), 90%, 75%, 1);font-size:12px}.boss-hp{border:1px solid hsla(var(--bh), 90%, 60%, .5);background:#ffffff0f;height:14px;margin-top:10px;overflow:hidden;transform:skew(-12deg)}.boss-hp span{background:linear-gradient(90deg, #ff2a6d, hsla(var(--bh), 95%, 60%, 1));height:100%;transition:width .6s var(--ease-out);display:block}.boss-lore{font-family:var(--font-display);color:var(--text);font-size:19px;font-style:italic}.boss-phase{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;color:hsla(var(--bh), 80%, 60%, 1)}.boss-q{background:var(--surface-1);min-width:0}.boss-hit{animation:shake .42s var(--ease-out) 1}.boss-hit .boss-hp span{filter:brightness(2)}.player-hit{animation:shake .3s var(--ease-out) 1;box-shadow:inset 0 0 80px #ff285a80}.boss-end{flex-direction:column;align-items:center;display:flex}.welcome-lang{justify-content:center;margin-bottom:14px;display:flex}.stim-center{justify-content:center;display:flex}.clock-stim{width:100%;max-width:220px}.clock-face{fill:var(--surface-2,#78aaff0f);stroke:var(--line-strong,#78c8ff80);stroke-width:3px}.clock-tick{stroke:var(--text-faint);stroke-width:1px}.clock-tick.big{stroke:var(--text-dim);stroke-width:2.5px}.clock-num{fill:var(--text);font-size:17px;font-family:var(--font-display,inherit)}.clock-hand{stroke-linecap:round}.clock-hand.hour{stroke:var(--text);stroke-width:7px}.clock-hand.minute{stroke:var(--accent);stroke-width:4px}.clock-pin{fill:var(--accent)}.objects-stim{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.objects-group{border:1px dashed var(--line);border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.objects-row{gap:6px;font-size:28px;line-height:1.1;display:flex}.shape-stim{width:100%;max-width:200px}.shape-stim polygon,.shape-stim circle{fill:#46e6ff29;stroke:var(--accent);stroke-width:3px;stroke-linejoin:round}.aim-list{counter-reset:aim;margin:0;padding:0;list-style:none}.aim-row{border-bottom:1px solid var(--line);min-width:0;padding:12px 0}.aim-row:last-child{border-bottom:0}.aim-row.uncovered{opacity:.72}.aim-check{cursor:pointer;align-items:flex-start;gap:10px;min-width:0;display:flex}.aim-check input{accent-color:var(--accent);flex:none;margin-top:3px}.aim-check span{overflow-wrap:anywhere;min-width:0}.aim-meta{flex-wrap:wrap;gap:4px 12px;min-width:0;margin:4px 0 0 26px;display:flex}.aim-list .aim-row>.row+.aim-meta{margin-left:0}.assess-aim{border-left:2px solid var(--accent);background:var(--surface-2,#78aaff0d);overflow-wrap:anywhere;border-radius:0 8px 8px 0;padding:10px 14px}.assess-aim .label{margin-right:6px}.live-goal{transition:border-color var(--t-fast), background var(--t-fast);border:1px solid #0000;border-radius:8px;padding:8px 10px}.live-goal.on{border-color:rgba(var(--accent-rgb), .45);background:rgba(var(--accent-rgb), .06)}.live-goal .chip.tiny{flex:none;padding:1px 7px;font-size:11px}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}@media (max-width:760px){.assess-run .exam-bar{flex-wrap:wrap;gap:10px}}.palace-stage{border:1px solid var(--line);background:radial-gradient(120% 90% at 50% 0,#4678c824,#0000 60%),#070b16;border-radius:14px;position:relative;overflow:hidden}.palace-3d{aspect-ratio:16/10;width:100%;min-height:300px;max-height:70vh;display:block}.palace-3d canvas{display:block}.palace-3d.loading{place-items:center;display:grid}.palace-stage-bar{pointer-events:none;flex-wrap:wrap;align-items:center;gap:12px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.palace-stage-bar>*{pointer-events:auto}.palace-stage-bar .tiny{background:#050810b8;border-radius:6px;min-width:0;padding:4px 8px}.palace-plan{aspect-ratio:16/10;cursor:crosshair;background:#0a1020;width:100%;min-height:260px;position:relative}.palace-plan .room{pointer-events:none;background:#78a0e60f;border:1px solid #a0bef059;border-radius:4px;position:absolute}.palace-plan .room span{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-size:11px;position:absolute;top:4px;left:6px}.palace-plan .furn{cursor:pointer;background:#ffc88c2e;border:1px solid #ffdcaa73;border-radius:5px;width:18px;height:18px;margin:-9px 0 0 -9px;padding:0;position:absolute}.palace-plan .furn:hover,.palace-plan .furn:focus-visible{background:#ffc88c66}.palace-plan .furn.k-plant,.palace-plan .furn.k-tree{background:#50c87840;border-color:#78dc9699;border-radius:50%}.palace-plan .furn.k-rug,.palace-plan .furn.k-mat{background:#a082ff2e;border-color:#b496ff80;width:30px;height:20px;margin:-10px 0 0 -15px}.palace-plan .furn.k-train{background:#d84b5f40;border-color:#ff6e8299;width:16px;height:120px;margin:-60px 0 0 -8px}.palace-plan .route{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.palace-plan .locus{border:2px solid var(--accent);width:26px;height:26px;color:var(--accent);font:600 12px var(--font-mono);cursor:pointer;box-shadow:0 0 12px rgba(var(--accent-rgb), .45);background:#050a14d9;border-radius:50%;place-items:center;margin:-13px 0 0 -13px;padding:0;display:grid;position:absolute}.palace-plan .locus.empty{border-color:var(--text-faint);color:var(--text-faint);box-shadow:none}.palace-plan .locus.on{border-color:var(--violet);color:var(--violet);transform:scale(1.2);box-shadow:0 0 16px #a283ff99}.palace-walk{align-self:flex-start}@media (max-width:760px){.palace-3d,.palace-plan{aspect-ratio:4/3}}.research-cues{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.research-cue{overflow-wrap:anywhere;min-width:0}.research-refs{gap:6px;padding-left:22px;display:grid}.research-refs li{overflow-wrap:anywhere}.chat{flex-direction:column;gap:12px;display:flex}.chat-log{flex-direction:column;gap:12px;min-height:280px;max-height:62vh;padding-right:4px;display:flex;overflow-y:auto}.chat-empty{flex-direction:column;gap:10px;margin:auto 0;display:flex}.chat-msg{overflow-wrap:anywhere;max-width:82%;animation:page-in var(--t-med,.25s) var(--ease-out,ease-out);border-radius:10px;padding:10px 14px;font-size:14.5px;line-height:1.55}.chat-msg.user{background:rgba(var(--accent-rgb), .14);border:1px solid rgba(var(--accent-rgb), .3);align-self:flex-end}.chat-msg.assistant{border-left:2px solid var(--violet);background:#a283ff12;align-self:flex-start}.chat-meta{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-bottom:4px;font-size:10px}.chat-typing:after{content:"▍";color:var(--violet);margin-left:2px;animation:1s steps(2,end) infinite chat-blink}@keyframes chat-blink{50%{opacity:0}}.chat-input{align-items:flex-end;gap:8px;display:flex}.chat-input .textarea{min-height:48px;max-height:200px}@media (max-width:640px){.chat-msg{max-width:94%}.chat-input{flex-direction:column;align-items:stretch}}:root[data-motion=off] .chat-msg,:root[data-motion=off] .chat-typing:after{animation:none}.recovery-code{font-family:var(--font-mono);letter-spacing:.12em;border:1px dashed var(--line-strong);border-radius:var(--r-sm);text-align:center;-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;padding:14px 18px;font-size:clamp(18px,4vw,26px)}.sync-dot{background:var(--text-faint);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.sync-dot.saved{background:var(--green)}.sync-dot.saving{background:var(--accent)}.sync-dot.offline,.sync-dot.error{background:var(--amber)}.account-btn{position:relative}.account-btn .dot{background:var(--green);border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:6px}.auth-forms .tabs{flex-wrap:wrap;margin-bottom:4px}.cmd-trigger{min-width:0}.cmd-trigger>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.chat-empty .chip{white-space:normal;text-align:left;max-width:100%;line-height:1.4}.text-levels{gap:6px;display:grid}.text-level{border-radius:var(--r-sm);opacity:.55;transition:opacity var(--t-fast), border-color var(--t-fast), background var(--t-fast);border:1px solid #0000;grid-template-columns:74px 1fr;align-items:baseline;gap:10px;padding:6px 10px;display:grid}.text-level.on{opacity:1;border-color:rgba(var(--accent-rgb), .45);background:rgba(var(--accent-rgb), .07)}.sysw-layer{z-index:180;pointer-events:none;width:min(440px,100vw - 24px);position:fixed;top:74px;left:50%;transform:translate(-50%)}.sysw{--sys-rgb:var(--accent-rgb);pointer-events:auto;cursor:pointer;background:linear-gradient(180deg, rgba(var(--sys-rgb), .18), rgba(var(--sys-rgb), .04) 45%), var(--surface-3);border:1px solid rgba(var(--sys-rgb), .75);box-shadow:0 0 0 1px rgba(var(--sys-rgb), .15), 0 0 34px rgba(var(--sys-rgb), .35), var(--shadow-deep);transform-origin:50%;animation:sysw-open .46s var(--ease-out) both;padding:14px 18px 16px;position:relative;overflow:hidden}.sysw:before{content:"";pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff09 0 1px,#0000 1px 3px);position:absolute;inset:0}.sysw:after{content:"";pointer-events:none;width:32%;animation:sysw-shine 1.1s .26s var(--ease-out) both;background:linear-gradient(100deg,#0000,#fff3,#0000);position:absolute;top:0;bottom:0;left:-45%}.sysw.closing{animation:.26s ease-in forwards sysw-close}.sysw.mastery,.sysw.level{--sys-rgb:162, 131, 255}.sysw.achievement,.sysw.quest{--sys-rgb:255, 79, 216}.sysw.boss{--sys-rgb:255, 91, 127}.sysw.account{--sys-rgb:72, 245, 176}.sysw-corner{border:2px solid rgb(var(--sys-rgb));width:12px;height:12px;position:absolute}.sysw-corner.tl{border-bottom:0;border-right:0;top:0;left:0}.sysw-corner.tr{border-bottom:0;border-left:0;top:0;right:0}.sysw-corner.bl{border-top:0;border-right:0;bottom:0;left:0}.sysw-corner.br{border-top:0;border-left:0;bottom:0;right:0}.sysw-head{font-family:var(--font-mono);letter-spacing:.24em;color:rgb(var(--sys-rgb));justify-content:space-between;gap:10px;font-size:10.5px;display:flex}.sysw-kind{color:var(--text-dim)}.sysw-title{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--text-strong);text-shadow:0 0 16px rgba(var(--sys-rgb), .65);overflow-wrap:anywhere;margin-top:6px;font-size:22px;font-weight:700}.sysw-lines p{color:var(--text-2);margin:6px 0 0;font-size:14px;line-height:1.5}.sysw-lines p.typing:after{content:"▍";color:rgb(var(--sys-rgb));margin-left:1px;animation:.8s steps(2,end) infinite chat-blink}.sysw-reward{font-family:var(--font-display);letter-spacing:.08em;color:var(--amber);animation:pop-in .52s .32s var(--ease-bounce) both;background:#ffb84d1a;border:1px solid #ffb84d8c;margin-top:10px;padding:3px 12px;font-weight:700;display:inline-block}@keyframes sysw-open{0%{opacity:0;transform:scaleY(.03)scaleX(.5)}45%{opacity:1;transform:scaleY(.03)scaleX(1)}to{opacity:1;transform:none}}@keyframes sysw-close{to{opacity:0;transform:scaleY(.03)}}@keyframes sysw-shine{to{left:130%}}.sys-banner{border-radius:var(--r-sm);transform-origin:0;animation:sysw-open .46s var(--ease-out) both;background:#48f5b014;border:1px solid #48f5b080;align-items:flex-start;gap:12px;margin-bottom:18px;padding:12px 16px;display:flex}.sys-banner>svg{width:20px;height:20px;color:var(--green);flex:none;margin-top:2px}.sys-banner-k{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--green);font-size:11px}.modal{transform-origin:top;animation:sysw-open .42s var(--ease-out) both}#main{position:relative}.route-scan{pointer-events:none;z-index:30;height:100vh;position:absolute;top:0;left:0;right:0;overflow:hidden}.route-scan:before{content:"";background:linear-gradient(90deg, transparent, rgba(var(--accent-rgb), .95), transparent);height:2px;box-shadow:0 0 18px rgba(var(--accent-rgb), .85);animation:route-scan .62s var(--ease-out) both;position:absolute;top:0;left:0;right:0}.route-scan:after{content:"";background:linear-gradient(180deg, rgba(var(--accent-rgb), .08), transparent 35%);animation:.62s ease-out both fade-out;position:absolute;inset:0}@keyframes route-scan{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100vh)}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.page{animation:page-materialize .56s var(--ease-out) both}@keyframes page-materialize{0%{opacity:0;filter:brightness(1.7)saturate(1.4);transform:translateY(12px)}55%{opacity:1;filter:brightness(1.12)}to{opacity:1;filter:none;transform:none}}[data-effects=off] .page,[data-effects=low] .page{animation:page-in .42s var(--ease-out) both}[data-effects=off] .route-scan{display:none}:where(.page .grid>*,.page>section,.page>.plate){animation:reveal .52s var(--ease-out) both}:where(.page .grid>:nth-child(2)){animation-delay:60ms}:where(.page .grid>:nth-child(3)){animation-delay:.12s}:where(.page .grid>:nth-child(4)){animation-delay:.18s}:where(.page .grid>:nth-child(5)){animation-delay:.24s}:where(.page .grid>:nth-child(6)){animation-delay:.3s}:where(.page .grid>:nth-child(n+7)){animation-delay:.34s}.page-head h1{position:relative}.page-head h1:after{content:"";background:linear-gradient(90deg, var(--accent), transparent);width:64px;height:2px;box-shadow:0 0 10px rgba(var(--accent-rgb), .7);transform-origin:0;animation:vgrow .7s .18s var(--ease-out) both;position:absolute;bottom:-6px;left:0}.xpbar.pulse{animation:xp-pulse .95s var(--ease-out)}.xpbar.pulse .lvl-hex{animation:xp-hex .95s var(--ease-bounce)}@keyframes xp-pulse{0%{filter:brightness(1.9) drop-shadow(0 0 10px rgba(var(--accent-rgb), .95))}to{filter:none}}@keyframes xp-hex{30%{transform:scale(1.18)rotate(-6deg)}to{transform:none}}.combo-pop{z-index:95;pointer-events:none;font-family:var(--font-display);color:var(--amber);text-shadow:0 0 18px #ffb84d99;animation:combo-pop 1.5s var(--ease-out) forwards;align-items:baseline;gap:8px;font-weight:700;display:flex;position:fixed;top:128px;right:28px}.combo-pop .combo-k{letter-spacing:.3em;font-size:13px}.combo-pop .combo-n{font-size:42px;line-height:1}.combo-pop.big{color:var(--magenta);text-shadow:0 0 22px #ff4fd8b3}.combo-pop.big .combo-n{font-size:54px}@keyframes combo-pop{0%{opacity:0;transform:scale(.4)rotate(-10deg)}14%{opacity:1;transform:scale(1.28)rotate(3deg)}28%{transform:scale(1)rotate(0)}80%{opacity:1;transform:none}to{opacity:0;transform:translateY(-24px)}}@media (max-width:640px){.combo-pop{top:auto;bottom:92px;right:16px}.sysw-layer{top:64px}}.ai-forge{border-radius:var(--r-sm);background:linear-gradient(120deg, #a283ff29, #ff4fd80f 60%, transparent), var(--surface-2);transform-origin:0;animation:sysw-open .46s var(--ease-out) both;border:1px solid #a283ff8c;align-items:center;gap:18px;padding:16px 18px;display:flex;position:relative;overflow:hidden}.ai-forge:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff24,#0000);width:30%;animation:2.4s ease-in-out infinite ai-sweep;position:absolute;top:0;bottom:0;left:-45%}.ai-forge-core{flex:none;width:54px;height:54px;position:relative}.ai-forge-core span{border:2px solid #0000;border-top-color:var(--violet);border-right-color:#a283ff59;border-radius:50%;animation:1.4s linear infinite spin;position:absolute;inset:0}.ai-forge-core span:nth-child(2){border-top-color:var(--magenta);border-left-color:#ff4fd859;border-right-color:#0000;animation-duration:.9s;animation-direction:reverse;inset:9px}.ai-forge-core span:nth-child(3){background:radial-gradient(circle,#a283fff2,#0000 70%);border:0;animation:1.2s ease-in-out infinite vpulse;inset:19px}.ai-forge-k{font-family:var(--font-mono);letter-spacing:.24em;color:var(--violet);font-size:10.5px}.ai-forge-step{color:var(--text-strong);animation:reveal .42s var(--ease-out) both;margin:4px 0 2px;font-weight:600}@keyframes ai-sweep{0%{left:-45%}60%,to{left:130%}}.ai-cta{background:linear-gradient(120deg, #a283ff1f, transparent 60%), var(--surface-2);border-color:#a283ff80;margin-bottom:18px}.ai-grading{animation:1.2s ease-in-out infinite ai-glow}@keyframes ai-glow{50%{box-shadow:0 0 14px #ff4fd88c}}.ai-list{flex-direction:column;gap:3px;margin:0;padding-left:18px;display:flex}.levelup .lu-lines{text-align:left;width:min(460px,86vw);animation:reveal .6s .5s var(--ease-out) both}.levelup .lu-lines .sysw-lines p{font-size:15px}
