:root{--bg: #0b1326;--panel: #171f33;--panel-2: #1b2336;--panel-3: #222a3d;--panel-4: #2d3449;--line: #464554;--text: #dae2fd;--muted: #c7c4d7;--faint: #908fa0;--accent: #c0c1ff;--accent-deep: #8083ff;--accent-2: #4edea3;--accent-2-bright: #6ffbbe;--warn: #ffb95f;--hot: #ffb4ab;--mine: #c0c1ff;--radius: 14px;--radius-sm: 9px;--maxw: 1200px;--shadow: 0 16px 40px rgba(0, 0, 0, .45);--font: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "JetBrains Mono", "SF Mono", ui-monospace, "Cascadia Code", "Fira Code", Menlo, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);background:radial-gradient(900px 500px at 88% -8%,rgba(192,193,255,.1),transparent),radial-gradient(800px 500px at 0% 100%,rgba(78,222,163,.07),transparent),var(--bg);background-attachment:fixed;color:var(--text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glass{background:#171f33b8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(144,143,160,.2)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}.topnav{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);background:#0f1117d1;border-bottom:1px solid var(--line)}.topnav .inner{max-width:var(--maxw);margin:0 auto;padding:12px 22px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.4px;font-size:16px}.brand .logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;color:#0b1020;font-weight:900;font-size:15px}.navlinks{display:flex;gap:4px;flex-wrap:wrap}.navlinks a{color:var(--muted);font-size:13.5px;padding:7px 11px;border-radius:8px;text-decoration:none;transition:.15s}.navlinks a:hover,.navlinks a.active{color:var(--text);background:var(--panel-2)}.nav-right{margin-left:auto;display:flex;align-items:center;gap:10px}.streakpill{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:700;background:#f2cc6024;color:var(--warn);padding:5px 11px;border-radius:20px;border:1px solid rgba(242,204,96,.2)}.xppill{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:700;background:#c0c1ff21;color:var(--accent);padding:5px 11px;border-radius:20px;border:1px solid rgba(192,193,255,.22)}.nav-avatar{width:30px;height:30px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-size:13px;font-weight:800;color:#0d0096;background:linear-gradient(135deg,var(--accent),var(--accent-2));border:1px solid var(--accent);margin-left:2px}.cmdk{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);padding:6px 12px;border-radius:8px;font-size:13px;cursor:pointer;display:flex;gap:8px;align-items:center}.cmdk:hover{border-color:var(--accent);color:var(--text)}.cmdk kbd{font-family:var(--mono);font-size:11px;background:var(--panel-3);border:1px solid var(--line);border-radius:5px;padding:1px 5px}.nav-burger{display:none;background:var(--panel-2);border:1px solid var(--line);color:var(--text);width:38px;height:38px;border-radius:9px;cursor:pointer;place-items:center;flex:0 0 auto}.nav-burger:hover{border-color:var(--accent)}@media(max-width:860px){.nav-burger{display:grid}.topnav .inner{gap:10px;padding:11px 16px}.navlinks{position:absolute;top:100%;left:0;right:0;z-index:60;flex-direction:column;flex-wrap:nowrap;gap:2px;display:none;background:var(--panel);border-bottom:1px solid var(--line);padding:10px 16px 16px;box-shadow:var(--shadow)}.navlinks.open{display:flex}.navlinks a{padding:12px;font-size:15px}.cmdk-text{display:none}.cmdk{padding:8px}.nav-avatar{display:none}}@media(max-width:460px){.xppill{display:none}}h1{font-size:30px;letter-spacing:-.6px}h2{font-size:22px;letter-spacing:-.3px}h3{font-size:17px}.sub{color:var(--muted);margin-top:8px;font-size:15px;max-width:760px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.btn{background:var(--panel-2);color:var(--text);border:1px solid var(--line);padding:8px 14px;border-radius:var(--radius-sm);cursor:pointer;font-size:13.5px;transition:.15s;font-family:inherit}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#0b1020;border:none;font-weight:700}.btn-primary:hover{filter:brightness(1.08);color:#0b1020}.badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:3px 9px;border-radius:20px;white-space:nowrap}.pill{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 8px;border-radius:20px;white-space:nowrap}.p-must,.p-easy{background:#4edea329;color:var(--accent-2)}.p-deep,.p-medium{background:#ffb95f29;color:var(--warn)}.p-know,.p-hard{background:#ffb4ab29;color:var(--hot)}.tag{font-size:11px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:20px;padding:2px 9px}.ring{position:relative;width:96px;height:96px;flex:0 0 auto}.ring svg{transform:rotate(-90deg)}.ring .pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px}.bar{height:6px;background:var(--panel-2);border-radius:6px;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));width:0;transition:width .4s}.mastery{display:inline-flex;gap:3px;align-items:center}.mastery .dot{width:8px;height:8px;border-radius:50%;background:var(--panel-3)}.mastery .dot.on{background:var(--accent-2);box-shadow:0 0 6px #7ee78780}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}@media(max-width:860px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}}.tcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;transition:.18s;text-decoration:none;color:var(--text);display:block}.tcard:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow);text-decoration:none}.tcard .ticon{font-size:24px}.tcard h3{margin:8px 0 4px}.tcard p{color:var(--muted);font-size:13.5px}.lesson-shell{display:grid;grid-template-columns:260px 1fr;gap:0;align-items:start}@media(max-width:980px){.lesson-shell{grid-template-columns:1fr}.lesson-side{display:none}}.lesson-side{position:sticky;top:60px;align-self:start;max-height:calc(100vh - 70px);overflow-y:auto;border-right:1px solid var(--line);padding:22px 18px 40px}.lesson-side .grp{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);margin:16px 0 6px}.lesson-side a{display:block;color:var(--muted);font-size:13.5px;padding:5px 9px;border-radius:7px}.lesson-side a:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.lesson-side a.active{background:var(--panel-2);color:var(--accent)}.lesson-side a .ok{color:var(--accent-2)}.lesson-main{padding:28px 32px 80px;max-width:820px;min-width:0}@media(max-width:980px){.lesson-main{padding:24px 22px 60px}}.prose{font-size:15.5px}.prose h2{margin:34px 0 12px;padding-top:8px}.prose h3{margin:24px 0 8px;color:var(--accent)}.prose p{margin:12px 0}.prose ul,.prose ol{margin:12px 0 12px 22px}.prose li{margin:5px 0}.prose code{font-family:var(--mono);font-size:13px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:1px 6px}.prose pre{background:#0b0e16!important;border:1px solid var(--line);border-radius:12px;padding:16px;overflow-x:auto;margin:16px 0;font-size:13px}.prose pre code{background:none;border:none;padding:0}.prose a{text-decoration:underline}.prose strong{color:#fff}.prose blockquote{border-left:3px solid var(--accent);padding:4px 16px;margin:16px 0;color:var(--muted);background:var(--panel-2);border-radius:0 10px 10px 0}.prose table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14px}.prose th,.prose td{border:1px solid var(--line);padding:8px 12px;text-align:left}.prose th{background:var(--panel-2)}.callout{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:18px 0;background:var(--panel-2);font-size:14.5px}.callout.tip{border-color:#7ee7874d}.callout.warn{border-color:#f2cc604d}.callout.key{border-color:#6ea8fe59}.callout .ct{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}.callout.tip .ct{color:var(--accent-2)}.callout.warn .ct{color:var(--warn)}.callout.key .ct{color:var(--accent)}.lesson-head{border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:6px}.lesson-head .crumbs{font-size:13px;color:var(--muted);margin-bottom:8px}.lesson-head .meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.lesson-foot{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.navbtn{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;color:var(--text);text-decoration:none;flex:1;min-width:200px}.navbtn:hover{border-color:var(--accent);text-decoration:none}.navbtn small{color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.navbtn div{color:var(--text);font-size:14.5px;margin-top:2px}.viz{border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:16px;margin:22px 0}.viz-title{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);margin-bottom:4px;font-weight:700}.viz-desc{color:var(--muted);font-size:13px;margin-bottom:12px}.viz-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.viz-stage{background:#0b0e16;border:1px solid var(--line);border-radius:10px;padding:16px;overflow-x:auto}.viz-status{font-family:var(--mono);font-size:12.5px;color:var(--muted);margin-top:10px;min-height:18px}.viz-status b{color:var(--accent-2)}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}input[type=text],input[type=url],textarea,select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);padding:9px 11px;border-radius:var(--radius-sm);font-size:14px;font-family:inherit;width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-2);cursor:pointer}footer.site{margin:48px 0 0;padding:36px 0 56px;color:var(--muted);font-size:14px;border-top:1px solid var(--line);background:var(--panel)}.site-foot{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}.site-foot-links{display:flex;gap:24px;flex-wrap:wrap}.site-foot-links a{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-decoration:none}.site-foot-links a:hover{color:var(--accent)}.cmdk-overlay{position:fixed;inset:0;background:#0000008c;z-index:100;display:none;align-items:flex-start;justify-content:center;padding-top:12vh}.cmdk-overlay.open{display:flex}.cmdk-box{width:min(620px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.cmdk-box input{border:none;border-bottom:1px solid var(--line);border-radius:0;padding:16px;font-size:16px;background:var(--panel)}.cmdk-results{max-height:50vh;overflow-y:auto}.cmdk-results a{display:block;padding:11px 16px;color:var(--text);border-bottom:1px solid var(--line);text-decoration:none}.cmdk-results a:hover,.cmdk-results a.sel{background:var(--panel-2)}.cmdk-results .r-track{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.5px}.cmdk-results .r-title{font-size:14.5px}.muted{color:var(--muted)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.spacer{flex:1}.hide{display:none!important}.mt8{margin-top:8px}.mt16{margin-top:16px}.mt24{margin-top:24px}.center{text-align:center}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.9)}60%{transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes gradPan{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1)}}@keyframes auroraDrift{0%{transform:translateZ(0) rotate(0)}50%{transform:translate3d(3%,-3%,0) rotate(6deg)}to{transform:translateZ(0) rotate(0)}}@keyframes rippleOut{to{transform:scale(4);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}.aurora-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.aurora-bg:before{content:"";position:absolute;inset:-25vmax;background:radial-gradient(38vmax 38vmax at 16% 18%,rgba(128,131,255,.13),transparent 60%),radial-gradient(34vmax 34vmax at 84% 26%,rgba(78,222,163,.1),transparent 60%),radial-gradient(30vmax 30vmax at 62% 88%,rgba(255,185,95,.08),transparent 60%);filter:blur(10px);animation:auroraDrift 26s ease-in-out infinite alternate}html.js-anim main{animation:fadeIn .5s ease both}html.js-anim [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);transition-delay:var(--rd, 0ms);will-change:opacity,transform}html.js-anim [data-reveal].in{opacity:1;transform:none}.spotlight{position:relative}.spotlight:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%),rgba(192,193,255,.13),transparent 62%);opacity:0;transition:opacity .3s;z-index:0}.spotlight:hover:after{opacity:1}.spotlight>*{position:relative;z-index:1}.tcard{transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .22s,box-shadow .22s}.tcard:hover{transform:translateY(-4px) scale(1.012);box-shadow:0 22px 48px #00000080}.tcard .ticon,.path-logo{display:inline-block;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.tcard:hover .ticon{transform:scale(1.18) rotate(-7deg)}.path-card:hover .path-logo{transform:scale(1.12) rotate(-7deg)}.path-card .path-cta{transition:transform .25s}.path-card:hover .path-cta{transform:translate(5px)}.navlinks a{position:relative}.navlinks a:after{content:"";position:absolute;left:11px;right:11px;bottom:3px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.22,1,.36,1)}.navlinks a:hover:after,.navlinks a.active:after{transform:scaleX(1)}.topnav{transition:box-shadow .3s,background .3s}.topnav.scrolled{box-shadow:0 8px 30px #00000073}.brand .logo{background-size:160% 160%;animation:gradPan 6s ease infinite;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.brand:hover .logo{transform:rotate(-8deg) scale(1.1)}.streakpill,.xppill{transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}.streakpill:hover,.xppill:hover{transform:translateY(-1px) scale(1.05)}.streakpill:hover{box-shadow:0 0 14px #ffb95f4d}.xppill:hover{box-shadow:0 0 14px #c0c1ff4d}.pill-bump{animation:pop .5s ease}.btn,.btn-primary{position:relative;overflow:hidden}.btn:active,.btn-primary:active{transform:translateY(1px) scale(.985)}.btn-primary{background-size:190% 190%;animation:gradPan 7s ease infinite}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 26px #8083ff59}.ripple{position:absolute;border-radius:50%;transform:scale(0);pointer-events:none;background:#ffffff73;animation:rippleOut .6s ease-out;z-index:2}.ring svg circle{transition:stroke-dashoffset 1s cubic-bezier(.22,1,.36,1)}.bar>i{position:relative;overflow:hidden}.bar>i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);background-size:200% 100%;animation:shimmer 2.6s linear infinite}.mastery .dot.on{animation:popIn .3s ease both}.callout{position:relative;overflow:hidden}.callout:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--accent),var(--accent-2));opacity:.55}.callout.tip:before{background:linear-gradient(180deg,var(--accent-2),var(--accent-2-bright))}.callout.warn:before{background:linear-gradient(180deg,var(--warn),#ffd79a)}.grad-text,.chooser-hero h1{background:linear-gradient(100deg,var(--text) 0%,var(--accent) 45%,var(--accent-2) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:gradPan 8s ease infinite}.lesson-side a{transition:background .15s,color .15s,padding-left .15s}.lesson-side a:hover{padding-left:13px}::selection{background:#8083ff57;color:#fff}*{scrollbar-width:thin;scrollbar-color:var(--panel-4) transparent}*::-webkit-scrollbar{width:11px;height:11px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--panel-4);border-radius:8px;border:2px solid var(--bg)}*::-webkit-scrollbar-thumb:hover{background:var(--accent-deep)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:5px}.cmdk-overlay.open{animation:fadeIn .18s ease}.cmdk-overlay.open .cmdk-box{animation:popIn .22s cubic-bezier(.22,1,.36,1)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}html.js-anim [data-reveal]{opacity:1!important;transform:none!important}.aurora-bg:before{animation:none!important}}
