:root{color-scheme:dark;--background:#0b1118;--surface:#121b26;--text:#e6edf3;--muted:#9aa9b8;--accent:#71d7c0;--on-accent:#0b1118;--border:#2b3b4c;--control-border:#71869b;--focus:#71d7c0;--warning-bg:#292416;--warning:#f0cb83;--error-bg:#2f1b23;--error:#ffb4c0;--success:#84dfb8;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px}:root[data-theme=light]{color-scheme:light;--background:#f6f8fa;--surface:#fff;--text:#18232f;--muted:#516174;--accent:#006b58;--on-accent:#fff;--border:#cbd5df;--control-border:#728397;--focus:#1a6faa;--warning-bg:#fff4d6;--warning:#704900;--error-bg:#fff0f2;--error:#9b2440;--success:#175e43}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--background:#f6f8fa;--surface:#fff;--text:#18232f;--muted:#516174;--accent:#006b58;--on-accent:#fff;--border:#cbd5df;--control-border:#728397;--focus:#1a6faa;--warning-bg:#fff4d6;--warning:#704900;--error-bg:#fff0f2;--error:#9b2440;--success:#175e43}}*{box-sizing:border-box}body{background:var(--background);color:var(--text);margin:0;line-height:1.7}a{color:var(--accent);text-underline-offset:.22em;overflow-wrap:anywhere}a:hover{text-decoration-thickness:2px}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:1px solid var(--control-border);background:var(--surface);min-height:44px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:1rem;padding:.65rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}button:hover,.button:hover{border-color:var(--accent)}button:disabled{cursor:wait;opacity:.6}button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}input,select,textarea{border:1px solid var(--control-border);color:var(--text);background:var(--surface);border-radius:8px;max-width:100%;padding:.6rem}textarea{resize:vertical;width:100%;line-height:1.7}input[type=radio]{accent-color:var(--accent);flex:none;width:18px;height:18px}input[type=search]{width:100%}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}h1,h2,h3{letter-spacing:-.025em;overflow-wrap:anywhere;line-height:1.25}h1{margin:.8rem 0 1.2rem;font-size:clamp(2rem,4vw,3.7rem)}h2{margin-top:2.5rem;font-size:1.65rem}h3{font-size:1.15rem}p{margin:.8rem 0 1.2rem}ul,ol{padding-left:1.4rem}li+li{margin-top:.45rem}img{max-width:100%;height:auto}small,.small{font-size:.86rem}.muted{color:var(--muted)}.accent{color:var(--accent)}.eyebrow{letter-spacing:.13em;color:var(--accent);font-size:.75rem;font-weight:700}.lead{max-width:65ch;color:var(--muted);font-size:1.3rem}.actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.text-link{font-weight:600;text-decoration:none}.badge{letter-spacing:.08em;color:var(--accent);font-size:.75rem}.panel,.course-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2rem}.panel h2{margin-top:0}.course-card{max-width:760px;color:var(--text);margin:2.5rem 0;text-decoration:none;display:block}.course-card h2{margin-top:1rem}.course-card p{color:var(--muted)}.notice{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 8px 8px 0;padding:1rem 1.25rem}.error{color:var(--error);background:var(--error-bg);border-radius:8px;padding:.75rem}.warning{color:var(--warning);background:var(--warning-bg);border-radius:8px;padding:.75rem}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--accent);color:var(--on-accent);z-index:99;padding:.7rem 1rem;position:fixed;top:4px;left:10px;transform:translateY(-180%)}.skip-link:focus{transform:none}.site-header{border-bottom:1px solid var(--border);background:var(--background)}.header-inner{align-items:center;gap:2.5rem;max-width:1480px;margin:auto;padding:1.25rem 2.5rem;display:flex}.brand{color:var(--text);align-items:center;gap:.75rem;font-size:1.05rem;font-weight:700;line-height:1.3;text-decoration:none;display:flex}.brand-icon{border:1px solid var(--accent);color:var(--accent);border-radius:9px;place-items:center;min-width:36px;height:40px;font-size:1.4rem;display:grid;position:relative}.brand-icon span{font-size:.8rem;position:absolute;top:0;right:1px}.brand-sub{letter-spacing:.15em;color:var(--muted);margin-top:4px;font-size:.56rem;display:block}.primary-nav{flex-wrap:wrap;gap:1.65rem;margin-left:auto;display:flex}.primary-nav a{color:var(--muted);padding:.35rem 0;font-size:.9rem;text-decoration:none}.primary-nav a:hover,.primary-nav a[aria-current]{color:var(--accent)}.theme-control select{min-height:40px;font-size:.8rem}.page{max-width:1160px;min-height:60vh;margin:auto;padding:4rem 2.5rem 5rem}.page.wide{max-width:1540px;padding:2rem 2rem 5rem}.home-hero{grid-template-columns:1.35fr 1fr;align-items:center;gap:5rem;padding:1rem 0 4rem;display:grid}.home-hero h1{letter-spacing:-.045em;margin-bottom:1.8rem;font-size:clamp(2.6rem,5.2vw,4.2rem);line-height:1.2}.hero-description{max-width:47ch;color:var(--muted);margin-bottom:2rem;font-size:1.1rem}.learning-map{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:1.8rem 2rem}.map-heading{letter-spacing:.14em;color:var(--muted);align-items:center;gap:.6rem;font-size:.7rem;display:flex}.dot{background:var(--accent);border-radius:50%;width:7px;height:7px}.learning-map ol{margin:2rem 0;padding:0;list-style:none}.learning-map li{border-bottom:1px solid var(--border);align-items:start;gap:1.2rem;padding:1rem 0;display:flex}.learning-map li>span{color:var(--accent);padding-top:3px;font-family:monospace;font-size:.75rem}.learning-map li p{color:var(--muted);margin:.2rem 0 .4rem;font-size:.85rem}.map-bottom{color:var(--muted);font-size:.8rem;line-height:1.6}.featured-course{border-top:1px solid var(--border);padding-top:3rem}.section-heading{justify-content:space-between;align-items:center;gap:2rem;display:flex}.section-heading h2{margin:.65rem 0}.section-heading p{margin:0}.course-meta{color:var(--muted);flex-wrap:wrap;gap:1.5rem;padding:1.3rem 0 1.6rem;font-size:.8rem;display:flex}.course-meta span+span:before{content:"·";margin-right:1.5rem}.lesson-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.lesson-list li{border-bottom:1px solid var(--border);margin:0}.lesson-list a{color:var(--text);align-items:center;gap:1.5rem;padding:1.3rem .5rem;text-decoration:none;display:flex}.lesson-list a:hover{background:var(--surface)}.lesson-number{color:var(--accent);font:.85rem monospace}.lesson-description{margin-top:.25rem;font-size:.86rem;font-weight:400;display:block}.lesson-arrow{color:var(--muted);margin-left:auto}.principles{grid-template-columns:1fr 1fr;gap:4rem;margin-top:3rem;display:grid}.principles h2{font-size:1.3rem}.principles p{color:var(--muted)}.overview-grid{grid-template-columns:1.3fr 1fr;gap:3rem;margin:2rem 0;display:grid}.site-footer{border-top:1px solid var(--border);max-width:1360px;color:var(--muted);flex-wrap:wrap;gap:1.5rem 4rem;margin:auto;padding:2.5rem;font-size:.85rem;display:flex}.footer-name{color:var(--text);font-weight:700;text-decoration:none}.site-footer p{margin:.5rem 0}.site-footer nav{flex-wrap:wrap;gap:1.5rem;margin-left:auto;display:flex}.site-footer nav a{color:var(--muted)}.site-footer small{width:100%;font-size:.75rem}.reader-grid{grid-template-columns:16rem minmax(0,68ch) 13rem;justify-content:center;gap:2.5rem;display:grid}.reader-grid>*{min-width:0}.course-sidebar,.toc{align-self:start;max-height:calc(100vh - 2rem);font-size:.86rem;position:sticky;top:1rem;overflow:auto}.course-sidebar{border-right:1px solid var(--border);padding-right:1.25rem}summary{cursor:pointer;min-height:44px;padding:.5rem 0;font-weight:600}.course-sidebar summary,.toc summary{color:var(--text);font-size:.85rem}.course-sidebar ol,.toc ol{padding:0;list-style:none}.course-sidebar li{margin:0}.course-sidebar li a{color:var(--muted);border-radius:8px;gap:.7rem;padding:.75rem .65rem;line-height:1.5;text-decoration:none;display:flex}.course-sidebar a[aria-current]{background:var(--surface);color:var(--accent);border-left:2px solid var(--accent)}.nav-number{white-space:nowrap;flex-shrink:0;min-width:1.5rem;padding-top:3px;font:.75rem monospace}.sidebar-overview{margin:.5rem 0 1.5rem;font-size:.8rem;display:block}.toc ol{border-left:1px solid var(--border);padding-left:1rem}.toc a{color:var(--muted);padding:.4rem 0;font-size:.8rem;line-height:1.5;text-decoration:none;display:block}.toc a:hover{color:var(--accent)}.breadcrumb{color:var(--muted);flex-wrap:wrap;gap:.6rem;margin-bottom:2rem;font-size:.75rem;display:flex}.breadcrumb a{color:var(--muted)}.reader{font-size:18px;line-height:1.75}.reader h1{margin-top:1rem;font-size:2.5rem}.reader h2{margin:2.7rem 0 1.2rem;scroll-margin-top:1rem;font-size:1.6rem}.reader h3{font-size:1.2rem}.lesson-intro{color:var(--muted);font-size:1.18rem}.review-line{letter-spacing:.02em;color:var(--muted);border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem;font-size:.75rem}.reader-tools{flex-wrap:wrap;gap:.6rem;margin:1.5rem 0 .5rem;display:flex}.reader-tools button{font-size:.85rem}.objectives{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin:2rem 0;padding:1.5rem}.objectives h2{margin-top:0}.objectives li{font-size:1rem}.prose blockquote{border-left:3px solid var(--accent);background:var(--surface);margin:1.5rem 0;padding:.6rem 1.25rem;font-size:1rem}.prose img{background:#f6f8fa;border-radius:8px;margin:2rem auto;display:block}.diagram-figure{min-width:0;margin:2rem 0}.diagram-scroll{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.diagram-scroll img{width:100%;min-width:640px;max-width:none;margin:0}.diagram-figure figcaption{color:var(--muted);margin-top:.6rem;font-size:.85rem}.table-scroll{border:1px solid var(--border);border-radius:8px;max-width:100%;margin:1.5rem 0;overflow-x:auto}table{border-collapse:collapse;min-width:100%;font-size:.92rem;line-height:1.6}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);min-width:140px;padding:.8rem 1rem}th{background:var(--surface);font-weight:600}.prose pre{background:var(--surface);border:1px solid var(--border);border-radius:8px;max-width:100%;padding:1.2rem;font-size:.85rem;line-height:1.7;position:relative;overflow:auto}.prose code{font-family:Consolas,Courier New,monospace}.prose :not(pre)>code{background:var(--surface);border-radius:4px;padding:.15rem .3rem;font-size:.9em}.token.comment{color:var(--muted)}.token.string,.token.attr-value{color:var(--accent)}.token.keyword,.token.tag{color:var(--warning)}.token.number,.token.boolean{color:var(--success)}.code-tools{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;font-size:.75rem;display:flex}.code-tools button{min-height:36px;padding:.25rem .6rem;font-size:.75rem}.practice{border-top:1px solid var(--border);margin-top:2.5rem;padding-top:2rem}.practice h2{margin-top:.6rem}.practice-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.practice-item h3{margin-top:0}details>p,details>ul{font-size:1rem}details{overflow-wrap:anywhere}.practice-item details+details{border-top:1px solid var(--border)}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:1rem;padding:0;font-weight:600}.quiz-form{border:1px solid var(--border);border-radius:12px;margin:1.5rem 0;padding:1.5rem;font-size:1rem}.quiz-option{border:1px solid var(--control-border);cursor:pointer;border-radius:8px;align-items:flex-start;gap:.7rem;margin:.6rem 0;padding:.8rem 1rem;display:flex}.quiz-option input{margin-top:.3rem}.quiz-form .actions{margin-top:1rem}.quiz-form button{font-size:.85rem}.quiz-feedback{margin-top:1rem;font-size:.9rem}.quiz-feedback p{margin:.5rem 0}.quiz-history{color:var(--muted);margin-top:1rem;font-size:.8rem}.sources{border-top:1px solid var(--border);margin-top:2.5rem}.sources li{font-size:.95rem}.sources li p{margin:.3rem 0 1rem}.completion-panel{background:var(--surface);border-radius:12px;margin-top:2rem;padding:1.5rem}.completion-panel button{font-size:.9rem}.lesson-pager{border-top:1px solid var(--border);justify-content:space-between;gap:2rem;margin-top:2rem;padding-top:1.5rem;font-size:.9rem;display:flex}.lesson-pager a{flex:1}.lesson-pager a:last-child{text-align:right}dialog{background:var(--surface);color:var(--text);border:1px solid var(--control-border);border-radius:12px;width:min(680px,100vw - 2rem);max-height:90dvh;padding:1.5rem;overflow:auto}dialog::backdrop{background:#0009}.dialog-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.dialog-heading h2{margin:0;font-size:1.5rem}dialog label{margin:1rem 0 .5rem;display:block}dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--border);max-height:250px;padding:1rem;overflow:auto}.search-form{gap:.75rem;max-width:720px;display:flex}.search-form label{flex:1;min-width:0}.search-results{padding:0;list-style:none}.search-results li{border-bottom:1px solid var(--border);padding:1.5rem 0}.search-results h2{margin:0;font-size:1.3rem}.search-results p{color:var(--muted);max-width:75ch}.filter-bar{flex-wrap:wrap;gap:.5rem;margin:1.5rem 0;display:flex}.learning-item{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:1rem 0;padding:1.2rem}.learning-item h2{margin:0;font-size:1.25rem}.learning-item pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:var(--muted);max-height:15rem;font-size:.9rem;overflow:auto}[hidden]{display:none!important}@media (width<=1300px){.reader-grid{grid-template-columns:14rem minmax(0,68ch) 11rem;gap:1.75rem}}@media (width<=1199px){.reader-grid{grid-template-columns:14rem minmax(0,68ch)}.toc{border:1px solid var(--border);border-radius:8px;grid-area:1/2;max-height:none;padding:.5rem 1rem;position:static}.reader{grid-column:2}.course-sidebar{grid-row:1/span 2}.toc ol{grid-template-columns:1fr 1fr;display:grid}.home-hero{gap:2.5rem}.primary-nav{gap:1rem}.header-inner{gap:1.5rem}}@media (width<=899px){.header-inner{flex-wrap:wrap;padding:1rem 1.5rem}.primary-nav{border-top:1px solid var(--border);order:3;justify-content:space-between;gap:.7rem;width:100%;padding-top:.8rem}.theme-control{margin-left:auto}.page{padding:2.5rem 1.5rem 4rem}.reader-grid{flex-direction:column;gap:1.2rem;display:flex}.course-sidebar,.toc{border:1px solid var(--border);border-radius:8px;width:100%;max-height:none;padding:.5rem 1rem;position:static}.course-sidebar ol{grid-template-columns:1fr 1fr;display:grid}.reader{order:3;align-self:center;width:100%;max-width:68ch}.reader h1{font-size:2.15rem}.page.wide{padding:1.5rem}.home-hero{grid-template-columns:1fr 1fr;gap:2rem}.home-hero h1{font-size:2.8rem}.learning-map{padding:1.3rem}.overview-grid{gap:1.5rem}}@media (width<=599px){.page,.page.wide{padding:2rem 1rem 3rem}.header-inner{padding:1rem}.brand{font-size:1rem}.primary-nav a{font-size:.8rem}.primary-nav{gap:.6rem}.home-hero{grid-template-columns:1fr;gap:2rem;padding-bottom:2rem}.home-hero h1{font-size:2.8rem}.learning-map ol{margin:1rem 0}.section-heading{flex-direction:column;align-items:start;gap:1rem}.section-heading h2{font-size:1.7rem}.course-meta{gap:.6rem 1rem}.course-meta span+span:before{display:none}.lesson-list a{gap:.8rem}.lesson-description{font-size:.8rem}.principles,.overview-grid{grid-template-columns:1fr;gap:1rem}.course-card,.panel{padding:1.4rem}.reader h1{font-size:2rem}.reader h2{font-size:1.5rem}.objectives,.practice-item,.quiz-form,.completion-panel{padding:1rem}.site-footer{gap:1rem;padding:2rem 1rem}.site-footer nav{margin:0}.course-sidebar ol,.toc ol{display:block}.lesson-pager{gap:1rem}.search-form{flex-direction:column}.theme-control select{max-width:110px}.reader .small{font-size:.82rem}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.theme-control{gap:4px;display:flex}.theme-control button{min-width:36px;min-height:40px;padding:.4rem .55rem;font-size:.7rem;font-weight:500}.theme-control button[aria-pressed=true]{background:var(--surface);border-color:var(--accent)}@media (width<=599px){.header-inner{gap:.75rem}.brand{font-size:.9rem}.brand-sub{font-size:.5rem}.brand-icon{min-width:30px;height:36px}.theme-control button{min-width:30px;padding:.35rem;font-size:.65rem}}@media print{.site-header,.site-footer,.course-sidebar,.toc,.reader-tools,.completion-panel,dialog,.quiz-form button,.skip-link{display:none!important}.page,.page.wide{max-width:none;padding:0}.reader-grid{display:block}.reader{color:#000;max-width:none;font-size:12pt}.reader a{color:#000}body{color:#000;background:#fff}.prose pre{white-space:pre-wrap}details:not([open])>:not(summary){display:block}}
