:root{--paper:#f2f4f5;--surface:#ffffff;--sunken:#f3f4f7;--line:#e2e4ea;--line-strong:#c6cad4;--ink:#14181f;--ink-2:#39414d;--muted:#6c7482;--muted-2:#9aa1ad;--l1:#0e7c95;--l2:#0f8a5f;--l3:#b06a06;--l4:#a8123c;--l1-bg:#e6f4f8;--l2-bg:#e5f5ee;--l3-bg:#fbf1e0;--l4-bg:#fbe9ee;--ok:#0f8a5f;--bad:#a8123c;--card:var(--sunken);--accent:var(--l3);--excerpt-paper:#ffffff;--r-sm:6px;--r:10px;--r-lg:14px;--shadow-sm:0 1px 2px rgba(20,24,31,0.06);--shadow:0 1px 3px rgba(20,24,31,0.07),0 8px 24px -8px rgba(20,24,31,0.12);--sans:var(--font-assistant),"Assistant",ui-sans-serif,system-ui,"Segoe UI",sans-serif;--serif:var(--font-rubik),"Rubik",var(--font-assistant),system-ui,sans-serif;--heading-weight:700;--chrome:#2e5a63;--chrome-2:#3b6e78;--chrome-ink:#f2f7f7;--chrome-muted:#b5cdd0;--primary:#2e5a63;--primary-hover:#244a52;--primary-ink:#ffffff;--brand-soft:#e4eff0;--brand-line:#c3dadd;--warm:#d9925f;--warm-soft:#fbeee4;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--fs-xs:12px;--fs-sm:13.5px;--fs-ui:15px;--fs-body:16px;--fs-md:18px;--fs-lg:21px;--fs-xl:26px;--fs-2xl:34px;--lh-tight:1.25;--lh:1.6;--lh-read:1.85;--appbar-h:56px;--nav-w:248px;--nav-rail:72px;--bottomnav-h:64px;--aside-w:320px;--content-max:1120px;--r-xl:18px;--r-pill:999px;--z-nav:30;--z-appbar:40;--z-sticky:45;--shadow-lift:0 1px 2px rgba(20,24,31,0.05),0 12px 32px -12px rgba(20,40,46,0.22)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0d1014;--surface:#151920;--sunken:#1b2029;--line:#262c36;--line-strong:#3a424f;--ink:#eceff4;--ink-2:#c3c9d4;--muted:#8b93a1;--muted-2:#6b7280;--l1:#4dd0e8;--l2:#5ddba4;--l3:#f0b849;--l4:#ff8fab;--l1-bg:#10262d;--l2-bg:#11291f;--l3-bg:#2b2110;--l4-bg:#2d1620;--ok:#5ddba4;--bad:#ff8fab;--excerpt-paper:#ffffff;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow:0 1px 3px rgba(0,0,0,0.5),0 8px 24px -8px rgba(0,0,0,0.6);--shadow-lift:0 1px 2px rgba(0,0,0,0.4),0 12px 32px -12px rgba(0,0,0,0.7);--chrome:#10262a;--chrome-2:#1a3a40;--chrome-ink:#e3eeee;--chrome-muted:#8fb0b4;--primary:#6fb3bc;--primary-hover:#8cc5cd;--primary-ink:#08191c;--brand-soft:#13292c;--brand-line:#24484d;--warm:#e8a877;--warm-soft:#2c1f15}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-ui);line-height:var(--lh);-webkit-font-smoothing:antialiased}a{color:inherit}::selection{background:var(--ink);color:var(--paper)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:3px}:where(.app) :focus-visible{outline-color:var(--primary)}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.icon{flex:none;display:inline-block;vertical-align:-.2em}[dir=rtl] .icon.flip{transform:scaleX(-1)}button{font-family:inherit;font-size:14px;font-weight:500;padding:8px 15px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .13s,border-color .13s}:where(.app) button{font-size:14.5px;font-weight:600;min-height:40px;padding:8px 16px;border-radius:var(--r);transition:background .15s,border-color .15s,color .15s}button:hover:not(:disabled){background:var(--sunken);border-color:var(--muted-2)}button:disabled{opacity:.45;cursor:not-allowed}.btnlink.primary,button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btnlink.primary:hover,button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btnlink.ghost,button.ghost{border-color:transparent;background:transparent;color:var(--ink-2)}.btnlink.ghost:hover,button.ghost:hover:not(:disabled){background:var(--sunken);border-color:transparent}.btnlink.lg,button.lg{min-height:48px;padding:12px 24px;font-size:var(--fs-body);border-radius:var(--r)}.btnlink{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:40px;padding:8px 16px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);text-decoration:none;font-size:14.5px;font-weight:600;transition:background .15s,border-color .15s}.btnlink:hover{background:var(--sunken)}button:has(>.icon){display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2)}textarea{width:100%;font-family:inherit;font-size:var(--fs-body);line-height:var(--lh);padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--ink);resize:vertical}textarea::placeholder{color:var(--muted-2)}textarea:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--brand-soft)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spacer{margin-top:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 24px}@media (max-width:640px){.card{padding:18px 16px}}.section{margin:0 0 6px;font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.3;letter-spacing:-.01em;text-wrap:balance}.hint{margin:0 0 14px;font-size:var(--fs-sm);color:var(--muted);line-height:1.6}.error{margin-top:18px;padding:13px 15px;border:1px solid var(--bad);border-radius:var(--r);background:var(--l4-bg);color:var(--ink);font-size:14px}.spinner{display:inline-block;width:12px;height:12px;-webkit-margin-end:8px;margin-inline-end:8px;border:2px solid var(--line-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-1px}@keyframes spin{to{transform:rotate(1turn)}}.meter{position:relative;display:block;height:6px;border-radius:var(--r-pill);background:var(--sunken);overflow:hidden}.meter>span{position:absolute;inset-block:0;inset-inline-start:0;border-radius:inherit;background:var(--primary);transition:width .4s ease}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}*{scroll-behavior:auto!important}.meter>span{transition:none}}.app{min-height:100dvh;display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr);grid-template-rows:var(--appbar-h) 1fr;grid-template-areas:"bar bar" "nav main"}.skip-link{position:absolute;inset-inline-start:var(--sp-3);top:-100px;z-index:calc(var(--z-appbar) + 1);padding:10px 16px;border-radius:var(--r);background:var(--surface);color:var(--ink);font-weight:600}.skip-link:focus{top:var(--sp-2)}.appbar{grid-area:bar;position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-appbar);display:flex;align-items:center;gap:var(--sp-4);padding-inline:var(--sp-5);background:var(--chrome);color:var(--chrome-ink)}.appbar-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--serif);font-size:var(--fs-md);font-weight:700;letter-spacing:-.01em}.appbar-brand:focus-visible{outline-color:var(--chrome-ink)}.sidenav{grid-area:nav;position:-webkit-sticky;position:sticky;top:var(--appbar-h);align-self:start;z-index:var(--z-nav);height:calc(100dvh - var(--appbar-h));gap:var(--sp-5);padding:var(--sp-5) var(--sp-3);background:var(--surface);-webkit-border-end:1px solid var(--line);border-inline-end:1px solid var(--line)}.sidenav,.sidenav ul{display:flex;flex-direction:column}.sidenav ul{list-style:none;margin:0;padding:0;gap:var(--sp-1)}.nav-item{display:flex;align-items:center;gap:var(--sp-3);min-height:44px;padding:10px 14px;border-radius:var(--r);color:var(--ink-2);text-decoration:none;font-size:var(--fs-ui);font-weight:600;transition:background .15s,color .15s}.nav-item:hover{background:var(--sunken);color:var(--ink)}.nav-item.on{background:var(--brand-soft);color:var(--primary)}.nav-item.off{color:var(--muted-2);cursor:not-allowed}.nav-item.off:hover{background:none;color:var(--muted-2)}.nav-course{margin:auto 0 0;padding:var(--sp-3) 14px;border-top:1px solid var(--line);font-size:var(--fs-sm);line-height:1.45}.nav-course-label{display:block;margin-bottom:2px;color:var(--muted);font-size:var(--fs-xs)}.nav-course a{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--ink);font-weight:600;text-decoration:none}.nav-course a:hover{text-decoration:underline}.app-main{grid-area:main;min-width:0;padding:var(--sp-6) var(--sp-6) var(--sp-8)}.app-main:focus{outline:none}.page{max-width:var(--content-max);margin-inline:auto}.page.narrow{max-width:760px}.page-header{display:flex;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-6)}.page-header-main{flex:1 1 320px;min-width:0}.page-header h1{margin:0;font-family:var(--serif);font-size:var(--fs-2xl);font-weight:700;line-height:var(--lh-tight);letter-spacing:-.02em;text-wrap:balance}.page-lead{margin:var(--sp-2) 0 0;max-width:62ch;color:var(--muted);font-size:var(--fs-body)}.page-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:var(--sp-3);color:var(--muted);font-size:var(--fs-sm);font-weight:600;text-decoration:none}.page-back:hover{color:var(--ink)}.page-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}@media (min-width:900px) and (max-width:1199px){.app{grid-template-columns:var(--nav-rail) minmax(0,1fr)}.sidenav{padding-inline:var(--sp-2)}.nav-item{justify-content:center;padding-inline:0}.nav-course,.nav-label{display:none}}@media (min-width:900px){.app:has(.lesson-screen){grid-template-columns:var(--nav-rail) minmax(0,1fr)}.app:has(.lesson-screen) .sidenav{padding-inline:var(--sp-2)}.app:has(.lesson-screen) .nav-item{justify-content:center;padding-inline:0}.app:has(.lesson-screen) .nav-course,.app:has(.lesson-screen) .nav-label{display:none}}@media (max-width:899px){.app{grid-template-columns:minmax(0,1fr);grid-template-areas:"bar" "main"}.appbar{padding-inline:var(--sp-4)}.sidenav{position:fixed;inset-inline:0;bottom:0;top:auto;height:auto;padding:0 var(--sp-2) env(safe-area-inset-bottom);-webkit-border-end:none;border-inline-end:none;border-top:1px solid var(--line);z-index:var(--z-appbar)}.sidenav ul{flex-direction:row;justify-content:space-around;gap:0}.sidenav li{flex:1 1}.nav-item{flex-direction:column;justify-content:center;gap:2px;min-height:var(--bottomnav-h);padding:6px 4px;border-radius:0;font-size:11.5px}.nav-item.on{background:none}.nav-course{display:none}.app-main{padding:var(--sp-5) var(--sp-4) calc(var(--bottomnav-h) + var(--sp-6) + env(safe-area-inset-bottom))}.page-header{margin-bottom:var(--sp-5)}.page-header h1{font-size:var(--fs-xl)}}@media (prefers-reduced-motion:reduce){.nav-item{transition:none}}.chat-log{display:flex;flex-direction:column;gap:var(--sp-4)}.chat-row{display:flex;align-items:flex-start;gap:var(--sp-3)}.chat-row.user{justify-content:flex-end}.guide-avatar{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--warm);color:#fff}.chat-bubble{max-width:min(62ch,85%);padding:12px 16px;border-radius:var(--r-lg);font-size:var(--fs-body);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.chat-row.assistant .chat-bubble{background:var(--brand-soft);color:var(--ink);border-start-start-radius:4px}.chat-row.user .chat-bubble{background:var(--primary);color:var(--primary-ink);border-start-end-radius:4px}.chat-bubble .why{display:block;margin-top:6px;white-space:normal}.chat-bubble .why,.chat-bubble.typing{color:var(--muted);font-size:var(--fs-sm)}.chat-bubble.typing{display:inline-flex;align-items:center;gap:10px}.typing-dots{display:inline-flex;gap:4px}.typing-dots i{width:6px;height:6px;border-radius:50%;background:var(--primary);opacity:.35;animation:typing 1.2s ease-in-out infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.composer{display:flex;align-items:flex-end;gap:var(--sp-2);padding:6px;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--surface);transition:border-color .15s,box-shadow .15s}.composer:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--brand-soft)}.composer textarea{flex:1 1;min-height:44px;padding:10px;border:none;background:none;resize:none}.composer textarea:focus-visible{box-shadow:none;outline:none}.composer-send{flex:none;min-height:44px}@media (max-width:520px){.composer-send span{display:none}.composer-send{padding-inline:12px}}.chat-options{display:flex;flex-direction:column;gap:var(--sp-2);-webkit-margin-start:calc(36px + var(--sp-3));margin-inline-start:calc(36px + var(--sp-3))}.chat-option{display:block;width:100%;max-width:62ch;min-height:0;padding:12px 16px;text-align:start;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);font-weight:400}.chat-option:hover:not(:disabled){border-color:var(--primary);background:var(--brand-soft)}.chat-option strong{display:block;font-size:var(--fs-ui);font-weight:700}.chat-option span{display:block;margin-top:2px;color:var(--muted);font-size:var(--fs-sm);line-height:1.5}@media (max-width:640px){.chat-options{-webkit-margin-start:0;margin-inline-start:0}}@media (prefers-reduced-motion:reduce){.typing-dots i{animation:none;opacity:.7}.composer{transition:none}}.intake{display:flex;flex-direction:column;gap:var(--sp-5);min-height:calc(100dvh - var(--appbar-h) - var(--sp-6) - var(--sp-8))}.intake-log{flex:1 1;padding-top:var(--sp-2)}.intake-ask{display:block;font-family:var(--serif);font-size:var(--fs-lg);font-weight:700;line-height:1.3}.intake-examples{-webkit-margin-start:calc(36px + var(--sp-3));margin-inline-start:calc(36px + var(--sp-3))}.intake-examples-label{margin:0 0 var(--sp-2);color:var(--muted);font-size:var(--fs-sm)}.intake-example-list{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.intake-example{min-height:36px;padding:7px 14px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm);font-weight:500;text-align:start}.intake-example:hover:not(:disabled){border-color:var(--primary);background:var(--brand-soft);color:var(--ink)}.intake-composer{position:-webkit-sticky;position:sticky;bottom:var(--sp-4);z-index:var(--z-sticky);padding-top:var(--sp-2);background:linear-gradient(to bottom,transparent,var(--paper) 30%)}.intake-composer .composer{box-shadow:var(--shadow-lift)}.intake .error{margin:0}@media (max-width:899px){.intake-composer{bottom:calc(var(--bottomnav-h) + var(--sp-2) + env(safe-area-inset-bottom))}}@media (max-width:640px){.intake-examples{-webkit-margin-start:0;margin-inline-start:0}}.chat-suggest{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.chat-suggest,.proposal{-webkit-margin-start:calc(36px + var(--sp-3));margin-inline-start:calc(36px + var(--sp-3))}.proposal{display:grid;grid-gap:var(--sp-5);gap:var(--sp-5);padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.proposal-h{margin:0 0 var(--sp-3);font-family:var(--serif);font-size:var(--fs-lg);line-height:1.3}.proposal-topics{display:grid;grid-gap:var(--sp-2);gap:var(--sp-2);margin:0;padding:0;list-style:none}.proposal-topics label{display:flex;gap:var(--sp-3);align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}.proposal-topics li.on label{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));background:var(--brand-soft)}.proposal-topics input{flex:none;width:18px;height:18px;margin-top:3px;accent-color:var(--primary)}.proposal-topics strong{font-weight:700}.proposal-why{display:block;color:var(--muted);font-size:var(--fs-sm);line-height:1.5}.proposal-tag{display:inline-block;-webkit-margin-start:var(--sp-2);margin-inline-start:var(--sp-2);padding:1px 8px;border-radius:var(--r-pill);background:var(--sunken);color:var(--muted);font-size:12px;font-weight:600;vertical-align:1px}.proposal-note{margin:var(--sp-3) 0 0;color:var(--muted);font-size:var(--fs-sm)}.proposal-omitted summary{cursor:pointer;color:var(--ink-2);font-weight:600}.proposal-omitted ul{margin:var(--sp-2) 0 0;-webkit-padding-start:20px;padding-inline-start:20px;color:var(--ink-2);font-size:var(--fs-sm);line-height:1.6}.proposal-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--sp-2);gap:var(--sp-2)}:where(.app) button.proposal-tier{display:grid;grid-gap:2px;gap:2px;align-content:start;min-height:0;padding:12px 14px;text-align:start;font-weight:400}.proposal-tier.chosen,.proposal-tier.chosen:hover:not(:disabled){border-color:var(--primary);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--primary)}.proposal-tier-head{display:flex;gap:var(--sp-2);align-items:center;justify-content:space-between}.proposal-badge{padding:1px 8px;border-radius:var(--r-pill);background:var(--primary);color:var(--primary-ink);font-size:12px;font-weight:700}.proposal-tiers+.proposal-why{margin-top:var(--sp-2)}.proposal-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}@media (max-width:640px){.chat-suggest,.proposal{-webkit-margin-start:0;margin-inline-start:0}.proposal{padding:var(--sp-4)}.proposal-tiers{grid-template-columns:1fr}}.building{max-width:560px;margin:var(--sp-7) auto 0}.building h1{margin:0;font-family:var(--serif);font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em}.building-stages{list-style:none;margin:var(--sp-6) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--sp-4)}.building-stages li{display:flex;align-items:center;gap:var(--sp-3);color:var(--muted-2);font-size:var(--fs-body)}.building-stages li.now{color:var(--ink);font-weight:600}.building-stages li.done{color:var(--ink-2)}.building-dot{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface)}.building-stages li.done .building-dot{border-color:var(--primary);background:var(--primary);color:var(--primary-ink)}.building-stages li.now .building-dot{border-color:var(--primary)}.building-dot .spinner{margin:0}.course-cover{position:relative;overflow:hidden;background:linear-gradient(150deg,hsl(var(--course-hue,205) 30% 56%) 0,hsl(var(--course-hue,205) 28% 38%) 55%,var(--chrome) 100%)}.course-cover img{display:block;width:100%;height:100%;object-fit:cover}.course-cover.is-card{aspect-ratio:16/9}.course-cover.is-hero{flex:none;width:220px;aspect-ratio:4/3;border-radius:var(--r-xl)}.cover-fallback{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.9);font-family:var(--serif);font-size:clamp(40px,6vw,64px);font-weight:700;line-height:1}.course-cover-over{position:absolute;inset-block-start:var(--sp-3);inset-inline-start:var(--sp-3);display:flex;gap:var(--sp-2)}.cover-credit{margin:var(--sp-5) 0 0;color:var(--muted-2);font-size:var(--fs-xs)}.cover-credit a{color:inherit}.course-hero{display:flex;gap:var(--sp-5);align-items:center;margin-bottom:var(--sp-5)}.course-hero-text{min-width:0}.course-hero h1{margin:var(--sp-2) 0 0;font-family:var(--serif);font-size:clamp(var(--fs-xl),2.6vw,var(--fs-2xl));font-weight:700;line-height:var(--lh-tight);letter-spacing:-.02em;text-wrap:balance}.course-overview{margin:var(--sp-3) 0 0;max-width:68ch;color:var(--ink-2);font-size:var(--fs-body);line-height:1.7}.status-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 12px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:700}.status-chip.draft{background:var(--warm-soft);color:color-mix(in srgb,var(--warm) 55%,var(--ink))}.status-chip.active{background:var(--brand-soft);color:var(--primary)}.status-chip.draft:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--warm)}.stat-strip{display:flex;flex-wrap:wrap;margin:0 0 var(--sp-5);padding:var(--sp-4) 0;border-block:1px solid var(--line)}.stat-strip>div{display:flex;flex-direction:column-reverse;gap:2px;padding-inline:var(--sp-5);-webkit-border-start:1px solid var(--line);border-inline-start:1px solid var(--line)}.stat-strip>div:first-child{-webkit-padding-start:0;padding-inline-start:0;-webkit-border-start:0;border-inline-start:0}.stat-strip dt{color:var(--muted);font-size:var(--fs-sm)}.stat-strip dd{margin:0;font-family:var(--serif);font-size:var(--fs-xl);font-weight:700;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.panel{margin-bottom:var(--sp-5);padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.panel-head .panel-title{margin:0}.panel-title{margin:0 0 var(--sp-4);font-family:var(--serif);font-size:var(--fs-md);font-weight:700;letter-spacing:-.01em}.panel-note{margin:var(--sp-3) 0 0;color:var(--muted);font-size:var(--fs-sm);line-height:1.55}@media (max-width:640px){.panel{padding:var(--sp-4)}}.outcome-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4);margin-bottom:var(--sp-5)}.outcome-card{padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.outcome-card h2{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);font-family:var(--serif);font-size:var(--fs-md);font-weight:700}.outcome-card h2 .icon{color:var(--primary)}.outcome-card ul{margin:0;-webkit-padding-start:1.1em;padding-inline-start:1.1em;display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-ui);line-height:1.55}.outcome-card li::marker{color:var(--primary)}.outcome-why{-webkit-padding-start:var(--sp-3);padding-inline-start:var(--sp-3);-webkit-border-start:3px solid var(--brand-line);border-inline-start:3px solid var(--brand-line);line-height:1.6}.outcome-skip,.outcome-why{margin:var(--sp-3) 0 0;color:var(--ink-2);font-size:var(--fs-sm)}.outcome-skip span{color:var(--muted)}.modules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.module{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}.module.open{border-color:var(--line-strong)}.module-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;grid-gap:var(--sp-3);gap:var(--sp-3);width:100%;min-height:60px;padding:var(--sp-3) var(--sp-4);border:0;border-radius:0;background:var(--sunken);text-align:start;font-weight:400}.module-head:hover:not(:disabled){background:color-mix(in srgb,var(--sunken) 60%,var(--line))}.module-num{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface);border:1px solid var(--line-strong);font-family:var(--serif);font-size:var(--fs-sm);font-weight:700}.module-main{display:flex;flex-direction:column;gap:2px;min-width:0}.module-title{font-family:var(--serif);font-size:var(--fs-ui);font-weight:600;line-height:1.35}.module-outcome{color:var(--muted)}.module-outcome,.module-role{font-size:var(--fs-sm);line-height:1.45}.module-role{color:var(--ink-2)}.goal-path{margin-bottom:var(--sp-3);padding:var(--sp-3);border:1px solid var(--brand-line);border-radius:var(--r-sm);background:var(--brand-soft)}.goal-path-lead{margin:0 0 var(--sp-2);color:var(--ink-2);font-size:var(--fs-sm)}.goal-path-parts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);font-size:var(--fs-sm);font-weight:600}.goal-path-parts li{display:inline-flex;align-items:center;gap:6px}.goal-path-parts li+li:before{content:"←";color:var(--muted);font-weight:400;-webkit-margin-end:2px;margin-inline-end:2px}@media (max-width:560px){.goal-path-parts{flex-direction:column;align-items:flex-start}.goal-path-parts li+li:before{content:none}}.goal-path-num{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--primary);color:var(--primary-ink);font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.module-meta{display:flex;align-items:center;gap:var(--sp-3);color:var(--muted);font-size:var(--fs-sm);white-space:nowrap}.module-meta .meter{width:96px}.module-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.module-waiting{color:var(--l3);font-size:var(--fs-xs);font-weight:600}.module-caret{color:var(--muted);transition:transform .2s}.module.open .module-caret{transform:rotate(180deg)}@media (max-width:640px){.module-head{grid-template-columns:auto minmax(0,1fr) auto}.module-meta{grid-column:2/3;flex-wrap:wrap;white-space:normal}.module-caret{grid-row:1;grid-column:3}}.module-steps{list-style:none;margin:0;padding:var(--sp-2);display:flex;flex-direction:column;gap:2px}.lesson-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:var(--sp-3);gap:var(--sp-3);-webkit-padding-start:var(--sp-2);padding-inline-start:var(--sp-2);-webkit-border-start:3px solid var(--brand-line);border-inline-start:3px solid var(--brand-line);border-radius:2px}.lesson-row-check{display:grid;place-items:center;width:30px;height:30px;min-height:0;padding:0;border:1.5px solid var(--line-strong);border-radius:50%;background:var(--surface);color:var(--muted);font-size:var(--fs-xs);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button.lesson-row-check:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--surface)}.lesson-row.done .lesson-row-check{border-color:var(--primary);background:var(--primary);color:var(--primary-ink)}.lesson-row-body{display:flex;flex-direction:column;gap:4px;min-width:0;padding:10px var(--sp-3);border-radius:var(--r-sm);color:inherit;text-decoration:none}a.lesson-row-body:hover{background:var(--sunken)}.lesson-row-body.waiting{opacity:.6}.lesson-row-title{font-size:var(--fs-ui);font-weight:600;line-height:1.4}.lesson-row-goal,.lesson-row-objective,.lesson-row-situation{color:var(--ink-2);font-size:var(--fs-sm);line-height:1.5}.lesson-row-goal strong{color:var(--ink);font-weight:600}.lesson-row-flag.whole{border-color:var(--primary);color:var(--primary)}.lesson-row.done .lesson-row-title{color:var(--muted)}.lesson-row-part{-webkit-margin-start:var(--sp-2);margin-inline-start:var(--sp-2);font-weight:500}.lesson-row-meta,.lesson-row-part{color:var(--muted);font-size:var(--fs-xs)}.lesson-row-meta{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.lesson-row-flag{padding:1px 8px;border-radius:var(--r-pill);border:1px solid var(--line-strong);color:var(--ink-2);font-weight:700}.lesson-row-state{display:inline-flex;align-items:center;gap:3px;font-weight:700}.lesson-row-state.weak{color:var(--l3)}.lesson-row-state.locked{color:var(--muted)}.lesson-row-note{display:inline-flex;color:var(--primary)}.approval{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"main aside" "bar bar";grid-gap:0 var(--sp-6);gap:0 var(--sp-6);max-width:1320px;margin-inline:auto}.approval-main{grid-area:main;min-width:0}.approval-aside{grid-area:aside;position:-webkit-sticky;position:sticky;top:calc(var(--appbar-h) + var(--sp-5));align-self:start;max-height:calc(100dvh - var(--appbar-h) - 140px);display:flex}.syllabus-chat{display:flex;flex-direction:column;gap:var(--sp-3);width:100%;min-height:0;padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.syllabus-chat .error,.syllabus-chat .panel-note,.syllabus-chat .panel-title{margin:0}.syllabus-chat-log{flex:1 1;min-height:120px;overflow-y:auto;padding-block:var(--sp-1)}.syllabus-chat .chat-bubble{max-width:100%;font-size:var(--fs-ui)}.approve-bar{grid-area:bar;position:-webkit-sticky;position:sticky;bottom:var(--sp-4);z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;margin-top:var(--sp-5);padding:var(--sp-4) var(--sp-5);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-lift)}.approve-bar-text{flex:1 1 320px;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm);color:var(--muted);line-height:1.5}.approve-bar-text strong{color:var(--ink);font-size:var(--fs-ui)}.approve-error{flex-basis:100%;order:3;margin:0;color:var(--bad);font-size:var(--fs-sm)}@media (max-width:1199px){.approval{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "aside" "bar"}.approval-aside{position:static;max-height:none}.syllabus-chat-log{max-height:360px}}@media (max-width:899px){.approve-bar{bottom:calc(var(--bottomnav-h) + var(--sp-2) + env(safe-area-inset-bottom))}}@media (max-width:640px){.course-hero{flex-direction:column;align-items:stretch}.course-cover.is-hero{width:100%;aspect-ratio:21/9}.stat-strip>div{padding-inline:var(--sp-3)}.approve-bar{padding:var(--sp-3) var(--sp-4);gap:var(--sp-3)}.approve-bar-text{flex:1 1 auto}.approve-bar-text span{display:none}.approve-bar .primary{white-space:nowrap}}@media (prefers-reduced-motion:reduce){.module-caret{transition:none}}.meter.big,.module-head .meter{background:var(--line)}.course-performance{margin:var(--sp-3) 0 0;max-width:60ch;color:var(--ink);font-size:var(--fs-md);font-weight:600;line-height:1.5}.course-performance+.course-overview{margin-top:var(--sp-2);color:var(--muted)}.course-card-performance{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);font-size:var(--fs-sm);line-height:1.5}.capstone{margin-bottom:var(--sp-5);padding:var(--sp-5);border:1px solid var(--line);-webkit-border-start:4px solid var(--warm);border-inline-start:4px solid var(--warm);border-radius:var(--r-lg);background:var(--surface)}.capstone.passed{border-inline-start-color:var(--ok)}.capstone-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.capstone-head h2{margin:0;font-family:var(--serif);font-size:var(--fs-md);font-weight:700}.capstone-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--warm-soft);color:color-mix(in srgb,var(--warm) 70%,var(--ink))}.capstone-task{margin:0 0 var(--sp-3);max-width:68ch;font-size:var(--fs-body);line-height:1.7}.capstone-sub,.progress-sub{margin:var(--sp-3) 0 var(--sp-2);font-size:var(--fs-sm);font-weight:700;color:var(--ink)}.criteria{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.criteria li{position:relative;-webkit-padding-start:24px;padding-inline-start:24px;font-size:var(--fs-ui);line-height:1.5}.criteria li:before{content:"";position:absolute;inset-inline-start:2px;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--primary)}.capstone-foot{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-4)}.capstone-foot .panel-note{margin:0}.module-check{display:flex;align-items:center;gap:var(--sp-3);margin:0 var(--sp-2) var(--sp-2);padding:var(--sp-3) var(--sp-4);border:1px dashed var(--line-strong);border-radius:var(--r);color:var(--ink-2);font-size:var(--fs-sm);line-height:1.5}.module-check>.icon{flex:none;color:var(--warm)}.module-check.ready{border-style:solid;border-color:var(--primary);background:var(--brand-soft)}.module-check-text{flex:1 1;display:flex;flex-direction:column;gap:2px;min-width:0}.module-check-label{color:var(--ink);font-weight:700;font-size:var(--fs-xs)}.module-check .btnlink{flex:none;min-height:34px;padding:4px 14px}.budgetwarn{margin-bottom:18px;padding:11px 14px;border:1px dashed var(--l3);border-radius:var(--r);background:var(--l3-bg);font-size:13px;line-height:1.6}.lesson-article{max-width:74ch;margin-inline:auto}.lesson-article .md{font-size:16.5px;line-height:1.85}.lesson-article .md p{margin:0 0 18px}.opener{margin:0 0 26px;padding:0;-webkit-padding-start:15px;padding-inline-start:15px;-webkit-border-start:2px solid var(--ink);border-inline-start:2px solid var(--ink);line-height:1.7}.md,.opener{font-size:15.5px;color:var(--ink-2)}.md{line-height:1.75}.md p{margin:0 0 14px}.md p:last-child{margin-bottom:0}.md strong{color:var(--ink);font-weight:700}.md .math{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}.md .math .katex{font-size:1.08em}.md .math .katex-display{margin:10px 0;overflow-x:auto;overflow-y:hidden;padding-block:2px}.md ol,.md ul{margin:0 0 16px;-webkit-padding-start:0;padding-inline-start:0;list-style:none}.md ol{counter-reset:md-item}.md li{position:relative;margin-bottom:8px;-webkit-padding-start:22px;padding-inline-start:22px;line-height:1.7}.md li:last-child{margin-bottom:0}.md ul>li:before{content:"";position:absolute;inset-inline-start:6px;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--line-strong)}.md ol>li:before{counter-increment:md-item;content:counter(md-item) ".";position:absolute;inset-inline-start:0;font-family:var(--serif);font-weight:600;font-size:13px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.md a{color:var(--ink);text-underline-offset:2px}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.87em;padding:1.5px 5px;border-radius:4px;border:1px solid var(--line);display:inline-block}.md code,.md pre{background:var(--sunken);direction:ltr}.md pre{margin:0 0 14px;padding:13px 15px;border-radius:var(--r);border:1px solid var(--line);overflow-x:auto;text-align:left}.md pre code{background:none;border:0;padding:0;display:block}.md h1,.md h2,.md h3{font-family:var(--serif);font-weight:var(--heading-weight);font-weight:500;margin:20px 0 10px;line-height:1.3}.md h1{font-size:21px}.md h2{font-size:19px}.md h3{font-size:17px}.md details{margin:10px 0;padding:2px 0;-webkit-border-start:2px solid var(--line-strong);border-inline-start:2px solid var(--line-strong);-webkit-padding-start:12px;padding-inline-start:12px}.md details summary{cursor:pointer;color:var(--muted);font-size:14px}.md details[open] summary{margin-bottom:8px;color:var(--ink-2)}.md details p:last-child{margin-bottom:0}.check-explain{margin-top:13px;padding:12px 14px;border-radius:var(--r);font-size:14px;line-height:1.65;background:var(--surface);border:1px solid var(--line)}.check-explain.right{-webkit-border-start:3px solid var(--ok);border-inline-start:3px solid var(--ok)}.check-explain.wrong{-webkit-border-start:3px solid var(--bad);border-inline-start:3px solid var(--bad)}.check-explain .md{font-size:14px}.check-explain .md p:last-child{margin-bottom:0}.beyond{margin:22px 0 0;padding-top:15px;border-top:1px dashed var(--line-strong);font-size:13px;color:var(--muted);line-height:1.6}.sources{margin-top:18px;font-size:13px}.sources summary{cursor:pointer;color:var(--muted)}.sources ol{margin:9px 0 0;-webkit-padding-start:20px;padding-inline-start:20px;color:var(--muted)}.sources a{color:var(--ink-2)}.askbox{margin-top:30px;padding:18px;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--sunken)}.ask-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.ask-label{font-size:13px;font-weight:700}.ask-note{font-size:11px;color:var(--muted);padding:2px 8px;border-radius:999px;border:1px solid var(--line-strong)}.ask-turn{margin-bottom:14px}.askbox textarea{background:var(--surface)}.curated{display:flex;flex-direction:column;gap:14px;margin-block:4px 8px}.frame-label{display:block;margin-bottom:5px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.apply{padding:14px 16px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);-webkit-border-start:3px solid var(--l2);border-inline-start:3px solid var(--l2)}.apply .frame-label{color:var(--l2)}.apply p{margin:0 0 8px;font-size:15px;line-height:1.7}.apply p:last-child{margin-bottom:0}.block{margin-block:20px}.connect{margin:14px 0 0;-webkit-padding-start:11px;padding-inline-start:11px;-webkit-border-start:3px solid var(--line-strong);border-inline-start:3px solid var(--line-strong);font-size:14.5px;line-height:1.65;color:var(--muted)}.video-embed{border-radius:var(--r);overflow:hidden;border:1px solid var(--line-strong);background:#000}.video-embed iframe,.video-embed video{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0}.lesson-video{display:flex;flex-direction:column;gap:8px;margin-block:4px 6px}.lesson-video .video-embed{box-shadow:0 2px 14px rgb(0 0 0/.1)}.video-credit{margin:0;font-size:12.5px;color:var(--muted-2);text-align:center}.gather-bar{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:0 0 1.1rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--muted);font-size:.9rem}.gather-spin{width:.9rem;height:.9rem;flex:none;border:2px solid var(--line);border-block-start-color:var(--accent);border-radius:50%;animation:gather-turn .9s linear infinite}@keyframes gather-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.gather-spin{animation-duration:3s}}.gather-track{flex:1 1 8rem;height:4px;border-radius:2px;background:var(--line);overflow:hidden}.gather-fill{display:block;height:100%;background:var(--accent);transition:width .4s ease}.worked{margin:1.6rem 0;padding:1.1rem 1.2rem;border:1px solid var(--line);-webkit-border-start:3px solid var(--accent);border-inline-start:3px solid var(--accent);border-radius:10px;background:var(--card)}.worked-heading{margin:.4rem 0 .8rem;font-size:1.02rem;font-weight:650}.worked-setup{margin-bottom:.9rem;color:var(--muted)}.worked-steps{margin:0 0 .9rem;-webkit-padding-start:1.3rem;padding-inline-start:1.3rem;display:flex;flex-direction:column;gap:.55rem}.worked-steps li::marker{color:var(--accent);font-weight:700}.worked-outcome{padding-top:.8rem;border-top:1px dashed var(--line);font-weight:550}.figure.diagram{margin:22px 0}.md table{width:100%;margin:0 0 16px;border-collapse:collapse;font-size:14.5px;display:block;overflow-x:auto}.md thead th{text-align:start;font-weight:700;color:var(--ink);border-bottom:2px solid var(--line);padding:7px 12px;white-space:nowrap}.md tbody td{padding:7px 12px;border-bottom:1px solid var(--line);color:var(--ink-2)}.md tbody tr:last-child td{border-bottom:0}.worked-table{margin:0 0 1rem;overflow-x:auto}.worked-table table{width:100%;border-collapse:collapse;font-size:14px}.worked-table th{text-align:start;font-weight:700;color:var(--ink);padding:6px 12px;border-bottom:2px solid var(--line);white-space:nowrap}.worked-table td{padding:6px 12px;border-bottom:1px solid var(--line);color:var(--ink-2)}.worked-table tr:last-child td{border-bottom:0}.worked-table td.num,.worked-table th.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.worked-table td.bar{position:relative;isolation:isolate}.worked-table td.bar:before{content:"";position:absolute;inset-block:4px;inset-inline-start:0;width:var(--bar,0);background:color-mix(in srgb,var(--accent) 20%,transparent);-webkit-border-end:2px solid var(--accent);border-inline-end:2px solid var(--accent);border-radius:2px;z-index:-1}.worked-table td.bar span{position:relative}.worked-table figcaption{margin-top:6px;font-size:12.5px;color:var(--muted)}.facts{gap:1.2rem}.facts,.facts-list{display:flex;flex-direction:column}.facts-list{list-style:none;margin:0;padding:0;gap:.9rem}.facts-row{padding:.9rem 1rem;border:1px solid var(--line);-webkit-border-start:3px solid var(--accent);border-inline-start:3px solid var(--accent);border-radius:10px;background:var(--card)}.facts-term{display:block;margin-bottom:.3rem;font-size:1rem}.facts-text .md p{margin:0 0 6px}.facts-cite{margin-top:.5rem}.facts-source{font-size:.88rem}.facts-misconception{padding:.9rem 1rem;border-radius:10px;background:var(--surface);border:1px solid var(--line);-webkit-border-start:3px solid var(--l2);border-inline-start:3px solid var(--l2)}.facts-misconception .md p{margin:.3rem 0 0}