*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}:root{--paper: #f5f1e8;--paper-light: #fbf8f0;--paper-bright: #ffffff;--paper-tint: #ede7d7;--ink: #1b1b1f;--ink-2: #3a3a40;--ink-muted: #6b6660;--ink-faint: #948d80;--hairline: #d9d3c2;--hairline-2: #b8af98;--vermillion: #d14418;--vermillion-deep: #a33010;--vermillion-soft: #fbe6da;--vermillion-ink: #6b1f0a;--blueprint: #1e5a8a;--blueprint-soft: #dce9f4;--safe: #166534;--danger: #b91c1c;--highlight: #f2c94c;--font-display: "Fraunces", "Newsreader", Georgia, "Times New Roman", serif;--font-sans: "IBM Plex Sans", "Helvetica Neue", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--shadow-1: 0 1px 0 rgba(27, 27, 31, .04), 0 1px 2px rgba(27, 27, 31, .04);--shadow-2: 0 2px 0 rgba(27, 27, 31, .04), 0 10px 28px -10px rgba(27, 27, 31, .14)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);background-color:var(--paper);background-image:radial-gradient(circle at 1px 1px,rgba(27,27,31,.055) 1px,transparent 0);background-size:28px 28px;background-attachment:fixed;color:var(--ink);line-height:1.5;font-feature-settings:"ss01" on,"cv01" on}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;color:var(--ink);letter-spacing:-.02em;line-height:1.1;font-variation-settings:"opsz" 72,"SOFT" 30,"WONK" 0;margin:0}p{margin:0}a{color:var(--blueprint)}strong{font-weight:600;color:var(--ink)}code,kbd{font-family:var(--font-mono)}.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);border-bottom:1px solid var(--hairline)}.site-header-inner{max-width:1240px;margin:0 auto;padding:14px clamp(16px,4vw,32px);display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}.site-brand{display:flex;align-items:center;text-decoration:none;color:var(--ink)}.site-brand-wordmark{display:flex;flex-direction:column;line-height:1.1;gap:2px}.site-brand-name{font-family:var(--font-display);font-size:1.05rem;font-weight:500;letter-spacing:-.02em;font-variation-settings:"opsz" 36,"SOFT" 20}.site-brand-meta{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted);font-weight:500}.site-nav{display:flex;align-items:center;gap:2px;font-family:var(--font-mono);font-size:.74rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.site-nav a{position:relative;text-decoration:none;color:var(--ink-2);padding:8px 12px;border-radius:6px;transition:color .14s ease,background .14s ease}.site-nav a:hover{color:var(--ink);background:#1b1b1f0d}.site-nav a.site-nav-active{color:var(--ink)}.site-nav a.site-nav-active:after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;background:var(--vermillion)}.site-nav-github{display:inline-flex;align-items:center;gap:6px;margin-left:8px;padding:8px 12px;border:1px solid var(--hairline-2);border-radius:6px;color:var(--ink)!important;background:transparent}.site-nav-github:hover{border-color:var(--ink);background:#1b1b1f0d}.site-nav-github .github-icon{flex-shrink:0}.site-footer{margin-top:auto;border-top:1px solid var(--hairline);background:color-mix(in srgb,var(--paper) 88%,transparent)}.site-footer-inner{max-width:1240px;margin:0 auto;padding:clamp(28px,5vw,44px) clamp(20px,5vw,48px);display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.site-footer-text{display:flex;flex-direction:column;gap:4px}.site-footer-title{font-family:var(--font-display);font-size:1.1rem;font-weight:500;letter-spacing:-.02em;color:var(--ink)}.site-footer-sub{font-size:.92rem;color:var(--ink-muted);max-width:46ch}.site-footer-repo{flex-shrink:0}.app{max-width:1240px;margin:0 auto;padding:clamp(28px,5vw,56px) clamp(20px,5vw,48px)}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:var(--r-md);padding:12px 18px;font-family:var(--font-sans);font-weight:500;font-size:.95rem;line-height:1;cursor:pointer;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease;white-space:nowrap;letter-spacing:-.005em}.btn-primary{background:var(--vermillion);color:#fff;border-color:var(--vermillion-deep);box-shadow:0 1px 0 var(--vermillion-deep),0 8px 22px -8px #d1441873}.btn-primary:hover:not(:disabled){background:var(--vermillion-deep);transform:translateY(-1px);box-shadow:0 1px 0 var(--vermillion-deep),0 12px 26px -10px #d1441880}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--hairline-2)}.btn-ghost:hover:not(:disabled){background:var(--paper-bright);border-color:var(--ink);transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--vermillion);outline-offset:3px}.home{display:flex;flex-direction:column;gap:clamp(48px,8vw,96px)}.hero{display:flex;flex-direction:column;gap:var(--s-5);padding-top:var(--s-5)}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}.hero-headline{font-family:var(--font-display);font-size:clamp(2.2rem,5.6vw,4.25rem);font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 25,"WONK" 0;line-height:1.04;letter-spacing:-.025em;max-width:22ch;margin:0;color:var(--ink)}.hero-headline em{font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;color:var(--vermillion);white-space:nowrap}.hero-lede{max-width:56ch;font-size:1.125rem;color:var(--ink-2);line-height:1.55}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:var(--s-2)}.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--paper-light);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.pillar{padding:var(--s-6) var(--s-5);display:flex;flex-direction:column;gap:14px;border-right:1px solid var(--hairline);position:relative}.pillar:last-child{border-right:none}.pillar-label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--vermillion)}.pillar h3{font-family:var(--font-display);font-size:1.45rem;font-weight:400;font-variation-settings:"opsz" 36,"SOFT" 30,"WONK" 0;letter-spacing:-.015em}.pillar p{font-size:.95rem;color:var(--ink-2);line-height:1.55}.quickstart{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s-7);align-items:start}.quickstart-intro{display:flex;flex-direction:column;gap:var(--s-3)}.quickstart-intro h2{font-size:clamp(1.7rem,3vw,2.4rem);font-variation-settings:"opsz" 96,"SOFT" 30;letter-spacing:-.02em;max-width:14ch}.quickstart-intro p{color:var(--ink-2);max-width:40ch}.quickstart-steps{background:var(--paper-bright);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--s-3) var(--s-5);list-style:none;margin:0}.quickstart-steps li{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:16px 0;border-bottom:1px dashed var(--hairline);align-items:baseline}.quickstart-steps li:last-child{border-bottom:none}.quickstart-num{font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:.1em;color:var(--vermillion);align-self:start;padding-top:2px}.quickstart-text{font-size:.98rem;color:var(--ink-2);line-height:1.5}.quickstart-text code{background:var(--paper-tint);border:1px solid var(--hairline);padding:2px 7px;border-radius:4px;font-size:.86em;color:var(--ink)}.quickstart-text em{font-style:italic;font-variation-settings:"opsz" 14,"SOFT" 100,"WONK" 1;color:var(--vermillion-deep)}.home-footer{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);padding-top:var(--s-5);border-top:1px solid var(--hairline);display:flex;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap}.doc-page-head{margin-bottom:var(--s-6);display:flex;flex-direction:column;gap:var(--s-3)}.doc-page-eyebrow{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--vermillion)}.doc-page-head h1{font-size:clamp(2.2rem,4.5vw,3.2rem);font-variation-settings:"opsz" 144,"SOFT" 25;letter-spacing:-.025em;max-width:20ch}.doc-page-head p{color:var(--ink-2);max-width:56ch;font-size:1.05rem;line-height:1.55}.doc-card{background:var(--paper-bright);border:1px solid var(--hairline);border-radius:var(--r-md);padding:clamp(22px,3vw,36px)}.doc-prose{max-width:72ch}.doc-prose h1,.doc-prose h2,.doc-prose h3{font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink)}.doc-prose h1{font-size:1.85rem;margin:0 0 var(--s-4);font-variation-settings:"opsz" 72,"SOFT" 30}.doc-prose h2{font-size:1.3rem;margin:1.6em 0 .6em;padding-bottom:6px;border-bottom:1px solid var(--hairline);font-variation-settings:"opsz" 36,"SOFT" 25}.doc-prose h3{font-size:1.08rem;margin:1.3em 0 .5em}.doc-prose p,.doc-prose ul,.doc-prose ol{color:var(--ink-2);margin:.65em 0;line-height:1.65}.doc-prose ul,.doc-prose ol{padding-left:1.35em}.doc-prose li{margin:.3em 0}.doc-prose a{color:var(--blueprint);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .14s ease}.doc-prose a:hover{color:var(--vermillion)}.doc-prose code{font-family:var(--font-mono);font-size:.88em;background:var(--paper-tint);border:1px solid var(--hairline);padding:1px 6px;border-radius:3px;color:var(--ink)}.doc-prose pre{background:var(--ink);color:var(--paper);padding:16px 18px;border-radius:var(--r-md);overflow-x:auto;font-size:.85rem;line-height:1.6;margin:1em 0}.doc-prose pre code{background:transparent;border:none;padding:0;color:inherit}.doc-prose hr{border:none;border-top:1px solid var(--hairline);margin:1.5em 0}.doc-hub-section{margin-bottom:var(--s-6)}.doc-hub-section h2{font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--vermillion);margin:0 0 var(--s-3)}.doc-hub-links{list-style:none;margin:0;padding:0;border-top:1px solid var(--hairline)}.doc-hub-links li{border-bottom:1px solid var(--hairline)}.doc-hub-links a{display:flex;align-items:center;justify-content:space-between;padding:16px 6px;font-family:var(--font-sans);font-size:1.02rem;font-weight:500;text-decoration:none;color:var(--ink);transition:background .16s ease,color .16s ease,padding .16s ease}.doc-hub-links a:after{content:"→";color:var(--ink-faint);font-family:var(--font-mono);transition:transform .22s ease,color .22s ease}.doc-hub-links a:hover{background:var(--vermillion-soft);color:var(--vermillion-deep);padding-left:14px;padding-right:14px}.doc-hub-links a:hover:after{color:var(--vermillion);transform:translate(4px)}.doc-hub-footer{font-family:var(--font-mono);font-size:.74rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin-top:var(--s-5)}.doc-hub-footer a{color:var(--vermillion);text-decoration:none}.doc-hub-footer a:hover{text-decoration:underline}.app-header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s-3);margin-bottom:var(--s-5);padding-bottom:var(--s-4);border-bottom:1px solid var(--hairline)}.app-header h1{font-family:var(--font-display);font-size:clamp(1.9rem,3.2vw,2.6rem);font-variation-settings:"opsz" 72,"SOFT" 30;letter-spacing:-.02em}.subtitle{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);margin-top:6px}.toolbar{display:flex;flex-wrap:wrap;gap:8px}.toolbar.grouped{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,1.25fr);gap:10px;background:var(--paper-bright);border:1px solid var(--hairline);border-radius:var(--r-md);padding:10px;margin-bottom:var(--s-4);width:100%;align-items:stretch}.toolbar-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 10px;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-sm);min-height:52px}.group-tag{font-family:var(--font-mono);font-size:.65rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);padding:4px 8px;background:var(--paper-bright);border:1px solid var(--hairline);border-radius:var(--r-sm);margin-right:4px}.toolbar-button{font-family:var(--font-sans);font-size:.85rem;font-weight:500;background:var(--paper-bright);color:var(--ink);border:1px solid var(--hairline-2);border-radius:6px;padding:7px 11px;min-height:32px;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .14s ease,box-shadow .14s ease,color .14s ease;white-space:nowrap;letter-spacing:-.005em}.toolbar-button:hover:not(:disabled){background:var(--paper-light);border-color:var(--ink);transform:translateY(-1px);box-shadow:0 4px 12px -6px #1b1b1f2e}.toolbar-button.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.toolbar-button.is-active:hover:not(:disabled){background:var(--ink);color:var(--paper)}.toolbar-button.primary{background:var(--vermillion);color:#fff;border-color:var(--vermillion-deep);font-weight:500;box-shadow:0 1px 0 var(--vermillion-deep),0 6px 16px -6px #d1441866}.toolbar-button.primary:hover:not(:disabled){background:var(--vermillion-deep);color:#fff}.toolbar-button.danger{background:var(--paper-bright);color:var(--danger);border-color:var(--danger)}.toolbar-button.danger:hover:not(:disabled){background:#fef2f2;color:var(--danger)}.toolbar-button.emergency{background:var(--vermillion-soft);border-color:var(--vermillion);color:var(--vermillion-deep);font-weight:600}.toolbar-button:disabled{opacity:.42;cursor:not-allowed;transform:none;box-shadow:none}.toolbar-button:focus-visible{outline:2px solid var(--vermillion);outline-offset:2px}.toolbar-button.run{min-width:160px}.run-controls{display:flex;gap:8px;flex-wrap:wrap}.workspace-layout{display:grid;grid-template-columns:1fr 360px;gap:var(--s-4);align-items:start}.side-stack{display:flex;flex-direction:column;gap:var(--s-4)}.workspace-card,.log-card{background:var(--paper-bright);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--s-4)}.workspace-card h2,.log-card h2{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 12px}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-3)}.terminal-card{height:400px;display:flex;flex-direction:column}.log-card pre,pre{font-family:var(--font-mono);font-size:.78rem;background:var(--ink);color:#ece8df;padding:14px 16px;border-radius:6px;flex:1;overflow:auto;margin:0;line-height:1.55;white-space:pre-wrap;border:1px solid #2a2a2f}.sim-caption{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 10px}.sim-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline-2);border-radius:4px;padding:2px}.sim-cell{aspect-ratio:1 / 1;background:var(--paper-bright)}.sim-cell.path{background:var(--blueprint-soft)}.sim-cell.robot{background:var(--vermillion);box-shadow:inset 0 0 0 2px var(--vermillion-deep)}.blockly-host{width:100%;height:clamp(540px,68vh,760px);background:var(--paper-bright);border:1px solid var(--hairline);border-radius:var(--r-sm);overflow:hidden}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero-headline,.hero-lede,.hero-actions{animation:fadeUp .62s cubic-bezier(.2,.7,.2,1) backwards}.hero-headline{animation-delay:40ms}.hero-lede{animation-delay:.18s}.hero-actions{animation-delay:.32s}@media (max-width: 1100px){.workspace-layout{grid-template-columns:1fr}.toolbar.grouped{grid-template-columns:1fr 1fr}.quickstart{grid-template-columns:1fr;gap:var(--s-5)}.pillars{grid-template-columns:1fr}.pillar{border-right:none;border-bottom:1px solid var(--hairline)}.pillar:last-child{border-bottom:none}.app-header{flex-direction:column;align-items:flex-start}}@media (max-width: 700px){.toolbar.grouped{grid-template-columns:1fr}.site-brand-meta{display:none}.site-nav{font-size:.68rem}.site-nav-github{margin-left:2px;padding:8px}.home-footer,.site-footer-inner{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.pillar-link{margin-top:auto;padding-top:var(--s-2);font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--vermillion);text-decoration:none;align-self:flex-start;transition:color .14s ease,transform .2s ease}.pillar-link:hover{color:var(--vermillion-deep);transform:translate(2px)}.pillar{min-height:220px}.curriculum-page{display:flex;flex-direction:column}.curriculum-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--ink)}.lesson-card{border-bottom:1px solid var(--hairline)}.lesson-card:last-child{border-bottom:1px solid var(--ink)}.lesson-card-link{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(20px,4vw,48px);padding:clamp(24px,4vw,40px) clamp(4px,2vw,16px);text-decoration:none;color:var(--ink);transition:background .2s ease,padding .22s ease}.lesson-card-link:hover{background:var(--paper-light);padding-left:clamp(12px,2vw,24px);padding-right:clamp(12px,2vw,24px)}.lesson-card-num{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.5rem);font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;font-style:italic;color:var(--vermillion);line-height:1;letter-spacing:-.02em}.lesson-card-body{display:flex;flex-direction:column;gap:8px;min-width:0}.lesson-card-title{font-family:var(--font-display);font-size:clamp(1.4rem,2.4vw,1.85rem);font-weight:400;font-variation-settings:"opsz" 72,"SOFT" 25;letter-spacing:-.02em;color:var(--ink);margin:0}.lesson-card-tagline{font-size:1rem;color:var(--ink-2);line-height:1.4;margin:0;max-width:50ch}.lesson-card-meta{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.lesson-card-concepts{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.lesson-card-concepts li{font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding:3px 8px;background:var(--paper-tint);border:1px solid var(--hairline);border-radius:999px}.lesson-card-arrow{font-family:var(--font-mono);font-size:1.5rem;color:var(--ink-faint);transition:transform .22s ease,color .22s ease}.lesson-card-link:hover .lesson-card-arrow{color:var(--vermillion);transform:translate(6px)}.curriculum-footnote{font-family:var(--font-mono);font-size:.74rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--hairline)}.lesson-back,.page-back{font-family:var(--font-mono);font-size:.74rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ink-muted);margin-bottom:var(--s-4);display:inline-block;transition:color .14s ease,transform .2s ease}.lesson-back:hover,.page-back:hover{color:var(--vermillion);transform:translate(-2px)}.lesson-hero{padding-bottom:var(--s-5);border-bottom:1px solid var(--ink);margin-bottom:var(--s-6)}.lesson-eyebrow{display:inline-block;font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--vermillion);margin-bottom:var(--s-3)}.lesson-title{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.5rem);font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 25;letter-spacing:-.025em;line-height:1.02;color:var(--ink);margin:0 0 var(--s-2)}.lesson-tagline{font-family:var(--font-display);font-size:clamp(1.1rem,1.8vw,1.4rem);font-style:italic;font-variation-settings:"opsz" 36,"SOFT" 100,"WONK" 0;color:var(--ink-2);margin:0 0 var(--s-5);max-width:56ch;line-height:1.3}.lesson-meta{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--hairline);padding-top:var(--s-3)}.lesson-meta li{display:flex;flex-direction:column;gap:4px;padding:0 var(--s-5) 0 0;margin-right:var(--s-5);border-right:1px solid var(--hairline)}.lesson-meta li:last-child{border-right:none;margin-right:0;padding-right:0}.lesson-meta-label{font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted)}.lesson-meta-value{font-family:var(--font-sans);font-size:.95rem;color:var(--ink)}.lesson-section{margin-bottom:var(--s-7)}.lesson-section-title{font-family:var(--font-mono);font-size:.8rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--vermillion);margin:0 0 var(--s-3);padding-bottom:var(--s-2);border-bottom:1px solid var(--hairline)}.lesson-section-intro{font-size:1rem;color:var(--ink-2);margin:0 0 var(--s-3)}.lesson-list{list-style:none;margin:0;padding:0}.lesson-list li{position:relative;padding:10px 0 10px 24px;border-bottom:1px dashed var(--hairline);color:var(--ink-2);font-size:1rem;line-height:1.55}.lesson-list li:last-child{border-bottom:none}.lesson-list li:before{content:"";position:absolute;left:4px;top:19px;width:8px;height:1px;background:var(--vermillion)}.lesson-vocab{margin:0;padding:0;display:flex;flex-direction:column}.lesson-vocab-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3fr);gap:var(--s-4);padding:14px 0;border-bottom:1px solid var(--hairline)}.lesson-vocab-row:last-child{border-bottom:none}.lesson-vocab dt{font-family:var(--font-display);font-size:1.05rem;font-weight:500;font-variation-settings:"opsz" 36,"SOFT" 50,"WONK" 1;font-style:italic;color:var(--vermillion-deep)}.lesson-vocab dd{margin:0;font-size:.98rem;color:var(--ink-2);line-height:1.5}.lesson-flow{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-4)}.lesson-phase{background:var(--paper-bright);border:1px solid var(--hairline);border-left:3px solid var(--vermillion);border-radius:var(--r-md);padding:var(--s-5)}.lesson-phase-head{display:flex;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-2);flex-wrap:wrap}.lesson-phase-step{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.14em;color:var(--ink-faint)}.lesson-phase-label{font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--vermillion)}.lesson-phase-time{font-family:var(--font-mono);font-size:.74rem;font-weight:500;letter-spacing:.06em;color:var(--ink-muted);margin-left:auto}.lesson-phase-title{font-family:var(--font-display);font-size:1.35rem;font-weight:400;font-variation-settings:"opsz" 36,"SOFT" 25;letter-spacing:-.015em;color:var(--ink);margin:0 0 var(--s-3);line-height:1.2}.lesson-prose{color:var(--ink-2);font-size:1rem;line-height:1.6}.lesson-prose p{margin:0 0 .7em}.lesson-prose p:last-child{margin-bottom:0}.lesson-prose ul,.lesson-prose ol{padding-left:1.3em;margin:.6em 0}.lesson-prose ul li,.lesson-prose ol li{margin:.3em 0}.lesson-prose strong{font-weight:600;color:var(--ink)}.lesson-prose em{font-style:italic;font-variation-settings:"opsz" 14,"SOFT" 100,"WONK" 0;color:var(--ink)}.lesson-prose code{font-family:var(--font-mono);font-size:.88em;background:var(--paper-tint);border:1px solid var(--hairline);padding:1px 6px;border-radius:3px;color:var(--ink)}.lesson-pager{margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid var(--hairline);display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}.lesson-pager-link{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);padding:var(--s-3) var(--s-4);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--paper-bright);transition:border-color .16s ease,background .16s ease,transform .2s ease}.lesson-pager-link:hover{border-color:var(--ink);transform:translateY(-1px)}.lesson-pager-next{text-align:right;align-items:flex-end}.lesson-pager-direction{font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--vermillion)}.lesson-pager-title{font-family:var(--font-display);font-size:1.05rem;font-weight:400;font-variation-settings:"opsz" 36,"SOFT" 25;color:var(--ink)}.parts-summary{background:var(--paper-bright);border:1px solid var(--ink);border-radius:var(--r-md);padding:var(--s-5);margin-bottom:var(--s-6)}.parts-summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap}.parts-summary-label{font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted)}.parts-summary-total{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-.02em;color:var(--vermillion);line-height:1}.parts-summary-note{margin:var(--s-3) 0 0;font-size:.95rem;color:var(--ink-2);max-width:60ch;line-height:1.55}.parts-category{margin-bottom:var(--s-6)}.parts-category-head{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:var(--s-3);padding-bottom:var(--s-2);margin-bottom:var(--s-3);border-bottom:1px solid var(--ink)}.parts-category-title{font-family:var(--font-display);font-size:1.45rem;font-weight:400;font-variation-settings:"opsz" 72,"SOFT" 30;letter-spacing:-.015em;color:var(--ink);margin:0}.parts-category-blurb{font-size:.95rem;color:var(--ink-muted);font-style:italic}.parts-category-subtotal{font-family:var(--font-mono);font-size:.9rem;font-weight:600;letter-spacing:.06em;color:var(--ink)}.parts-list{list-style:none;margin:0;padding:0}.parts-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,auto);gap:var(--s-5);padding:var(--s-4) 0;border-bottom:1px solid var(--hairline);align-items:start}.parts-row:last-child{border-bottom:none}.parts-row-main{min-width:0}.parts-row-name{font-family:var(--font-display);font-size:1.15rem;font-weight:500;font-variation-settings:"opsz" 36,"SOFT" 25;letter-spacing:-.01em;color:var(--ink);margin:0 0 4px}.parts-row-desc{font-size:.95rem;color:var(--ink-2);margin:0;line-height:1.5;max-width:56ch}.parts-row-notes{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-muted);margin:6px 0 0;line-height:1.5;max-width:56ch}.parts-row-numbers{display:grid;grid-template-columns:repeat(3,minmax(72px,auto));gap:var(--s-4);justify-content:end}.parts-row-qty,.parts-row-price,.parts-row-subtotal{display:flex;flex-direction:column;gap:4px;text-align:right}.parts-row-subtotal .parts-num-value{color:var(--vermillion)}.parts-num-label{font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted)}.parts-num-value{font-family:var(--font-mono);font-size:1rem;font-weight:500;color:var(--ink)}.parts-tools{margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid var(--hairline)}.parts-tools-list{list-style:none;margin:0;padding:0}.parts-tool-row{display:grid;grid-template-columns:minmax(160px,1fr) 3fr;gap:var(--s-4);padding:var(--s-3) 0;border-bottom:1px solid var(--hairline)}.parts-tool-row:last-child{border-bottom:none}.parts-tool-name{font-family:var(--font-display);font-size:1.05rem;font-weight:500;color:var(--ink)}.parts-tool-notes{font-size:.95rem;color:var(--ink-2);line-height:1.5}.parts-sourcing{margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid var(--hairline);max-width:64ch}.parts-sourcing h2{font-family:var(--font-display);font-size:1.35rem;font-weight:400;font-variation-settings:"opsz" 36,"SOFT" 25;margin:0 0 var(--s-3);color:var(--ink);border:none;padding:0;text-transform:none;letter-spacing:-.015em}.parts-sourcing p{color:var(--ink-2);margin:0 0 var(--s-3);line-height:1.6;font-size:1rem}.parts-sourcing p:last-child{margin-bottom:0}@media (max-width: 900px){.lesson-card-link{grid-template-columns:auto 1fr}.lesson-card-arrow{display:none}.parts-category-head{grid-template-columns:1fr;gap:6px}.parts-category-subtotal{margin-top:4px}.parts-row{grid-template-columns:1fr;gap:var(--s-3)}.parts-row-numbers{justify-content:flex-start;grid-template-columns:repeat(3,minmax(0,1fr))}.parts-row-qty,.parts-row-price,.parts-row-subtotal{text-align:left}.lesson-pager{grid-template-columns:1fr}.lesson-pager-next{text-align:left;align-items:flex-start}.lesson-meta li{padding-right:var(--s-3);margin-right:var(--s-3)}.lesson-vocab-row,.parts-tool-row{grid-template-columns:1fr;gap:4px}}
