:root{--bg:#f5f2ea;--paper:#fffdf8;--ink:#18201d;--muted:#69716c;--line:#dcd9d0;--green:#126b4b;--lime:#c9f36a;--code:#12211c;--orange:#fa8353;--shadow:0 18px 55px rgba(29,42,36,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,system-ui,sans-serif;line-height:1.65}.progress{position:fixed;z-index:100;left:0;top:0;height:3px;background:var(--lime);width:0}.topbar{height:76px;position:fixed;z-index:50;top:0;left:0;right:0;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 91%,transparent);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-size:12px;line-height:1.15;letter-spacing:.03em}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--green);color:white;border-radius:9px;font:bold 14px DM Mono;transform:rotate(-3deg)}.brand-mark span{color:var(--lime)}.top-actions{display:flex;gap:10px}.search{width:340px;height:40px;background:var(--paper);border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;padding:0 10px;gap:8px}.search input{border:0;outline:0;background:none;width:100%;color:var(--ink);font:13px Manrope}.search kbd{font:10px DM Mono;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:2px 5px}.icon-button,.menu-button{width:40px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);font-size:18px;cursor:pointer}.menu-button{display:none}.sidebar{position:fixed;z-index:40;left:0;top:76px;bottom:0;width:255px;padding:34px 22px;border-right:1px solid var(--line);background:var(--bg);overflow:auto}.side-label{font:bold 10px DM Mono;color:var(--muted);letter-spacing:.15em;margin:0 12px 18px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{display:flex;gap:13px;align-items:center;text-decoration:none;color:var(--muted);font-size:13px;padding:11px 12px;border-radius:8px}.sidebar nav a i{font:normal 10px DM Mono}.sidebar nav a:hover,.sidebar nav a.active{color:var(--green);background:var(--paper)}.sidebar nav a.active{box-shadow:inset 3px 0 var(--green)}.side-card{margin-top:32px;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:15px;font-size:11px;color:var(--muted)}.side-card strong{display:block;color:var(--ink);font-size:15px;margin:2px 0 9px}.side-card>div{height:4px;background:var(--line);border-radius:9px;margin-bottom:8px}.side-card>div i{display:block;width:0;height:100%;background:var(--green);border-radius:9px;transition:.3s}main{margin-left:255px;padding-top:76px}.hero{min-height:610px;padding:95px max(6vw,55px) 70px;display:grid;grid-template-columns:1.05fr .95fr;gap:7vw;align-items:center;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;width:420px;height:420px;border:1px solid var(--line);border-radius:50%;right:-180px;top:-120px;box-shadow:0 0 0 75px transparent,0 0 0 76px var(--line)}.eyebrow,.chapter-intro>span,.topic-heading small,.finish-card small{font:bold 10px DM Mono;letter-spacing:.16em;color:var(--green)}.eyebrow span{display:inline-block;width:28px;height:2px;background:var(--green);vertical-align:middle;margin-right:8px}.hero h1{font-size:clamp(48px,5.5vw,82px);line-height:.98;letter-spacing:-.055em;margin:22px 0 27px}.hero h1 em{font-style:normal;color:var(--green);position:relative}.hero h1 em:after{content:"";position:absolute;height:8px;left:0;right:0;bottom:2px;background:var(--lime);z-index:-1;transform:rotate(-2deg)}.hero-copy>p{color:var(--muted);max-width:590px;font-size:16px}.hero-actions{display:flex;align-items:center;gap:24px;margin-top:34px}.primary{display:inline-flex;align-items:center;gap:30px;background:var(--green);color:white;text-decoration:none;padding:13px 17px 13px 22px;border-radius:9px;font-size:13px;font-weight:700;box-shadow:0 8px 22px rgba(18,107,75,.2)}.primary span{background:var(--lime);color:var(--green);width:28px;height:28px;border-radius:6px;display:grid;place-items:center;font-size:18px}.read-time{font:10px DM Mono;color:var(--muted)}.hero-code,.code-card{background:var(--code);border-radius:14px;color:#dce8e2;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero-code{transform:rotate(1deg)}.code-head,.code-title{height:46px;background:#192c25;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid #294038;font:10px DM Mono;color:#82988f}.code-head>span{display:flex;gap:5px}.code-head i{width:7px;height:7px;border-radius:50%;background:#496158}.code-head i:first-child{background:var(--orange)}.code-head b{margin:auto;font-weight:400}.code-head small{color:var(--lime)}pre{margin:0;padding:25px;overflow:auto;font:12px/1.8 DM Mono,monospace;tab-size:2}code{font-family:DM Mono,monospace;font-size:.9em}.kw{color:#e28b69}.fn{color:#c9f36a}.type{color:#75d6cc}.num{color:#d2adf1}.nil{color:#f2c86b}.cm{color:#6e887e}.complexity{display:flex;border-top:1px solid #294038;padding:11px 20px;gap:24px;font:9px DM Mono;color:#6f8b80}.complexity b{color:var(--lime);margin-left:5px}.roadmap{background:var(--green);color:white;min-height:125px;padding:24px max(6vw,55px);display:flex;align-items:center;gap:55px}.roadmap>div{display:flex;align-items:center;gap:11px}.roadmap>div span{font-size:30px;font-weight:800;color:var(--lime)}.roadmap small{font:9px/1.4 DM Mono;letter-spacing:.08em;color:#b2c9c0}.roadmap p{max-width:390px;margin-left:auto;color:#d3e2dc;font-size:12px}.chapter-intro{padding:90px max(6vw,55px) 36px}.chapter-intro h2{font-size:38px;letter-spacing:-.04em;margin:8px 0}.chapter-intro p{color:var(--muted);max-width:620px}.topic{margin:0 max(4vw,35px);padding:55px 2vw 70px;border-top:1px solid var(--line)}.topic-heading{display:flex;align-items:center;gap:20px;margin-bottom:38px}.topic-number{font:12px DM Mono;width:46px;height:46px;border:1px solid var(--green);color:var(--green);border-radius:50%;display:grid;place-items:center}.topic-heading h2{font-size:30px;line-height:1.2;margin:3px 0}.complete{margin-left:auto;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:9px 12px;color:var(--muted);cursor:pointer}.complete.done{color:var(--green);border-color:var(--green);background:color-mix(in srgb,var(--lime) 18%,var(--paper))}.topic-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:5vw;align-items:center;margin:25px 0 45px}.topic-grid.reverse .lesson{order:2}.lesson h3{font-size:21px;margin:0 0 12px}.lesson p,.lesson li{color:var(--muted);font-size:14px}.lesson ul{padding-left:20px}.lesson li{margin:7px 0}.lesson>code,.lesson p code,td code{color:var(--green);background:rgba(18,107,75,.07);padding:2px 4px;border-radius:4px}.callout{border-left:3px solid var(--green);background:var(--paper);padding:12px 15px;margin-top:24px}.callout b{font:10px DM Mono;color:var(--green)}.callout p{margin:3px 0;font-size:12px}.callout.warning{border-color:var(--orange)}.callout.warning b{color:var(--orange)}.code-title{justify-content:space-between;padding-left:20px}.copy{border:0;background:none;color:#80998f;font:9px DM Mono;cursor:pointer}.copy:hover{color:var(--lime)}.code-card.wide{max-width:850px;margin:35px auto 0}.pattern-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.pattern{background:var(--paper);border:1px solid var(--line);padding:22px;border-radius:12px}.pattern b{font-size:15px}.pattern p{font-size:12px;color:var(--muted);min-height:58px}.pattern span{font:9px DM Mono;color:var(--green)}table{width:100%;border-collapse:collapse;margin-top:20px;font-size:12px}th,td{text-align:left;padding:9px;border-bottom:1px solid var(--line)}th{font:9px DM Mono;color:var(--muted)}.formula{display:flex;align-items:center;gap:12px;font:11px DM Mono;background:var(--paper);border:1px solid var(--line);padding:15px;margin-top:24px;border-radius:8px}.formula span:first-child{color:var(--muted)}.formula b{color:var(--green);font-size:20px}.finish-card{margin-top:60px;background:var(--green);color:white;border-radius:16px;padding:26px 30px;display:flex;align-items:center;gap:22px}.finish-card>span{width:45px;height:45px;border-radius:50%;background:var(--lime);color:var(--green);display:grid;place-items:center;font-size:22px}.finish-card h3{margin:2px 0;font-size:20px}.finish-card p{margin:0;color:#c2d7cf;font-size:12px}.finish-card a{margin-left:auto;color:var(--lime);font:10px DM Mono;text-decoration:none}.empty{text-align:center;padding:100px}.empty span{font-size:40px}.empty p{color:var(--muted)}footer{border-top:1px solid var(--line);padding:45px max(6vw,55px);display:flex;align-items:center;gap:50px}footer p{font-size:11px;color:var(--muted)}footer>a{margin-left:auto;color:var(--green);font:10px DM Mono;text-decoration:none}
[data-theme=dark]{--bg:#101713;--paper:#18221d;--ink:#eef4f0;--muted:#9aaba2;--line:#2d3b34;--green:#79d6aa;--lime:#c9f36a;--code:#090e0b;--shadow:0 18px 55px rgba(0,0,0,.25)}[data-theme=dark] .brand-mark,[data-theme=dark] .roadmap,[data-theme=dark] .finish-card,[data-theme=dark] .primary{background:#225f48}[data-theme=dark] .primary span,[data-theme=dark] .finish-card>span{color:#225f48}
@media(max-width:1050px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none;box-shadow:20px 0 50px rgba(0,0,0,.15)}main{margin-left:0}.menu-button{display:block}.hero{grid-template-columns:1fr 1fr;padding-left:6vw;padding-right:6vw}.hero h1{font-size:58px}}
@media(max-width:760px){.topbar{padding:0 15px}.search{width:42px}.search input,.search kbd{display:none}.hero{grid-template-columns:1fr;padding:65px 22px}.hero h1{font-size:48px}.hero-code{transform:none}.roadmap{padding:25px 22px;gap:22px;flex-wrap:wrap}.roadmap p{display:none}.chapter-intro{padding:70px 22px 25px}.topic{margin:0 16px;padding:45px 6px}.topic-grid,.pattern-cards{grid-template-columns:1fr}.topic-grid.reverse .lesson{order:0}.topic-heading{align-items:flex-start}.topic-heading h2{font-size:24px}.complete span{display:none}.pattern p{min-height:0}footer{padding:35px 22px;flex-wrap:wrap}footer>a{margin-left:0}.finish-card{align-items:flex-start}.finish-card a{display:none}}

/* Comfortable reading scale */
body{font-size:17px}
.brand{font-size:14px}
.search input{font-size:15px}
.search kbd,.side-label{font-size:11px}
.sidebar nav a{font-size:15px}
.sidebar nav a i,.side-card,.read-time{font-size:12px}
.side-card strong{font-size:17px}
.side-card small{font-size:12px}
.eyebrow,.chapter-intro>span,.topic-heading small,.finish-card small{font-size:12px}
.hero-copy>p{font-size:18px}
.primary{font-size:15px}
.roadmap small,.complexity{font-size:11px}
.roadmap p{font-size:14px}
.chapter-intro p{font-size:16px}
.lesson p,.lesson li{font-size:16px}
.callout b,.copy{font-size:11px}
.callout p,.pattern p,.finish-card p{font-size:14px}
.pattern span,th,.finish-card a,footer>a{font-size:11px}
table{font-size:14px}
pre{font-size:14px}
.code-head,.code-title{font-size:12px}
footer p{font-size:13px}

/* Extra-large reading scale */
body{font-size:19px;line-height:1.72}
.brand{font-size:16px}
.search input{font-size:17px}
.search kbd,.side-label{font-size:13px}
.sidebar nav a{font-size:17px;padding-top:13px;padding-bottom:13px}
.sidebar nav a i,.side-card,.read-time{font-size:14px}
.side-card strong{font-size:19px}
.side-card small{font-size:14px}
.eyebrow,.chapter-intro>span,.topic-heading small,.finish-card small{font-size:14px}
.hero-copy>p{font-size:21px}
.primary{font-size:17px}
.roadmap small,.complexity{font-size:13px}
.roadmap p{font-size:16px}
.chapter-intro p{font-size:18px}
.lesson p,.lesson li{font-size:18px}
.callout b,.copy{font-size:13px}
.callout p,.pattern p,.finish-card p{font-size:16px}
.pattern span,th,.finish-card a,footer>a{font-size:13px}
table{font-size:16px}
pre{font-size:16px;line-height:1.85}
.code-head,.code-title{font-size:14px}
footer p{font-size:15px}

/* Go syntax highlighting */
.str{color:#efc36d}
.builtin{color:#8ec8ff}
