:root{color-scheme:light;--ink:#162b46;--muted:#52657d;--line:#dce4ed;--paper:#f7f9fc;--white:#fff;--accent:#087d75;--accent-soft:#e6f4f1;--blue:#2559bd;--radius:12px;--sans:system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--mono:Consolas,"SFMono-Regular",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #2767c9;outline-offset:4px}[hidden]{display:none!important}.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:var(--ink);color:#fff;padding:12px 20px}.skip-link:focus{top:12px}
.site-header{position:sticky;top:0;z-index:20;background:#fffffffa;border-bottom:1px solid var(--line)}.header-inner{max-width:1320px;margin:auto;min-height:84px;padding:14px 40px;display:flex;align-items:center;gap:48px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;font-size:23px;font-weight:800;letter-spacing:1px;line-height:1.3}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:500;letter-spacing:1px;margin-top:4px}.brand-symbol{width:36px;height:38px;display:flex;align-items:center;gap:4px}.brand-symbol i{width:8px;background:var(--accent);border-radius:2px;transform:skewY(-20deg)}.brand-symbol i:nth-child(1){height:20px}.brand-symbol i:nth-child(2){height:34px}.brand-symbol i:nth-child(3){height:27px;background:var(--ink)}.main-nav{display:flex;gap:32px;margin-left:auto}.main-nav a{padding:10px 0;color:var(--muted);font-size:15px;position:relative}.main-nav a[aria-current]{color:var(--ink);font-weight:700}.main-nav a[aria-current]:after{content:"";height:3px;background:var(--accent);position:absolute;bottom:1px;left:0;right:0;border-radius:3px}.teacher-link{font-size:14px;border-left:1px solid var(--line);padding:6px 0 6px 28px;color:var(--muted)}.teacher-link span{margin-left:10px}.teacher-link:hover,.text-link:hover{color:var(--accent)}main{max-width:1320px;margin:auto;padding:0 40px}.section-label{color:var(--accent);font-size:13px;font-weight:650;letter-spacing:.6px;display:flex;align-items:center;gap:10px}.label-line{width:24px;height:2px;background:currentColor}.home-hero{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center;padding:72px 0 60px}.hero-copy h1{font-size:clamp(42px,4.6vw,68px);font-weight:760;line-height:1.23;letter-spacing:-2px;margin:25px 0}.hero-description{font-size:18px;line-height:1.9;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:34px}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;padding:13px 22px;border-radius:8px;font-size:15px;font-weight:650;min-height:50px}.button.primary{background:var(--accent);color:white;box-shadow:0 5px 12px #087d7514}.button.primary:hover{background:#086b65}.text-link{font-size:15px;font-weight:550}.text-link span{margin-left:10px}.hero-caption{margin-top:25px;font-size:12px;color:var(--muted);letter-spacing:1px}
.learning-rhythm{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0}.learning-rhythm>div{display:flex;align-items:center;gap:17px}.learning-rhythm>div>span{color:#617c9a;font:19px var(--mono)}.learning-rhythm strong{display:block;font-size:16px;font-weight:650}.learning-rhythm small{display:block;font-size:13px;color:var(--muted);margin-top:3px}
.course-directory{padding:64px 0 80px;scroll-margin-top:16px}.directory-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.directory-heading h1{font-size:48px;line-height:1.3;letter-spacing:-1.5px;margin:12px 0}.directory-heading h2{font-size:34px;line-height:1.4;letter-spacing:-.8px;margin:12px 0}.lead{font-size:16px;color:var(--muted);line-height:1.8}.directory-total{font-size:13px;color:var(--muted);white-space:nowrap}.directory-total span{margin:0 10px;color:#7a8da5}.directory-toolbar{display:flex;align-items:end;gap:24px;padding:22px 24px;border:1px solid var(--line);border-radius:12px;background:#fff}.directory-search{flex:1;min-width:0;display:block}.directory-search>span{display:block;font-size:12px;font-weight:650;margin-bottom:8px;color:var(--muted)}.directory-search input{width:100%;padding:12px 16px;border:1px solid #bfcedc;background:#f9fbfd;border-radius:7px;color:var(--ink);font-size:15px;min-height:48px}.directory-search input::placeholder{color:#627389}.directory-actions{display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0}.directory-actions button,.empty-state button{padding:11px 15px;background:#fff;color:var(--ink);border:1px solid #c7d3df;border-radius:7px;font-size:13px;min-height:46px}.directory-actions button:hover,.empty-state button:hover{background:var(--accent-soft);border-color:var(--accent)}.result-count{font-size:12px;color:var(--muted);margin:13px 2px 26px;min-height:20px}.directory-layout{display:grid;grid-template-columns:195px minmax(0,1fr);gap:35px;align-items:start}.chapter-sidebar{position:sticky;top:112px}.chapter-sidebar>p:first-child{font-size:12px;color:var(--muted);margin-bottom:12px}.chapter-nav{display:flex;flex-direction:column;gap:5px}.chapter-nav a{display:flex;align-items:center;gap:11px;padding:12px 10px;font-size:14px;border-radius:7px;border:1px solid transparent}.chapter-nav .nav-number{font:12px var(--mono);color:#657d97}.chapter-nav a>span:last-child{margin-left:auto;color:#627b95}.chapter-nav a:hover,.chapter-nav a[aria-current]{background:#e8f2f4;border-color:#c9dfe0;color:#07655f}.chapter-nav a.no-matches{color:#728299}.sidebar-note{border-top:1px solid var(--line);margin-top:25px;padding-top:22px;font-size:12px;line-height:1.9;color:var(--muted)}.chapter-list{min-width:0}.chapter-fold{background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:16px;scroll-margin-top:16px;overflow:clip}.chapter-fold>summary{display:flex;align-items:center;gap:18px;cursor:pointer;padding:24px;list-style:none}.chapter-fold>summary::-webkit-details-marker,.section-fold>summary::-webkit-details-marker{display:none}.chapter-number{width:49px;height:53px;border-radius:8px;background:#edf2f9;color:#385c8d;font:23px/53px var(--mono);text-align:center;flex-shrink:0}.chapter-name{flex:1;min-width:0;display:block}.chapter-name strong{display:block;font-size:20px;font-weight:680;line-height:1.5}.chapter-name>span{display:block;color:var(--muted);font-size:13px;margin-top:5px}.chapter-count{color:var(--muted);font-size:12px;white-space:nowrap}.fold-icon{height:8px;width:8px;border-bottom:1.5px solid #496680;border-right:1.5px solid #496680;transform:rotate(45deg);flex-shrink:0;margin:0 3px 4px 6px}.chapter-fold[open]>summary .fold-icon,.section-fold[open]>summary .fold-icon{transform:rotate(225deg);margin-top:6px}.chapter-fold[open]>summary{border-bottom:1px solid var(--line)}.chapter-content{padding:0 24px 10px}.section-fold{border-bottom:1px solid var(--line)}.section-fold:last-child{border-bottom:0}.section-fold>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:12px;padding:19px 0;font-size:15px;font-weight:650}.section-code{color:var(--accent);font:500 13px var(--mono);flex-shrink:0}.section-fold>summary small{margin-left:auto;color:var(--muted);white-space:nowrap;font-size:11px;font-weight:400}.unit-grid{padding:0 0 14px}.unit-card{display:flex;align-items:center;gap:20px;border:1px solid transparent;border-bottom-color:#e8edf3;padding:17px 16px;min-width:0;position:relative}.unit-card:last-child{border-bottom-color:transparent}.unit-card:hover{background:#f4f8fc;border-color:#cfdeea;border-radius:8px}.unit-body{min-width:0;flex:1}.unit-body>small{font:12px var(--mono);color:#2859a5}.unit-body>small span{font-family:var(--sans);color:var(--muted);margin-left:6px}.unit-body h3{font-size:18px;font-weight:650;line-height:1.5;margin:6px 0}.unit-body p{font-size:13px;line-height:1.8;color:var(--muted)}.unit-entry{font-size:12px;font-weight:600;white-space:nowrap;color:var(--accent)}.unit-entry>span{margin-left:6px}.empty-state{border:1px dashed #bbcbdd;padding:48px 24px;text-align:center;border-radius:12px;background:#fff}.empty-state h3{font-size:21px}.empty-state p{font-size:14px;color:var(--muted);margin:10px 0 24px}.site-footer{border-top:1px solid var(--line);background:#fff}.footer-inner{max-width:1320px;margin:auto;padding:32px 40px;display:flex;justify-content:space-between;gap:30px;align-items:center;color:var(--muted);font-size:12px}.footer-inner strong{font-size:17px;letter-spacing:1px;color:var(--ink)}.footer-inner p{margin:4px 0}.footer-inner a:hover{color:var(--accent);text-decoration:underline}.footer-separator{margin:0 10px;color:#8091a7}
@media(min-width:1450px){.home-hero{gap:100px;padding:85px 0 70px}}
@media(max-width:1050px){.header-inner{gap:24px}.home-hero{gap:34px}.hero-copy h1{font-size:48px}.hero-description{font-size:16px}.hero-actions{gap:18px}.hero-actions .button{gap:15px;padding:13px 17px}.directory-layout{grid-template-columns:160px minmax(0,1fr);gap:20px}.chapter-fold>summary{padding:20px;gap:12px}.chapter-name strong{font-size:18px}.chapter-count{display:none}.chapter-content{padding:0 18px 8px}.unit-card{padding:16px 8px}.unit-entry{font-size:11px}.directory-toolbar{gap:18px;padding:20px}}
@media(max-width:760px){html{scroll-padding-top:112px}.header-inner{padding:14px 20px;gap:16px;min-height:74px;flex-wrap:wrap}.brand{font-size:20px}.brand small{font-size:10px}.brand-symbol{width:29px;gap:3px}.brand-symbol i{width:7px}.main-nav{gap:20px}.main-nav a{font-size:13px}.teacher-link{border:0;padding:0;font-size:12px;margin-left:auto}.teacher-link span{margin-left:2px}main{padding:0 22px}.home-hero{grid-template-columns:1fr;gap:32px;padding:40px 0 34px}.hero-copy h1{font-size:48px;margin:19px 0}.hero-description{font-size:16px}.hero-actions{margin-top:25px;gap:26px}.hero-caption{margin-top:18px}.learning-rhythm{gap:15px;padding:23px 0}.learning-rhythm>div{align-items:start;gap:8px;flex-direction:column}.learning-rhythm>div>span{font-size:15px}.learning-rhythm strong{font-size:13px}.learning-rhythm small{font-size:11px}.course-directory{padding:38px 0 46px}.directory-heading{display:block;margin-bottom:23px}.directory-heading h1{font-size:36px}.directory-heading h2{font-size:28px}.lead{font-size:14px}.directory-total{margin-top:16px;font-size:12px}.directory-toolbar{display:block;padding:17px}.directory-search input{font-size:14px}.directory-actions{margin-top:12px;gap:8px}.directory-actions button{padding:9px 12px;min-height:42px;font-size:12px}.result-count{margin-bottom:20px}.directory-layout{display:block}.chapter-sidebar{position:static;margin-bottom:22px}.chapter-sidebar>p:first-child,.sidebar-note{display:none}.chapter-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.chapter-nav a{font-size:11px;gap:6px;padding:10px 6px;background:#fff;border-color:var(--line);min-height:43px;justify-content:center}.chapter-nav a>span:last-child{display:none}.chapter-nav .nav-number{font-size:10px}.chapter-fold{scroll-margin-top:16px}.chapter-fold>summary{padding:18px 15px;gap:12px}.chapter-number{width:37px;height:44px;font-size:18px;line-height:44px}.chapter-name strong{font-size:16px}.chapter-name>span{font-size:12px;line-height:1.7}.fold-icon{margin-left:0}.chapter-content{padding:0 15px 5px}.section-fold>summary{font-size:14px;gap:8px;padding:17px 0}.section-fold>summary small{display:none}.section-fold>summary .fold-icon{margin-left:auto}.section-code{font-size:12px}.unit-card{display:block;padding:15px 4px}.unit-body h3{font-size:17px}.unit-body p{font-size:13px}.unit-body>small{font-size:11px}.unit-entry{display:block;margin-top:10px;font-size:12px}.footer-inner{display:block;padding:26px 22px;font-size:11px}.footer-inner>div+div{margin-top:18px}.footer-separator{margin:0 5px}}
@media(max-width:430px){.teacher-link{width:100%;text-align:right;margin-top:-4px}.header-inner{row-gap:5px}.brand small{letter-spacing:0}.main-nav{gap:18px}.hero-copy h1{font-size:43px}.section-label{font-size:12px}.hero-description{font-size:15px}.hero-actions{gap:20px}.button{font-size:14px}.text-link{font-size:13px}.chapter-nav{gap:6px}.chapter-nav a{font-size:12px;gap:5px}.chapter-nav .nav-number{font-size:11px}.directory-search input{font-size:13px;padding:12px}.directory-heading h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header,.hero-actions,.directory-toolbar,.chapter-sidebar,.site-footer{display:none}body{background:#fff;color:#000}main{padding:0}.home-hero{display:block}.directory-layout{display:block}.chapter-fold{break-inside:avoid}.unit-entry{display:none}}

@media(max-width:360px){.chapter-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Ambient light spans the viewport; reading surfaces remain opaque. */
body.portal{isolation:isolate;background:#f3f7fa}
body.portal::before,body.portal::after{content:"";position:fixed;inset:0;pointer-events:none}
body.portal::before{z-index:-2;background:radial-gradient(ellipse at 94% 12%,#c4e4e0a8,transparent 47%),radial-gradient(ellipse at 1% 38%,#c5d8f2bd,transparent 43%),radial-gradient(ellipse at 80% 100%,#d4e5f399,transparent 42%),linear-gradient(110deg,#eff4fa,#f9fbfc 48%,#edf5f4)}
body.portal::after{z-index:-1;background-image:linear-gradient(#507c9710 1px,transparent 1px),linear-gradient(90deg,#507c9710 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,#000,transparent 28%,transparent 72%,#000)}
body.catalog-page::before{background:radial-gradient(ellipse at 98% 8%,#cee7e4cc,transparent 44%),radial-gradient(ellipse at 0% 45%,#cbdcf3c2,transparent 43%),linear-gradient(110deg,#f0f5fa,#f9fbfc 50%,#f1f7f7)}
.hardware-scene{margin:0;position:relative;min-width:0;padding:10px 0 12px;background:radial-gradient(ellipse at 55% 50%,#fff9,transparent 68%)}
.hardware-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 18px;color:#566d80;font-size:12px;letter-spacing:.7px}
.hardware-motion{border:1px solid #c7d7df;background:#ffffff80;color:#496879;border-radius:20px;padding:8px 13px;min-height:40px;font-size:11px;white-space:nowrap}
.hardware-motion:hover{background:#fff;border-color:#85aaa9}.hardware-motion:disabled{opacity:.7}
.hardware-model{display:block;width:100%;height:auto;overflow:visible}
.hardware-route{fill:none;stroke:#85b4b6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.7}
.hardware-signal{fill:none;stroke:#15948a;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3 97;animation:hardware-flow var(--duration) linear var(--delay) infinite;animation-play-state:paused}
.signal-output{stroke:#447fba}.signal-read{stroke:#208b86}
.processor-glint{animation:hardware-glint 6s ease-in-out infinite;animation-play-state:paused}
.hardware-scene.is-running .hardware-signal,.hardware-scene.is-running .processor-glint{animation-play-state:running}
.cpu-inscription{fill:#e6f7f4;font:600 24px var(--mono);letter-spacing:1px}
.hardware-labels{fill:#405d71;font:500 19px var(--sans);letter-spacing:1px}
.hardware-leaders{fill:none;stroke:#7696a8;stroke-width:1;opacity:.8}
.hardware-scene figcaption{display:flex;justify-content:center;align-items:center;gap:9px;color:#60778a;font-size:12px;letter-spacing:.5px;margin-top:-6px}
.hardware-caption-mark{width:5px;height:5px;border-radius:50%;background:#288f89}
@keyframes hardware-flow{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes hardware-glint{0%,100%{opacity:.35}50%{opacity:.9}}
@media(min-width:1450px){.home-hero{grid-template-columns:1fr 1.08fr;gap:65px}.hardware-scene{margin-right:-18px}}
@media(max-width:1050px){.hardware-heading{padding:0;font-size:10px;letter-spacing:0}.hardware-motion{font-size:10px;padding:7px 10px}.hardware-scene figcaption{font-size:11px}}
@media(max-width:760px){.hardware-scene{max-width:560px;width:100%;justify-self:center;padding:0 0 12px}.hardware-heading{padding:0 12px;font-size:11px}.hardware-model{margin-top:-10px}.hardware-motion{min-height:44px}.hardware-scene figcaption{margin-top:-10px}body.portal::after{opacity:.45}}
@media print{body.portal::before,body.portal::after,.hardware-motion{display:none}.hardware-scene{break-inside:avoid}.hardware-signal,.processor-glint{animation:none!important}}

@media(max-width:760px){.hardware-labels{font-size:24px}}

.section-course{margin-left:auto;color:var(--accent);font-size:12px;padding:10px 6px;white-space:nowrap}.section-course:hover{text-decoration:underline}.section-fold>summary:has(.section-course) small{margin-left:0}@media(max-width:760px){.section-fold>summary:has(.section-course){flex-wrap:wrap}.section-course{font-size:12px}}

/* Global website and local course destinations remain distinct. */
.main-nav a,.teacher-link{white-space:nowrap}
@media(min-width:761px){.header-inner{gap:24px}.main-nav{gap:22px}.teacher-link{padding-left:20px}}
@media(max-width:1050px){.header-inner{flex-wrap:wrap;row-gap:8px}.main-nav{order:3;flex-basis:100%;justify-content:flex-end}.teacher-link{margin-left:auto}}
@media(max-width:760px){.main-nav{justify-content:space-between;gap:12px;margin:0}.main-nav a{min-height:44px;display:flex;align-items:center;padding:8px 0}.teacher-link{width:auto;margin-top:0;padding:8px 0;min-height:44px;display:flex;align-items:center}.header-inner{row-gap:4px}}
