@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap");:root{--ink:#18212a;--muted:#60707b;--paper:#f4f6f3;--panel:#ffffff;--line:#d5dedb;--teal:#0d6b69;--orange:#df6b3d;--pale:#e5f0ed;--shadow:0 18px 42px rgba(27,54,56,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Space Grotesk",Arial,sans-serif;font-size:17px;line-height:1.55}a{color:inherit}.masthead,main,footer{width:min(1220px,100%);margin:auto;padding-left:34px;padding-right:34px}.masthead{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:24px;padding-bottom:22px;border-bottom:1px solid var(--line)}.wordmark,nav a,.eyebrow,.course-status,.course-number,.hero-meta,footer,.backlink,.chapter-no,.arrow{font-family:"DM Mono",monospace}.wordmark{color:var(--teal);font-size:13px;letter-spacing:.1em;text-decoration:none}nav{display:flex;gap:22px}nav a{font-size:12px;color:var(--muted);text-decoration:none}nav a:hover,.backlink:hover,.course-link:hover{color:var(--orange)}.eyebrow{margin:0;color:var(--teal);font-size:11px;letter-spacing:.13em}.hero{padding:92px 0 84px;max-width:930px}h1,h2,p{margin-top:0}h1{font-size:clamp(58px,10vw,132px);line-height:.88;letter-spacing:-.08em;font-weight:600;margin:17px 0 34px}h1 em{color:var(--orange);font-style:normal}h2{letter-spacing:-.055em;line-height:1.05;font-size:32px}.lede{max-width:720px;font-size:24px;line-height:1.35;color:#3e4b52}.hero-meta{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;margin-top:44px;color:var(--muted);font-size:11px;letter-spacing:.08em}.hero-meta strong{color:var(--ink);font-weight:500;margin-right:18px}.route-intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:28px 0 45px;border-top:1px solid var(--line)}.route-intro h2{max-width:360px;margin:10px 0}.route-intro p:last-child{color:var(--muted);max-width:530px}.course-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:16px}.course-card{background:var(--panel);border:1px solid var(--line);padding:25px 26px 23px;box-shadow:var(--shadow)}.course-card.is-start{border-top:4px solid var(--orange)}.course-top{display:flex;justify-content:space-between;align-items:center}.course-number{color:var(--orange);font-size:14px}.course-status{color:var(--muted);font-size:10px;letter-spacing:.12em}.course-card h2{margin:22px 0 7px;font-size:31px}.course-card h2 a{text-decoration:none}.course-card h2 a:hover{color:var(--teal)}.course-tagline{color:var(--muted);min-height:52px;margin-bottom:18px}.course-rule{border-top:1px solid var(--line);margin-bottom:4px}.chapter-list{list-style:none;padding:0;margin:0}.chapter-list li{border-bottom:1px solid #e9eeec}.chapter-list a{display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:baseline;padding:8px 0;text-decoration:none;font-size:14px}.chapter-list a:hover{color:var(--teal)}.chapter-list span{color:var(--orange);font-family:"DM Mono",monospace;font-size:11px}.course-link{display:inline-block;color:var(--teal);text-decoration:none;font-family:"DM Mono",monospace;font-size:12px;margin-top:18px}.principles{margin:92px 0 78px;padding:27px 0 0;border-top:1px solid var(--line)}.principle-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:30px;margin-top:26px}.principle-grid strong{color:var(--orange);font-family:"DM Mono",monospace;font-size:12px}.principle-grid p{color:var(--muted);font-size:15px}.backlink{display:inline-block;margin:54px 0 32px;color:var(--teal);font-size:12px;text-decoration:none}.course-header{max-width:850px;padding-bottom:62px}.course-header h1,.chapter-header h1{font-size:clamp(54px,8vw,96px);margin:15px 0 24px}.course-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:38px}.course-summary div{background:var(--pale);padding:18px 20px}.course-summary span{display:block;color:var(--teal);font-family:"DM Mono",monospace;font-size:10px;letter-spacing:.1em;margin-bottom:8px}.course-summary strong{font-size:15px;font-weight:500}.chapter-index{max-width:900px;padding-bottom:82px}.section-heading{display:flex;justify-content:space-between;align-items:end;border-top:1px solid var(--line);padding-top:25px;margin-bottom:13px}.section-heading h2{margin:0}.chapter-row{display:grid;grid-template-columns:74px 1fr 30px;gap:16px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line);text-decoration:none}.chapter-row:hover{color:var(--teal)}.chapter-no{color:var(--orange);font-size:12px}.chapter-row strong,.chapter-row small{display:block}.chapter-row strong{font-size:18px}.chapter-row small{color:var(--muted);font-size:14px;margin-top:3px}.arrow{color:var(--teal)}.chapter-page{max-width:860px}.chapter-header{padding:24px 0 52px}.chapter-focus{color:var(--muted);font-size:22px;max-width:680px}.chapter-content{max-width:700px;padding-bottom:80px}.chapter-content h2{font-size:27px;margin:48px 0 13px}.chapter-content p,.chapter-content li{color:#3e4b52}.chapter-content strong{color:var(--ink)}.chapter-content code{background:var(--pale);color:var(--teal);padding:2px 5px}.chapter-content blockquote{border-left:3px solid var(--orange);margin:25px 0;padding:7px 20px;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:22px;padding-bottom:36px;color:var(--muted);font-size:10px;letter-spacing:.07em}@media (max-width: 760px){.masthead,main,footer{padding-left:20px;padding-right:20px}.masthead{display:block}.masthead nav{margin-top:14px}.hero{padding-top:62px}.route-intro,.course-grid,.principle-grid,.course-summary{grid-template-columns:1fr;gap:22px}.route-intro{gap:10px}.course-card{padding:22px 19px}.hero-meta{display:block}.hero-meta span,.hero-meta strong{display:inline-block;margin:5px 8px 5px 0}.chapter-row{grid-template-columns:48px 1fr 20px}.chapter-row strong{font-size:16px}footer{display:block}footer span{display:block;margin:7px 0}}.course-figure{margin:0 0 42px;border:1px solid var(--line);background:linear-gradient(135deg, #f7fbf8, #edf5f2);overflow:hidden}.course-figure img{display:block;width:100%;height:auto}.course-figure figcaption{padding:12px 16px 14px;color:var(--muted);font-size:12px}.course-figure--index{max-width:960px;margin-bottom:58px}.equation-card{max-width:700px;margin:0 0 52px;padding:25px 28px 24px;border:1px solid var(--line);border-left:4px solid var(--orange);background:var(--pale)}.equation-card h2{margin:8px 0 20px;font-size:24px}.equation-display{min-height:74px;display:flex;align-items:center;justify-content:center;padding:20px 10px;overflow-x:auto;background:#fffdf8;border:1px solid rgba(24,33,42,.1);color:var(--ink)}.equation-display math{font-size:clamp(24px,4vw,39px)}.equation-plain{margin:18px 0 0;color:var(--ink) !important;font-family:"DM Mono",monospace;font-size:12px;line-height:1.6}.equation-plain span{color:var(--teal);text-transform:uppercase;letter-spacing:.08em;margin-right:8px}.equation-note{margin:12px 0 0;color:var(--muted) !important;font-size:14px}@media (max-width: 760px){.equation-card{padding:20px 17px}.equation-display{justify-content:flex-start}.course-figure{margin-bottom:30px}}.physics-lab{display:grid;grid-template-columns:minmax(0, 1fr) minmax(320px, 1.15fr);gap:24px;align-items:start;max-width:860px;margin:0 0 52px;padding:24px;border:1px solid var(--line);background:#edf5f2}.physics-lab h2{margin:8px 0 12px;font-size:25px}.lab-copy>p:not(.eyebrow){color:#3e4b52;font-size:15px}.lab-controls{display:grid;gap:14px;margin-top:22px}.lab-controls label{display:grid;grid-template-columns:1fr;gap:5px;color:var(--ink);font-family:"DM Mono",monospace;font-size:11px}.lab-controls input{width:100%;accent-color:var(--orange)}.lab-controls output{color:var(--teal)}.lab-visual{min-width:0}.lab-visual canvas{display:block;width:100%;height:auto;border:1px solid rgba(24,33,42,.12);background:#fffdf8}.lab-readout{min-height:42px;margin:10px 0 0;color:var(--teal) !important;font-family:"DM Mono",monospace;font-size:11px !important;line-height:1.45}@media (max-width: 760px){.physics-lab{grid-template-columns:1fr;padding:18px;margin-bottom:36px}.physics-lab h2{font-size:22px}}