:root{--bg:#14151a;--bg-2:#191a1f;--bg-3:#1e1f26;--fg:#fff;--muted:#ffffffb3;--dim:#ffffff70;--faint:#ffffff24;--border:#ffffff1a;--border-hi:#ffffff2e;--glass:linear-gradient(158deg, #ffffff13, #ffffff06 60%, #ffffff02);--glass-hi:inset 0 1px 0 #ffffff1f;--glass-br:#ffffff21;--accent:#e8702a;--accent-hi:#ff8a44;--accent-soft:#e8702a24;--accent-line:#e8702a6b;--ok:#4ec37a;--busy:#e8a53a;--bad:#e5544b;--info:#5aa9e6;--r:16px;--r-sm:11px;--r-lg:22px;--pill:999px;--shadow:0 18px 44px #0000006b;--shadow-sm:0 8px 22px #00000052;--sans:"Inter", system-ui, -apple-system, sans-serif;--serif:"Playfair Display", Georgia, serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--sidebar-w:250px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--sans);color:var(--fg);background:var(--bg);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100dvh;line-height:1.6}body:before{content:"";z-index:-2;background:radial-gradient(58% 52% at 84% 6%, #e8702a26, transparent 60%), radial-gradient(50% 55% at 10% 100%, #963c141a, transparent 64%), radial-gradient(90% 90% at 50% 50%, var(--bg-2), var(--bg) 80%);position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hi)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:#ffffff24 padding-box content-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--accent-line);background-clip:content-box}::-webkit-scrollbar-track{background:0 0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100dvh;display:grid}.sidebar{border-right:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#ffffff0a,#ffffff03);flex-direction:column;gap:8px;height:100dvh;padding:22px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:6px 10px 20px;display:flex}.brand-mark{width:42px;height:42px;font-family:var(--serif);color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);box-shadow:var(--glass-hi);border-radius:12px;flex:none;place-items:center;font-size:22px;font-style:italic;display:grid}.brand-mark span{color:var(--muted);font-size:15px}.brand>div{flex-direction:column;line-height:1.15;display:flex}.brand strong{letter-spacing:.13em;font-size:.92rem}.brand small{letter-spacing:.24em;color:var(--dim);font-size:.58rem;font-family:var(--mono)}.sidebar nav{flex-direction:column;flex:1;gap:3px;display:flex}.sidebar nav button{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:13px;padding:11px 14px;font-size:.9rem;font-weight:500;transition:background .18s,color .18s,border-color .18s,transform .18s;display:flex}.sidebar nav button span[aria-hidden]{text-align:center;width:20px;color:var(--dim);font-size:1.05rem;transition:color .18s}.sidebar nav button:hover{color:#fff;background:#ffffff0d}.sidebar nav button:hover span[aria-hidden]{color:var(--accent)}.sidebar nav button[aria-current=page]{background:var(--accent-soft);color:#fff;border-color:var(--accent-line);box-shadow:var(--glass-hi)}.sidebar nav button[aria-current=page] span[aria-hidden]{color:var(--accent)}.sidebar nav button[aria-current=page]{position:relative}.sidebar nav button[aria-current=page]:before{content:"";background:var(--accent);border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:0}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.sidebar-foot p{color:var(--dim);font-size:.72rem;line-height:1.5}.account-foot{flex-direction:column;gap:6px;display:flex}.account-foot span{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-size:.62rem}.account-foot code{font-family:var(--mono);color:var(--accent);word-break:break-all;font-size:.74rem}.account-foot .signout-button{align-self:flex-start;margin-top:2px}.sync-state{color:var(--muted);align-items:center;gap:8px;font-size:.74rem;display:inline-flex}.sync-state span[aria-hidden]{border-radius:50%;flex:none;width:9px;height:9px;position:relative}.sync-state.is-online span[aria-hidden]{background:var(--ok);box-shadow:0 0 0 3px #4ec37a29}.sync-state.is-offline span[aria-hidden]{background:var(--busy);box-shadow:0 0 0 3px #e8a53a29}.sync-state strong{text-transform:uppercase;letter-spacing:.08em;font-size:.66rem;font-weight:600}.sync-state small{color:var(--dim);font-family:var(--mono);font-size:.66rem}.sync-state.is-compact{font-size:.68rem}.workspace{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);background:#14151ad1;align-items:center;gap:14px;padding:12px 18px;display:none;position:sticky;top:0}.menu-button{background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--r-sm);cursor:pointer;place-content:center;gap:5px;width:42px;height:42px;display:grid}.menu-button span{background:#fff;border-radius:2px;width:18px;height:2px;display:block}.date-lockup{flex-direction:column;flex:1;line-height:1.1;display:flex}.date-lockup small{color:var(--dim);letter-spacing:.1em;text-transform:uppercase;font-size:.68rem}.date-lockup strong{font-family:var(--serif);font-size:1.2rem;font-style:italic}.content{width:100%;max-width:1240px;margin:0 auto;padding:clamp(22px,4vw,46px)}.page-heading{outline:none;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:30px;display:flex}.page-heading>div{max-width:640px}.page-heading h1{font-family:var(--serif);letter-spacing:-.02em;margin:8px 0 10px;font-size:clamp(1.8rem,4vw,2.9rem);font-style:italic;font-weight:500;line-height:1.04}.page-heading>div>p:last-child{color:var(--muted);font-size:1rem}.eyebrow{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);align-items:center;gap:9px;font-size:.68rem;display:inline-flex}.eyebrow:before{content:"";background:linear-gradient(90deg, var(--accent), transparent);width:22px;height:1px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:26px;display:grid}.metric{background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--r);box-shadow:var(--glass-hi), var(--shadow-sm);padding:20px;transition:transform .25s,border-color .25s;position:relative;overflow:hidden}.metric:hover{border-color:var(--accent-line);transform:translateY(-3px)}.metric small{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem}.metric strong{font-family:var(--mono);margin:8px 0 4px;font-size:2.1rem;font-weight:600;line-height:1;display:block}.metric p{color:var(--muted);font-size:.82rem}.metric.accent{border-color:var(--accent-line);background:linear-gradient(158deg,#e8702a2e,#e8702a0a)}.metric.accent strong{color:var(--accent-hi)}.panel{background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--r);box-shadow:var(--glass-hi), var(--shadow-sm);overflow:hidden}.panel>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:17px 20px;display:flex}.panel>header h2{font-family:var(--serif);font-size:1.18rem;font-style:italic;font-weight:500}.panel>header span{font-family:var(--mono);letter-spacing:.14em;color:var(--dim);text-transform:uppercase;border:1px solid var(--border);border-radius:var(--pill);white-space:nowrap;padding:4px 9px;font-size:.62rem}.panel-body{flex-direction:column;gap:14px;padding:20px;display:flex}.dashboard-grid{grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:22px;display:grid}.split-layout{grid-template-columns:minmax(300px,420px) 1fr;align-items:start;gap:16px;display:grid}.quick-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.settings-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px;display:grid}.objective-card{flex-direction:column;gap:8px;display:flex}.objective-card h2{font-family:var(--serif);font-size:1.5rem;font-style:italic;font-weight:500}.objective-card>p:first-of-type{color:var(--muted)}.progress-track{border-radius:var(--pill);background:#ffffff14;height:8px;margin-top:6px;overflow:hidden}.progress-track span{border-radius:var(--pill);background:linear-gradient(90deg, var(--accent), var(--accent-hi));height:100%;transition:width .5s cubic-bezier(.2,.7,.2,1);display:block}.objective-card small{color:var(--dim);font-size:.78rem;font-family:var(--mono)}.empty-state{text-align:center;color:var(--dim);border:1px dashed var(--faint);border-radius:var(--r-sm);flex-direction:column;align-items:center;gap:6px;padding:34px 20px;display:flex}.empty-state span[aria-hidden]{color:var(--accent);opacity:.6;font-size:1.6rem}.empty-state strong{color:var(--muted);font-weight:600}.empty-state p{font-size:.84rem}.form-stack{flex-direction:column;gap:13px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-stack label{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);flex-direction:column;gap:6px;font-size:.74rem;font-weight:600;display:flex}.form-stack input,.form-stack select,.form-stack textarea,.search-input{text-transform:none;letter-spacing:normal;color:#fff;border:1px solid var(--border);border-radius:var(--r-sm);background:#0000003d;width:100%;padding:10px 12px;font-size:.92rem;font-weight:400;transition:border-color .18s,background .18s}.form-stack textarea{resize:vertical;min-height:60px;line-height:1.5}.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus,.search-input:focus{border-color:var(--accent);background:#00000057;outline:none}.form-stack input::placeholder,.form-stack textarea::placeholder{color:#ffffff4d}select option{background:var(--bg-3);color:#fff}.primary-button,.secondary-button{border-radius:var(--pill);cursor:pointer;border:1px solid #0000;justify-content:center;align-self:flex-start;align-items:center;gap:8px;padding:11px 20px;font-size:.88rem;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.primary-button{background:linear-gradient(180deg, var(--accent-hi), var(--accent));color:#fff;box-shadow:0 8px 22px #e8702a4d}.primary-button:hover{transform:translateY(-2px);box-shadow:0 12px 30px #e8702a66}.secondary-button{background:var(--glass);border-color:var(--glass-br);color:#fff;box-shadow:var(--glass-hi)}.secondary-button:hover{border-color:var(--accent-line);transform:translateY(-2px)}.danger-link{color:var(--dim);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:.78rem;transition:color .18s}.danger-link:hover{color:var(--bad)}.search-input{max-width:260px}.record-list,.note-list,.roadmap-list{flex-direction:column;gap:12px;display:flex}.session-row,.note-card{border:1px solid var(--border);border-radius:var(--r-sm);background:#ffffff06;align-items:center;gap:15px;padding:15px 16px;transition:border-color .2s,transform .2s;display:flex}.session-row:hover,.note-card:hover{border-color:var(--border-hi)}.date-tile{text-align:center;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-sm);flex:none;place-content:center;width:52px;height:52px;display:grid}.date-tile strong{font-family:var(--mono);color:var(--accent-hi);font-size:1.25rem;line-height:1}.date-tile small{text-transform:uppercase;letter-spacing:.1em;color:var(--dim);font-size:.6rem}.record-copy{flex:1;min-width:0}.record-copy span{color:var(--dim);font-size:.72rem;font-family:var(--mono)}.record-copy h3{margin:2px 0;font-size:1rem;font-weight:600}.record-copy p{color:var(--muted);font-size:.84rem}.record-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.record-actions button:not(.danger-link){background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--pill);color:#fff;cursor:pointer;padding:7px 13px;font-size:.78rem;font-weight:600;transition:border-color .18s}.record-actions button:not(.danger-link):hover{border-color:var(--accent-line)}.record-actions select{border:1px solid var(--border);border-radius:var(--r-sm);color:#fff;background:#0000003d;padding:6px 10px;font-size:.8rem}.status-pill{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--pill);white-space:nowrap;border:1px solid;padding:4px 10px;font-size:.62rem}.status-completed,.status-active{color:var(--ok);background:#4ec37a1a;border-color:#4ec37a66}.status-in_progress{color:var(--accent-hi);border-color:var(--accent-line);background:var(--accent-soft)}.status-planned,.status-available,.status-idea{color:var(--info);background:#5aa9e61a;border-color:#5aa9e666}.status-skipped,.status-postponed,.status-paused{color:var(--busy);background:#e8a53a1a;border-color:#e8a53a66}.status-locked{color:var(--dim);border-color:var(--border)}.session-detail,.lab-card{border:1px solid var(--border);border-radius:var(--r-sm);background:#ffffff06;overflow:hidden}.session-detail>summary,.lab-card>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;list-style:none;display:flex}.session-detail>summary::-webkit-details-marker{display:none}.lab-card>summary::-webkit-details-marker{display:none}.session-detail summary span:first-child,.lab-card summary span:first-child{flex-direction:column;gap:2px;display:flex}.session-detail summary strong,.lab-card summary strong{font-size:.95rem}.session-detail summary small,.lab-card summary small{color:var(--dim);font-size:.74rem}.session-detail form,.lab-card>div{flex-direction:column;gap:12px;padding:0 16px 16px;display:flex}.lab-card time,.note-card time{font-family:var(--mono);color:var(--accent);font-size:.68rem}.compact-form label{font-size:.68rem}.roadmap-card{background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--r);box-shadow:var(--glass-hi), var(--shadow-sm);grid-template-columns:66px 1fr;gap:18px;padding:22px;transition:border-color .25s,transform .25s;display:grid}.roadmap-card:hover{border-color:var(--border-hi);transform:translateY(-2px)}.roadmap-card.is-current{border-color:var(--accent-line);background:linear-gradient(158deg,#e8702a1a,#ffffff04)}.stage-number{font-family:var(--mono);color:#ffffff24;font-size:2.2rem;font-weight:600;line-height:1}.roadmap-card.is-current .stage-number{color:var(--accent)}.stage-main{flex-direction:column;gap:12px;min-width:0;display:flex}.stage-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.stage-title span:first-child,.stage-title>div span{font-family:var(--mono);color:var(--dim);letter-spacing:.06em;font-size:.68rem}.stage-title h2{font-family:var(--serif);margin-top:2px;font-size:1.4rem;font-style:italic;font-weight:500}.stage-main>p{color:var(--muted);font-size:.92rem}.tag-list{flex-wrap:wrap;gap:7px;list-style:none;display:flex}.tag-list li{color:var(--muted);border:1px solid var(--border);border-radius:var(--pill);background:#ffffff0a;padding:4px 11px;font-size:.72rem}.stage-main details summary{cursor:pointer;color:var(--accent);font-size:.82rem;font-weight:600}.stage-details{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:18px;margin-top:12px;padding-top:12px;display:grid}.stage-details strong{text-transform:uppercase;letter-spacing:.1em;color:var(--dim);font-size:.72rem}.stage-details ul{flex-direction:column;gap:5px;margin:8px 0 0;padding-left:18px;display:flex}.stage-details li{color:var(--muted);font-size:.84rem}.mastery-control{flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;display:flex}.mastery-control label{text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-size:.72rem;font-weight:600}.mastery-control select{border:1px solid var(--border);border-radius:var(--r-sm);color:#fff;background:#0000003d;padding:8px 12px;font-size:.82rem}.mastery-control button{background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--pill);color:#fff;cursor:pointer;padding:8px 15px;font-size:.78rem;font-weight:600;transition:border-color .18s}.mastery-control button:hover{border-color:var(--accent-line)}.note-card{flex-direction:column;align-items:stretch;gap:8px}.note-card h3{margin-top:2px;font-size:1rem}.note-card p{color:var(--muted);font-size:.88rem}.note-card .record-actions{justify-content:space-between}.note-card .record-actions span{color:var(--dim);font-size:.72rem;font-family:var(--mono)}.project-grid,.resource-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.project-card,.resource-card{background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--r);box-shadow:var(--glass-hi);flex-direction:column;gap:9px;padding:18px;transition:border-color .2s,transform .2s;display:flex}.project-card:hover,.resource-card:hover{border-color:var(--accent-line);transform:translateY(-3px)}.project-card h3{font-size:1.05rem}.project-card p,.resource-card p{color:var(--muted);flex:1;font-size:.86rem}.project-card .status-pill{align-self:flex-start}.resource-card.is-complete{opacity:.62}.resource-card>div span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-size:.66rem}.resource-card h2{margin:4px 0;font-size:1.05rem}.resource-card>div p{color:var(--muted);font-size:.82rem}.resource-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:6px;display:flex}.resource-actions label{color:var(--muted);cursor:pointer;align-items:center;gap:6px;font-size:.78rem;display:inline-flex}.record-actions input[type=checkbox],.resource-actions input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.definition-list{flex-direction:column;gap:10px;display:flex}.definition-list>div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.definition-list>div:last-child{border-bottom:none;padding-bottom:0}.definition-list dt{color:var(--dim);font-size:.8rem}.definition-list dd{font-family:var(--mono);font-size:.84rem}.definition-list code{color:var(--accent);word-break:break-all;font-size:.74rem}.notice{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r);padding:18px 20px}.notice strong{margin-bottom:4px;display:block}.notice p{color:var(--muted);font-size:.88rem}.page-heading select{border:1px solid var(--glass-br);border-radius:var(--r-sm);color:#fff;background:#00000047;padding:9px 14px;font-size:.86rem}.lesson-wrap{flex-direction:column;gap:18px;display:flex}.lesson-intro{color:var(--muted);border-left:2px solid var(--accent-line);max-width:780px;padding-left:16px;font-size:1.02rem;line-height:1.7}.lesson-card{background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--r);box-shadow:var(--glass-hi), var(--shadow-sm);overflow:hidden}.lesson-card>header{border-bottom:1px solid var(--border);background:#ffffff05;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px;display:flex}.lesson-card>header h2{font-family:var(--serif);font-size:1.35rem;font-style:italic;font-weight:500}.lesson-min{font-family:var(--mono);letter-spacing:.12em;color:var(--accent);border:1px solid var(--accent-line);border-radius:var(--pill);white-space:nowrap;padding:4px 10px;font-size:.62rem}.lesson-body{flex-direction:column;gap:15px;max-width:820px;padding:22px 24px;display:flex}.lesson-p{color:var(--muted);font-size:.96rem;line-height:1.72}.lesson-h{font-family:var(--serif);color:#fff;margin-top:4px;font-size:1.12rem;font-style:italic;font-weight:500}.lesson-points{flex-direction:column;gap:8px;list-style:none;display:flex}.lesson-points li{color:var(--muted);padding-left:22px;font-size:.92rem;line-height:1.6;position:relative}.lesson-points li:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:10px;left:4px}.lesson-code{border-radius:var(--r-sm);border:1px solid var(--border);background:#0c0d11;overflow:hidden}.lesson-code figcaption{font-family:var(--mono);letter-spacing:.06em;color:var(--dim);border-bottom:1px solid var(--border);background:#ffffff08;padding:9px 15px;font-size:.68rem}.lesson-code pre{font-family:var(--mono);color:#dfe4ea;white-space:pre;padding:15px 18px;font-size:.8rem;line-height:1.75;overflow-x:auto}.lesson-callout{border-radius:var(--r-sm);border:1px solid;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:14px 16px;display:grid}.lesson-callout span{font-family:var(--mono);letter-spacing:.12em;border-radius:var(--pill);align-self:start;margin-top:2px;padding:3px 8px;font-size:.58rem}.lesson-callout p{font-size:.9rem;line-height:1.6}.lesson-callout.is-key{background:var(--accent-soft);border-color:var(--accent-line)}.lesson-callout.is-key span{background:var(--accent);color:#fff}.lesson-callout.is-key p{color:#fff}.lesson-callout.is-warn{background:#e8a53a1a;border-color:#e8a53a66}.lesson-callout.is-warn span{background:var(--busy);color:#1a1a1a}.lesson-callout.is-warn p{color:var(--muted)}.lesson-links{flex-direction:column;gap:8px;margin-top:2px;display:flex}.lesson-links a{border:1px solid var(--border);border-radius:var(--r-sm);color:#fff;background:#ffffff08;align-items:center;gap:12px;padding:11px 14px;font-size:.88rem;transition:border-color .18s,background .18s,transform .18s;display:flex}.lesson-links a:hover{border-color:var(--accent-line);background:var(--accent-soft);transform:translate(3px)}.lesson-links .link-label{flex:1}.lesson-links a>span[aria-hidden]{color:var(--accent)}.link-kind{font-family:var(--mono);letter-spacing:.1em;border:1px solid var(--border);color:var(--dim);border-radius:5px;flex:none;padding:3px 8px;font-size:.56rem}.link-kind.kind-read{color:var(--info);border-color:#5aa9e666}.link-kind.kind-watch{color:var(--bad);border-color:#e5544b66}.link-kind.kind-practice{color:var(--ok);border-color:#4ec37a66}.link-kind.kind-ref{color:var(--busy);border-color:#e8a53a66}.lesson-foot{color:var(--dim);text-align:center;padding:10px;font-size:.84rem;font-style:italic}.lesson-try,.lesson-engine{flex-direction:column;gap:8px;display:flex}.lesson-engine-note{color:var(--muted);font-size:.88rem}.lesson-engine-links{flex-wrap:wrap;gap:8px;display:flex}.lesson-engine-links a{border-radius:var(--r-sm);color:#fff;background:#4ec37a14;border:1px solid #4ec37a4d;align-items:center;gap:9px;padding:10px 13px;font-size:.86rem;transition:border-color .18s,transform .18s,background .18s;display:inline-flex}.lesson-engine-links a:hover{border-color:var(--ok);background:#4ec37a24;transform:translateY(-2px)}.lesson-engine-links a>span[aria-hidden]{color:var(--ok)}.engine-runner{font-family:var(--mono);letter-spacing:.1em;color:var(--ok);border:1px solid #4ec37a66;border-radius:5px;flex:none;padding:3px 8px;font-size:.58rem}.engine-runner.runner-go{color:#5bc7e6;border-color:#5bc7e666}.engine-runner.runner-python{color:#f5c451;border-color:#f5c45166}.cat-tabs{border:1px solid var(--border);border-radius:var(--pill);background:#0000003d;gap:4px;padding:4px;display:flex}.cat-tabs button{border-radius:var(--pill);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:8px 16px;font-size:.82rem;font-weight:600;transition:background .18s,color .18s}.cat-tabs button.is-on{background:var(--accent-soft);color:var(--accent-hi);box-shadow:var(--glass-hi)}.cat-sections{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.cat-list{gap:7px;padding:14px 16px}.cat-item{border:1px solid var(--border);border-radius:var(--r-sm);color:#fff;background:#ffffff06;align-items:center;gap:11px;padding:10px 12px;font-size:.88rem;transition:border-color .18s,transform .18s;display:flex}a.cat-item:hover{border-color:var(--accent-line);transform:translate(3px)}.cat-title{flex:1}.cat-title em{color:var(--dim);font-style:normal}.cat-item>span[aria-hidden]{color:var(--accent)}.cat-kind{font-family:var(--mono);letter-spacing:.1em;border:1px solid var(--border);border-radius:5px;flex:none;padding:3px 7px;font-size:.56rem}.cat-kind.kind-course{color:var(--info);border-color:#5aa9e666}.cat-kind.kind-book{color:var(--busy);border-color:#e8a53a66}.cat-kind.kind-tool{color:var(--ok);border-color:#4ec37a66}.cat-kind.kind-lab{color:var(--accent);border-color:var(--accent-line)}.cat-tracks{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.cat-track{background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--r);box-shadow:var(--glass-hi), var(--shadow-sm);flex-direction:column;gap:12px;padding:22px;display:flex}.cat-track>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.cat-track h3{font-family:var(--serif);font-size:1.3rem;font-style:italic;font-weight:500}.cat-repo{font-family:var(--mono);color:var(--accent);white-space:nowrap;font-size:.72rem}.cat-track>p{color:var(--muted);font-size:.9rem;line-height:1.6}.cat-chapters{flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}.cat-chapters li{color:var(--muted);padding-left:4px;font-size:.86rem;line-height:1.5}.cat-chapters li::marker{color:var(--accent);font-family:var(--mono);font-size:.8rem}@media (width<=900px){.cat-sections,.cat-tracks{grid-template-columns:1fr}}.loading-screen{min-height:100dvh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:18px;font-size:.95rem;display:flex}.loader{border:3px solid #ffffff24;border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fatal-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:24px;display:flex}.fatal-state h1{font-family:var(--serif);font-size:1.8rem;font-style:italic;font-weight:500}.fatal-state p{color:var(--muted);max-width:460px}.fatal-state button{border-radius:var(--pill);background:linear-gradient(180deg, var(--accent-hi), var(--accent));color:#fff;cursor:pointer;border:none;margin-top:10px;padding:11px 22px;font-weight:600}.mobile-nav,.menu-button{display:none}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:60;width:280px;box-shadow:var(--shadow);transition:transform .28s cubic-bezier(.2,.7,.2,1);position:fixed;top:0;left:0;transform:translate(-102%)}.sidebar.is-open{transform:none}.topbar{display:flex}.menu-button{display:grid}.content{padding:20px 16px 90px}.dashboard-grid,.split-layout,.quick-grid,.settings-grid,.stage-details,.form-row{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.mobile-nav{z-index:50;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#14151ae6;grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav button{color:var(--dim);cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;display:flex}.mobile-nav button span{font-size:1.05rem}.mobile-nav button small{font-size:.58rem}.mobile-nav button[aria-current=page]{color:var(--accent)}}@media (width<=560px){.metric-grid{grid-template-columns:1fr 1fr}.page-heading{align-items:flex-start}.roadmap-card{grid-template-columns:1fr;gap:10px}.stage-number{font-size:1.6rem}}.sync-state.is-syncing span[aria-hidden]{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);animation:1s ease-in-out infinite pulse}.sync-state.is-synced span[aria-hidden]{background:var(--ok);box-shadow:0 0 0 3px #4ec37a29}.sync-state.is-error span[aria-hidden]{background:var(--bad);box-shadow:0 0 0 3px #e5544b29}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}.term{border:1px solid var(--glass-br);border-radius:var(--r-sm);box-shadow:var(--shadow);font-family:var(--mono);background:#0b0c10;flex-direction:column;max-height:70vh;display:flex;overflow:hidden}.term.compact{max-height:320px}.term-bar{border-bottom:1px solid var(--border);background:#ffffff08;align-items:center;gap:7px;padding:10px 14px;display:flex}.term-bar i{background:#2a2b31;border-radius:50%;width:11px;height:11px}.term-bar i:first-child{background:var(--accent)}.term-bar span{color:var(--dim);margin-left:8px;font-size:11.5px}.term-body{color:#dfe4ea;cursor:text;flex:1;padding:16px 18px;font-size:13px;line-height:1.65;overflow-y:auto}.term-line{white-space:pre-wrap;word-break:break-word}.term-prompt{color:var(--ok);-webkit-user-select:none;user-select:none;white-space:nowrap;margin-right:8px}.term-cmd{color:#fff}.term-out{color:#b9c0c8}.term-input-row{align-items:baseline;gap:8px;display:flex}.term-input{color:#fff;font-family:var(--mono);caret-color:var(--accent);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:13px}.term-body code,.page-heading code{font-family:var(--mono);color:var(--accent-hi);background:#e8702a1f;border-radius:5px;padding:2px 6px;font-size:.82em}.lesson-try{flex-direction:column;gap:8px;display:flex}.lesson-try-label{font-family:var(--mono);letter-spacing:.1em;color:var(--accent);text-transform:uppercase;font-size:.66rem}.embed-tool{border:1px solid var(--glass-br);border-radius:var(--r-sm);box-shadow:var(--glass-hi), var(--shadow-sm);background:#0b0c10;flex-direction:column;display:flex;overflow:hidden}.embed-bar{border-bottom:1px solid var(--border);background:#ffffff08;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.embed-title{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);font-size:.74rem}.embed-open{font-family:var(--mono);color:var(--accent);white-space:nowrap;font-size:.7rem}.embed-frame-wrap{height:480px;position:relative}.embed-tool.tall .embed-frame-wrap{height:640px}.embed-frame-wrap iframe{background:#fff;border:0;width:100%;height:100%}.embed-loading{color:var(--muted);background:var(--bg-2);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.88rem;display:flex;position:absolute;inset:0}@media (width<=640px){.embed-frame-wrap{height:60vh}}.catalog-heading{align-items:flex-end}.corpus-browser,.live-grid,.track-grid{flex-direction:column;gap:16px;display:flex}.corpus-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.corpus-summary>div{border:1px solid var(--glass-br);border-radius:var(--r-sm);min-width:0;box-shadow:var(--glass-hi);background:linear-gradient(145deg,#ffffff0b,#ffffff04);padding:17px 18px}.corpus-summary strong{color:var(--accent-hi);font-family:var(--mono);letter-spacing:-.04em;font-size:clamp(1.25rem,3vw,2rem);font-weight:500;display:block}.corpus-summary span{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}.corpus-policy,.live-intro{border:1px solid var(--accent-line);border-radius:var(--r);background:linear-gradient(120deg, var(--accent-soft), #ffffff05 58%);box-shadow:var(--glass-hi), var(--shadow-sm);justify-content:space-between;align-items:flex-end;gap:28px;padding:22px;display:flex}.corpus-policy>div,.live-intro>div{max-width:760px}.corpus-policy h2,.live-intro h2,.track-card h2{font-family:var(--serif);margin:4px 0 8px;font-size:clamp(1.25rem,3vw,1.75rem);font-style:italic;font-weight:500}.corpus-policy p:not(.eyebrow),.live-intro p:not(.eyebrow),.track-card>p{color:var(--muted);font-size:.9rem;line-height:1.65}.corpus-policy>span{max-width:190px;color:var(--accent);font-family:var(--mono);text-align:right;text-transform:uppercase;flex:none;font-size:.67rem;line-height:1.55}.corpus-controls{border:1px solid var(--border);border-radius:var(--r);background:#0000002e;grid-template-columns:minmax(260px,1fr) minmax(170px,.35fr) minmax(150px,.28fr);gap:10px;padding:14px;display:grid}.corpus-controls label{flex-direction:column;gap:6px;min-width:0;display:flex}.corpus-controls label>span{color:var(--dim);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem}.corpus-controls input,.corpus-controls select{border:1px solid var(--border);width:100%;min-height:43px;color:var(--text);font:inherit;background:#17181d;border-radius:8px;outline:none;padding:9px 11px;font-size:.84rem}.corpus-controls input:focus-visible,.corpus-controls select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.corpus-controls input::placeholder{color:var(--dim)}.corpus-result-line{color:var(--muted);font-family:var(--mono);font-size:.72rem}.corpus-result-line strong{color:var(--text);font-weight:500}.corpus-results{flex-direction:column;gap:8px;display:flex}.corpus-source{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--glass);box-shadow:var(--glass-hi);overflow:hidden}.corpus-source-toggle{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:16px 18px;display:grid}.corpus-source-toggle:hover{background:#ffffff06}.corpus-source-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.corpus-source-main{min-width:0}.corpus-source-main>strong{overflow-wrap:anywhere;margin:7px 0 4px;font-size:.96rem;font-weight:600;display:block}.corpus-source-main>small{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;display:block;overflow:hidden}.corpus-source-meta{flex-wrap:wrap;gap:5px;display:flex}.corpus-source-meta span,.live-card-meta span{border:1px solid var(--border);color:var(--muted);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;border-radius:5px;padding:3px 6px;font-size:.56rem}.corpus-source-meta span:first-child{color:var(--accent);border-color:var(--accent-line)}.corpus-source-count{color:var(--accent-hi);font-family:var(--mono);text-align:right;font-size:1rem}.corpus-source-count small{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;font-size:.55rem;display:block}.corpus-chevron{color:var(--dim);font-size:1.25rem;transition:transform .18s}.corpus-source-toggle[aria-expanded=true] .corpus-chevron{transform:rotate(180deg)}.corpus-source-body{border-top:1px solid var(--border);padding:0 18px 18px}.corpus-practice{grid-template-columns:130px minmax(0,1fr);gap:15px;padding:16px 0;display:grid}.corpus-practice strong{color:var(--accent);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.corpus-practice p{color:var(--muted);font-size:.82rem;line-height:1.55}.corpus-units{border:1px solid var(--border);background:#00000029;border-radius:8px;max-height:520px;margin:0;padding:0 0 0 32px;display:grid;overflow:auto}.corpus-units li{border-bottom:1px solid var(--border);color:var(--dim);font-family:var(--mono);padding:9px 12px 9px 4px;font-size:.67rem}.corpus-units li:last-child{border-bottom:0}.corpus-units li::marker{color:var(--accent)}.corpus-units span{color:var(--text);font-family:var(--sans);font-size:.83rem;line-height:1.35;display:block}.corpus-units small{overflow-wrap:anywhere;color:var(--dim);margin-top:3px;line-height:1.4;display:block}.corpus-empty,.corpus-state{border:1px dashed var(--border);border-radius:var(--r);color:var(--muted);text-align:center;padding:34px}.corpus-state{justify-content:center;align-items:center;gap:10px;display:flex}.corpus-state.is-error{color:var(--danger)}.live-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.live-intro{grid-column:1/-1;display:block}.live-intro>p{max-width:820px}.live-card{border:1px solid var(--glass-br);border-radius:var(--r);background:var(--glass);min-width:0;box-shadow:var(--glass-hi), var(--shadow-sm);flex-direction:column;align-items:flex-start;padding:20px;display:flex}.live-card-meta{flex-wrap:wrap;gap:5px;display:flex}.live-card h3{margin:15px 0 2px;font-size:1rem}.live-provider{font-family:var(--mono);text-transform:uppercase;color:var(--accent)!important;font-size:.67rem!important}.live-card>p{color:var(--muted);margin-top:10px;font-size:.84rem;line-height:1.55}.live-practice{border-left:2px solid var(--accent);background:#00000026;flex-direction:column;gap:5px;margin:16px 0;padding:12px;display:flex}.live-practice strong{color:var(--accent);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem}.live-practice span{color:var(--muted);font-size:.8rem;line-height:1.5}.live-card>a,.track-card header a{color:var(--accent-hi);font-family:var(--mono);margin-top:auto;font-size:.72rem}.live-card>a:hover,.track-card header a:hover{color:#fff}.track-card{border:1px solid var(--glass-br);border-radius:var(--r);background:var(--glass);box-shadow:var(--glass-hi), var(--shadow-sm);padding:22px}.track-card header{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.track-card header a{flex:none;margin-top:4px}.track-card ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 24px;margin:18px 0 0;padding-left:24px;display:grid}.track-card li{color:var(--muted);padding:4px;font-size:.84rem;line-height:1.45}.track-card li::marker{color:var(--accent);font-family:var(--mono)}.track-rule{border:1px solid var(--accent-line);border-radius:var(--r-sm);background:var(--accent-soft);padding:17px 20px}.track-rule strong{color:var(--accent-hi);font-size:.88rem}.track-rule p{color:var(--muted);margin-top:4px;font-size:.82rem;line-height:1.55}@media (width<=900px){.catalog-heading{align-items:flex-start}.corpus-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.corpus-controls{grid-template-columns:1fr 1fr}.corpus-search{grid-column:1/-1}}@media (width<=680px){.catalog-heading .cat-tabs{width:100%;overflow-x:auto}.catalog-heading .cat-tabs button{flex:1 0 auto}.corpus-summary{gap:7px}.corpus-summary>div{padding:13px}.corpus-policy{flex-direction:column;align-items:flex-start;gap:12px;padding:18px}.corpus-policy>span{text-align:left;max-width:none}.corpus-controls{grid-template-columns:1fr}.corpus-search{grid-column:auto}.corpus-source-toggle{gap:10px;padding:14px}.corpus-source-meta span:nth-child(3){display:none}.corpus-source-main>small{white-space:normal}.corpus-source-body{padding:0 12px 12px}.corpus-practice{grid-template-columns:1fr;gap:5px}.live-grid{grid-template-columns:1fr}.track-card{padding:18px}.track-card header{flex-direction:column}.track-card ol{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.corpus-chevron{transition:none}}.auth-screen{place-items:center;min-height:100dvh;padding:24px;display:grid;position:relative;overflow:hidden}.auth-aurora{z-index:0;pointer-events:none;background:radial-gradient(50% 45% at 78% 6%,#e8702a38,#0000 60%),radial-gradient(46% 50% at 14% 100%,#963c1424,#0000 62%);position:absolute;inset:0}.auth-card{z-index:1;background:var(--glass);border:1px solid var(--glass-br);border-radius:var(--r-lg);width:100%;max-width:420px;box-shadow:var(--glass-hi), var(--shadow);flex-direction:column;gap:6px;padding:34px 30px;display:flex;position:relative}.auth-brand{align-items:center;gap:12px;margin-bottom:12px;display:flex}.auth-brand .brand-mark{width:44px;height:44px;font-family:var(--serif);color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);box-shadow:var(--glass-hi);border-radius:12px;flex:none;place-items:center;font-size:22px;font-style:italic;display:grid}.auth-brand .brand-mark span{color:var(--muted);font-size:15px}.auth-brand>div{flex-direction:column;line-height:1.15;display:flex}.auth-brand strong{letter-spacing:.13em;font-size:.92rem}.auth-brand small{letter-spacing:.24em;color:var(--accent);font-size:.58rem;font-family:var(--mono)}.auth-tabs{border:1px solid var(--border);border-radius:var(--pill);background:#00000042;gap:4px;margin:10px 0 4px;padding:4px;display:flex}.auth-tabs button{border-radius:var(--pill);color:var(--muted);cursor:pointer;background:0 0;border:none;flex:1;padding:10px;font-size:.86rem;font-weight:600;transition:background .18s,color .18s}.auth-tabs button.is-on{background:linear-gradient(180deg, var(--accent-hi), var(--accent));color:#fff;box-shadow:0 6px 16px #e8702a47}.auth-title{font-family:var(--serif);margin-top:6px;font-size:2rem;font-style:italic;font-weight:500;line-height:1.05}.auth-sub{color:var(--muted);margin-bottom:14px;font-size:.92rem;line-height:1.6}.auth-form{flex-direction:column;gap:13px;display:flex}.auth-form label{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);flex-direction:column;gap:6px;font-size:.72rem;font-weight:600;display:flex}.auth-form input{text-transform:none;letter-spacing:normal;color:#fff;border:1px solid var(--border);border-radius:var(--r-sm);background:#00000047;padding:12px 14px;font-size:.95rem;font-weight:400;transition:border-color .18s,background .18s}.auth-form input:focus{border-color:var(--accent);background:#00000061;outline:none}.auth-form input::placeholder{color:#ffffff4d}.auth-submit{border-radius:var(--pill);background:linear-gradient(180deg, var(--accent-hi), var(--accent));color:#fff;cursor:pointer;border:none;margin-top:6px;padding:13px 20px;font-size:.95rem;font-weight:600;transition:transform .2s,box-shadow .2s,opacity .2s;box-shadow:0 8px 22px #e8702a52}.auth-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 30px #e8702a6b}.auth-submit:disabled{opacity:.6;cursor:progress}.auth-error{color:var(--bad);border-radius:var(--r-sm);background:#e5544b1a;border:1px solid #e5544b59;padding:9px 12px;font-size:.84rem}.auth-note{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-sm);flex-direction:column;gap:5px;margin:6px 0;padding:13px 15px;display:flex}.auth-note strong{font-size:.82rem}.auth-note code{font-family:var(--mono);color:var(--accent-hi);letter-spacing:.04em;-webkit-user-select:all;user-select:all;font-size:1rem}.auth-note span{color:var(--muted);font-size:.78rem}.auth-switch{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:12px 0 4px;font-size:.86rem;font-weight:600}.auth-switch:hover{color:var(--accent-hi)}.auth-skip{background:var(--glass);border:1px solid var(--glass-br);color:var(--muted);cursor:pointer;border-radius:var(--pill);padding:11px;font-size:.84rem;transition:border-color .18s}.auth-skip:hover{border-color:var(--border-hi);color:#fff}.auth-fineprint{text-align:center;color:var(--dim);margin-top:8px;font-size:.72rem}.signout-button{border:1px solid var(--border);color:var(--muted);border-radius:var(--pill);cursor:pointer;background:0 0;padding:6px 12px;font-size:.74rem;transition:border-color .18s,color .18s}.signout-button:hover{border-color:var(--bad);color:var(--bad)}@media (width<=460px){.auth-card{padding:26px 20px}.auth-title{font-size:1.7rem}}
