:root{--paper:#f6f7f2;--ink:#203b30;--muted:#637068;--line:#d9dfd5;--lime:#d7fa85;--dark:#132c23;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:50px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:transparent}:focus-visible{outline:3px solid #588829;outline-offset:5px}img{max-width:100%;height:auto}p{margin:0 0 1.2em}h1,h2,h3{line-height:1.1;letter-spacing:-.045em;font-weight:580;margin:0 0 .65em}h1{font-size:clamp(48px,5.8vw,88px)}h2{font-size:clamp(34px,3.8vw,55px)}h3{font-size:25px;line-height:1.22}.wrap{max-width:1280px;margin:0 auto;padding-left:48px;padding-right:48px}header{height:96px;max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 48px;border-bottom:1px solid var(--line);gap:24px}.brand{font-size:24px;font-weight:700;letter-spacing:-1px;display:inline-flex;align-items:center;gap:12px}.mark{font:italic 700 27px var(--mono);letter-spacing:-6px;padding-right:6px}.brand small{font:10px var(--mono);padding:3px 6px;letter-spacing:0}header nav{display:flex;gap:28px;font-size:13px;font-weight:550}.header-actions{display:flex;align-items:center;gap:24px;font-size:12px}.header-actions>a:last-child{border-left:1px solid var(--line);padding-left:24px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center;padding-top:82px;padding-bottom:80px;min-height:690px}.eyebrow{font:11px/1.5 var(--mono);letter-spacing:1.4px;text-transform:uppercase;margin-bottom:24px;display:flex;align-items:center;gap:10px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#89ae47}.hero h1{font-size:clamp(50px,5.3vw,76px);line-height:1.04;letter-spacing:-4.5px}.hero h1 em{font-style:normal;position:relative;display:inline-block;z-index:0}.hero h1 em:after{content:'';position:absolute;left:0;right:-8px;bottom:6px;height:20px;background:var(--lime);z-index:-1}.lead{font-size:17px;line-height:1.7;color:var(--muted);max-width:510px}.hero .lead{max-width:460px}.actions{display:flex;gap:24px;align-items:center;margin-top:29px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:12px;font-weight:600;padding:13px 18px;border:1px solid var(--ink);border-radius:3px;white-space:normal}.button:hover{background:#e4ebdc;text-decoration:none}.button.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.button.primary:hover{background:#36543d}.text-link{font-size:13px;font-weight:600}.hero-small{font:9px var(--mono);letter-spacing:1.2px;color:var(--muted);margin-top:32px}.hero-art{padding:35px 0 0 18px;position:relative}.hero-art>.eyebrow{font-size:9px;letter-spacing:1.2px;margin:0 0 16px}.hero-art>.eyebrow span{margin:0 16px}.mini-window{border:1px solid #385647;border-radius:8px;overflow:hidden;background:var(--dark);box-shadow:18px 20px 0 #e5e9dc;transform:rotate(-3deg)}.window-bar{background:#243d31;color:#9fb6a4;display:flex;justify-content:space-between;padding:11px 13px;font:9px var(--mono);border-bottom:1px solid #3b5243}.window-bar>span:first-child{letter-spacing:3px;color:#80937f}.mini-window svg{display:block;width:100%;height:auto}.art-code{border-top:1px solid #3a5141;color:#a9b7ae;font:10px/1.7 var(--mono);padding:16px 12px}.art-code b{color:#e2f8b7;font-weight:400}.art-tag{font:11px var(--mono);text-align:right;transform:rotate(-3deg);margin-top:35px}.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.strip>.wrap{display:flex;justify-content:space-between;padding-top:19px;padding-bottom:19px;font:11px var(--mono)}.section{padding-top:100px;padding-bottom:100px}.split-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:100px;align-items:end;margin-bottom:38px}.split-heading h2{margin:0}.split-heading>p{margin-bottom:3px;max-width:440px;color:var(--muted);font-size:15px}.lab{background:var(--dark);border:1px solid #355443;border-radius:7px;color:#d5e2d5;overflow:hidden}.lab-title{display:flex;justify-content:space-between;padding:18px 24px;border-bottom:1px solid #355443;font:9px var(--mono);letter-spacing:1px}.lab-body{display:grid;grid-template-columns:1fr 210px}.scene{position:relative;min-width:0;background:radial-gradient(ellipse at center,#244235 0%,var(--dark) 72%)}#life{width:100%;display:block;aspect-ratio:900/580}.scene>span{position:absolute;bottom:25px;left:25px;color:#8fa695;font:9px var(--mono);letter-spacing:1.2px}.telemetry{border-left:1px solid #355443;margin:25px 0;padding:0 25px;display:flex;flex-direction:column;align-items:stretch;justify-content:center}.telemetry>.eyebrow{color:#9caf9e;font-size:9px;margin-bottom:20px}.telemetry>span{font-size:10px;color:#a4b7a8}.telemetry strong{font:42px/1.3 var(--mono);color:var(--lime);margin-bottom:15px}.telemetry label{font-size:10px;color:#a9b8a9;margin:16px 0 7px}.telemetry select{background:#254133;color:#e4eedc;border:1px solid #4d6553;padding:8px;border-radius:3px;font:11px var(--mono);width:100%}.telemetry button{margin-top:20px;border:1px solid #4d6553;font:10px var(--mono);padding:8px;color:#e0eadb}.telemetry button[aria-pressed=true]{background:#3c5c3e}.telemetry input{width:100%;accent-color:var(--lime)}.lab-controls{border-top:1px solid #355443;display:flex;gap:12px;align-items:center;padding:18px 24px}.lab-controls .button{color:#dbe8d8;border-color:#4d6553;padding:9px 18px}.lab-controls .primary{background:var(--lime);color:var(--dark)}.lab-controls .button:hover{background:#436146}.lab-controls .primary:hover{background:#e7ffb3}.lab-controls>span{margin-left:auto;font:9px var(--mono);color:#9cb29e}.caption{font-size:11px;color:var(--muted);margin:18px 0}details{font-size:12px}summary{cursor:pointer;padding:12px 0}.code{margin:24px 0;background:#e9ede4;border:1px solid #d5dccf;border-radius:5px;overflow:hidden;color:var(--ink)}.codebar{display:flex;align-items:center;justify-content:space-between;padding:9px 15px;border-bottom:1px solid #d5dccf;font:9px var(--mono);letter-spacing:1px}.copy{font:10px var(--mono);border:0;padding:4px 8px}pre{padding:20px;margin:0;overflow-x:auto;font:12px/1.85 var(--mono);tab-size:4}code{font-family:var(--mono)}.why{background:#e9ede3}.principles{display:grid;grid-template-columns:repeat(4,1fr);margin-top:55px;gap:30px}.principles article{border-top:1px solid #b9c6b4;padding-top:20px}.principles article>span{font:11px var(--mono);color:#738265;display:block;margin-bottom:35px}.principles h3{font-size:22px;letter-spacing:-.6px;min-height:81px}.principles p{font-size:13px;color:#5d6c5d;line-height:1.8}.fine-print{font-size:11px;color:#687966;max-width:920px;border-top:1px solid #cbd5c5;margin:30px 0 0;padding-top:20px}.walkthrough{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.walkthrough h2{font-size:42px}.walkthrough figure{margin:0}.walkthrough .lead{font-size:15px}.image-toggle{display:block;border:0;padding:0;position:relative;line-height:0;border-radius:7px;background:var(--dark);overflow:hidden}.image-toggle img{display:block;width:100%}.image-toggle>span{position:absolute;left:20px;bottom:20px;background:var(--lime);color:var(--ink);padding:10px 15px;font:11px/1.5 var(--mono);border-radius:3px}figcaption{font:10px var(--mono);color:var(--muted);margin-top:15px}.book-promo{background:var(--ink);color:var(--paper)}.book-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:110px;align-items:center}.book-promo .eyebrow{color:#c9e49f}.book-promo .lead,.book-promo p{color:#c3cfbd}.book-promo p:not(.eyebrow):not(.lead){font-size:12px}.book-promo .primary{background:var(--lime);color:var(--ink);margin:8px 0 25px}.book-object{max-width:330px;aspect-ratio:.72;background:var(--lime);color:var(--ink);padding:35px 30px;border-left:12px solid #b2d46b;box-shadow:8px 6px 0 #a8bca1,16px 14px 0 #142b20;transform:rotate(-8deg);margin:20px auto}.book-object>span{font-size:38px;line-height:1.03;letter-spacing:-2px;font-weight:650;display:block}.book-object>div{font-size:90px;line-height:.8;letter-spacing:30px;margin:48px 0}.book-object small{font:8px var(--mono);letter-spacing:1px}.chapter-preview{list-style:none;margin:0;padding:0}.chapter-preview a{display:flex;gap:20px;border-top:1px solid #4b6350;padding:10px 0;font-size:12px;align-items:center}.chapter-preview span{font:10px var(--mono);color:#a9c58e}.chapter-preview b{margin-left:auto}.reference-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 30px;margin-top:40px}.reference-grid>a{display:flex;align-items:center;gap:15px;font-size:13px;border-top:1px solid var(--line);padding:22px 0}.reference-grid span{font:10px var(--mono);color:#859379}.reference-grid b{margin-left:auto}footer{max-width:1280px;padding:35px 48px 45px;border-top:1px solid var(--line);margin:auto;display:flex;justify-content:space-between;gap:40px}footer p{font-size:12px;color:var(--muted);margin-top:7px}footer>div:last-child{max-width:380px;text-align:right;font-size:12px}footer small{display:block;font-size:10px;color:var(--muted);margin-top:16px}.book-layout{display:grid;grid-template-columns:255px minmax(0,1fr);gap:70px;padding-top:48px;padding-bottom:90px;align-items:start}.book-sidebar{position:sticky;top:28px;max-height:calc(100vh - 50px);overflow:auto;padding:0 10px 20px 0}.book-name{font-size:21px;font-weight:600}.book-sidebar input{margin:25px 0;width:100%;padding:10px;border:1px solid var(--line);border-radius:4px;background:#fff;font-size:12px}.book-sidebar .eyebrow{font-size:9px;margin:20px 0 12px}.chapter-link{display:flex;font-size:12px;align-items:center;gap:12px;padding:11px 8px;border-radius:3px}.chapter-link>span{font:9px var(--mono);color:var(--muted)}.chapter-link.active{background:#e6eeda;font-weight:650}.read-indicator{font-size:10px;margin-left:auto;color:#557939}.progress-label{display:flex;justify-content:space-between;font:9px var(--mono);margin-top:30px}progress{width:100%;height:5px;accent-color:#7eaa43}.lesson{min-width:0;max-width:810px}.lesson h1{font-size:55px;line-height:1.1}.lesson-intro{font-size:19px;color:var(--muted)}.lesson-toc{display:flex;flex-wrap:wrap;gap:8px 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin:32px 0 40px;font-size:11px}.lesson section>h2{font-size:28px;letter-spacing:-.7px;margin-top:42px}.lesson section>p{font-size:15px;line-height:1.95;color:#485b4f}.lesson .code{margin-bottom:35px}.lesson pre{font-size:11px}.mission{background:#e7efd9;padding:24px;border-left:3px solid #87ae46;margin:40px 0}.mission .eyebrow{margin-bottom:14px}.mission p:last-child{font-size:14px;margin:0}.quiz{border:1px solid var(--line);border-radius:5px;padding:25px;margin:35px 0}.quiz>h2{font-size:23px!important;margin-top:0!important}.quiz>.eyebrow{font-size:10px}.quiz>div{display:flex;gap:10px;flex-direction:column}.quiz button{text-align:left;padding:13px 15px;font-size:13px;border-radius:3px}.quiz button:hover{background:#e7ecdf}.quiz button[data-result=correct]{background:#d7edbd;border-color:#7fa34d}.quiz button[data-result=wrong]{background:#f5e2d3;border-color:#b18563}.quiz-result{font-size:13px;margin:15px 0 0;min-height:22px}.lesson-bottom{display:flex;gap:24px;align-items:center;justify-content:space-between;font-size:11px}.page-turn{display:flex;justify-content:space-between;gap:30px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:11px}.page-turn a:last-child{text-align:right}.page-turn strong{display:block;font-size:14px;margin-top:6px}.skip{position:fixed;z-index:10;top:-100px;left:20px;background:var(--lime);padding:12px}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@media(max-width:1050px){.wrap{padding-left:30px;padding-right:30px}header{padding:0 30px}header nav{gap:16px}.brand small{display:none}.hero{gap:15px}.hero h1{font-size:57px;letter-spacing:-3px}.hero-art{padding-left:0}.actions{flex-direction:column;align-items:flex-start;gap:18px}.principles{grid-template-columns:1fr 1fr}.principles h3{min-height:0}.split-heading{gap:40px}.walkthrough{gap:35px}.walkthrough h2{font-size:35px}.book-grid{gap:60px}.book-layout{gap:35px;grid-template-columns:225px minmax(0,1fr)}.lesson h1{font-size:44px}.lab-body{grid-template-columns:1fr 170px}.telemetry{padding:0 18px}.telemetry strong{font-size:32px}.telemetry>.eyebrow{margin-bottom:10px}}@media(max-width:760px){header{height:auto;min-height:80px;flex-wrap:wrap;padding:20px 22px;gap:18px}.brand{font-size:22px}header nav{order:3;width:100%;justify-content:space-between;font-size:11px;gap:8px}.header-actions{gap:15px}.header-actions>a:last-child{padding-left:15px}.wrap{padding-left:22px;padding-right:22px}.hero{grid-template-columns:1fr;padding-top:48px;padding-bottom:45px;gap:45px}.hero h1{font-size:clamp(46px,9.3vw,69px);letter-spacing:-2.5px}.hero .lead{font-size:16px;max-width:100%}.hero-art{max-width:490px;width:95%;margin:0 auto;padding-top:0}.actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:20px}.hero-small{font-size:8px}.strip>.wrap{flex-wrap:wrap;justify-content:flex-start;gap:14px 24px;font-size:9px}.section{padding-top:60px;padding-bottom:60px}.split-heading{grid-template-columns:1fr;gap:22px}.split-heading p{font-size:14px}.eyebrow{font-size:9px}.lab-title{padding:14px;font-size:8px}.lab-title>span:last-child{display:none}.lab-body{grid-template-columns:1fr}.telemetry{border-left:0;border-top:1px solid #355443;display:grid;grid-template-columns:1fr 1fr;gap:5px 20px;padding:18px;margin:0;align-items:center}.telemetry>.eyebrow{grid-column:1/-1;margin-bottom:10px}.telemetry>span{grid-column:1}.telemetry strong{grid-column:2;font-size:23px;margin:0;text-align:right}.telemetry>span:nth-of-type(1),.telemetry>strong:nth-of-type(1){grid-row:2}.telemetry>span:nth-of-type(2),.telemetry>strong:nth-of-type(2){grid-row:3}.telemetry select,.telemetry input{margin-top:10px}.telemetry button{grid-column:1/-1;margin-top:12px}.scene>span{font-size:7px;bottom:14px;left:15px}.lab-controls{padding:14px;gap:7px;flex-wrap:wrap}.lab-controls .button{font-size:10px;padding:9px 11px}.lab-controls>span{display:none}.principles{gap:25px}.principles h3{font-size:20px}.principles p{font-size:12px}.principles article>span{margin-bottom:20px}.walkthrough{grid-template-columns:1fr;gap:30px}.walkthrough h2{font-size:34px}.book-grid{grid-template-columns:1fr;gap:45px}.book-object{max-width:240px;padding:26px 22px;border-left-width:9px}.book-object>span{font-size:29px}.book-object>div{font-size:65px;margin:33px 0}.book-object small{font-size:6px}.reference-grid{grid-template-columns:1fr 1fr;gap:0 20px}.reference-grid>a{font-size:11px;gap:9px}footer{padding:28px 22px;flex-direction:column;gap:10px}footer>div:last-child{text-align:left}.book-layout{grid-template-columns:1fr;padding-top:28px;gap:30px}.book-sidebar{position:static;max-height:none;padding-bottom:25px;border-bottom:1px solid var(--line)}.book-sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px}.book-sidebar input{margin:15px 0 0}.book-sidebar .chapter-link{font-size:11px;gap:8px}.book-sidebar .eyebrow{margin-top:16px}.book-name{font-size:19px}.progress-label{margin-top:18px}.lesson h1{font-size:42px}.lesson-intro{font-size:17px}.lesson pre{font-size:10px;padding:16px}.lesson section>p{font-size:14px}.lesson-bottom{align-items:flex-start;flex-direction:column}.lesson-toc{font-size:10px}.lesson .quiz{padding:20px}.quiz>h2{font-size:21px!important}.caption,.fine-print{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,.book-sidebar,footer,.quiz,.lesson-bottom,.page-turn{display:none}.book-layout{display:block}.lesson{max-width:none}.code{break-inside:avoid}body{background:white}}

.portability{border-bottom:1px solid var(--line)}.portability-notes{display:grid;grid-template-columns:1fr 1fr;gap:48px}.portability-notes article{border-top:1px solid var(--line);padding-top:22px}.portability-notes h3{font-size:21px;letter-spacing:-.5px}.portability-notes p{font-size:13px;color:var(--muted);line-height:1.8}@media(max-width:760px){.portability-notes{grid-template-columns:1fr;gap:22px}}
