:root{--bg: #05080a;--panel: #07110d;--panel-2: #0b1715;--line: #28ff9c;--line-soft: rgba(40, 255, 156, .32);--text: #dcffe9;--muted: #91c7ad;--amber: #ffbf3d;--cyan: #00e5ff;--red: #ff4d6d;--font-mono: "IBM Plex Mono", "Cascadia Code", Consolas, monospace;--shell-max-width: 860px;--topbar-side-width: 260px;--topbar-brand-width: 180px;--topbar-gap: 8px;--topbar-sticky-offset: 73px;color:var(--text);background:var(--bg);font-family:var(--font-mono);font-size:16px;line-height:1.45}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,rgba(0,229,255,.08),transparent 34%),var(--bg)}html{scrollbar-color:rgba(40,255,156,.55) #020403;scrollbar-width:thin}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:#020403;border:1px solid rgba(40,255,156,.12)}*::-webkit-scrollbar-thumb{border:2px solid #020403;border-radius:0;background:linear-gradient(180deg,#28ff9ceb,#00e5ff8c);box-shadow:inset 0 0 0 1px #ffbf3d2e}*::-webkit-scrollbar-corner{background:#020403}button,input{font:inherit}button{min-height:44px;border:1px solid var(--line-soft);background:#0a1812;color:var(--text);padding:10px 14px;text-transform:uppercase;cursor:pointer;border-radius:6px}button:disabled{cursor:wait;opacity:.6}button:hover,button:focus-visible{border-color:var(--line);outline:none;box-shadow:0 0 0 2px #28ff9c1f}.primary{background:var(--line);color:#04110b;border-color:var(--line);font-weight:800}.ghost{background:transparent}.wide{width:100%;margin-top:12px}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.topbar{position:sticky;top:0;z-index:5;padding:8px 12px;background:linear-gradient(180deg,#050e0dfa,#020508f5);border-bottom:1px solid rgba(0,229,255,.28);box-shadow:0 14px 34px #00000057,inset 0 -1px #28ff9c14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-deck{width:100%;max-width:calc(var(--shell-max-width) + var(--topbar-side-width) + var(--topbar-side-width) + var(--topbar-gap) + var(--topbar-gap));margin:0 auto;display:grid;grid-template-columns:minmax(56px,var(--topbar-side-width)) minmax(0,var(--shell-max-width)) minmax(0,var(--topbar-side-width));align-items:center;gap:var(--topbar-gap)}.brand{justify-self:end;min-width:0;width:var(--topbar-brand-width);display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;justify-content:start;gap:9px;position:relative;isolation:isolate;border-color:#ffbf3d6b;background:linear-gradient(135deg,#ffbf3d1f,#00e5ff14 45%,#020706d1);padding:5px 11px 5px 5px;min-height:52px;border-radius:10px;color:var(--line);font-weight:800;text-align:left;box-shadow:inset 0 0 18px #28ff9c14,0 0 18px #ffbf3d1a;overflow:hidden}.brand:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(90deg,transparent,rgba(40,255,156,.16),rgba(255,191,61,.1),transparent);transform:translate(-115%);animation:sweep 3.8s steps(10,end) infinite}.brand-logo{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,191,61,.72);border-radius:8px;background:radial-gradient(circle at 50% 20%,rgba(40,255,156,.24),transparent 36%),linear-gradient(145deg,#ffbf3d29,#00e5ff12);color:var(--amber);box-shadow:0 0 16px #ffbf3d3d,inset 0 0 12px #28ff9c1f}.brand-logo svg{width:31px;height:31px;overflow:visible;filter:drop-shadow(0 0 6px currentColor)}.brand-logo path{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:square;stroke-linejoin:miter}.brand-logo .logo-line,.brand-logo .logo-scan{stroke:var(--line)}.brand-copy{min-width:0;display:grid;justify-items:start;gap:1px}.brand-name{color:var(--text);font-size:15px;line-height:1.05;text-shadow:0 0 8px rgba(220,255,233,.25)}.brand-subtitle{color:var(--cyan);font-size:9px;line-height:1;letter-spacing:0;text-transform:uppercase}.topbar-console{width:100%;min-width:0;min-height:52px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;position:relative;padding:8px 12px;border:1px solid rgba(40,255,156,.26);border-radius:10px;background:linear-gradient(180deg,#04110dd6,#010809c2);box-shadow:inset 0 0 22px #28ff9c0f,inset 0 -1px #00e5ff1f;overflow:hidden}.topbar-console:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(40,255,156,.12),rgba(40,255,156,.12) 1px,transparent 1px,transparent 18px);opacity:.16}.topbar-console:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--line),var(--amber),var(--cyan));transform-origin:left;animation:consoleLoad 4.2s steps(12,end) infinite}.console-chip,.console-pulse{position:relative;z-index:1;border:1px solid rgba(0,229,255,.28);border-radius:6px;padding:4px 7px;background:#00e5ff0f;color:var(--cyan);font-size:10px;font-weight:800;line-height:1;white-space:nowrap}.console-path{position:relative;z-index:1;min-width:0;overflow:hidden;color:var(--text);font-size:12px;font-weight:800;text-overflow:ellipsis;text-shadow:0 0 8px rgba(40,255,156,.2);white-space:nowrap}.console-pulse{border-color:#28ff9c57;color:var(--line);animation:textGlow 2.4s steps(2,end) infinite}.user-chip{justify-self:stretch;min-width:0;width:100%;max-width:100%;display:flex;justify-content:flex-start;align-items:center;gap:5px;min-height:52px;padding:5px;border:1px solid rgba(0,229,255,.32);border-radius:10px;background:linear-gradient(180deg,#021010d6,#010608b8);box-shadow:inset 0 0 16px #00e5ff14,0 0 18px #00e5ff0f;color:var(--amber);font-size:12px;overflow:hidden}.guest-chip{width:max-content;max-width:100%;border-color:#28ff9c42;background:linear-gradient(180deg,#04110dd6,#010809b8)}.status-dot.guest{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.status-dot{width:7px;height:7px;margin:0 2px;border-radius:50%;background:var(--line);box-shadow:0 0 10px var(--line)}.user-name{min-width:0;flex:1 1 auto;max-width:120px;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap;text-transform:none}.user-stat{display:grid;place-items:center;min-width:38px;min-height:36px;padding:3px 6px;border:1px solid rgba(40,255,156,.2);border-radius:7px;background:#04110bb8}.user-stat small{color:var(--muted);font-size:9px;line-height:1}.user-stat strong{color:var(--amber);font-size:13px;line-height:1.2}.topbar-action{flex:0 0 auto;display:inline-grid;place-items:center;min-height:34px;padding:6px 9px;font-size:12px}.topbar-action{border-color:#ffbf3d5c;color:var(--amber);background:#100a0294}.icon-action{width:34px;min-width:34px}.topbar-action.icon-action{padding:0}.topbar-action-icon{width:17px;height:17px;color:currentColor;filter:drop-shadow(0 0 5px currentColor)}.admin-action{border-color:#00e5ff70;color:var(--cyan);background:#00101294}.exit-action{border-color:#ffbf3d94;box-shadow:inset 0 0 12px #ffbf3d14}.login-action{border-color:#ffbf3d94;background:linear-gradient(180deg,#ffbf3d1a,#100a0294);box-shadow:0 0 16px #ffbf3d1f}.screen{width:100%;max-width:var(--shell-max-width);margin:0 auto;padding:16px 12px 92px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#05080af0;border-top:1px solid rgba(40,255,156,.18);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav button{display:grid;place-items:center;min-height:46px;padding:8px;font-weight:800}.bottom-nav .active{border-color:var(--amber);color:var(--amber);box-shadow:0 0 18px #ffbf3d33,inset 0 0 14px #ffbf3d14}.nav-icon{width:26px;height:26px;color:inherit;filter:drop-shadow(0 0 7px currentColor)}.nav-icon path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stack{display:grid;gap:14px}.terminal-card,.scanline-panel,.course-map-panel{position:relative;border:1px solid var(--line-soft);background:linear-gradient(180deg,#0b1715fa,#050b0afa);box-shadow:0 0 30px #28ff9c14,inset 0 0 0 1px #ffffff08;border-radius:8px;padding:16px;overflow:hidden}.terminal-card:after,.scanline-panel:after,.course-map-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.035),rgba(255,255,255,.035) 1px,transparent 1px,transparent 5px);opacity:.35}.landing{min-height:calc(100vh - 160px);display:grid;align-items:center}.scanline-panel{padding:22px}.eyebrow{margin:0 0 8px;color:var(--amber);font-size:12px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:10px;color:var(--line);font-size:42px}h2{margin-bottom:10px;color:var(--text);font-size:24px}h3{font-size:18px}.lead{color:var(--muted);max-width:56ch}.landing-track-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0 12px}.track-chip{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:8px;min-height:46px;padding:6px 8px;border:1px solid rgba(40,255,156,.24);border-radius:6px;background:linear-gradient(135deg,#28ff9c14,#00e5ff0a)}.track-chip strong{display:grid;place-items:center;min-height:32px;border:1px solid rgba(255,191,61,.5);border-radius:5px;color:var(--amber);font-size:12px;box-shadow:inset 0 0 12px #ffbf3d14}.track-chip small{min-width:0;overflow:hidden;color:var(--text);font-size:11px;font-weight:800;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.terminal-window{margin:18px 0;border:1px solid rgba(0,229,255,.45);background:#030605;border-radius:6px}.window-title{padding:8px 10px;color:var(--cyan);border-bottom:1px solid rgba(0,229,255,.3);font-size:12px}pre{margin:0;white-space:pre-wrap;word-break:break-word}.terminal-window pre,.code-block{padding:12px;color:var(--line)}.landing-mission-strip{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 18px}.landing-mission-strip span{border:1px solid rgba(0,229,255,.28);border-radius:999px;padding:5px 8px;color:var(--cyan);font-size:10px;font-weight:800;background:#00e5ff0d}.system-log{display:grid;gap:8px;padding:12px;color:var(--line);font-size:13px}.system-log.compact{padding:0;gap:6px}.system-line{display:flex;align-items:baseline;gap:8px;min-width:0;line-height:1.35;opacity:0;animation:lineBoot .28s steps(2,end) forwards;animation-delay:var(--delay)}.prompt{flex:0 0 auto;color:var(--amber);text-transform:uppercase}.typed{display:block;min-width:0;max-width:0;width:max-content;overflow:hidden;white-space:nowrap;color:var(--line);text-overflow:clip;animation:typeReveal .95s steps(28,end) forwards,textGlow 1.6s steps(2,end) infinite;animation-delay:calc(var(--delay) + .12s),calc(var(--delay) + .95s)}.cursor{flex:0 0 auto;width:8px;height:1.1em;background:var(--line);box-shadow:0 0 10px #28ff9c99;animation:cursorBlink .85s steps(1,end) infinite}.boot-title{color:var(--amber);letter-spacing:.02em;animation:textPulse 1.2s steps(2,end) infinite}.status-console{border-color:#00e5ff3d}.actions,.task-actions{display:flex;flex-wrap:wrap;gap:10px}.auth-card form{display:grid;gap:12px}.oauth-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}.oauth-icon-button{display:grid;place-items:center;min-height:54px;border-color:#00e5ff52;background:radial-gradient(circle at 50% 22%,rgba(0,229,255,.12),transparent 42%),#020706c7;color:var(--cyan);box-shadow:inset 0 0 18px #00e5ff0f}.oauth-icon-button:hover,.oauth-icon-button:focus-visible{border-color:currentColor;box-shadow:0 0 20px #00e5ff2e,inset 0 0 18px #00e5ff14}.oauth-icon-button.gitlab{border-color:#ffbf3d5c;color:var(--amber);background:radial-gradient(circle at 50% 22%,rgba(255,191,61,.12),transparent 42%),#080502c7}.oauth-icon{width:29px;height:29px;overflow:visible;fill:currentColor;filter:drop-shadow(0 0 8px currentColor)}.oauth-icon .gitlab-left{fill:#ff7a18}.oauth-icon .gitlab-right{fill:#ff4d3d}.oauth-icon .gitlab-center{fill:var(--amber)}.oauth-icon .gitlab-core{fill:#ffdd6a}label{display:grid;gap:6px;color:var(--muted);text-transform:uppercase;font-size:12px}input,.answer-input{width:100%;min-height:46px;border:1px solid var(--line-soft);background:#020403;color:var(--text);border-radius:6px;padding:11px 12px}.error{color:var(--red)}.success{color:var(--line)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric{border:1px solid rgba(255,191,61,.28);background:#ffbf3d0f;padding:12px;border-radius:6px}.metric span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase}.metric strong{display:block;color:var(--amber);font-size:22px}.section-head{padding:2px 4px}.recommended-path{position:relative;display:grid;gap:10px;border:1px solid rgba(255,191,61,.25);border-radius:8px;padding:12px;background:linear-gradient(135deg,#ffbf3d14,#00e5ff0a);overflow:hidden}.recommended-path:after{content:"";position:absolute;inset:42px 0 12px auto;width:52px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(7,17,13,.9) 68%,rgba(7,17,13,.98))}.recommended-path-label{color:var(--amber);font-size:12px;text-transform:uppercase}.recommended-path-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(136px,1fr);gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-inline:contain;scroll-snap-type:x proximity}.recommended-path-track::-webkit-scrollbar{display:none}.recommended-path-track button{min-height:56px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;border-color:color-mix(in srgb,var(--course),transparent 35%);background:#020403cc;scroll-snap-align:start}.recommended-path-track button.locked{border-color:#91c7ad38;background:repeating-linear-gradient(135deg,#91c7ad14 0,#91c7ad14 6px,#020403d6 6px,#020403d6 13px);cursor:not-allowed;opacity:.58}.recommended-path-track small{color:var(--course);font-size:11px}.recommended-path-track strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:12px}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.course-app{width:100%;min-width:0;min-height:188px;display:grid;grid-template-rows:auto auto 1fr auto;justify-items:start;align-content:start;gap:8px;padding:14px;text-align:left;border-color:color-mix(in srgb,var(--course),transparent 45%);background:linear-gradient(180deg,color-mix(in srgb,var(--course),transparent 94%),#07110dfa)}.course-app.locked{border-color:#91c7ad3d;background:linear-gradient(180deg,#91c7ad0a,#050908fa);cursor:not-allowed;opacity:.68;filter:grayscale(.38)}.course-app.locked .course-icon{box-shadow:none}.course-app.locked .course-title,.course-app.locked .course-description{color:#d7ffe9ad}.course-icon{display:grid;place-items:center;width:66px;height:66px;border:0;color:var(--course);border-radius:9px;font-weight:800;overflow:hidden;background:#020403;box-shadow:0 0 18px color-mix(in srgb,var(--course),transparent 78%)}.course-icon img{display:block;width:100%;height:100%;object-fit:cover}.course-icon span{max-width:54px;padding:0 3px;line-height:1;text-align:center;font-size:clamp(10px,2.8vw,12px);overflow:hidden;text-overflow:clip}.course-title{display:-webkit-box;min-width:0;width:100%;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text);font-weight:800;line-height:1.16}.course-description{display:-webkit-box;min-width:0;width:100%;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--muted);font-size:11px;line-height:1.35}.course-meta{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.row-status{color:var(--amber);font-size:12px}.progress{width:100%;height:10px;border:1px solid rgba(40,255,156,.28);background:#030605;border-radius:4px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--line),var(--amber));transition:width .25s ease}.course-hero{border-color:color-mix(in srgb,var(--course),transparent 35%)}.course-hero-summary{margin-top:8px;color:var(--line);font-size:12px;font-weight:800;text-transform:uppercase}.course-map-panel{padding:0;overflow:visible}.course-map-panel>*{position:relative;z-index:1}.course-map-status{position:sticky;top:var(--topbar-sticky-offset);z-index:4;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid rgba(40,255,156,.2);border-radius:8px 8px 0 0;background:linear-gradient(90deg,#07110df5,#051414f0,#161005eb);box-shadow:0 14px 28px #00000047,inset 0 -1px #ffffff0a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.course-map-status h3{margin:3px 0 4px;color:var(--cyan)}.course-map-status p{margin:0;color:var(--muted);font-size:13px}.course-map-status .course-map-summary{margin-top:8px;color:var(--line);font-size:12px;font-weight:800;text-transform:uppercase}.course-section-switcher{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-top:1px solid rgba(40,255,156,.14);border-bottom:1px solid rgba(40,255,156,.12);background:#030807d1}.course-section-switcher label{min-width:0;flex:1;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}.course-section-switcher span,.course-section-switcher small{color:var(--muted);font-size:11px;text-transform:uppercase}.course-section-switcher select{min-width:0;width:100%;border:1px solid rgba(255,191,61,.34);border-radius:4px;padding:8px 10px;background:#06100c;color:var(--text);font:inherit}.module-progress-card{min-width:180px;display:grid;gap:6px;color:var(--line)}.module-progress-card .progress{height:7px}.module-progress-line{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--line);font-size:12px;font-weight:800;text-transform:uppercase}.module-progress-line strong{color:var(--amber)}.module-progress-card small{color:var(--muted);font-size:11px;text-transform:uppercase}.course-map-track{position:relative;height:var(--map-height, 190px);min-height:190px;margin:8px 14px 30px;overflow:visible}.module-region{position:absolute;top:var(--module-start-y);left:0;right:0;height:var(--module-height);pointer-events:none}.unit-separator{position:absolute;top:var(--unit-separator-y);left:6%;right:6%;z-index:2;display:block;height:46px;transform:translateY(-50%);pointer-events:none;border-top:1px solid rgba(255,191,61,.28);border-bottom:1px solid rgba(0,229,255,.14);background:linear-gradient(90deg,transparent,rgba(255,191,61,.1) 16%,rgba(0,229,255,.08) 50%,rgba(255,191,61,.1) 84%,transparent);box-shadow:0 0 26px #00e5ff17,inset 0 1px #ffffff0b;opacity:.92}.unit-separator:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;transform:translateY(-50%);background:linear-gradient(90deg,transparent,rgba(255,191,61,.46),rgba(0,229,255,.34),rgba(255,191,61,.46),transparent);box-shadow:0 0 12px #ffbf3d1f}.unit-separator:after{content:attr(data-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:4px 10px;border:1px solid rgba(255,191,61,.36);border-radius:4px;background:linear-gradient(180deg,#08120ffa,#030807fa);color:#ffbf3de6;font-size:10px;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:0;box-shadow:0 0 14px #0000006b,0 0 12px #ffbf3d1a}.module-tree{position:relative;display:grid;gap:16px;padding:0;scroll-margin-top:170px}.module-tree+.module-tree{border-top:1px solid rgba(40,255,156,.16);padding-top:14px}.module-head{position:relative;z-index:1;display:grid;gap:6px;padding:16px 16px 14px;border-bottom:1px solid rgba(40,255,156,.16);background:linear-gradient(90deg,#28ff9c14,#00e5ff0d,#ffbf3d0f)}.module-kicker,.module-progress,.lesson-map-label,.lesson-index,.lesson-modal-state,.lesson-modal-meta{font-size:11px;font-weight:800;line-height:1;text-transform:uppercase}.module-kicker{color:var(--amber)}.module-tree h3{color:var(--cyan);margin-bottom:0}.module-tree p{margin:0;color:var(--muted)}.module-progress{color:var(--line)}.lesson-map{position:relative;z-index:1;height:var(--map-height, 150px);min-height:150px;margin:4px 14px 22px;overflow:visible}.lesson-map-path{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;overflow:visible;pointer-events:none}.mission-path-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.mission-path-line{stroke:#00e5ffc2;stroke-width:4;stroke-dasharray:1 8;filter:drop-shadow(0 0 6px rgba(0,229,255,.28))}.lesson-node{--lesson-node-center-y: 37px;position:absolute;top:calc(var(--node-y) - var(--lesson-node-center-y));left:calc(var(--node-x) * 1%);transform:translate(-50%);z-index:1;width:138px;display:grid;justify-items:center;gap:8px;text-align:center;min-height:112px;padding:7px;border:0;background:transparent;color:var(--text);text-transform:none;overflow:visible}.lesson-node:hover,.lesson-node:focus-visible{box-shadow:none;outline:none}.lesson-node:hover .lesson-core,.lesson-node:focus-visible .lesson-core{border-color:var(--text);transform:translateY(-3px) scale(1.05);box-shadow:0 0 0 5px #28ff9c1a,0 0 28px #28ff9c47,inset 0 0 18px #ffffff14}.lesson-node:disabled{cursor:not-allowed;opacity:.72}.lesson-orbit{position:relative;display:grid;place-items:center;min-width:0}.lesson-orbit:before{content:"";position:absolute;width:72px;height:72px;border:1px dashed rgba(0,229,255,.22);border-radius:50%;background:radial-gradient(circle,rgba(0,229,255,.12),transparent 62%);animation:textGlow 2.8s steps(2,end) infinite}.lesson-core{position:relative;z-index:1;display:grid;place-items:center;width:58px;height:58px;border:2px solid rgba(40,255,156,.74);border-radius:50%;background:radial-gradient(circle at 50% 28%,rgba(220,255,233,.22),transparent 33%),linear-gradient(180deg,#28ff9cf2,#045c33f5);color:#031009;box-shadow:0 8px #013a23f2,0 0 24px #28ff9c3d,inset 0 0 14px #fff3;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.lesson-state-icon{width:28px;height:28px;filter:drop-shadow(0 1px 0 rgba(255,255,255,.28))}.lesson-index{position:absolute;z-index:2;right:0;bottom:2px;display:grid;place-items:center;min-width:28px;min-height:22px;padding:3px 5px;border:1px solid rgba(255,191,61,.62);border-radius:6px;background:#06100c;color:var(--amber);box-shadow:0 0 12px #ffbf3d2e}.lesson-map-label{color:var(--amber);padding:4px 6px;border:1px solid rgba(255,191,61,.24);border-radius:5px;background:#050a09c7;box-shadow:0 0 12px #ffbf3d14}.lesson-node-copy{width:100%;display:grid;justify-items:center;gap:4px;min-width:0}.lesson-map-title{width:100%;color:var(--text);font-size:12px;font-weight:900;line-height:1.12;overflow-wrap:anywhere}.lesson-map-meta{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:0;color:var(--muted);font-size:10px;font-weight:800;line-height:1;text-transform:uppercase}.lesson-map-meta svg{width:12px;height:12px;flex:0 0 auto}.lesson-node.done{border-color:var(--line)}.lesson-node.active .lesson-core{border-color:#00e5ffd1;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.26),transparent 35%),linear-gradient(180deg,#00e5ffeb,#044b5bf5);color:#031013;box-shadow:0 8px #002933f5,0 0 30px #00e5ff42,inset 0 0 14px #ffffff29}.lesson-node.type-boss .lesson-core{border-color:#ffbf3de6;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.28),transparent 35%),linear-gradient(180deg,#ffbf3dfa,#593004fa);color:#170d02}.lesson-node.type-debug .lesson-core{border-color:#ff5d5dbd}.lesson-node.type-editor .lesson-core{border-style:double}.lesson-node.done .lesson-core{border-color:#ffbf3dcc;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.28),transparent 35%),linear-gradient(180deg,var(--amber),#8a5a05);color:#130c02;box-shadow:0 8px #532f01f2,0 0 24px #ffbf3d42,inset 0 0 14px #ffffff2e}.lesson-node.locked .lesson-core{border-color:#91c7ad52;background:linear-gradient(180deg,#242f2cf5,#090e0df5);color:var(--muted);box-shadow:0 8px #030606f2,inset 0 0 14px #ffffff08}.lesson-node.locked .lesson-map-label{border-color:#91c7ad2e;color:var(--muted)}.lesson-node.locked .lesson-map-title,.lesson-node.locked .lesson-map-meta{color:#91c7adb3}.reward-node .reward-core{border-color:#ffbf3dd6;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.28),transparent 35%),linear-gradient(180deg,#ffbf3df5,#774c05f5);color:#170d02;box-shadow:0 8px #532f01f2,0 0 28px #ffbf3d40,inset 0 0 14px #ffffff2e}.reward-node.reward-currency .reward-core{border-color:#00e5ffc7;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.26),transparent 35%),linear-gradient(180deg,#00e5ffeb,#044b5bf5);color:#031013;box-shadow:0 8px #002933f5,0 0 28px #00e5ff3d,inset 0 0 14px #ffffff2e}.reward-node.reward-inventory .reward-core{border-color:#ffbf3dd6;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.24),transparent 35%),linear-gradient(180deg,#ffbf3df0,#623605f5);color:#170d02}.chest-glyph{position:relative;display:block;width:31px;height:24px;border:2px solid rgba(23,13,2,.82);border-radius:4px;background:linear-gradient(180deg,#ffd166 0,#ffd166 38%,#9b5b0b 38%,#9b5b0b);box-shadow:inset 0 0 0 2px #fff2b738,0 2px #170d028c}.chest-glyph:before{content:"";position:absolute;left:-3px;right:-3px;top:-7px;height:11px;border:2px solid rgba(23,13,2,.82);border-bottom:0;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,#ffe28a,#c9780c)}.chest-glyph:after{content:"";position:absolute;left:50%;top:4px;width:7px;height:14px;transform:translate(-50%);border-radius:2px;background:#170d02d1}.chest-glyph span{position:absolute;z-index:1;left:50%;top:8px;width:10px;height:7px;transform:translate(-50%);border:1px solid rgba(255,235,150,.72);border-radius:2px;background:#07100c}.reward-node.locked .chest-glyph{filter:grayscale(.78) saturate(.35);opacity:.7}.reward-node.claimed .reward-core{border-color:#28ff9c9e;background:linear-gradient(180deg,#235c3ff5,#061e16f5);color:var(--line);box-shadow:0 8px #012115f5,inset 0 0 14px #ffffff0f}.reward-node.locked .reward-core{border-color:#91c7ad52;background:linear-gradient(180deg,#242f2cf5,#090e0df5);color:var(--muted);box-shadow:0 8px #030606f2,inset 0 0 14px #ffffff08}.reward-node .lesson-map-label{border-color:#00e5ff47;color:var(--cyan)}.reward-node.claimed .lesson-map-label{border-color:#28ff9c38;color:var(--line)}.reward-node.locked .lesson-map-label{border-color:#91c7ad2e;color:var(--muted)}.reward-index{min-width:34px}.lesson-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at 50% 28%,rgba(0,229,255,.12),transparent 36%),#010405c7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lesson-modal{position:relative;width:min(100%,540px);display:grid;gap:14px;padding:22px;border:1px solid rgba(40,255,156,.36);border-radius:8px;background:linear-gradient(180deg,#091612fa,#030808fa);box-shadow:0 24px 70px #00000094,0 0 34px #28ff9c1f,inset 0 0 0 1px #ffffff09;overflow:hidden}.lesson-modal:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.035),rgba(255,255,255,.035) 1px,transparent 1px,transparent 5px);opacity:.32}.lesson-modal>*{position:relative;z-index:1}.modal-close{position:absolute;z-index:2;top:12px;right:12px;display:grid;place-items:center;width:38px;min-height:38px;padding:0;border-color:#00e5ff2e;color:#dcffe9bd;background:#00e5ff0a;opacity:.82}.modal-close:hover,.modal-close:focus-visible{opacity:1;border-color:#00e5ff57}.modal-close svg{width:19px;height:19px}.lesson-modal-title-row{display:grid;gap:8px;padding-right:38px}.lesson-modal-title-row h2{margin-bottom:0}.lesson-modal-state{width:max-content;padding:5px 7px;border:1px solid rgba(255,191,61,.32);border-radius:5px;color:var(--amber);background:#ffbf3d0f}.lesson-modal p{margin:0;color:var(--muted)}.lesson-modal-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--line)}.lesson-modal-meta span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid rgba(40,255,156,.2);border-radius:6px;background:#28ff9c0f}.lesson-modal-meta svg{width:14px;height:14px;fill:#28ff9c24}.lesson-modal-note{padding:10px 12px;border:1px solid rgba(255,191,61,.2);border-radius:6px;background:#ffbf3d0f}.lesson-modal-note.error-note{border-color:#ff5d5d5c;color:#ffc8c8;background:#ff5d5d14}.lesson-modal-actions{display:flex;justify-content:flex-end;gap:10px}.lesson-modal.locked{border-color:#91c7ad47}.lesson-modal.done{border-color:#ffbf3d6b}.reward-modal.ready{border-color:#ffbf3d7a}.reward-modal.claimed{border-color:#28ff9c6b}.lesson-head p{color:var(--muted)}.lesson-head .progress{margin-bottom:12px}.markdown-copy{display:grid;gap:10px;min-width:0}.markdown-copy p,.markdown-copy ul,.markdown-copy ol{margin:0;color:var(--muted)}.markdown-copy ul,.markdown-copy ol{display:grid;gap:6px;padding-left:18px}.markdown-copy li::marker{color:var(--amber)}.markdown-copy code{color:var(--amber);background:#ffbf3d14;border:1px solid rgba(255,191,61,.18);border-radius:4px;padding:0 4px;font-size:.94em}.markdown-copy strong{color:var(--text)}.markdown-copy .code-block{margin:2px 0;border:1px solid rgba(0,229,255,.24);background:#020403;color:var(--line);overflow:auto}.markdown-copy .code-block code{display:block;padding:0;border:0;background:transparent;color:inherit}.task-prompt{margin:12px 0 14px}.task-prompt h3{margin:0;color:var(--text);line-height:1.24}.lesson-copy{margin-bottom:14px;font-size:14px}.task-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;color:var(--amber);font-size:12px;text-transform:uppercase}.task-meta span{display:inline-flex;align-items:center;gap:5px}.unit-chest-card{text-align:center}.unit-chest-card h3{margin:6px 0;color:var(--text)}.unit-chest-card p{color:var(--muted)}.unit-chest-visual{display:grid;place-items:center;width:90px;height:90px;margin:20px auto 12px;border:1px solid rgba(255,191,61,.32);border-radius:8px;background:#ffbf3d14}.unit-chest-visual .chest-glyph{transform:scale(1.45)}.unit-chest-reward{display:inline-flex;align-items:center;gap:8px;color:var(--amber)!important}.star-rating{display:inline-flex;align-items:center;gap:6px;margin:4px auto 8px;color:var(--muted);text-transform:uppercase;font-size:12px}.star-rating svg{width:18px;height:18px;color:#ffffff42}.star-rating svg.filled{color:var(--amber);fill:currentColor}.option-grid{display:grid;gap:10px;margin:14px 0}.option-grid button{text-align:left}.option-grid .selected{border-color:var(--amber);color:var(--amber);background:#ffbf3d14}.block-list{display:grid;gap:8px;margin:14px 0}.block-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:1px solid var(--line-soft);border-radius:6px;padding:8px;background:#030605}.block-row span{display:flex;gap:6px}.block-row button{min-width:38px;min-height:38px;padding:4px}.block-row button:disabled{opacity:.35;cursor:not-allowed}.hint{margin:12px 0;color:var(--muted)}.hint summary{color:var(--amber);cursor:pointer;text-transform:uppercase}.similar-example{display:grid;gap:10px;margin:12px 0;border:1px solid rgba(0,229,255,.22);border-radius:6px;padding:10px;background:#00e5ff0a}.similar-example .ghost{justify-self:start;border-color:#00e5ff5c;color:var(--cyan)}.similar-example .markdown-copy{color:var(--muted)}.code-editor{margin:14px 0;border:1px solid rgba(40,255,156,.24);border-radius:6px;overflow:hidden}.feedback.ok{border-color:var(--line)}.feedback.fail{border-color:var(--red)}.feedback-copy{margin:0}.output-grid{display:grid;gap:10px}.output-grid pre{border:1px solid rgba(0,229,255,.24);background:#020403;color:var(--cyan);padding:10px;border-radius:6px}.test-list{display:grid;gap:8px;margin-top:12px}.test-row{display:grid;gap:8px;border:1px solid rgba(255,255,255,.08);padding:8px;border-radius:6px}.test-row-head{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.test-row p{margin:0;color:var(--muted)}.test-pass strong{color:var(--line)}.test-fail strong{color:var(--red)}.test-list span,.test-list small{color:var(--muted)}.test-detail-grid{display:grid;gap:8px;margin:0}.test-detail-grid div{min-width:0;display:grid;gap:3px}.test-detail-grid dt{color:var(--amber);font-size:11px;text-transform:uppercase}.test-detail-grid dd{margin:0;min-width:0}.test-detail-grid code{display:block;overflow-x:auto;white-space:pre-wrap;word-break:break-word;border:1px solid rgba(0,229,255,.2);border-radius:4px;padding:7px;color:var(--cyan);background:#020403}.explain{color:var(--amber)}.complete-card{text-align:center}.account-email{margin-top:-6px;color:var(--muted);overflow-wrap:anywhere}.profile-form{display:grid;gap:10px;margin:14px 0}.profile-stats,.achievement-grid{display:grid;gap:10px}.inventory-panel h2{margin-bottom:6px}.inventory-list{display:grid;gap:8px;margin-top:12px}.inventory-list p{margin:0;color:var(--muted)}.inventory-list div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid rgba(40,255,156,.18);border-radius:6px;background:#28ff9c0d}.inventory-list span{color:var(--amber)}.achievement-grid div{border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:10px;opacity:.55}.achievement-grid .earned{opacity:1;border-color:var(--amber)}.achievement-grid small{display:block;color:var(--muted);margin-top:4px}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.tabs .active{border-color:var(--amber);color:var(--amber)}.leaderboard-list{display:grid;gap:8px}.leader-row{display:grid;grid-template-columns:42px 1fr auto auto;gap:8px;align-items:center;border-bottom:1px solid rgba(40,255,156,.16);padding:10px 0}.leader-row span,.leader-row small{color:var(--muted)}.leader-row b{color:var(--amber)}.loading-bar{margin-top:10px;height:14px;border:1px solid var(--line);background:#030605;overflow:hidden}.loading-bar span{display:block;width:70%;height:100%;background:repeating-linear-gradient(90deg,var(--line),var(--line) 10px,var(--amber) 10px,var(--amber) 20px);animation:load 1s steps(8) infinite alternate}@keyframes load{0%{transform:translate(-25%)}to{transform:translate(15%)}}@keyframes consoleLoad{0%{transform:scaleX(.18)}48%{transform:scaleX(.72)}to{transform:scaleX(1)}}@keyframes sweep{0%,62%{transform:translate(-115%)}to{transform:translate(115%)}}@keyframes lineBoot{0%{opacity:0}to{opacity:1}}@keyframes cursorBlink{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes typeReveal{0%{max-width:0}to{max-width:100%}}@keyframes textPulse{0%,to{opacity:.82;text-shadow:0 0 4px rgba(40,255,156,.15)}50%{opacity:1;text-shadow:0 0 10px rgba(255,191,61,.35)}}@keyframes textGlow{0%,to{text-shadow:0 0 2px rgba(40,255,156,.15)}50%{text-shadow:0 0 8px rgba(40,255,156,.38)}}@media (max-width: 1320px){.user-chip .user-name{display:none}}@media (max-width: 1260px){.brand{width:56px;grid-template-columns:44px;padding-right:5px}.brand-copy,.user-stat{display:none}}@media (max-width: 1040px){.topbar-deck{grid-template-columns:minmax(0,1fr) auto}.topbar-console{display:none}}@media (max-width: 760px){.topbar-deck{grid-template-columns:minmax(0,1fr) auto}.topbar-console{display:none}.course-map-status{top:var(--topbar-sticky-offset);grid-template-columns:1fr;gap:8px;padding:12px}.course-map-status .module-progress-card{justify-self:start;width:100%}.course-map-track{margin-inline:10px}.lesson-node,.lesson-node.path-center,.lesson-node.path-right{width:116px;min-height:106px}.lesson-core{width:54px;height:54px}.lesson-orbit:before{width:66px;height:66px}.lesson-modal{padding:18px;width:min(100%,620px);max-height:calc(100dvh - 32px);overflow-y:auto}}@media (max-width: 420px){.brand{grid-template-columns:42px;padding-right:5px}.brand-copy{display:none}.user-chip{gap:4px}.user-name{display:none}.user-stat{min-width:34px;padding-inline:5px}.topbar-action{padding-inline:7px}.lesson-modal-actions{display:grid;grid-template-columns:1fr}.lesson-modal-actions button{width:100%}}@media (min-width: 720px){.screen{padding:28px 20px 112px}.bottom-nav{max-width:640px;margin:0 auto 18px;border:1px solid rgba(40,255,156,.18);border-radius:8px}.scanline-panel{padding:36px}.landing-track-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.option-grid{grid-template-columns:repeat(2,1fr)}.course-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.course-app{min-height:196px}.output-grid{grid-template-columns:repeat(2,1fr)}}
