*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.min-h-11{min-height:2.75rem}.min-h-9{min-height:2.25rem}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-\[var\(--code-border\)\]{border-color:var(--code-border)}.p-4{padding:1rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-xs{font-size:.75rem;line-height:1rem}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-6{line-height:1.5rem}.tracking-wider{letter-spacing:.05em}.text-\[var\(--code-muted\)\]{color:var(--code-muted)}.text-\[var\(--muted\)\]{color:var(--muted)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--p-paper: oklch(97.4% .018 107);--p-paper-deep: oklch(94.5% .025 107);--p-ink: oklch(19% .015 125);--p-ink-soft: oklch(34% .018 125);--p-yellow: oklch(91% .2 105);--p-blue: oklch(87% .075 237);--p-sage: oklch(87.5% .035 120);--p-orange: oklch(69% .16 48);--p-red: oklch(56% .19 28);--p-green: oklch(51% .1 145);--bg: var(--p-paper);--bg-deep: var(--p-paper-deep);--surface: oklch(98.5% .01 107);--surface-2: var(--p-sage);--ink: var(--p-ink);--muted: oklch(43% .02 125);--line: oklch(79% .025 120);--line-strong: var(--p-ink);--accent: var(--p-yellow);--accent-soft: oklch(95% .08 105);--blue: var(--p-blue);--blue-soft: oklch(94% .035 237);--success: var(--p-green);--danger: var(--p-red);--code-bg: oklch(21% .018 125);--code-ink: oklch(94% .02 107);--code-muted: oklch(75% .025 107);--code-border: oklch(35% .02 125);--button-bg: var(--accent);--button-ink: var(--p-ink);--header-bg: color-mix(in oklch, var(--bg) 94%, transparent);--focus: var(--p-orange);color-scheme:light}.dark{--bg: oklch(20% .015 125);--bg-deep: oklch(17% .015 125);--surface: oklch(24% .018 125);--surface-2: oklch(29% .025 125);--ink: oklch(94% .018 107);--muted: oklch(73% .025 107);--line: oklch(39% .025 125);--line-strong: oklch(78% .03 107);--accent: oklch(91% .2 105);--accent-soft: oklch(31% .055 105);--blue: oklch(81% .09 237);--blue-soft: oklch(28% .04 237);--success: oklch(76% .12 145);--danger: oklch(70% .16 28);--code-bg: oklch(15% .012 125);--code-ink: oklch(94% .02 107);--code-muted: oklch(72% .025 107);--code-border: oklch(35% .02 125);--button-ink: oklch(19% .015 125);--focus: var(--accent);color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;min-width:320px;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif;font-size:16px;line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}button:not(:disabled),summary,select{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}img,svg{display:block;max-width:100%}::-moz-selection{background:var(--accent);color:var(--button-ink)}::selection{background:var(--accent);color:var(--button-ink)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}code,kbd,.section-kicker,.eyebrow,.resource-index{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.site-shell{min-height:100dvh;overflow:clip}.page-width{width:min(1420px,calc(100% - 64px));margin-inline:auto}.section-space{padding-top:104px;padding-bottom:104px}.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:var(--accent);color:var(--button-ink);padding:12px 20px}.skip-link:focus{top:12px}.section-kicker{display:inline-block;font-size:12px;line-height:1.4;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line-strong);padding:10px 20px;font-size:14px;font-weight:750;transition:transform .18s ease-out,background-color .18s ease-out,color .18s ease-out}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.button-primary{background:var(--button-bg);color:var(--button-ink);border-radius:999px;padding-inline:24px}.button-primary:hover,.button-dark{background:var(--ink);color:var(--bg)}.button-dark:hover{background:var(--accent);color:var(--button-ink)}.button-outline{background:transparent;color:var(--ink)}.button-outline:hover{background:var(--surface-2)}.text-link{display:inline-flex;min-height:44px;align-items:center;gap:8px;font-size:14px;font-weight:700;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:5px}.text-link:hover{text-decoration-style:solid}.icon-button{min-width:44px;min-height:44px;border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background-color .18s ease-out}.icon-button:hover{background:var(--surface-2)}.progress-track{height:6px;background:var(--line);overflow:hidden}.progress-track i{display:block;height:100%;background:var(--accent);transition:width .25s ease-out}.empty-state{padding:32px;border:1px dashed var(--line);color:var(--muted);text-align:center}.site-header{position:sticky;top:0;z-index:40;min-height:78px;display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;padding-inline:32px;border-bottom:1px solid var(--line-strong);background:var(--header-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:center;gap:12px;width:-moz-fit-content;width:fit-content}.brand img{width:36px;height:36px;border-radius:8px;object-fit:contain;flex:0 0 auto}.brand svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:2;flex:0 0 auto}.brand svg rect{fill:var(--accent);stroke-width:1.5}.brand>span{display:flex;flex-direction:column;line-height:1.2}.brand strong{font-size:16px;letter-spacing:-.02em}.brand small{margin-top:5px;font-family:SFMono-Regular,Consolas,monospace;font-size:8px;letter-spacing:.08em;color:var(--muted)}.desktop-nav{display:flex;align-items:stretch}.nav-link{min-width:100px;padding:13px 20px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-inline-start:1px solid transparent;position:relative}.nav-link:last-child{border-inline-end:1px solid transparent}.nav-link span{font-size:14px;font-weight:700}.nav-link small{font-family:SFMono-Regular,Consolas,monospace;font-size:8px;letter-spacing:.12em;color:var(--muted)}.nav-link:hover{background:var(--surface-2)}.nav-link.active{background:var(--accent);color:var(--button-ink);border-color:var(--line-strong)}.nav-link.active small{color:var(--button-ink)}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.search-trigger{width:auto;padding-inline:10px;color:var(--muted);font-size:12px}.search-trigger kbd{border:1px solid var(--line);padding:2px 6px;font-size:10px}.mobile-menu-button{display:none}.mobile-nav{position:fixed;inset:68px 0 auto;z-index:39;padding:16px;border-bottom:1px solid var(--line-strong);background:var(--bg)}.mobile-nav>a:not(.button){min-height:58px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.mobile-nav small{font-family:monospace;color:var(--muted)}.mobile-nav .button{margin-top:16px;width:100%}.modal-backdrop{position:fixed;inset:0;z-index:80;display:flex;justify-content:center;align-items:flex-start;padding:12vh 20px 20px;background:color-mix(in oklch,var(--p-ink) 70%,transparent)}.search-modal{width:min(680px,100%);max-height:75dvh;overflow:auto;background:var(--bg);border:1px solid var(--line-strong)}.search-input-row{min-height:64px;display:flex;align-items:center;gap:12px;padding:8px 12px 8px 20px;border-bottom:1px solid var(--line-strong)}.search-input-row input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:17px}.search-caption{margin:0;padding:14px 20px 8px;font-size:12px;color:var(--muted)}.search-results{padding-bottom:12px}.search-results>button{width:100%;min-height:70px;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px 20px;border:0;background:transparent;text-align:left}.search-results>button:hover{background:var(--accent-soft)}.search-results>button>span{display:flex;flex-direction:column;min-width:0}.search-results strong{font-size:14px}.search-results small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.home-hero{min-height:690px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(400px,.85fr);gap:48px;align-items:center;padding-block:56px}.eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:28px;font-size:11px;letter-spacing:.08em}.eyebrow span{background:var(--ink);color:var(--bg);padding:6px 10px}.eyebrow i{font-style:normal;font-family:inherit;color:var(--muted)}.hero-copy h1{margin-bottom:28px;font-size:clamp(48px,5.3vw,82px);line-height:1.08;letter-spacing:-.065em;font-weight:850}.hero-copy h1 span{position:relative;z-index:0}.hero-copy h1 span:after{content:"";position:absolute;z-index:-1;height:.24em;left:-2%;right:-3%;bottom:.06em;background:var(--accent)}.hero-lead{max-width:680px;margin-bottom:28px;font-size:18px;line-height:1.8;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:24px;margin-bottom:32px}.hero-anchor{border:0;padding:0;background:transparent;color:var(--ink)}.hero-meta{display:flex;flex-wrap:wrap;gap:12px 24px;color:var(--muted);font-size:12px}.hero-meta span{display:inline-flex;align-items:center;gap:7px}.hero-visual{border:1px solid var(--line-strong);background:var(--blue)}.detection-art{width:100%;height:auto;color:var(--p-ink)}.visual-caption{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-top:1px solid var(--p-ink);color:var(--p-ink)}.visual-caption span{font-weight:750}.visual-caption small{font-family:monospace;font-size:10px}.fact-strip{border-block:1px solid var(--line-strong);background:var(--surface-2)}.fact-strip>div{display:grid;grid-template-columns:repeat(4,1fr)}.fact-strip>div>div{min-height:90px;display:flex;align-items:center;gap:16px;padding:20px 28px;border-right:1px solid var(--line)}.fact-strip>div>div:last-child{border-right:0}.fact-strip strong{font-family:monospace;font-size:32px}.fact-strip span{font-size:14px;font-weight:650}.section-heading{margin-bottom:44px}.section-heading h2{margin:10px 0 0;font-size:clamp(32px,3.4vw,52px);line-height:1.15;letter-spacing:-.04em}.split-heading{display:grid;grid-template-columns:1fr minmax(300px,480px);gap:40px;align-items:end}.split-heading>p{margin:0;color:var(--muted);line-height:1.8}.curriculum-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:start}.day-list{border-top:1px solid var(--line-strong)}.day-row{display:grid;grid-template-columns:74px 1fr 120px;gap:22px;align-items:center;min-height:166px;padding:24px 12px;border-bottom:1px solid var(--line-strong);transition:background-color .18s ease-out}.day-row:hover{background:var(--accent-soft)}.day-number{display:flex;flex-direction:column;align-items:flex-start;line-height:1}.day-number small{font-family:monospace;font-size:10px;letter-spacing:.1em}.day-number strong{font-family:Arial Narrow,PingFang SC,sans-serif;font-size:48px;letter-spacing:-.06em}.day-title-line{display:flex;align-items:center;gap:12px}.day-row h3{margin:0 0 8px;font-size:21px}.day-row p{margin:0 0 12px;color:var(--muted);font-size:14px}.done-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--success)}.keyword-line{display:flex;flex-wrap:wrap;gap:6px}.keyword-line span{border:1px solid var(--line);padding:2px 7px;font-family:monospace;font-size:10px;color:var(--muted)}.day-row-status{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;font-size:11px;color:var(--muted)}.day-row-status .mini-progress{grid-column:1;height:3px;background:var(--line)}.day-row-status .mini-progress i{display:block;height:100%;background:var(--accent)}.day-row-status>svg{grid-column:2;grid-row:1 / 3}.learning-sidebar{position:sticky;top:102px;padding:28px;border:1px solid var(--line-strong);background:var(--blue);color:var(--p-ink)}.learning-sidebar .section-kicker{color:var(--p-ink-soft)}.learning-sidebar h3{margin:8px 0 22px;font-size:25px}.big-progress{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}.big-progress strong{font-family:monospace;font-size:64px;line-height:1;letter-spacing:-.08em}.big-progress sup{font-size:22px}.big-progress span{font-size:11px}.learning-sidebar .progress-track{background:color-mix(in oklch,var(--p-ink) 20%,transparent)}.learning-sidebar .progress-track i{background:var(--p-ink)}.learning-sidebar>p{margin:18px 0;font-size:13px;line-height:1.7}.learning-sidebar .button{width:100%;background:var(--p-ink);color:var(--p-paper)}.sidebar-rule{height:1px;background:var(--p-ink);margin-block:26px}.learning-sidebar h4{margin-bottom:14px}.learning-sidebar ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.learning-sidebar li{display:flex;align-items:center;gap:10px;font-size:13px}.lab-promo{background:var(--p-ink);color:var(--p-paper)}.lab-promo-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.lab-promo .section-kicker{color:#b2b2a1}.lab-promo h2{margin:12px 0 22px;font-size:clamp(36px,4vw,60px);line-height:1.14;letter-spacing:-.04em}.lab-promo p{max-width:560px;color:#b9b9a7;line-height:1.85}.lab-promo .button{margin-top:18px}.nms-mini-demo{border:1px solid oklch(63% .03 125)}.demo-toolbar,.demo-result{display:flex;justify-content:space-between;gap:16px;padding:14px 18px;font-family:monospace;font-size:11px}.demo-toolbar{border-bottom:1px solid oklch(45% .03 125)}.demo-scene{height:340px;position:relative;overflow:hidden;background-image:linear-gradient(oklch(40% .02 125) 1px,transparent 1px),linear-gradient(90deg,oklch(40% .02 125) 1px,transparent 1px);background-size:44px 44px}.demo-object{position:absolute;width:130px;height:210px;left:44%;top:18%;border-radius:50% 50% 20% 20%;background:#6d7562}.demo-scene .box{position:absolute;display:block;border:2px solid var(--accent);color:var(--accent);padding:4px;font-family:monospace;font-size:12px;font-style:normal}.box-a{inset:12% 29% 10% 36%}.box-b{inset:15% 26% 8% 39%;opacity:.55}.box-c{inset:10% 34% 17% 32%;border-style:dashed!important;opacity:.4}.demo-result{border-top:1px solid oklch(45% .03 125)}.demo-result strong{color:var(--accent)}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-strong)}.method-grid article{padding:32px;border-right:1px solid var(--line)}.method-grid article:last-child{border-right:0}.method-grid article>span{font-family:monospace;font-size:11px;color:var(--muted)}.method-grid h3{margin:20px 0 12px;font-size:24px}.method-grid p{margin:0;color:var(--muted)}.site-footer{margin-top:104px;border-top:1px solid var(--line-strong);background:var(--surface-2)}.footer-main{width:min(1420px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:64px;padding-block:56px}.footer-main>div:first-child p{margin:22px 0 0;color:var(--muted);font-size:14px}.footer-progress{display:flex;flex-direction:column;gap:12px}.footer-progress>span,.footer-links>span{font-size:12px;font-weight:700}.footer-progress>strong{font-family:monospace;font-size:36px}.footer-progress a{display:inline-flex;align-items:center;gap:6px;font-size:13px;text-decoration:underline}.footer-links{display:flex;flex-direction:column;gap:10px}.footer-links a{font-size:13px;color:var(--muted)}.footer-links a:hover{color:var(--ink);text-decoration:underline}.footer-bottom{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 32px;border-top:1px solid var(--line);font-family:monospace;font-size:10px;color:var(--muted)}.footer-bottom span:last-child{display:flex;align-items:center;gap:6px}.subpage{padding-top:64px}.subpage-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:72px;align-items:end;padding-bottom:56px;border-bottom:1px solid var(--line-strong)}.subpage-hero h1{margin:14px 0 0;max-width:850px;font-size:clamp(42px,5vw,72px);line-height:1.12;letter-spacing:-.055em}.subpage-intro{padding-bottom:6px}.subpage-intro>p{margin-bottom:22px;color:var(--muted);font-size:16px;line-height:1.9}.audience-tags{display:flex;flex-wrap:wrap;gap:8px}.audience-tags span{min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border:1px solid var(--line);background:var(--surface);font-size:12px}.learning-contract{display:flex;align-items:flex-start;gap:18px;margin:32px 0 48px;padding:22px 26px;border-left:4px solid var(--accent);background:var(--accent-soft)}.learning-contract svg{flex:0 0 auto;margin-top:3px}.learning-contract strong{display:block;margin-bottom:4px}.learning-contract p{margin:0;color:var(--muted);font-size:14px}.course-catalog{border-top:1px solid var(--line-strong)}.catalog-day{border-bottom:1px solid var(--line-strong)}.catalog-day summary{min-height:160px;display:grid;grid-template-columns:86px 1fr auto;gap:24px;align-items:center;padding:26px 18px;list-style:none;transition:background-color .18s ease-out}.catalog-day summary::-webkit-details-marker{display:none}.catalog-day summary:hover{background:var(--accent-soft)}.catalog-day summary>svg{transition:transform .2s ease-out}.catalog-day[open] summary>svg{transform:rotate(180deg)}.catalog-number{font-family:Arial Narrow,PingFang SC,sans-serif;font-size:54px;font-weight:800;line-height:1;letter-spacing:-.07em}.catalog-day summary span{font-family:monospace;font-size:11px;letter-spacing:.06em;color:var(--muted)}.catalog-day summary h2{margin:7px 0;font-size:26px}.catalog-day summary p{margin:0;color:var(--muted);font-size:14px}.catalog-content{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:40px;padding:0 18px 34px 128px}.catalog-outcomes{padding:24px;background:var(--blue-soft);border:1px solid var(--line)}.catalog-outcomes>strong{font-size:14px}.catalog-outcomes ul{display:grid;gap:10px;margin:16px 0 24px;padding:0;list-style:none}.catalog-outcomes li{display:flex;align-items:flex-start;gap:8px;font-size:13px}.catalog-outcomes li svg{flex:0 0 auto;margin-top:4px;color:var(--success)}.catalog-outcomes .button{width:100%}.session-list{border-top:1px solid var(--line)}.session-list>a{display:block;padding:18px 12px;border-bottom:1px solid var(--line);transition:background-color .18s ease-out,padding-left .18s ease-out}.session-list>a:hover{padding-left:20px;background:var(--accent-soft)}.session-list>a>span{font-size:11px;color:var(--muted)}.session-list h3{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:17px}.session-list h3 svg{color:var(--success)}.session-list p{margin:0 0 8px;color:var(--muted);font-size:12px}.session-list small{display:flex;align-items:center;gap:6px;color:var(--muted)}.lesson-page{padding-top:36px}.breadcrumbs{display:flex;align-items:center;gap:8px;margin-bottom:34px;color:var(--muted);font-size:12px}.breadcrumbs a:hover{color:var(--ink);text-decoration:underline}.lesson-hero{display:grid;grid-template-columns:130px 1fr;gap:30px;align-items:center;padding-bottom:34px}.lesson-day-mark{height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line-strong);background:var(--accent);color:var(--button-ink);line-height:1}.lesson-day-mark small{font-family:monospace;font-size:11px;letter-spacing:.16em}.lesson-day-mark strong{margin-top:10px;font-family:Arial Narrow,sans-serif;font-size:66px;letter-spacing:-.08em}.lesson-hero h1{margin:8px 0 10px;font-size:clamp(36px,4vw,58px);line-height:1.12;letter-spacing:-.04em}.lesson-hero p{max-width:900px;margin:0;color:var(--muted);font-size:16px}.lesson-outcomes{display:flex;flex-wrap:wrap;gap:8px;padding:18px 0 30px 160px}.lesson-outcomes span{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border:1px solid var(--line);background:var(--surface);font-size:12px}.lesson-outcomes svg{color:var(--success)}.lesson-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:54px;align-items:start;padding-top:38px;border-top:1px solid var(--line-strong)}.lesson-toc{position:sticky;top:102px}.lesson-toc nav{margin-top:14px;border-top:1px solid var(--line-strong)}.lesson-toc nav a{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;min-height:66px;padding:10px 8px;border-bottom:1px solid var(--line);font-size:12px}.lesson-toc nav a>span{font-family:monospace;font-size:12px;color:var(--muted)}.lesson-toc nav a small{display:block;margin-top:4px;font-family:monospace;font-size:9px;color:var(--muted)}.lesson-toc nav a:hover{background:var(--accent-soft)}.lesson-toc nav a.active{background:var(--accent);color:var(--button-ink)}.lesson-toc nav a.active>span,.lesson-toc nav a.active small{color:var(--button-ink)}.toc-note{display:flex;gap:10px;margin-top:22px;padding:16px;background:var(--blue-soft);color:var(--muted)}.toc-note svg{flex:0 0 auto;margin-top:3px}.toc-note p{margin:0;font-size:11px}.lesson-content{min-width:0;max-width:1040px}.lesson-progress-head{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-bottom:32px;font-size:12px;color:var(--muted)}.lesson-progress-head .progress-track{grid-column:1 / -1}.session{padding:36px 0 46px;border-top:1px solid var(--line-strong);scroll-margin-top:98px}.session:first-of-type{border-top:0;padding-top:0}.session-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:18px}.session-header>div>span{font-size:12px;font-weight:700;color:var(--muted)}.session-header h2{margin:8px 0 0;font-size:clamp(28px,3vw,40px);line-height:1.25;letter-spacing:-.025em}.session-header>small{display:flex;align-items:center;gap:6px;flex:0 0 auto;padding:5px 10px;border:1px solid var(--line);font-size:11px;color:var(--muted)}.session-outcome{margin-bottom:30px;padding:14px 18px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--muted);font-size:14px}.session-outcome strong{color:var(--ink)}.lesson-block{margin:28px 0}.lesson-block h3,.lesson-note h3{margin-bottom:12px;font-size:21px;line-height:1.4}.lesson-block>p{color:var(--ink);line-height:1.95}.lesson-block>p+p{margin-top:14px}.lesson-bullets{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.lesson-bullets li{position:relative;padding:13px 12px 13px 30px;border-bottom:1px solid var(--line);line-height:1.8}.lesson-bullets li:before{content:"";position:absolute;top:25px;left:10px;width:6px;height:6px;background:var(--accent);border:1px solid var(--line-strong)}.lesson-steps{display:grid;gap:0;margin:0;padding:0;list-style:none;counter-reset:item}.lesson-steps li{display:grid;grid-template-columns:38px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.lesson-steps li>span{width:32px;height:32px;display:grid;place-items:center;background:var(--ink);color:var(--bg);font-family:monospace;font-size:12px}.lesson-steps p{margin:2px 0 0;line-height:1.8}.formula-block{margin:30px 0;padding:26px;border:1px solid var(--line-strong);background:var(--blue-soft)}.formula-block>span{display:block;font-size:12px;font-weight:700;color:var(--muted)}.formula-block>strong{display:block;margin:18px 0;overflow-x:auto;font-family:SFMono-Regular,Consolas,monospace;font-size:clamp(17px,2.2vw,25px);line-height:1.6;white-space:nowrap}.formula-block p{margin:0;color:var(--muted);font-size:14px}.code-panel{margin:24px 0!important;border-radius:0!important;background:var(--code-bg);color:var(--code-ink)}.code-panel figcaption{background:color-mix(in oklch,var(--code-bg) 90%,white)}.code-panel pre{max-width:100%;margin:0;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.code-panel code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--line-strong)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{min-width:120px;padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.7}th{background:var(--surface-2);font-size:12px;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--accent-soft)}.lesson-note{display:flex;gap:14px;margin:28px 0;padding:20px 22px;border:1px solid var(--line);background:var(--blue-soft)}.lesson-note.orange{background:var(--accent-soft)}.lesson-note.green{background:color-mix(in oklch,var(--success) 10%,var(--surface))}.lesson-note>svg{flex:0 0 auto;margin-top:3px}.lesson-note h3{margin-bottom:6px;font-size:17px}.lesson-note p{margin:0;color:var(--muted);font-size:14px;line-height:1.85}.practice-list{margin-top:32px;padding:24px;border:1px solid var(--line-strong)}.practice-list h3{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:19px}.practice-list ul{margin:0;padding-left:22px}.practice-list li{padding:6px 0 6px 4px;line-height:1.75}.practice-list li::marker{color:var(--success)}.challenge-box{display:grid;grid-template-columns:110px 1fr;gap:20px;margin:22px 0;padding:20px 22px;background:var(--surface-2)}.challenge-box>span{font-family:monospace;font-size:11px;font-weight:700;letter-spacing:.06em}.challenge-box p{margin:0;font-size:14px}.complete-button{width:100%;min-height:50px;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line-strong);background:transparent;font-size:14px;font-weight:700}.complete-button:hover{background:var(--accent-soft)}.complete-button.completed{background:var(--accent);color:var(--button-ink)}.quiz-section{margin-top:24px;padding:36px;border:1px solid var(--line-strong);background:var(--surface)}.quiz-section>h2,.notes-section h2{margin:8px 0 10px;font-size:30px}.quiz-section>p{color:var(--muted);font-size:13px}.quiz-question{margin:28px 0 0;padding:0;border:0}.quiz-question legend{width:100%;margin-bottom:14px;font-weight:750;line-height:1.7}.quiz-question>label{min-height:50px;display:flex;align-items:center;gap:11px;margin-top:8px;padding:10px 14px;border:1px solid var(--line);cursor:pointer;font-size:14px}.quiz-question>label:hover{background:var(--accent-soft)}.quiz-question>label.chosen{border-color:var(--line-strong);background:var(--accent-soft)}.quiz-question>label.correct{border-color:var(--success);background:color-mix(in oklch,var(--success) 12%,var(--surface))}.quiz-question>label.wrong{border-color:var(--danger);background:color-mix(in oklch,var(--danger) 9%,var(--surface))}.quiz-question input{width:17px;height:17px;flex:0 0 auto;accent-color:var(--p-ink)}.quiz-question label>span{font-family:monospace;font-size:12px;color:var(--muted)}.quiz-explanation{margin:12px 0 0;padding:14px 16px;border-left:3px solid var(--blue);background:var(--blue-soft);color:var(--muted);font-size:13px}.quiz-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.quiz-actions strong{font-size:14px}.notes-section{margin-top:36px;padding:32px 0;border-block:1px solid var(--line-strong)}.notes-section textarea{width:100%;resize:vertical;margin-top:14px;padding:16px;border:1px solid var(--line-strong);border-radius:0;background:var(--surface);color:var(--ink);line-height:1.8}.notes-section>div:last-child{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:12px}.notes-section small{color:var(--muted)}.lesson-pagination{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:36px}.lesson-pagination>a{min-height:86px;display:flex;align-items:center;gap:14px;padding:16px 20px;border:1px solid var(--line-strong);font-size:14px;font-weight:700}.lesson-pagination>a:last-child{justify-content:flex-end;text-align:right}.lesson-pagination>a:hover{background:var(--accent);color:var(--button-ink)}.lesson-pagination small{display:block;margin-bottom:3px;color:var(--muted);font-size:10px;font-weight:500}.lesson-pagination>a:hover small{color:var(--button-ink)}.lab-tabs{display:flex;margin:34px 0;border:1px solid var(--line-strong);overflow-x:auto}.lab-tabs button{min-height:54px;flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:0;border-right:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:700}.lab-tabs button:last-child{border-right:0}.lab-tabs button:hover{background:var(--accent-soft)}.lab-tabs button.active{background:var(--accent);color:var(--button-ink)}.lab-workspace{display:grid;grid-template-columns:330px minmax(0,1fr);border:1px solid var(--line-strong)}.lab-controls{padding:26px;border-right:1px solid var(--line-strong);background:var(--surface)}.lab-control-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:monospace;font-size:10px;color:var(--muted)}.lab-control-head button{min-height:40px;display:flex;align-items:center;gap:6px;border:0;background:transparent;font-size:12px}.lab-controls h2{margin:16px 0 10px;font-size:26px}.lab-controls>p{margin-bottom:28px;color:var(--muted);font-size:13px}.range-label{display:flex;justify-content:space-between;gap:12px;margin-top:22px;font-size:13px}.range-label strong{font-family:monospace;font-size:16px}.lab-controls input[type=range]{width:100%;height:28px;margin:8px 0 0;accent-color:var(--p-ink);cursor:pointer}.range-scale{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.lab-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin-top:28px;border-block:1px solid var(--line)}.lab-metrics>div{padding:14px 8px;border-right:1px solid var(--line);text-align:center}.lab-metrics>div:last-child{border-right:0}.lab-metrics span{display:block;font-size:11px;color:var(--muted)}.lab-metrics strong{display:block;margin-top:4px;font-family:monospace;font-size:26px}.lab-tip{display:flex;gap:10px;margin-top:24px;padding:14px;background:var(--blue-soft)}.lab-tip svg{flex:0 0 auto;margin-top:2px}.lab-tip p{margin:0;color:var(--muted);font-size:11px}.nms-playground{min-width:0;background:var(--bg-deep)}.playground-toolbar{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;border-bottom:1px solid var(--line);font-family:monospace;font-size:10px}.playground-toolbar span{display:flex;align-items:center;gap:6px}.nms-canvas{position:relative;width:100%;aspect-ratio:100 / 66;min-height:340px;overflow:hidden;background:var(--surface);color:var(--ink)}.nms-canvas>svg{position:absolute;inset:0;width:100%;height:100%}.candidate-box{position:absolute;border:2px solid;pointer-events:none;transition:opacity .15s ease-out,border-color .15s ease-out}.candidate-box>span{position:absolute;top:-23px;left:-2px;padding:2px 5px;background:var(--surface);color:var(--ink);font-family:monospace;font-size:10px;white-space:nowrap}.candidate-box.kept{z-index:3;border-color:var(--success)}.candidate-box.suppressed{z-index:2;border-color:var(--danger);border-style:dashed;opacity:.72}.candidate-box.below{z-index:1;border-color:var(--muted);border-style:dotted;opacity:.35}.box-legend{display:flex;flex-wrap:wrap;gap:18px;padding:12px 18px;border-block:1px solid var(--line);font-size:11px}.box-legend span{display:flex;align-items:center;gap:7px}.box-legend i{width:18px;height:10px;border:2px solid}.box-legend i.kept{border-color:var(--success)}.box-legend i.suppressed{border-color:var(--danger);border-style:dashed}.box-legend i.below{border-color:var(--muted);border-style:dotted}.candidate-table{font-size:11px}.candidate-table>div{display:grid;grid-template-columns:1.2fr .7fr .8fr;gap:10px;padding:8px 18px;border-bottom:1px solid var(--line)}.candidate-table>div:last-child{border-bottom:0}.candidate-table-head{background:var(--surface-2);color:var(--muted);font-family:monospace}.candidate-table strong{display:flex;align-items:center;gap:4px;font-weight:650}.candidate-table .muted{color:var(--muted)}.kept-text{color:var(--success)}.suppressed-text{color:var(--danger)}.panel-title{display:grid;grid-template-columns:1fr minmax(280px,440px);gap:44px;align-items:end;margin:46px 0 28px}.panel-title h2{margin:8px 0 0;font-size:clamp(28px,3vw,40px)}.panel-title>p{margin:0;color:var(--muted);font-size:13px}.compare-panel{margin-bottom:20px}.compare-table th,.compare-table td{min-width:150px}.compare-lessons{display:grid;grid-template-columns:repeat(3,1fr);margin-top:26px;border-block:1px solid var(--line-strong)}.compare-lessons article{padding:24px;border-right:1px solid var(--line)}.compare-lessons article:last-child{border-right:0}.compare-lessons h3{margin:12px 0 8px;font-size:19px}.compare-lessons p{margin:0;color:var(--muted);font-size:13px}.calculator-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);border:1px solid var(--line-strong)}.calculator-form{padding:32px}.calculator-form h2{margin:10px 0 12px;font-size:30px}.calculator-form>p{margin-bottom:26px;color:var(--muted);font-size:13px}.calculator-form>label,.question-form>label{display:grid;grid-template-columns:1fr 150px;align-items:center;gap:16px;padding:12px 0;border-top:1px solid var(--line);font-size:13px}.calculator-form input,.calculator-form select,.question-form input,.question-form select,.question-form textarea{width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:0;background:var(--surface);color:var(--ink)}.calculator-result{padding:32px;border-left:1px solid var(--line-strong);background:var(--blue-soft)}.calculator-result>span{font-family:monospace;font-size:10px;letter-spacing:.06em;color:var(--muted)}.estimate-main{margin:28px 0;padding-bottom:26px;border-bottom:1px solid var(--line)}.estimate-main>strong{display:block;font-family:Arial Narrow,sans-serif;font-size:clamp(54px,6vw,82px);line-height:1;letter-spacing:-.06em}.estimate-main small{margin-left:6px;font-size:30px}.estimate-main p{margin:10px 0 0;color:var(--muted);font-size:13px}.estimate-grid{display:grid;grid-template-columns:1fr 1fr}.estimate-grid>div{padding:18px 10px;border-bottom:1px solid var(--line)}.estimate-grid>div:nth-child(odd){border-right:1px solid var(--line)}.estimate-grid strong{display:block;font-family:monospace;font-size:21px}.estimate-grid span{display:block;margin-top:4px;color:var(--muted);font-size:11px}.estimate-note{display:flex;gap:8px;margin:24px 0 0;color:var(--muted);font-size:11px}.estimate-note svg{flex:0 0 auto;margin-top:2px}.community-tabs{margin-bottom:24px}.form-message{display:flex;align-items:center;gap:8px;margin-bottom:22px;padding:13px 16px;border:1px solid var(--success);background:color-mix(in oklch,var(--success) 9%,var(--surface));color:var(--success);font-size:13px}.checkin-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:36px;align-items:start}.checkin-main{padding:32px;border:1px solid var(--line-strong)}.checkin-main>h2{margin:10px 0 12px;font-size:32px}.checkin-main>p{color:var(--muted);font-size:13px}.checkin-days{display:grid;grid-template-columns:repeat(7,1fr);margin:28px 0;border-block:1px solid var(--line-strong)}.checkin-days a{min-width:0;min-height:118px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 5px;border-right:1px solid var(--line);text-align:center}.checkin-days a:last-child{border-right:0}.checkin-days a:hover{background:var(--accent-soft)}.checkin-days a.done{background:var(--accent);color:var(--button-ink)}.checkin-days span{font-family:monospace;font-size:9px}.checkin-days strong{margin:7px 0;font-family:monospace;font-size:23px}.checkin-days small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:var(--muted)}.checkin-days a.done small{color:var(--button-ink)}.checkin-editor label{display:block;margin-bottom:8px;font-size:13px;font-weight:700}.checkin-editor textarea{width:100%;resize:vertical;padding:14px;border:1px solid var(--line-strong);border-radius:0;background:var(--surface);color:var(--ink)}.checkin-editor .button{margin-top:12px}.checkin-wall{padding:26px;border:1px solid var(--line-strong);background:var(--surface)}.checkin-wall h3{margin:8px 0 20px;font-size:25px}.checkin-wall article{padding:16px 0;border-top:1px solid var(--line)}.checkin-wall article>span{font-family:monospace;font-size:10px;color:var(--muted)}.checkin-wall article p{margin:7px 0 0;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.project-grid>article{min-width:0;padding-bottom:24px;border-bottom:1px solid var(--line-strong)}.project-visual{height:190px;display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;padding:28px;border:1px solid var(--line-strong);color:var(--p-ink)}.project-visual>span{align-self:flex-start;font-family:Arial Narrow,sans-serif;font-size:68px;font-weight:800;line-height:1}.project-1{background:var(--p-blue)}.project-2{background:var(--p-yellow)}.project-3{background:var(--p-sage)}.project-grid h3{margin:8px 0 10px;font-size:23px}.project-grid p{min-height:72px;color:var(--muted);font-size:13px}.project-stack{margin:18px 0 10px;padding:12px 0;border-block:1px solid var(--line);font-family:monospace;font-size:10px;overflow-wrap:anywhere}.project-rubric{display:flex;gap:18px;margin-top:34px;padding:24px;background:var(--accent-soft);border-left:4px solid var(--accent)}.project-rubric svg{flex:0 0 auto}.project-rubric h3{margin-bottom:8px}.project-rubric p{margin:0;color:var(--muted);font-size:13px}.clinic-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:36px;align-items:start}.clinic-layout .panel-title{display:block;margin-top:0}.clinic-post{padding:24px 0;border-top:1px solid var(--line-strong)}.clinic-post>div{display:flex;justify-content:space-between;gap:12px}.clinic-post>div>span{padding:3px 8px;background:var(--blue-soft);font-size:10px}.clinic-post small{color:var(--muted);font-size:10px}.clinic-post h3{margin:14px 0 9px;font-size:21px}.clinic-post p{color:var(--muted);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.clinic-post button{min-height:44px;display:flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:4px}.question-form{position:sticky;top:100px;padding:26px;border:1px solid var(--line-strong);background:var(--surface)}.question-form h3{margin:12px 0 8px;font-size:23px}.question-form>p{color:var(--muted);font-size:12px}.question-form>label{display:block;padding:10px 0}.question-form>label input,.question-form>label select,.question-form>label textarea{margin-top:6px}.question-form textarea{resize:vertical}.question-form .button{width:100%;margin-top:12px}.challenge-list{border-top:1px solid var(--line-strong)}.challenge-list article{display:grid;grid-template-columns:40px 1fr auto;gap:22px;align-items:center;padding:28px 18px;border-bottom:1px solid var(--line-strong)}.challenge-list article>svg{align-self:start;margin-top:5px}.challenge-list article div>span{font-family:monospace;font-size:10px;color:var(--muted)}.challenge-list h3{margin:6px 0;font-size:24px}.challenge-list p{margin-bottom:10px;color:var(--muted);font-size:13px}.challenge-list small{font-weight:700}.challenge-list .joined{background:var(--accent);color:var(--button-ink)}.challenge-footer{display:flex;align-items:center;gap:14px;margin-top:24px;padding:18px 22px;background:var(--blue-soft)}.challenge-footer p{flex:1;margin:0;color:var(--muted);font-size:13px}.resource-stats{display:flex;flex-wrap:wrap;gap:20px}.resource-stats span{font-size:11px;color:var(--muted)}.resource-stats strong{display:block;font-family:monospace;font-size:26px;color:var(--ink)}.resource-browser{margin-top:36px}.resource-tools{display:flex;align-items:center;justify-content:space-between;gap:20px}.resource-search{min-height:52px;flex:1;display:flex;align-items:center;gap:12px;padding:0 16px;border:1px solid var(--line-strong);background:var(--surface)}.resource-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink)}.resource-search button{min-height:44px;border:0;background:transparent;color:var(--muted);font-size:12px}.resource-tools>span{flex:0 0 auto;font-family:monospace;font-size:12px;color:var(--muted)}.resource-categories{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 28px}.resource-categories button{min-height:40px;padding:7px 15px;border:1px solid var(--line);background:transparent;font-size:12px}.resource-categories button:hover{background:var(--accent-soft)}.resource-categories button.active{border-color:var(--line-strong);background:var(--accent);color:var(--button-ink)}.resource-list{border-top:1px solid var(--line-strong)}.resource-row{display:grid;grid-template-columns:46px minmax(180px,.8fr) minmax(260px,1.5fr) minmax(120px,.65fr) auto;gap:22px;align-items:center;min-height:124px;padding:20px 12px;border-bottom:1px solid var(--line-strong);transition:background-color .18s ease-out}.resource-row:hover{background:var(--accent-soft)}.resource-index{color:var(--muted);font-size:11px}.resource-name>span{font-size:10px;color:var(--muted)}.resource-name h2{margin:6px 0 0;font-size:20px}.resource-row>p{margin:0;color:var(--muted);font-size:12px}.resource-row>code{width:-moz-fit-content;width:fit-content;max-width:100%;padding:4px 7px;border:1px solid var(--line);font-size:10px;overflow-wrap:anywhere}.resource-row>svg{transition:transform .18s ease-out}.resource-row:hover>svg{transform:translate(3px,-3px)}.version-table th,.version-table td{min-width:160px}.resource-guides{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line-strong)}.resource-guides article{padding:30px;border-right:1px solid var(--line)}.resource-guides article:last-child{border-right:0}.resource-guides article>span{display:block;margin-top:18px;font-family:monospace;font-size:10px;color:var(--muted)}.resource-guides h3{margin:8px 0 12px;font-size:23px}.resource-guides p{margin:0;color:var(--muted);font-size:13px}.external-note{display:flex;align-items:center;gap:10px;margin-top:22px;color:var(--muted)}.external-note p{margin:0;font-size:12px}.external-note svg{flex:0 0 auto}@media(max-width:1180px){.site-header{grid-template-columns:1fr auto}.desktop-nav{display:none}.mobile-menu-button{display:inline-flex}.home-hero{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:32px}.curriculum-layout{grid-template-columns:minmax(0,1fr) 290px;gap:26px}.catalog-content{padding-left:18px}.lesson-layout{grid-template-columns:210px minmax(0,1fr);gap:34px}.resource-row{grid-template-columns:36px minmax(160px,.8fr) minmax(230px,1.3fr) auto}.resource-row>code{display:none}.checkin-days{grid-template-columns:repeat(4,1fr)}.checkin-days a{border-bottom:1px solid var(--line)}}@media(max-width:900px){.page-width,.footer-main{width:min(100% - 40px,1420px)}.section-space{padding-block:72px}.home-hero{min-height:auto;grid-template-columns:1fr;padding-block:48px}.hero-copy h1{max-width:740px}.hero-visual{max-width:680px}.fact-strip>div{grid-template-columns:1fr 1fr}.fact-strip>div>div:nth-child(2){border-right:0}.fact-strip>div>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.split-heading,.subpage-hero,.panel-title{grid-template-columns:1fr;gap:24px}.curriculum-layout{grid-template-columns:1fr}.learning-sidebar{position:static}.lab-promo-grid{grid-template-columns:1fr;gap:40px}.method-grid,.compare-lessons,.resource-guides{grid-template-columns:1fr}.method-grid article,.compare-lessons article,.resource-guides article{border-right:0;border-bottom:1px solid var(--line)}.method-grid article:last-child,.compare-lessons article:last-child,.resource-guides article:last-child{border-bottom:0}.footer-main{grid-template-columns:1.2fr 1fr;gap:40px}.footer-links{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap}.footer-links>span{width:100%}.catalog-content{grid-template-columns:1fr;gap:22px}.lesson-layout{grid-template-columns:1fr}.lesson-toc{position:static;overflow-x:auto;padding-bottom:6px}.lesson-toc>.section-kicker,.toc-note{display:none}.lesson-toc nav{display:flex;min-width:700px;border:1px solid var(--line-strong)}.lesson-toc nav a{flex:1;grid-template-columns:22px 1fr;border-bottom:0;border-right:1px solid var(--line)}.lesson-toc nav a:last-child{border-right:0}.lesson-outcomes{padding-left:0}.lab-workspace,.calculator-layout{grid-template-columns:1fr}.lab-controls{border-right:0;border-bottom:1px solid var(--line-strong)}.calculator-result{border-left:0;border-top:1px solid var(--line-strong)}.checkin-layout,.clinic-layout{grid-template-columns:1fr}.question-form{position:static}.project-grid{grid-template-columns:1fr;gap:36px}.project-grid p{min-height:0}.project-visual{height:160px}.resource-row{grid-template-columns:36px minmax(150px,.8fr) minmax(220px,1.2fr) auto;gap:14px}}@media(max-width:640px){html{scroll-padding-top:78px}body{font-size:15px}.page-width,.footer-main{width:calc(100% - 32px)}.section-space{padding-block:56px}.site-header{min-height:68px;padding-inline:16px 8px}.brand{gap:8px}.brand img{width:31px;height:31px}.brand svg{width:31px;height:31px}.brand strong{font-size:14px}.brand small{display:none}.search-trigger{width:44px;padding:0}.search-trigger>span,.search-trigger kbd{display:none}.header-actions{gap:0}.mobile-nav{inset-top:68px}.modal-backdrop{padding:70px 10px 10px}.search-modal{max-height:calc(100dvh - 80px)}.search-results small{max-width:220px}.home-hero{gap:36px;padding-block:36px}.eyebrow{margin-bottom:20px;font-size:9px}.hero-copy h1{margin-bottom:20px;font-size:clamp(42px,13vw,58px)}.hero-lead{font-size:16px}.hero-actions{align-items:flex-start;flex-direction:column;gap:8px}.hero-actions .button{width:100%}.hero-meta{gap:8px 16px}.visual-caption{align-items:flex-start;flex-direction:column;gap:3px}.fact-strip>div>div{min-height:76px;padding:14px 16px}.fact-strip strong{font-size:26px}.fact-strip span{font-size:12px}.section-heading{margin-bottom:28px}.section-heading h2{font-size:34px}.day-row{grid-template-columns:54px 1fr;gap:14px;min-height:150px;padding-inline:4px}.day-number strong{font-size:38px}.day-row-status{grid-column:2;grid-template-columns:1fr auto}.day-title-line{align-items:flex-start;flex-direction:column;gap:3px}.learning-sidebar{padding:22px}.big-progress strong{font-size:54px}.demo-scene{height:250px}.demo-object{width:90px;height:160px}.demo-toolbar,.demo-result{font-size:9px}.method-grid article{padding:24px 8px}.site-footer{margin-top:64px}.footer-main{grid-template-columns:1fr;gap:32px;padding-block:40px}.footer-links{grid-column:auto}.footer-bottom{align-items:flex-start;flex-direction:column;padding-inline:16px}.subpage{padding-top:38px}.subpage-hero{padding-bottom:36px}.subpage-hero h1{font-size:42px}.subpage-intro>p{font-size:14px}.learning-contract{margin-block:24px 34px;padding:18px}.catalog-day summary{grid-template-columns:54px 1fr auto;gap:12px;min-height:138px;padding-inline:4px}.catalog-number{font-size:40px}.catalog-day summary h2{font-size:21px}.catalog-day summary p{display:none}.catalog-content{padding:0 0 26px}.catalog-outcomes{padding:20px}.lesson-page{padding-top:24px}.breadcrumbs{margin-bottom:24px}.lesson-hero{grid-template-columns:76px 1fr;gap:16px;align-items:start}.lesson-day-mark{height:80px}.lesson-day-mark strong{margin-top:6px;font-size:40px}.lesson-hero h1{margin-top:4px;font-size:30px}.lesson-hero p{font-size:13px}.lesson-hero>div:last-child{display:block;min-width:0}.lesson-hero .section-kicker{font-size:9px}.lesson-outcomes{padding-bottom:24px}.lesson-layout{gap:26px;padding-top:24px}.session{padding-block:30px 38px;scroll-margin-top:78px}.session-header{flex-direction:column;gap:12px}.session-header h2{font-size:28px}.session-outcome{padding:12px 14px}.lesson-block h3{font-size:19px}.lesson-block>p{line-height:1.85}.formula-block{padding:20px 16px}.formula-block>strong{font-size:15px}.code-panel pre{padding:14px!important;font-size:12px!important}th,td{min-width:135px;padding:12px}.lesson-note{padding:17px}.practice-list{padding:20px 17px}.challenge-box{grid-template-columns:1fr;gap:7px;padding:17px}.quiz-section{padding:24px 17px}.quiz-section>h2,.notes-section h2{font-size:26px}.quiz-question>label{align-items:flex-start}.quiz-question label>input{margin-top:4px}.quiz-actions{align-items:stretch;flex-direction:column}.notes-section>div:last-child{align-items:flex-start;flex-direction:column}.notes-section .button{width:100%}.lesson-pagination{grid-template-columns:1fr}.lesson-pagination>a{min-height:74px}.lab-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-block:24px;overflow:visible}.lab-tabs button{min-height:50px;padding-inline:10px;border-bottom:1px solid var(--line)}.lab-tabs button:nth-child(2n){border-right:0}.lab-tabs button:nth-last-child(-n+2){border-bottom:0}.lab-controls,.calculator-form,.calculator-result{padding:22px 18px}.playground-toolbar{align-items:flex-start;flex-direction:column}.nms-canvas{min-height:280px;aspect-ratio:1 / 1}.candidate-table>div{grid-template-columns:1.1fr .55fr .8fr;padding-inline:12px}.panel-title{margin-top:28px}.compare-lessons article{padding:22px 8px}.calculator-form>label{grid-template-columns:1fr 120px}.estimate-main>strong{font-size:58px}.estimate-grid strong{font-size:17px}.checkin-main,.checkin-wall,.question-form{padding:22px 18px}.checkin-main>h2{font-size:27px}.checkin-days{grid-template-columns:repeat(4,1fr)}.checkin-days a{min-height:98px}.checkin-editor .button{width:100%}.project-rubric{padding:20px 17px}.challenge-list article{grid-template-columns:30px 1fr;gap:12px;padding-inline:4px}.challenge-list article .button{grid-column:1 / -1;width:100%}.challenge-footer{align-items:flex-start;flex-wrap:wrap}.challenge-footer .text-link{margin-left:34px}.resource-tools{align-items:flex-start;flex-direction:column;gap:8px}.resource-search{width:100%}.resource-categories{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}.resource-categories button{flex:0 0 auto;min-height:44px}.resource-row{grid-template-columns:28px 1fr auto;gap:10px;min-height:112px;padding-inline:4px}.resource-row>p{grid-column:2 / -1}.resource-row>svg{grid-column:3;grid-row:1}.resource-name h2{font-size:18px}.resource-guides article{padding:24px 8px}}@media(max-width:380px){.brand strong{font-size:13px}.header-actions .icon-button{min-width:40px}.hero-copy h1{font-size:40px}.lesson-hero{grid-template-columns:64px 1fr}.lesson-day-mark{height:70px}.calculator-form>label{grid-template-columns:1fr;gap:6px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.site-header,.site-footer,.lesson-toc,.complete-button,.lesson-pagination,.notes-section,.quiz-actions{display:none!important}.page-width{width:100%}.lesson-layout{display:block}.lesson-content{max-width:none}.code-panel{-moz-column-break-inside:avoid;break-inside:avoid}}.hover\:bg-\[var\(--surface-2\)\]:hover{background-color:var(--surface-2)}.hover\:text-\[var\(--ink\)\]:hover{color:var(--ink)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-\[var\(--blue\)\]:focus-visible{--tw-ring-color: var(--blue)}
