:root{--ink:#15231e;--muted:#63716b;--dark:#10231c;--dark2:#173128;--green:#2d6550;--accent:#d7ef89;--orange:#ef863f;--paper:#f6f6f1;--line:#dce2dd;--white:#fff;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;line-height:1.67;background:#fff}a{color:inherit;text-underline-offset:.18em}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}.narrow{max-width:820px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:15px;top:15px;z-index:99;background:#fff;padding:10px}.topbar{position:sticky;top:0;z-index:50;background:rgba(16,35,28,.97);color:#fff;border-bottom:1px solid #2b4038}.topbar .wrap{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:11px;align-items:center;text-decoration:none}.brand .prompt{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;background:var(--accent);color:var(--dark);font:900 1.3rem var(--mono)}.brand strong,.brand small{display:block}.brand small{font-size:.73rem;color:#9eafa7}.topbar nav{display:flex;align-items:center;gap:26px}.topbar nav a{text-decoration:none;font-weight:720;font-size:.92rem}.topbar nav a:hover{color:var(--accent)}.training-link{border:1px solid #4b6259;border-radius:8px;padding:8px 12px}.menu-button{display:none;background:transparent;color:#fff;border:1px solid #40574d;border-radius:8px;padding:8px 11px}.hero{padding:88px 0;background:linear-gradient(145deg,#f8f8f4,#eef3e9)}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:70px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:850;color:var(--green);margin:0 0 14px}.hero h1,.page-hero h1,.lesson h1{font-size:clamp(3rem,6vw,5.3rem);line-height:.98;letter-spacing:-.055em;margin:.05em 0 .35em}.hero h1 span{color:var(--green)}.lead{font-size:1.22rem;color:#4b5b54;max-width:780px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;padding:12px 18px;border-radius:8px;background:var(--dark);border:1px solid var(--dark);color:#fff;text-decoration:none;font-weight:780}.button.ghost{background:transparent;color:var(--dark);border-color:#9ea9a3}.button.light{background:#fff;color:var(--dark);border-color:#fff}.hero-terminal{border-radius:15px;overflow:hidden;background:#0b1712;color:#e6eee9;box-shadow:0 22px 60px rgba(12,30,23,.15)}.term-head{height:46px;background:#162820;display:flex;align-items:center;gap:7px;padding:0 15px}.term-head span{width:9px;height:9px;border-radius:50%;background:#66776f}.term-head b{font:12px var(--mono);color:#9aaca3;margin-left:8px}.hero-terminal pre{margin:0;padding:28px;font:15px/1.8 var(--mono);white-space:pre-wrap;min-height:300px}.hero-terminal i{color:var(--accent)}.section{padding:84px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px}.section h2,.training h2{font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.04em;line-height:1.06;margin:.1em 0 .5em}.large{font-size:1.17rem;color:#46564f}.dark{background:var(--dark);color:#f1f5f2}.dark .eyebrow{color:var(--accent)}.dark p{color:#b9c6c0}.curriculum-preview{display:grid;grid-template-columns:repeat(3,1fr);margin-top:42px;border-top:1px solid #355047;border-left:1px solid #355047}.curriculum-preview article{padding:28px;border-right:1px solid #355047;border-bottom:1px solid #355047;min-height:240px}.curriculum-preview b{color:var(--orange)}.curriculum-preview h3{font-size:1.25rem}.curriculum-preview a{color:var(--accent);font-weight:750}.code-showcase{display:grid;grid-template-columns:1.2fr .8fr;background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:46px}.code-showcase pre{margin:0;background:#10231c;color:#edf3ef;padding:34px;font:14px/1.75 var(--mono);overflow:auto}.code-showcase>div{padding:34px}.code-showcase span{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--orange);font-weight:850}.text-link{font-weight:800;color:var(--green)}.training{background:var(--green);color:#fff;padding:60px 0}.training .wrap{display:flex;justify-content:space-between;align-items:center;gap:40px}.training .eyebrow{color:var(--accent)}.training p{color:#e1ebe6}.page-hero{padding:70px 0 55px;background:var(--paper);border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(2.7rem,5vw,4.5rem)}.course-toc{max-width:980px}.toc-section{display:grid;grid-template-columns:90px 1fr;gap:30px;padding:48px 0;border-bottom:1px solid var(--line)}.toc-num{font:800 1.4rem var(--mono);color:var(--orange)}.toc-section h2{margin:0}.toc-section ol{list-style:none;padding:0;margin:25px 0 0;border-top:1px solid var(--line)}.toc-section li a{display:flex;justify-content:space-between;gap:20px;padding:14px 3px;border-bottom:1px solid var(--line);text-decoration:none}.toc-section li a:hover span:first-child{color:var(--green)}.toc-section li a span:last-child{color:var(--muted);font-size:.86rem}.article-layout{display:grid;grid-template-columns:250px minmax(0,760px);gap:70px;justify-content:center;padding-top:60px;padding-bottom:90px}.sidebar{align-self:start;position:sticky;top:100px;font-size:.88rem}.sidebar .back{display:block;margin-bottom:25px;color:var(--green);font-weight:800}.side-title{text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:850;color:var(--muted)}.sidebar nav{display:flex;flex-direction:column;border-left:1px solid var(--line)}.sidebar nav a{padding:9px 15px;text-decoration:none}.sidebar nav a.active{border-left:3px solid var(--green);margin-left:-2px;color:var(--green);font-weight:800}.lesson header{padding-bottom:35px;border-bottom:1px solid var(--line)}.lesson h1{font-size:clamp(2.6rem,5vw,4.3rem)}.lesson>section{padding:35px 0 20px}.lesson>section h2{font-size:1.8rem;letter-spacing:-.02em}.lesson>section p{font-size:1.06rem;color:#354740}.codeblock{background:#0f2019;border-radius:12px;overflow:hidden;margin:25px 0;color:#eef4f0}.codeblock>div{height:42px;background:#183128;display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#9eb1a7;font:12px var(--mono)}.copy-code{background:transparent;color:#bdcec5;border:1px solid #40564c;border-radius:6px;padding:4px 8px;cursor:pointer}.codeblock pre{margin:0;padding:23px;overflow:auto}.codeblock code{font:14px/1.7 var(--mono)}.note{border-left:4px solid var(--orange);background:#fff7ef;padding:18px 20px;margin:24px 0}.note strong{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.note p{margin-bottom:0}.lesson-nav{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:50px;padding-top:28px;border-top:1px solid var(--line)}.lesson-nav a{display:flex;flex-direction:column;padding:15px;border:1px solid var(--line);border-radius:9px;text-decoration:none}.lesson-nav a.next{text-align:right}.lesson-nav small{color:var(--muted);margin-bottom:3px}.course-cta{margin-top:55px;background:var(--paper);border-radius:14px;padding:30px}.course-cta h2{font-size:2rem}.prose{font-size:1.05rem}.footer{background:#09140f;color:#c5d0ca;padding:60px 0 20px}.footer a{color:#fff}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:45px}.footer h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#82958b}.footnote{border-top:1px solid #26382f;margin-top:40px;padding-top:20px;color:#7e9187;font-size:.82rem}@media(max-width:900px){.hero-grid,.split,.code-showcase,.article-layout{grid-template-columns:1fr}.curriculum-preview{grid-template-columns:1fr 1fr}.sidebar{position:static;border-bottom:1px solid var(--line);padding-bottom:25px}.sidebar nav{display:none}.topbar nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--dark);padding:20px;flex-direction:column;align-items:stretch}.topbar nav.open{display:flex}.menu-button{display:block}.footer-grid{grid-template-columns:1fr 1fr}.training .wrap{align-items:flex-start;flex-direction:column}}@media(max-width:620px){.wrap{width:min(100% - 26px,1180px)}.hero,.section{padding:60px 0}.hero h1{font-size:3rem}.curriculum-preview,.footer-grid{grid-template-columns:1fr}.toc-section{grid-template-columns:1fr;gap:8px}.lesson-nav{grid-template-columns:1fr}.lesson-nav a.next{text-align:left}.hero-terminal pre{font-size:12.5px}.training{padding:50px 0}}

/* v4 tutorial enhancements */
:root{--ink:#173247;--muted:#5d7180;--dark:#0a1d2d;--dark2:#102d43;--green:#1d9364;--accent:#9fbd38;--orange:#e78a28;--paper:#f4f8fa;--line:#dce6ed}.topbar{background:rgba(10,29,45,.98);border-color:#254052}.brand .prompt{background:var(--accent);color:var(--dark)}.hero{background:linear-gradient(145deg,#f8fbf8,#edf5f1)}.hero-stats{display:flex;gap:24px;flex-wrap:wrap;margin-top:28px;color:var(--muted);font-size:.85rem}.hero-stats b{font:800 1.2rem var(--mono);color:var(--green)}.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}.path-grid a{padding:28px;border:1px solid var(--line);border-radius:14px;text-decoration:none;transition:.18s transform,.18s box-shadow}.path-grid a:hover{transform:translateY(-3px);box-shadow:0 18px 50px rgba(30,62,84,.12)}.path-grid span{color:var(--orange);font:800 .8rem var(--mono)}.path-grid h3{font-size:1.4rem;margin:.55em 0}.path-grid b{color:var(--green)}.curriculum-preview{grid-template-columns:repeat(4,1fr)}.curriculum-preview article{display:flex;flex-direction:column}.curriculum-preview article>span{margin-top:auto;color:#8fa7b4;font-size:.8rem}.progress-box{max-width:650px;margin-top:28px}.progress-box>div:first-child{display:flex;justify-content:space-between;font-size:.86rem}.progress-track{height:8px;background:#dbe6eb;border-radius:99px;overflow:hidden;margin-top:8px}.progress-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--accent));transition:width .25s}.toc-section li a span:first-child{display:flex;flex-direction:column}.toc-section li small{color:var(--muted)}.toc-section .status i{display:none;color:var(--green);font-style:normal}.toc-section li.done .status i{display:inline}.lesson-meta{display:flex;gap:8px;margin-bottom:12px}.lesson-meta span{font-size:.75rem;background:#e8f0f4;border-radius:99px;padding:4px 9px;color:#456171}.done-button{border:1px solid #a7bac5;background:#fff;border-radius:8px;padding:9px 12px;color:var(--ink);font-weight:700;cursor:pointer}.done-button.done{background:#e9f6ef;border-color:#9bc9b1;color:#146b48}.exercise,.knowledge-check{border-top:1px solid var(--line);margin-top:18px}.exercise details{margin-top:18px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:0 18px}.exercise summary{cursor:pointer;font-weight:800;padding:15px 0;color:#146b48}.quiz-options{display:grid;gap:9px;margin-top:18px}.quiz-options button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:9px;padding:13px 15px;font:inherit;color:var(--ink);cursor:pointer}.quiz-options button.correct{background:#e7f6ed;border-color:#77bd98}.quiz-options button.wrong{background:#fff0ec;border-color:#e7a48f}.quiz-feedback{background:var(--paper);border-radius:9px;padding:14px 16px!important}.site-search label{display:block;font-weight:800;margin-bottom:8px}.site-search>div{display:flex;gap:8px;max-width:700px}.site-search input{flex:1;border:1px solid #a9bbc5;border-radius:8px;padding:12px 14px;font:inherit}.search-results{display:grid;gap:16px}.search-results a{display:block;border:1px solid var(--line);border-radius:12px;padding:22px;text-decoration:none}.search-results a:hover{border-color:#91b9a6}.search-results span{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--green);font-weight:800}.search-results h2{font-size:1.5rem;margin:.25em 0}@media(max-width:1000px){.curriculum-preview{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.path-grid{grid-template-columns:1fr}}@media(max-width:620px){.curriculum-preview{grid-template-columns:1fr}.site-search>div{flex-direction:column}}

/* v4.1 privacy/progress controls */
.progress-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-top:14px}.progress-actions p{margin:0;max-width:600px;font-size:.86rem;color:var(--muted)}.clear-progress{white-space:nowrap;border:1px solid #a9bbc5;background:#fff;border-radius:8px;padding:8px 11px;color:var(--ink);font-weight:700;cursor:pointer}.clear-progress:disabled{opacity:.45;cursor:not-allowed}.storage-note{margin:.7rem 0 0!important;font-size:.82rem!important;color:var(--muted)!important;max-width:650px}.prose code{font-family:var(--mono);background:#edf3f6;padding:.1em .35em;border-radius:4px}@media(max-width:620px){.progress-actions{flex-direction:column}.clear-progress{white-space:normal}}
