@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#08131e;--panel:#102332;--panel2:#132b3b;--line:#2d5061;--text:#e8f5f7;--muted:#a8c1c9;--cyan:#69e0e4;--amber:#ffc67a;--pink:#ff9f9a;--green:#9fdfa9;--width:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 85% 0%,#183445 0,transparent 38%),var(--bg);color:var(--text);font:16px/1.75 'DM Sans','Noto Sans SC',sans-serif}a{color:var(--cyan)}button,input,select{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--amber);outline-offset:3px}.wrap{max-width:var(--width);margin:auto;padding:0 28px}.site-header{position:sticky;top:0;z-index:20;background:#08131eea;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.header-inner{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{color:var(--text);text-decoration:none;font-weight:700;letter-spacing:.02em;line-height:1.3}.brand-mark{color:var(--cyan);margin-right:9px}.nav{display:flex;align-items:center;gap:20px}.nav a{text-decoration:none;color:var(--muted);font-size:14px}.nav a:hover,.nav a[aria-current=page]{color:var(--cyan)}.eyebrow{color:var(--cyan);font-weight:700;letter-spacing:.14em;font-size:12px;text-transform:uppercase}.hero{padding:70px 0 58px;border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:40px;align-items:center}.hero h1{font-size:clamp(36px,4.4vw,61px);line-height:1.16;letter-spacing:-.035em;margin:14px 0 20px}.hero p.lead{font-size:19px;color:var(--muted);max-width:680px}.hero p strong{color:var(--text)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border:1px solid var(--cyan);background:var(--cyan);color:#06202a;text-decoration:none;border-radius:7px;font-weight:700}.btn.secondary{color:var(--cyan);background:transparent}.btn:hover{filter:brightness(1.1)}.blueprint{background:linear-gradient(90deg,#ffffff08 1px,transparent 1px),linear-gradient(#ffffff08 1px,transparent 1px),var(--panel);background-size:24px 24px;border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 20px 50px #0005}.blueprint svg{width:100%;height:auto}.blueprint-caption{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin-top:6px}.section{padding:62px 0;border-bottom:1px solid var(--line)}.section h2{font-size:clamp(26px,3vw,38px);line-height:1.3;letter-spacing:-.02em;margin:6px 0 16px}.section-intro{max-width:760px;color:var(--muted);margin:0 0 28px}.pills{display:flex;gap:9px;flex-wrap:wrap}.pill{border:1px solid var(--line);border-radius:999px;padding:4px 11px;color:var(--muted);font-size:13px}.pill.active{border-color:var(--cyan);color:var(--cyan)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:22px;min-width:0}.card h3{margin:6px 0 10px;font-size:20px;line-height:1.4}.card p{margin:0;color:var(--muted)}.card .num{font-size:13px;color:var(--cyan);font-weight:700;letter-spacing:.09em}.card .small{margin-top:13px;font-size:14px;color:var(--amber)}.sequence{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.step{border-top:3px solid var(--cyan);padding:16px 0;color:var(--muted)}.step strong{display:block;color:var(--text);font-size:18px;margin:5px 0}.step:nth-child(2){border-color:var(--green)}.step:nth-child(3){border-color:var(--amber)}.step:nth-child(4){border-color:var(--pink)}.chapter-table{width:100%;border-collapse:collapse;min-width:720px}.chapter-table th,.chapter-table td{text-align:left;vertical-align:top;padding:13px 12px;border-bottom:1px solid var(--line)}.chapter-table th{color:var(--cyan);font-size:13px;letter-spacing:.06em}.chapter-table td:first-child{white-space:nowrap;font-weight:700;color:var(--text)}.chapter-table td:nth-child(2){color:var(--text)}.chapter-table td:last-child{color:var(--muted)}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.thesis{font-size:clamp(22px,2.7vw,31px);line-height:1.55;max-width:960px;border-left:4px solid var(--amber);padding-left:24px}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.callout{background:#123443;border:1px solid #337285;border-radius:9px;padding:20px}.callout strong{color:var(--cyan)}.callout p{margin:8px 0 0}.source-note{font-size:14px;color:var(--muted)}.site-footer{padding:32px 0;color:var(--muted);font-size:14px}.course-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:36px;align-items:start}.toc{position:sticky;top:91px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:18px}.toc strong{display:block;margin-bottom:9px}.toc a{display:block;padding:6px 2px;text-decoration:none;color:var(--muted);font-size:14px}.toc a:hover{color:var(--cyan)}.lesson{padding:26px 0 38px;border-bottom:1px solid var(--line);scroll-margin-top:88px}.lesson:first-child{padding-top:0}.lesson h2{font-size:clamp(27px,3vw,38px);line-height:1.3;margin:5px 0 18px}.lesson h3{font-size:21px;margin:27px 0 10px}.lesson p,.lesson li{color:var(--muted)}.lesson strong{color:var(--text)}.lesson ul,.lesson ol{padding-left:24px}.formula{overflow-x:auto;background:#071a29;border-left:3px solid var(--cyan);padding:13px 18px;border-radius:4px;font-size:20px;color:var(--text);white-space:nowrap;line-height:1.5}.formula small{display:block;white-space:normal;font-size:14px;color:var(--muted)}.lab{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:20px;margin:22px 0}.lab-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.lab-head h3{margin:0}.lab label{font-size:14px;color:var(--muted);display:block;margin-top:12px}.lab input[type=range]{width:100%;accent-color:var(--cyan)}.lab select,.lab input[type=number]{width:100%;border:1px solid var(--line);background:#071a29;color:var(--text);border-radius:6px;padding:8px 10px}.lab-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.lab svg{width:100%;height:auto;background:#0a1b29;border:1px solid var(--line);border-radius:8px;margin-top:16px}.result{background:#0b2836;border-radius:7px;padding:14px;margin-top:12px;color:var(--text)}.result strong{color:var(--cyan)}.example{background:#182c39;border-left:3px solid var(--amber);padding:17px 20px;margin:18px 0}.example h4{color:var(--amber);margin:0 0 7px}.example p{margin:8px 0}.quiz-item{border:1px solid var(--line);border-radius:8px;margin:14px 0;padding:17px;background:var(--panel)}.quiz-item h3{font-size:17px;margin:0 0 12px}.option{display:block;width:100%;background:#0a1b29;color:var(--text);border:1px solid var(--line);border-radius:6px;text-align:left;padding:9px 12px;margin:7px 0}.option:hover{border-color:var(--cyan)}.option.correct{border-color:var(--green);background:#16362d}.option.wrong{border-color:var(--pink);background:#3b242b}.feedback{min-height:24px;color:var(--muted);font-size:14px;margin-top:9px}.chapter-hero{padding:48px 0 32px;border-bottom:1px solid var(--line)}.chapter-hero h1{font-size:clamp(34px,4vw,54px);line-height:1.2;margin:8px 0 14px}.chapter-hero p{color:var(--muted);max-width:760px}.mini-map{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0 0}.mini-map span{border:1px solid var(--line);background:var(--panel);padding:5px 10px;border-radius:6px;font-size:13px;color:var(--muted)}.chapter-main{padding:38px 0 65px}.diagram-caption{font-size:13px;color:var(--muted);text-align:center;margin-top:5px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.book-ref{color:var(--amber);font-size:13px;font-weight:700;letter-spacing:.04em}.checklist li{padding:3px 0}.details{border:1px solid var(--line);border-radius:7px;padding:14px 17px;margin:10px 0;background:var(--panel)}.details summary{cursor:pointer;color:var(--cyan);font-weight:700}.details p{margin-bottom:0}
@media(max-width:880px){.hero-grid,.course-layout{grid-template-columns:1fr}.toc{position:static;display:flex;flex-wrap:wrap;gap:3px 12px}.toc strong{width:100%}.toc a{display:inline-block}.grid{grid-template-columns:repeat(2,1fr)}.sequence{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.wrap{padding:0 18px}.header-inner{min-height:61px}.brand{font-size:14px}.nav{gap:11px}.nav a{font-size:13px}.hero{padding:43px 0}.grid,.split,.two-col,.lab-controls{grid-template-columns:1fr}.sequence{grid-template-columns:1fr 1fr}.section{padding:44px 0}.card{padding:17px}.chapter-hero{padding:35px 0 26px}}
@media(max-width:880px){.course-layout,.hero-grid{grid-template-columns:minmax(0,1fr)}.course-layout article,.toc,.hero-grid>div{min-width:0}}
@media(max-width:620px){.course-layout{gap:22px}.lesson{min-width:0}.formula{max-width:100%}.lesson h2{overflow-wrap:anywhere}}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.metric{background:#0b2836;border:1px solid var(--line);border-radius:7px;padding:12px}.metric span{display:block;color:var(--muted);font-size:13px}.metric strong{display:block;color:var(--cyan);font-size:21px;line-height:1.4;margin-top:3px}.preset-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.preset{border:1px solid var(--line);background:#0b2836;color:var(--muted);padding:6px 12px;border-radius:6px;font-size:14px}.preset:hover,.preset[aria-pressed=true]{border-color:var(--cyan);color:var(--cyan)}.ray-legend{display:flex;gap:17px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:8px}.ray-legend i{display:inline-block;width:18px;height:3px;vertical-align:middle;margin-right:6px}.ray-legend .incoming{background:var(--amber)}.ray-legend .outgoing{background:var(--cyan)}.ray-legend .virtual{background:#9aaab5}.mini-table{width:100%;border-collapse:collapse;margin:16px 0}.mini-table th,.mini-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.mini-table th{color:var(--cyan);white-space:nowrap}.mini-table td{color:var(--muted)}.route-next{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center}.route-next p{margin:0}.section-mark{font-weight:700;color:var(--amber);font-size:13px;letter-spacing:.06em}.formula.wrap-formula{white-space:normal}.formula.wrap-formula small{margin-top:4px}@media(max-width:620px){.metric-grid{grid-template-columns:1fr 1fr}.metric:last-child:nth-child(odd){grid-column:1/-1}.mini-table th{white-space:normal}}
.lab-range{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.lab-range input{grid-column:1/-1}.diagram-note{color:var(--muted);font-size:13px;margin:7px 0 0}.concept-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:19px 0}.concept-strip div{border-top:3px solid var(--cyan);background:var(--panel);padding:15px;border-radius:5px}.concept-strip strong{display:block;margin-bottom:5px}.concept-strip span{color:var(--muted);font-size:14px}.concept-strip div:nth-child(2){border-color:var(--amber)}.concept-strip div:nth-child(3){border-color:var(--green)}@media(max-width:620px){.concept-strip{grid-template-columns:1fr}.lab svg text{font-size:12px}}
@media(max-width:620px){.header-inner{gap:4px;flex-direction:column;align-items:stretch;padding-top:8px;padding-bottom:8px}.brand{font-size:13px;white-space:nowrap;flex:none}.brand-mark{margin-right:4px}.nav{gap:8px;width:100%;min-width:0;overflow-x:auto;justify-content:space-between}.nav a{font-size:12px;white-space:nowrap;flex:none}.lab-head{align-items:flex-start;flex-direction:column}}
.color-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.color-source-grid div{background:#0b2836;border:1px solid var(--line);border-radius:7px;padding:10px 13px}.color-source-grid strong{display:block}.color-source-grid span,.lab-intro{color:var(--muted)}@media(max-width:620px){.color-source-grid{grid-template-columns:1fr}}
@media(max-width:620px){.nav{flex-wrap:wrap;justify-content:flex-start;overflow:visible;gap:3px 12px}.lesson{scroll-margin-top:124px}}
@media(max-width:360px){.chapter-hero h1{font-size:28px}}
