*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px;background:#141b16}body{margin:0;font-family:DM Sans,sans-serif;color:#e9ecde;line-height:1.75;background:linear-gradient(90deg,#c9dfa703 1px,transparent 1px),linear-gradient(#c9dfa703 1px,transparent 1px),#141b16;background-size:32px 32px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}a,button,input,textarea,select,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d0eea5;outline-offset:4px}a:hover{color:#d0eea5}button{cursor:pointer}button:disabled{cursor:default}.skip{position:fixed;top:-100px;left:20px;z-index:50;background:#c6e59e;color:#14200e;padding:12px}.skip:focus{top:12px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(34px,4.4vw,58px);line-height:1.12;letter-spacing:-1.7px;margin-bottom:22px;text-wrap:balance}h2{font-size:28px;line-height:1.25;letter-spacing:-.65px;margin-bottom:18px}h3{font-size:20px;line-height:1.35;margin-bottom:10px}p{color:#bbc7b6;margin-bottom:20px}strong{color:#e4ead9}em{color:#c7e5a3}ul,ol{padding-left:24px}li{margin-bottom:9px}p,li,a{overflow-wrap:break-word}a.inline-link,.prose a,.source-list a{color:#c5e4a2;text-decoration:underline;text-underline-offset:4px}a.inline-link:hover,.prose a:hover{text-decoration-thickness:2px}.course-header{height:80px;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:38px;padding:0 36px;border-bottom:1px solid #394735;background:#141c17f7}.brand{white-space:nowrap;font:700 21px Space Mono,monospace}.brand span{color:#8fa487}.course-home{color:#adbf9f;font-size:14px}.menu-toggle{display:none;border:1px solid #566549;background:#273123;color:#e9ecde;padding:9px 12px;font-size:13px;gap:12px;align-items:center}.course-shell{display:grid;grid-template-columns:288px minmax(0,1fr);max-width:1512px;margin:auto}.sidebar{border-right:1px solid #394735;background:#172019bd}.sidebar-inner{position:sticky;top:80px;max-height:calc(100dvh - 80px);overflow-y:auto;padding:27px 18px 32px;scrollbar-width:thin;scrollbar-color:#4b6042 transparent}.course-progress{padding:0 12px 22px;font:10px Space Mono,monospace;color:#aec898}progress{display:block;width:100%;height:6px;margin-top:12px;accent-color:#bddc92}.side-link{display:flex;justify-content:space-between;padding:10px 12px;font-size:13px;color:#c7d2bf}.is-active{background:#2d3b26;color:#d3edb5!important;box-shadow:inset 3px 0 #bad58f}.module-nav{margin-top:16px}.module-nav summary{padding:5px 10px;cursor:pointer;font-weight:700;font-size:13px;color:#d4ddca}.module-nav ol{list-style:none;padding:6px 0 0;margin:0}.module-nav li{margin:0}.lesson-link{display:flex;gap:9px;align-items:baseline;padding:8px 10px;font-size:12px;line-height:1.5;color:#aabda3}.lesson-index{font:10px Space Mono,monospace;color:#7e9970;flex:none}.completion-dot{width:6px;height:6px;flex:none;border:1px solid #688157;margin-left:auto;align-self:center}.completion-dot.is-complete{background:#c4e697;border-color:#c4e697}.sidebar-extras{border-top:1px solid #36442e;margin-top:22px;padding-top:16px}.back-workshop{display:block;font-size:11px;color:#91a785;margin:25px 12px 0}main{min-width:0;width:100%;max-width:1150px;padding:50px clamp(24px,4.5vw,76px) 0}.lead{font-size:19px;line-height:1.65;max-width:720px;color:#c4cebc}.metadata{font:11px/1.9 Space Mono,monospace;color:#9eb48b;display:flex;gap:15px;flex-wrap:wrap;margin:24px 0}.button{display:inline-flex;gap:18px;align-items:center;justify-content:center;padding:12px 19px;background:#c0df98;color:#17200f!important;border:2px solid #d4edb3;box-shadow:4px 4px #0a110b;font-size:14px;font-weight:700}.button:hover{background:#d3edb0}.button.secondary{background:#273223;color:#d3e5bd!important;border-color:#566b46;box-shadow:none}.actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:26px 0}.section{margin-top:48px}.hero-box{border:1px solid #4b5f3e;border-top:4px solid #9cbd78;padding:30px;background:#243320;position:relative;box-shadow:7px 7px #0c130e}.hero-box p:last-child{margin-bottom:0}.hero-box h1{max-width:650px}.pixel-recipe{display:flex;gap:8px;align-items:center;margin-top:24px;color:#a9c18f}.pixel-recipe span{display:grid;place-items:center;width:47px;height:47px;border:2px solid #536e45;background:#1b271b;font:23px Space Mono,monospace;box-shadow:inset 3px 3px #101910}.pixel-recipe small{margin-left:10px;max-width:260px;line-height:1.6}.module-card{border:1px solid #3c4d34;background:#1c261c;margin-top:18px;padding:24px}.module-card h3{font-size:23px}.module-card>p{font-size:14px}.curriculum{padding:0;margin:0;list-style:none}.curriculum li{margin:0;border-top:1px solid #34442d}.curriculum a{display:flex;align-items:baseline;gap:14px;padding:13px 0}.curriculum .lesson-index{font-size:11px}.curriculum .time{margin-left:auto;white-space:nowrap;font:10px Space Mono,monospace;color:#96ad84}.curriculum strong{font-size:15px;font-weight:500}.section-header{display:flex;justify-content:space-between;align-items:baseline;gap:20px}.section-header a{font-size:13px;white-space:nowrap}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.study-card{border:1px solid #435438;background:#1e291e;padding:22px;display:flex;flex-direction:column;align-items:flex-start}.study-card h2,.study-card h3{font-size:20px;letter-spacing:-.3px}.study-card p{font-size:14px;line-height:1.65}.study-card .card-link{font-size:12px;color:#c1dc9e;margin-top:auto}.study-card:hover{border-color:#8da976}.study-card:hover h2,.study-card:hover h3{color:#d2ebb3}.study-card[hidden]{display:none}.study-scope{font-size:11px;color:#879e7d}.breadcrumb{font-size:12px;color:#9cb18b;margin-bottom:26px;display:flex;flex-wrap:wrap;gap:10px}.breadcrumb a{text-decoration:underline;text-underline-offset:4px}.lesson-intro{border-bottom:1px solid #425138;padding-bottom:22px;margin-bottom:32px}.concepts{margin:0}.concept{margin-bottom:24px}.concept dt{font-weight:700;font-size:18px;margin-bottom:7px;color:#e3ead8}.concept dd{margin:0;color:#b9c5b1}.callout{padding:23px 25px;border:1px solid #4a5f3b;border-left:4px solid #a7c982;background:#263320;margin:28px 0}.callout h2,.callout h3{font-size:20px}.callout p:last-child,.callout ol:last-child{margin-bottom:0}.callout p,.callout li{font-size:15px}.example-block{border-top:1px solid #3d4e34;padding:23px 0 8px}.example-block h3 a{color:#c7e5a5;text-decoration:underline;text-underline-offset:4px}.example-block p{font-size:15px}.mistakes li,.source-list li{color:#b9c5b1}.exercise{border:1px solid #576d45;background:#243120;padding:26px}.exercise h2{font-size:23px}.exercise p{font-size:15px}.exercise .done{border-top:1px solid #52633e;padding-top:16px;margin-bottom:0}.note-label{display:block;margin-top:24px;font-size:14px;font-weight:700}.note-label textarea{display:block;margin-top:10px;width:100%;resize:vertical;min-height:120px;border:1px solid #4d633f;color:#e9eedf;background:#111c13;padding:15px;font-weight:400;font-size:14px;line-height:1.7}.note-label textarea::-moz-placeholder{color:#879e79}.note-label textarea::placeholder{color:#879e79}.save-status{font-size:11px;color:#8ca17e;margin-top:10px}.complete-lesson{display:flex;gap:12px;align-items:center;border:1px solid #536b41;background:#23321e;padding:18px 20px;font-size:14px;cursor:pointer}.complete-lesson input{width:20px;height:20px;accent-color:#c1e197;flex:none}.check-understanding{border-top:1px solid #465a39;border-bottom:1px solid #465a39;padding:20px 0;margin-top:30px}.check-understanding summary{cursor:pointer;font-weight:700;color:#d3e8bb}.check-understanding p{font-size:15px;margin:17px 0 0}.lesson-pagination{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}.lesson-pagination a{border:1px solid #46593a;padding:17px 19px;font-size:13px;color:#c6dcb1}.lesson-pagination small{display:block;font:10px Space Mono,monospace;color:#8ca17e;margin-bottom:6px}.lesson-pagination a:last-child{text-align:right}.source-list{padding-left:22px}.source-list li{font-size:14px;margin-bottom:18px}.source-list small{display:block;color:#8ea281;line-height:1.6;margin-top:5px}.source-list li:target{outline:1px solid #a9ca83;outline-offset:8px}.claim-source{font:11px Space Mono,monospace;color:#c3dd9e!important;white-space:nowrap}.local-toc{display:flex;gap:10px 22px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid #3d5034;font-size:12px;color:#bdd3a4}.local-toc a{text-decoration:underline;text-underline-offset:4px}.loop-stack{display:grid;gap:12px;margin-top:20px}.loop-row{border:1px solid #405335;padding:18px 20px;background:#1e2b1c}.loop-row h3{font-size:15px;color:#c8e2aa}.loop-row p{font-size:14px;margin:0}.verbs{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none;margin:22px 0}.verbs li{font:11px Space Mono,monospace;border:1px solid #536945;padding:5px 9px;color:#b8d59b;margin:0}.decision-options li{padding-left:4px;color:#bdcbb4}.scope-note{font-size:13px;color:#9fb191;border-left:2px solid #5d784a;padding-left:16px;margin:25px 0}.preview-notice{padding:18px;border:1px solid #bba26c;background:#342e20;color:#ddc695;font-size:14px}.library-controls{display:flex;gap:16px;align-items:flex-end;margin:28px 0}.library-controls label{font-size:12px;color:#a8bf94;display:flex;flex-direction:column;gap:8px}.library-controls label:first-child{flex:1}.library-controls input,.library-controls select{min-height:46px;min-width:0;border:1px solid #536846;background:#1c291c;color:#e1ebd5;padding:10px 12px;font-size:14px}.library-controls input{width:100%}.result-count{font:11px Space Mono,monospace;color:#a2b98c;margin:18px 0}.research-card{border-top:1px solid #46593b;padding:26px 0}.research-card p{font-size:15px}.research-card .research-type{font:11px Space Mono,monospace;color:#a7bc92;margin:12px 0}.workbench-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.workbench-grid .note-label{margin-top:0}.course-footer{border-top:1px solid #3d4d34;padding:27px 0 35px;margin-top:65px;font-size:11px;display:flex;justify-content:space-between;gap:22px}.course-footer p{margin:0;max-width:330px}.course-footer a{color:#afc996}.reading-note{font-size:13px}.next-card{display:block;margin-top:24px;padding:24px;border:1px solid #78935b;background:#2c3c24}.next-card h2{font-size:23px}.next-card p{font-size:14px;margin-bottom:10px}.next-card span{color:#c3e3a0;font-size:13px}@media (min-width: 1513px){.course-shell{border-left:1px solid #394735;border-right:1px solid #394735}}@media (max-width: 1100px){.course-shell{grid-template-columns:250px minmax(0,1fr)}main{padding:38px 32px 0}.course-header{padding:0 24px}.sidebar-inner{padding-left:12px;padding-right:12px}.cards{gap:12px}.study-card{padding:18px}}@media (max-width: 820px){.course-header{height:auto;min-height:72px;gap:16px;flex-wrap:wrap;padding:16px 20px}.brand{font-size:18px}.course-home{display:none}.menu-toggle{display:flex;margin-left:auto}.course-shell{display:block}.sidebar{display:none;position:fixed;top:72px;left:0;width:min(360px,100%);height:calc(100dvh - 72px);z-index:25;box-shadow:16px 0 #0006;background:#18221a}.contents-open .sidebar{display:block}.sidebar-inner{position:static;max-height:100%;padding:22px 17px 32px}.lesson-link{font-size:14px;padding:10px}.module-nav summary{font-size:14px}.side-link{font-size:14px}.back-workshop{font-size:12px}main{padding:34px 30px 0;max-width:850px;margin:auto}html{scroll-padding-top:95px}.module-card{padding:22px}.course-footer{margin-top:50px}}@media (max-width: 520px){.course-header{padding:14px 16px;gap:10px;min-height:70px}.brand{font-size:16px}.menu-toggle{font-size:11px;padding:8px 10px;gap:10px}.sidebar{top:70px;height:calc(100dvh - 70px)}main{padding:28px 20px 0}h1{font-size:38px;letter-spacing:-1.2px}h2{font-size:25px}.lead{font-size:17px}.hero-box{padding:23px 20px}.hero-box h1{font-size:40px}.pixel-recipe{flex-wrap:wrap}.pixel-recipe small{margin-left:0;flex-basis:100%;font-size:12px}.cards,.workbench-grid{grid-template-columns:1fr}.module-card{padding:20px 16px}.curriculum strong{font-size:14px}.curriculum a{gap:10px}.section{margin-top:36px}.section-header{align-items:flex-start;flex-direction:column;gap:0;margin-bottom:20px}.section-header h2{margin-bottom:10px}.callout,.exercise{padding:21px 18px}.lesson-pagination{gap:10px}.lesson-pagination a{padding:14px 12px;font-size:12px}.library-controls{flex-direction:column;align-items:stretch}.library-controls label{width:100%}.course-footer{flex-direction:column;gap:10px}.metadata{font-size:10px;gap:10px}.concept dt{font-size:17px}}@media (max-width: 350px){.course-header{padding-left:12px;padding-right:12px}.brand{font-size:14px}.menu-toggle{font-size:10px}main{padding-left:16px;padding-right:16px}h1{font-size:33px}.hero-box h1{font-size:35px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}@media print{.sidebar,.course-header,.course-footer,.lesson-pagination,.menu-toggle,.actions,.complete-lesson{display:none!important}.course-shell{display:block}main{padding:0;max-width:none}body{background:#fff;color:#000}p,li,.concept dd{color:#222}.callout,.exercise,.loop-row{background:#fff;border-color:#555}h1,h2,h3,strong{color:#000}a{color:#222!important}}h1 em{font-style:normal;color:#c7e59e}@media (max-width: 820px){html:not(.course-js) .sidebar{display:block;position:static;width:auto;height:auto;box-shadow:none}html:not(.course-js) .sidebar-inner{max-height:none}html:not(.course-js) .menu-toggle{display:none}}.study-card .study-thumbnail{display:block;width:100%;height:auto;aspect-ratio:16 / 9;-o-object-fit:contain;object-fit:contain;background:#10180f;border:1px solid #435438;margin-bottom:18px}.study-screenshot{margin:28px 0}.study-screenshot img{display:block;width:100%;height:auto;max-height:70vh;-o-object-fit:contain;object-fit:contain;background:#10180f;border:1px solid #435438}.study-screenshot figcaption{margin-top:10px;font-size:12px;line-height:1.6;overflow-wrap:anywhere;color:var(--muted)}html{color-scheme:dark}h2,h3{text-wrap:balance}p{text-wrap:pretty}main>article{max-width:min(76ch,720px)}.study-card>p:last-child{margin-bottom:0}.metadata,.course-progress,.save-status,.course-footer,.back-workshop,.lesson-pagination small,.curriculum .time{font-size:12px}.lesson-index{font-variant-numeric:tabular-nums}.breadcrumb a,.local-toc a,.back-workshop{display:inline-flex;align-items:center;min-height:32px}.breadcrumb{margin-bottom:18px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}@media (max-width: 820px){.course-header{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.menu-toggle,.breadcrumb a,.local-toc a,.back-workshop{min-height:44px}.sidebar-inner{overscroll-behavior:contain;padding-bottom:max(24px,env(safe-area-inset-bottom))}.note-label textarea,.library-controls input,.library-controls select{font-size:16px}.save-status,.metadata{font-size:12px}}.study-thumbnail[src$=".svg"],.study-screenshot img[src$=".svg"]{background:#f4f1e8;padding:12px}
