:root{--bg:#f8f7f3;--paper:#fffefa;--text:#303638;--muted:#686e73;--line:#dedfdb;--accent:#5265d9;--tint:#eceef9;--sidebar:#f2f3f7;--code:#f4f6fb;--code-key:#7645b5;--code-string:#267154;--code-number:#a45024;--code-fn:#2b64ae;--header:80px;--sans:var(--font-ui);color-scheme:light}
:root[data-theme=dark]{--bg:#191e24;--paper:#222932;--text:#e8ecf1;--muted:#acb7c5;--line:#384352;--accent:#a9b6ff;--tint:#2a3550;--sidebar:#202731;--code:#202835;--code-key:#c8a4ff;--code-string:#9bcda9;--code-number:#efbb8e;--code-fn:#9bc5f0;color-scheme:dark}
*{box-sizing:border-box}html{background:var(--bg);overscroll-behavior-y:none;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.7 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button,a,summary,input,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent)}h1,h2,h3,p{margin-top:0}h1{font:400 clamp(35px,4.2vw,58px)/1.15 Georgia,serif;letter-spacing:-1.5px;margin-bottom:22px}h2{font:400 29px/1.28 Georgia,serif;letter-spacing:-.5px}h3{font-size:17px;line-height:1.4}p{margin-bottom:18px}code{font:13px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}pre{max-width:100%;overflow:auto}a:hover{color:var(--accent)}.skip{position:fixed;top:-100px;left:20px;padding:12px 18px;background:var(--paper);z-index:200}.skip:focus{top:10px}
.platform-header{position:sticky;top:0;z-index:80;min-height:var(--header);display:flex;align-items:center;gap:28px;padding:14px 32px;border-bottom:1px solid var(--line);background:var(--bg)}.platform-brand{font-size:29px;letter-spacing:-1.3px;font-weight:750;color:var(--accent);line-height:1}.course-brand{display:flex;align-items:center;gap:10px;padding-left:28px;border-left:1px solid var(--line);font-size:24px;letter-spacing:-1px;font-weight:650}.course-brand img{display:block}.platform-header>button{margin-left:auto;border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;min-height:44px;width:44px;background:transparent}
.shell{display:grid;grid-template-columns:224px minmax(0,1fr)}.sidebar{position:fixed;top:var(--header);left:0;bottom:0;width:224px;padding:22px 12px;border-right:1px solid var(--line);background:var(--bg);overflow:auto;z-index:20}.sidebar details{border:0;padding:0}.sidebar>details>summary{display:none}.nav-label{font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--muted);margin:4px 10px 8px}.sidebar nav>a{display:flex;align-items:center;gap:9px;min-height:38px;padding:8px 10px;font-size:12px;line-height:1.45;border-radius:7px;margin-bottom:2px}.sidebar nav svg{flex:0 0 18px}.sidebar nav a[aria-current],.sidebar nav>a:hover{background:var(--tint);color:var(--accent)}.sidebar-progress{display:grid;grid-template-columns:1fr auto;gap:10px;margin:26px 10px 0;padding-top:18px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}progress{grid-column:1/-1;width:100%;height:4px;accent-color:var(--accent)}.workspace{grid-column:2;min-width:0}main{max-width:1240px;min-height:75vh;margin:0 auto;padding:44px 42px 64px}footer{display:flex;flex-wrap:wrap;gap:14px 24px;justify-content:space-between;padding:20px 42px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.eyebrow{display:block;font-size:10px;letter-spacing:.12em;font-weight:600;color:var(--accent);margin-bottom:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:11px 18px;border:1px solid var(--accent);border-radius:9px;background:var(--accent);color:var(--bg);font-size:13px;font-weight:600}.button:hover{color:var(--bg);filter:brightness(.95)}.button.secondary{background:transparent;color:var(--accent)}.text-link,.back,.materials-link a{color:var(--accent);font-size:13px}.back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:16px}.muted{color:var(--muted);font-size:13px}.page-title{margin-bottom:30px}.page-title>p{max-width:70ch;color:var(--muted);font-size:14px}
.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center;margin:10px 0 44px}.hero p{max-width:48ch;color:var(--muted);font-size:14px}.next-card{border-left:3px solid var(--accent);padding:25px 28px;background:var(--paper);border-radius:0 14px 14px 0}.next-card h2{font:600 22px/1.4 var(--sans);letter-spacing:0;margin-bottom:12px}.next-card>p{font-size:12px}.next-progress{display:flex;justify-content:space-between;gap:14px;padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:30px;margin-bottom:20px}.section-heading h2{margin:0;font-size:25px}.section-heading>span{font-size:12px;color:var(--muted)}.topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.topic-card{display:flex;flex-direction:column;min-width:0;padding:24px;border:1px solid var(--line);border-radius:13px;background:var(--paper)}.topic-card:hover{border-color:var(--accent);color:var(--text)}.topic-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.topic-card-top .eyebrow{margin:0;font-size:9px}.topic-card-top svg{color:var(--accent);width:24px;height:24px}.topic-card h3{font-size:18px;margin-bottom:10px}.topic-card p{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:24px}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;font-size:11px;color:var(--accent)}
article{max-width:850px}.runtime-note{font-size:12px;color:var(--muted);margin:0 0 36px}.runtime-note a{text-decoration:underline;text-underline-offset:3px}.lesson-section{padding-bottom:34px;margin-bottom:38px;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--header) + 20px)}.lesson-section h2{margin-bottom:18px}.prose{max-width:72ch;line-height:1.9;white-space:pre-line}.function-guide{margin-top:22px;font-size:13px}.signature{margin:0 0 8px;overflow-wrap:anywhere;color:var(--accent)}.function-guide dl{margin:0}.function-guide dl>div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;padding:5px 0}.function-guide dt{min-width:0;overflow-wrap:anywhere}.function-guide dd{margin:0;color:var(--muted)}.change{margin:14px 0 0;font-size:13px;line-height:1.8}.change strong{font-weight:600}.materials-link{font-size:12px;color:var(--muted);margin:26px 0}.note-label{display:block;font-size:12px;color:var(--muted);margin:24px 0}.note-label textarea{display:block;margin-top:10px;width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:14px;resize:vertical}.pagination{display:flex;justify-content:space-between;gap:24px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line);font-size:12px;color:var(--accent)}.pagination a{display:flex;align-items:center;min-height:44px;max-width:48%}
.code-widget{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--code);margin:22px 0}.code-toolbar{display:flex;align-items:center;gap:6px;min-height:44px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:11px}.code-toolbar>span{margin-right:auto;color:var(--muted);padding:0 4px}.code-toolbar button{min-height:34px;padding:6px 9px;border:0;border-radius:5px;background:transparent;color:var(--accent);font-size:11px}.code-toolbar button:hover{background:var(--tint)}.code-editor{position:relative;min-width:0;background:var(--code)}.code-editor>pre,.code-editor>textarea{box-sizing:border-box;width:100%;max-width:100%;margin:0;padding:18px;border:0;border-radius:0;font:13px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:4;letter-spacing:0;white-space:pre;word-break:normal;overflow-wrap:normal}.code-editor>pre{position:absolute;inset:0;height:100%;pointer-events:none;overflow:hidden;background:transparent;color:var(--text)}.code-editor>pre code{font:inherit;white-space:inherit;letter-spacing:inherit}.code-editor>textarea{display:block;position:relative;resize:vertical;min-height:170px;max-height:620px;overflow:auto;background:transparent;color:transparent;-webkit-text-fill-color:transparent;caret-color:var(--text)}.code-editor>textarea:focus{outline-offset:-2px}.go-keyword{color:var(--code-key)}.go-string{color:var(--code-string)}.go-number{color:var(--code-number)}.go-function{color:var(--code-fn)}.go-comment{color:var(--muted)}.stdin-label{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding:10px 14px;font-size:11px;color:var(--muted)}.stdin-label input{min-width:0;flex:1;border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:6px 9px;font:12px ui-monospace,monospace}.run-status{font-size:11px;color:var(--muted);margin:0;padding:0 14px}.run-status:not(:empty){padding:10px 14px}.run-output{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;margin:0;border-top:1px solid var(--line);background:var(--paper);font:12px/1.7 ui-monospace,monospace;max-height:300px;overflow:auto}.run-output[data-error=true]{color:var(--code-number)}
.task-tabs{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:24px}.task-tabs a{display:flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;font-size:12px}.task-tabs [aria-current]{color:var(--accent);background:var(--tint)}.task-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.task-list>a{position:relative;padding:23px 46px 23px 23px;border:1px solid var(--line);border-radius:11px;background:var(--paper)}.task-list h2{font:600 18px/1.4 var(--sans);letter-spacing:0;margin:0 0 10px}.task-list a>span:last-of-type{font-size:11px;color:var(--muted)}.task-list a>b{position:absolute;right:22px;top:22px;color:var(--accent)}.task-statement{font-size:14px;line-height:1.9}.task-statement h3{margin-top:30px}.task-statement h2{margin-top:38px}.task-statement ul{padding-left:22px}.statement-code{padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--paper);white-space:pre;font:12px/1.8 ui-monospace,monospace}.reference-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px}.reference-grid section{padding-bottom:18px;border-bottom:1px solid var(--line)}.reference-grid h2{font-size:23px}.reference-grid p{font-size:13px}.runtime-info{margin-top:42px;padding-top:28px;border-top:1px solid var(--line);scroll-margin-top:calc(var(--header) + 20px)}.runtime-info p{font-size:13px;max-width:75ch}.runtime-info a{text-decoration:underline}.progress-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:25px}.progress-cards>section{padding:25px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.progress-cards b{display:block;font-size:32px;color:var(--accent)}.progress-cards span{font-size:12px;color:var(--muted)}.progress-list{margin-top:30px}.progress-list>a{display:flex;gap:20px;align-items:baseline;min-height:54px;padding:14px 0;border-bottom:1px solid var(--line)}.progress-list span{min-width:90px;font-size:11px;color:var(--muted)}.progress-list b{font-size:13px;font-weight:500}.materials-list section{padding:20px 0;border-bottom:1px solid var(--line)}.materials-list h2{font-size:24px}.materials-list p{font-size:13px;color:var(--muted)}.storage-warning{padding:14px;border:1px solid var(--line);font-size:12px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);font-size:12px;color:var(--muted)}
@media(max-width:1200px){main{padding:34px 30px}.hero{gap:30px;grid-template-columns:1fr 1fr}.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{font-size:43px}}
@media(max-width:850px){:root{--header:72px}.platform-header{padding:12px 20px;gap:18px}.platform-brand{font-size:25px}.course-brand{padding-left:18px;font-size:22px;gap:8px}.course-brand img{width:29px;height:29px}.shell{display:block}.sidebar{position:relative;inset:auto;width:auto;padding:0 20px;border:0;border-bottom:1px solid var(--line)}.sidebar>details>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;list-style:none;font-size:12px;cursor:pointer}.sidebar summary::-webkit-details-marker{display:none}.sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;padding:10px 0}.sidebar nav .nav-label{display:none}.sidebar nav>a{min-height:44px}.sidebar-progress{display:none}.workspace{width:100%}main{padding:30px 24px 48px}.hero{grid-template-columns:1fr;gap:26px}.hero h1{max-width:16ch;font-size:45px}.next-card{padding:20px 24px}.topic-grid{grid-template-columns:1fr 1fr}.code-editor>textarea{max-height:480px}.function-guide dl>div{grid-template-columns:120px minmax(0,1fr)}}
@media(max-width:560px){body{font-size:14px}.platform-header{padding-inline:16px}.platform-brand{font-size:24px}.course-brand{font-size:21px;padding-left:14px}.course-brand img{width:26px;height:26px}.platform-header>button{width:44px;flex:0 0 44px}.sidebar{padding-inline:20px}main{padding:24px 20px 42px}h1{font-size:36px;letter-spacing:-1px}.hero h1{font-size:39px;max-width:none}.hero p{font-size:13px}.topic-grid,.task-list,.reference-grid{grid-template-columns:1fr}.topic-card{padding:22px}.section-heading{align-items:flex-start}.section-heading>span{font-size:10px;white-space:nowrap;padding-top:6px}.section-heading h2{font-size:24px}.page-title>p{font-size:13px}.lesson-section h2{font-size:27px}.prose{font-size:13px;line-height:1.9}.function-guide dl>div{grid-template-columns:1fr;gap:2px}.code-toolbar{gap:2px;padding-inline:7px}.code-toolbar button{padding-inline:7px;font-size:10px}.code-editor>pre,.code-editor>textarea{padding:14px;font-size:12px}.stdin-label{padding-inline:12px}.runtime-note{font-size:11px}.pagination{font-size:11px}.progress-cards{gap:12px}.progress-cards>section{padding:18px}.progress-cards b{font-size:26px}footer{padding:20px;font-size:10px}.statement-code{padding:14px;font-size:11px}.task-statement{font-size:13px}}
@media(forced-colors:active){.code-editor>pre{visibility:hidden}.code-editor>textarea{color:CanvasText;-webkit-text-fill-color:CanvasText;caret-color:CanvasText;background:Canvas}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.platform-header,.sidebar,footer,.code-toolbar,.code-editor,.stdin-label,.run-status,.note-label,.button,.runtime-note,.pagination{display:none}.shell{display:block}.workspace{margin:0}main{padding:0}.code-editor>pre{position:static;display:block}.code-editor{display:block}.code-editor>textarea{display:none}.lesson-section{break-inside:avoid}body{background:#fff;color:#111}}

/* Native same-origin navigation; reduced motion keeps the ordinary page change. */
@media(prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition-old(root),::view-transition-new(root){animation-duration:140ms}
}
