/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.block{display:block}.contents{display:contents}.hidden{display:none}.inline{display:inline}.table{display:table}.resize{resize:both}.uppercase{text-transform:uppercase}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--paper:#f4f5f0;--paper-deep:#ebece5;--surface:#fafbf7;--ink:#121716;--ink-soft:#303a37;--muted:#65706c;--line:#cfd4cc;--line-strong:#aeb7ae;--cyan:#087f83;--cyan-soft:#dceff0;--green:#28764d;--green-soft:#deeee4;--amber:#a75d11;--amber-soft:#f4e8d3;--red:#b83c32;--red-soft:#f4dfdc;--header-height:64px;--font-display:"Iowan Old Style", "Noto Serif SC", "Source Han Serif SC", "Songti SC", STSong, serif;--font-body:"Avenir Next", "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"Berkeley Mono", "SFMono-Regular", "Cascadia Code", Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 28px)}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.65}body:before{z-index:-1;pointer-events:none;content:"";opacity:.22;background-image:linear-gradient(#12171606 1px,#0000 1px),linear-gradient(90deg,#12171606 1px,#0000 1px);background-size:28px 28px;position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}::selection{color:var(--ink);background:#bde4df}.site-header{z-index:50;height:var(--header-height);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f4f5f0f0;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);align-items:center;padding:0 28px;display:grid;position:sticky;top:0}.brand{align-items:center;gap:10px;width:max-content;display:inline-flex}.brand-mark{border:1px solid var(--ink);width:34px;height:34px;font-family:var(--font-display);border-radius:3px;place-items:center;font-size:22px;font-style:italic;line-height:1;display:inline-grid}.brand>span:last-child{line-height:1.05;display:grid}.brand strong{font-family:var(--font-display);font-size:16px}.brand small{color:var(--muted);letter-spacing:.08em;margin-top:4px;font-size:10px}.site-header nav{color:var(--ink-soft);align-items:center;gap:26px;font-size:13px;font-weight:650;display:flex}.site-header nav a{align-items:center;gap:6px;display:inline-flex}.site-header nav a:hover{color:var(--cyan)}.header-actions{justify-content:flex-end;align-items:center;gap:14px;display:flex}.search-trigger{min-width:126px;height:36px;color:var(--muted);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:0 9px 0 11px;display:inline-flex}.search-trigger:hover{color:var(--ink);border-color:var(--ink-soft)}.search-trigger kbd{min-width:19px;color:var(--muted);border:1px solid var(--line);background:var(--paper-deep);font-family:var(--font-mono);border-radius:3px;margin-left:auto;font-size:11px}.header-progress{background:var(--line);width:54px;height:3px;position:relative;overflow:hidden}.header-progress span{background:var(--green);transition:width .22s;position:absolute;inset:0 auto 0 0}.search-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e131294;place-items:start center;padding-top:min(14vh,130px);display:grid;position:fixed;inset:0}.search-panel{background:var(--surface);border:1px solid #89928e;border-radius:6px;width:min(680px,100vw - 28px);overflow:hidden;box-shadow:0 26px 70px #070f0d38}.search-input-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 16px;display:flex}.search-input-row input{background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:17px}.icon-button{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:3px;place-items:center;padding:0;display:inline-grid}.icon-button:hover{color:var(--ink);background:var(--paper-deep)}.search-results{max-height:min(62vh,540px);padding:8px;overflow-y:auto}.search-results-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:8px 10px 6px;font-size:11px;font-weight:700}.search-results button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;grid-template-columns:34px 1fr 20px;align-items:center;gap:10px;width:100%;padding:10px;display:grid}.search-results button.is-active{background:var(--cyan-soft)}.search-result-number{font-family:var(--font-mono);color:var(--cyan);font-size:12px}.search-results button span:nth-child(2){display:grid}.search-results strong{font-size:14px}.search-results small{color:var(--muted);font-size:11px}.search-results button svg{color:var(--muted)}.search-empty{color:var(--muted);text-align:center;margin:10px;padding:24px 10px}.home-hero{min-height:calc(100vh - var(--header-height));grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);align-items:center;gap:7vw;padding:86px max(6vw,48px) 100px;display:grid;position:relative;overflow:hidden}.home-hero:after{content:"";background:linear-gradient(transparent, var(--line), transparent);width:1px;height:100%;position:absolute;top:0;left:59%}.eyebrow,.section-heading>p,.reference-hero>p{color:var(--cyan);font-family:var(--font-mono);letter-spacing:.12em;margin:0 0 18px;font-size:12px;font-weight:700}.hero-copy h1{max-width:760px;font-family:var(--font-display);margin:0;font-size:70px;font-weight:550;line-height:1.04}.hero-copy h1 em{color:var(--cyan);font-weight:500}.hero-intro{max-width:680px;color:var(--ink-soft);margin:30px 0 34px;font-size:18px;line-height:1.85}.primary-action{color:#f4f5f0;background:var(--ink);border-radius:4px;justify-content:space-between;align-items:center;gap:30px;width:min(100%,540px);min-height:74px;padding:12px 18px 12px 20px;transition:transform .16s,background .16s;display:flex}.primary-action:hover{background:#20302c;transform:translateY(-2px)}.primary-action span{display:grid}.primary-action small{color:#9db3ac;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.primary-action strong{margin-top:2px;font-size:15px}.hero-secondary-links{color:var(--muted);text-underline-offset:4px;gap:26px;margin-top:18px;font-size:13px;text-decoration:underline;display:flex}.hero-secondary-links a:hover{color:var(--cyan)}.hero-trace{z-index:1;color:#dce8e4;box-shadow:16px 16px 0 var(--cyan-soft);background:#111816;border:1px solid #273631;border-radius:5px;position:relative}.hero-trace>header{height:48px;font-family:var(--font-mono);border-bottom:1px solid #31413c;grid-template-columns:10px auto 1fr;align-items:center;gap:9px;padding:0 15px;display:grid}.trace-status{background:#63d19c;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #63d19c1f}.hero-trace>header strong{letter-spacing:.08em;font-size:11px}.hero-trace>header small{color:#73857f;text-align:right;font-size:10px}.hero-trace ol{margin:0;padding:16px 0;list-style:none}.hero-trace li{font-family:var(--font-mono);border-left:2px solid #0000;grid-template-columns:34px 54px 1fr;gap:10px;padding:10px 18px;font-size:11px;display:grid}.hero-trace li:hover{background:#18231f;border-left-color:#55b7b8}.hero-trace li>span{color:#596b65}.hero-trace li>small{color:#68babb}.hero-trace li>code{color:#dce8e4;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.hero-trace>footer{color:#74867f;font-family:var(--font-mono);border-top:1px solid #31413c;gap:18px;padding:11px 18px;font-size:9px;display:flex}.hero-scroll{color:var(--muted);letter-spacing:.06em;align-items:center;gap:8px;font-size:11px;display:flex;position:absolute;bottom:28px;left:max(6vw,48px)}.principle-band{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--paper-deep);grid-template-columns:repeat(4,1fr);display:grid}.principle-band>div{border-right:1px solid var(--line-strong);grid-template-rows:auto auto;grid-template-columns:36px 1fr;column-gap:10px;min-height:128px;padding:26px 28px;display:grid}.principle-band>div:last-child{border-right:0}.principle-band svg{width:25px;color:var(--cyan);grid-row:1/3}.principle-band strong{font-family:var(--font-display);font-size:18px}.principle-band span{color:var(--muted);font-size:12px;line-height:1.55}.home-course,.reference-page{width:min(1320px,100% - 72px);margin:0 auto;padding:110px 0 130px}.section-heading{max-width:780px;margin-bottom:70px}.section-heading h2,.reference-hero h1{font-family:var(--font-display);margin:0;font-size:48px;font-weight:550;line-height:1.18}.section-heading>span,.reference-hero>span{max-width:720px;color:var(--muted);margin-top:20px;font-size:16px;line-height:1.8;display:block}.course-map{border-top:1px solid var(--ink)}.course-part{--part-accent:var(--ink);border-bottom:1px solid var(--line-strong);grid-template-columns:150px 1fr;display:grid}.course-part.accent-cyan{--part-accent:var(--cyan)}.course-part.accent-green{--part-accent:var(--green)}.course-part.accent-amber{--part-accent:var(--amber)}.course-part.accent-red{--part-accent:var(--red)}.part-index{color:var(--part-accent);font-family:var(--font-display);border-right:1px solid var(--line);padding:30px 20px 30px 0;font-size:56px;font-style:italic}.part-content{padding:31px 0 36px 36px}.part-content>header{justify-content:space-between;align-items:start;gap:30px;margin-bottom:28px;display:flex}.part-content header p{color:var(--part-accent);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:10px;font-weight:700}.part-content header h2{font-family:var(--font-display);margin:4px 0 5px;font-size:28px;font-weight:600}.part-content header span,.part-content header>small{color:var(--muted);font-size:12px}.part-content header>small{font-family:var(--font-mono);flex:none;padding-top:4px}.part-content ol{margin:0;padding:0;list-style:none}.part-content li{border-top:1px solid var(--line)}.part-content li>a{grid-template-columns:24px 34px minmax(0,1fr) 64px;align-items:center;gap:12px;min-height:74px;padding:10px 8px;transition:background .14s;display:grid}.part-content li>a:hover{background:#ffffff80}.chapter-state{width:18px;height:18px;color:var(--line-strong);border:1px solid var(--line-strong);border-radius:50%;place-items:center;display:grid}.chapter-state svg{stroke-width:2px}.chapter-state.is-done{color:#fff;border-color:var(--green);background:var(--green)}.chapter-number{color:var(--part-accent);font-family:var(--font-mono);font-size:12px}.part-content li a>span:nth-child(3){min-width:0;display:grid}.part-content li strong{font-size:14px;font-weight:700}.part-content li small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.part-content time{color:var(--muted);font-family:var(--font-mono);text-align:right;font-size:9px}.home-contract{color:#e7efeb;background:var(--ink);grid-template-columns:minmax(240px,.7fr) minmax(360px,1.3fr) auto;align-items:center;gap:52px;padding:70px max(6vw,48px);display:grid}.home-contract p{color:#77928a;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:10px}.home-contract h2{font-family:var(--font-display);margin:5px 0 0;font-size:29px}.home-contract blockquote{font-family:var(--font-display);border-left:1px solid #50635d;margin:0;padding-left:28px;font-size:21px;line-height:1.7}.home-contract>a{color:#83cbca;white-space:nowrap;font-size:12px}.site-footer{border-top:1px solid var(--line-strong);background:var(--paper-deep);justify-content:space-between;gap:40px;padding:42px max(5vw,34px);display:flex}.site-footer>div{align-items:center;gap:14px;display:flex}.site-footer p{max-width:500px;color:var(--muted);margin:0;font-size:11px}.site-footer nav{color:var(--muted);align-items:center;gap:20px;font-size:11px;display:flex}.site-footer a:hover{color:var(--cyan)}.reader{width:min(1600px,100%);min-height:calc(100vh - var(--header-height));grid-template-columns:258px minmax(0,1fr) 220px;margin:0 auto;display:grid;position:relative}.reading-progress{top:var(--header-height);z-index:55;width:var(--reading-progress);background:var(--cyan);height:2px;transition:width 80ms linear;position:fixed;left:0}.course-sidebar{top:var(--header-height);height:calc(100vh - var(--header-height));border-right:1px solid var(--line);background:var(--paper-deep);align-self:start;position:sticky}.sidebar-scroll{height:100%;padding:25px 16px 50px;overflow-y:auto}.course-sidebar section+section{margin-top:24px}.course-sidebar h2{color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;gap:8px;margin:0 8px 7px;font-size:9px;font-weight:700;display:flex}.course-sidebar h2 span{color:var(--cyan)}.course-sidebar ol{margin:0;padding:0;list-style:none}.course-sidebar li a{color:var(--muted);border-left:2px solid #0000;border-radius:2px;grid-template-columns:24px 1fr;align-items:start;gap:6px;padding:6px 8px;font-size:11px;line-height:1.45;display:grid}.course-sidebar li a>span{height:17px;color:var(--line-strong);font-family:var(--font-mono);place-items:center;font-size:9px;display:grid}.course-sidebar li a:hover{color:var(--ink);background:#ffffff80}.course-sidebar li a[aria-current=page]{color:var(--ink);border-left-color:var(--cyan);background:var(--surface);font-weight:700}.course-sidebar li a[aria-current=page]>span{color:var(--cyan)}.chapter-main{min-width:0;padding:0 42px 100px}.chapter-article{width:min(780px,100%);margin:0 auto}.chapter-hero{border-bottom:1px solid var(--ink);padding:68px 0 52px}.chapter-breadcrumb{color:var(--cyan);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:20px;margin-bottom:25px;font-size:10px;font-weight:700;display:flex}.chapter-hero h1{font-family:var(--font-display);margin:0;font-size:48px;font-weight:550;line-height:1.16}.chapter-hero>p{max-width:680px;color:var(--ink-soft);margin:22px 0 28px;font-size:17px;line-height:1.8}.chapter-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:.7fr .7fr 2fr .6fr;margin:0;display:grid}.chapter-facts>div{border-right:1px solid var(--line);min-width:0;padding:12px}.chapter-facts>div:first-child{padding-left:0}.chapter-facts>div:last-child{border-right:0}.chapter-facts dt{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:8px}.chapter-facts dd{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:11px;overflow:hidden}.chapter-facts code{font-family:var(--font-mono);font-size:10px}.chapter-facts a{color:var(--cyan);text-underline-offset:2px;text-decoration:underline}.chapter-hero-actions{gap:9px;margin-top:18px;display:flex}.chapter-hero-actions button,.chapter-complete button{min-height:34px;color:var(--ink-soft);border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:3px;align-items:center;gap:7px;padding:0 11px;display:inline-flex}.chapter-hero-actions button:hover{border-color:var(--ink)}.chapter-hero-actions button.is-active{color:var(--cyan);border-color:var(--cyan)}.chapter-hero-actions button.is-complete{color:var(--green);border-color:var(--green)}.commit-companion{color:#dce9e5;background-color:#13201d;background-image:linear-gradient(#66d3cd09 1px,#0000 1px),linear-gradient(90deg,#66d3cd09 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:20px 20px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:1px solid #35554e;border-radius:4px;margin-top:28px;padding:20px}.commit-companion>header{border-bottom:1px solid #30443f;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:14px;display:flex}.commit-companion small{color:#77a49c;font-family:var(--font-mono);letter-spacing:.08em;font-size:8px;font-weight:700}.commit-companion h2{font-family:var(--font-display);margin:4px 0 0;font-size:20px;line-height:1.35}.commit-companion>header>code{color:#8fe1dc;font-family:var(--font-mono);border:1px solid #3d6861;border-radius:2px;padding:5px 7px;font-size:10px}.commit-companion>p{color:#a9bbb6;margin:14px 0;font-size:12px;line-height:1.75}.commit-companion dl{border-top:1px solid #30443f;border-bottom:1px solid #30443f;grid-template-columns:.6fr .6fr 2fr;margin:0 0 14px;display:grid}.commit-companion dl>div{border-right:1px solid #30443f;min-width:0;padding:10px}.commit-companion dl>div:first-child{padding-left:0}.commit-companion dl>div:last-child{border-right:0}.commit-companion dt{color:#6f8f88;font-family:var(--font-mono);text-transform:uppercase;font-size:8px}.commit-companion dd{color:#c6d4d0;text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:10px;overflow:hidden}.commit-companion code{font-family:var(--font-mono)}.commit-companion a{color:inherit;text-underline-offset:3px}.commit-links{flex-wrap:wrap;gap:8px 16px;margin:0 0 14px;display:flex}.commit-links a{color:#8fe1dc;font-family:var(--font-mono);font-size:9px;font-weight:700}.commit-command{background:#0c1513;border:1px solid #3b5650;justify-content:space-between;align-items:center;gap:14px;padding:9px 10px;display:flex}.commit-command-group{gap:8px;display:grid}.commit-command-group>small{color:#92aaa4;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-top:4px;font-size:9px;font-weight:800}.commit-command-group>small:not(:first-child){margin-top:6px}.commit-command code{color:#9ed4ce;white-space:nowrap;font-size:10px;overflow-x:auto}.commit-command button{color:#8fe1dc;cursor:pointer;background:0 0;border:1px solid #3d6861;border-radius:2px;flex:none;padding:5px 8px;font-size:9px}.commit-companion blockquote{color:#b7c8c3;font-family:var(--font-display);border-left:2px solid #db725d;margin:14px 0 0;padding-left:13px;font-size:12px;line-height:1.65}.chapter-prose{font-family:var(--font-display);padding-top:28px;font-size:17px;line-height:1.88}.chapter-prose h2,.chapter-prose h3{scroll-margin-top:calc(var(--header-height) + 24px);position:relative}.chapter-prose h2{border-top:1px solid var(--line);margin:64px 0 20px;padding-top:22px;font-size:30px;font-weight:650;line-height:1.3}.chapter-prose h2:first-child{border-top:0;margin-top:16px}.chapter-prose h3{margin:42px 0 15px;font-size:22px;line-height:1.4}.heading-anchor{width:18px;color:var(--line-strong);font-family:var(--font-mono);opacity:0;font-size:13px;position:absolute;left:-24px}.chapter-prose h2:hover .heading-anchor,.chapter-prose h3:hover .heading-anchor,.heading-anchor:focus{opacity:1}.chapter-prose p{margin:16px 0}.chapter-prose a{color:var(--cyan);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.chapter-prose strong{color:var(--ink);font-weight:750}.chapter-prose code:not(pre code){color:#8b342d;font-family:var(--font-mono);background:#f0ece6;border:1px solid #ddd3cc;border-radius:3px;padding:.12em .34em;font-size:.82em}.chapter-prose blockquote{color:var(--ink-soft);border-left:3px solid var(--cyan);margin:26px 0;padding:3px 0 3px 24px;font-size:19px}.chapter-prose ul,.chapter-prose ol{padding-left:1.35em}.chapter-prose li{margin:8px 0;padding-left:.25em}.chapter-prose table{border-collapse:collapse;width:100%;font-family:var(--font-body);margin:28px 0;font-size:12px}.chapter-prose th,.chapter-prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 12px}.chapter-prose th{color:var(--muted);border-top:1px solid var(--ink);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:9px}.code-frame{color:#dce8e4;font-family:var(--font-mono);background:#111816;border:1px solid #2e3b37;border-radius:4px;margin:28px 0;overflow:hidden}.code-frame figcaption{color:#81938c;border-bottom:1px solid #31413c;justify-content:space-between;align-items:center;height:38px;padding:0 12px 0 15px;font-size:10px;display:flex}.code-frame figcaption button{color:#8da19a;cursor:pointer;background:0 0;border:1px solid #3f504a;border-radius:3px;padding:3px 7px}.code-frame figcaption button:hover,.code-frame figcaption button[data-copied]{color:#b9e7d4;border-color:#68a58c}.code-frame pre{tab-size:2;margin:0;padding:18px 20px 20px;font-family:inherit;font-size:12px;line-height:1.7;overflow-x:auto}.code-frame code{font-family:inherit}.learning-block{--block-color:var(--cyan);--block-soft:var(--cyan-soft);border:1px solid var(--line-strong);border-left:4px solid var(--block-color);font-family:var(--font-body);background:#fafbf7b3;border-radius:3px;margin:32px 0;padding:0;font-size:14px;line-height:1.75}.learning-block--failure{--block-color:var(--red);--block-soft:var(--red-soft)}.learning-block--checkpoint,.learning-block--transfer{--block-color:var(--green);--block-soft:var(--green-soft)}.learning-block--rebuild{--block-color:#256b72;--block-soft:#e2f2f1;box-shadow:0 12px 30px #185d6514}.learning-block--pi{--block-color:var(--amber);--block-soft:var(--amber-soft)}.learning-block--note{--block-color:var(--muted);--block-soft:var(--paper-deep)}.learning-block>header{border-bottom:1px solid var(--line);background:var(--block-soft);grid-template-columns:auto 1fr auto;align-items:center;gap:11px;min-height:48px;padding:8px 14px;display:grid}.block-kicker{color:var(--block-color);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.learning-block h4{margin:0;font-size:14px}.learning-block header small{color:var(--muted);font-size:9px}.block-body{padding:13px 17px 15px}.block-body>:first-child{margin-top:0}.block-body>:last-child{margin-bottom:0}.learning-block .code-frame{margin:18px 0}.prediction-answer{border-top:1px solid var(--line)}.prediction-answer summary{color:var(--block-color);cursor:pointer;padding:10px 16px;font-size:12px;font-weight:700}.prediction-answer>div{padding:2px 17px 14px}.chapter-complete{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);grid-template-columns:48px 1fr auto;align-items:center;gap:18px;margin-top:78px;padding:28px 0;display:grid}.completion-mark{color:#fff;background:var(--green);width:44px;height:44px;font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:12px;display:grid}.chapter-complete small{color:var(--green);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.chapter-complete h2{font-family:var(--font-display);margin:2px 0;font-size:22px}.chapter-complete p{color:var(--muted);margin:0;font-size:11px}.chapter-complete button{color:#fff;border-color:var(--green);background:var(--green)}.chapter-pagination{grid-template-columns:1fr 1fr;gap:20px;margin-top:34px;display:grid}.chapter-pagination a{border:1px solid var(--line);border-radius:3px;align-items:center;gap:12px;min-height:72px;padding:12px 14px;display:flex}.chapter-pagination a:last-child{text-align:right;justify-content:flex-end}.chapter-pagination a:hover{border-color:var(--cyan)}.chapter-pagination span{display:grid}.chapter-pagination small{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;font-size:8px}.chapter-pagination strong{font-size:11px;line-height:1.4}.on-this-page{top:var(--header-height);height:calc(100vh - var(--header-height));border-left:1px solid var(--line);align-self:start;padding:35px 24px;position:sticky}.on-this-page h2{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:7px;margin:0 0 14px;font-size:10px;display:flex}.on-this-page ol{margin:0;padding:0;list-style:none}.on-this-page li{margin:0 0 8px}.on-this-page a{color:var(--muted);font-size:10px;line-height:1.45;display:block}.on-this-page a:hover{color:var(--cyan)}.toc-meta{color:var(--muted);border-top:1px solid var(--line);font-family:var(--font-mono);justify-content:space-between;margin-top:24px;padding-top:13px;font-size:9px;display:flex}.toc-meta strong{color:var(--cyan)}.mobile-course-toggle,.mobile-drawer-heading,.drawer-backdrop{display:none}.reference-page{padding-top:92px}.reference-hero{max-width:850px;margin-bottom:80px}.reference-hero.compact{margin-bottom:55px}.map-invariants{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);grid-template-columns:240px 1fr;gap:40px;margin-bottom:90px;padding:30px 0;display:grid}.map-invariants h2{font-family:var(--font-display);margin:0;font-size:22px}.map-invariants ol{grid-template-columns:1fr 1fr;gap:0 24px;margin:0;padding:0;list-style:none;display:grid}.map-invariants li{color:var(--ink-soft);border-bottom:1px solid var(--line);grid-template-columns:30px 1fr;gap:10px;padding:9px 0;font-size:12px;display:grid}.map-invariants li span{color:var(--cyan);font-family:var(--font-mono);font-size:10px}.prose-page article{width:min(760px,100%);font-family:var(--font-display);margin-left:18%;font-size:17px;line-height:1.9}.prose-page article h2{border-top:1px solid var(--line);margin:62px 0 18px;padding-top:20px;font-size:28px}.method-steps{border-top:1px solid var(--ink);margin:28px 0;padding:0;list-style:none}.method-steps li{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;gap:18px;padding:14px 0;display:grid}.method-steps strong{color:var(--cyan);font-family:var(--font-body);font-size:13px}.method-steps span{font-size:15px}.source-note{color:var(--muted);font-family:var(--font-body);font-size:12px}.source-note a{color:var(--cyan);text-decoration:underline}.mastery-rule{color:#e7efeb;background:var(--ink);margin:48px 0;padding:26px 28px}.mastery-rule small{color:#75bfbf;font-family:var(--font-mono);letter-spacing:.1em;font-size:9px}.mastery-rule p{margin:8px 0 0;font-size:20px;line-height:1.7}.text-action{color:var(--cyan);font-family:var(--font-body);text-underline-offset:4px;font-size:13px;font-weight:700;text-decoration:underline;display:inline-block}.glossary{border-top:1px solid var(--ink);margin:0}.glossary>div{border-bottom:1px solid var(--line);grid-template-columns:290px 1fr;gap:40px;padding:22px 0;display:grid}.glossary dt{font-family:var(--font-display);align-items:baseline;gap:18px;font-size:20px;font-weight:650;display:flex}.glossary dt span{color:var(--cyan);font-family:var(--font-mono);font-size:10px}.glossary dd{color:var(--ink-soft);margin:0;font-size:14px}.not-found{min-height:calc(100vh - var(--header-height));place-content:start;padding:15vh 10vw;display:grid}.not-found>span{color:var(--red);font-family:var(--font-mono);letter-spacing:.1em;font-size:11px}.not-found h1{font-family:var(--font-display);margin:14px 0;font-size:52px}.not-found p{color:var(--muted)}.not-found a{color:var(--cyan);margin-top:25px;font-weight:700}@media (width<=1180px){.home-hero{grid-template-columns:minmax(0,1fr) 430px;gap:50px;padding-left:44px;padding-right:44px}.hero-copy h1{font-size:56px}.reader{grid-template-columns:248px minmax(0,1fr)}.on-this-page{display:none}.chapter-main{padding-left:34px;padding-right:34px}}@media (width<=900px){.site-header{grid-template-columns:1fr auto;padding:0 18px}.site-header nav{display:none}.home-hero{grid-template-columns:1fr;gap:60px;min-height:0;padding:72px 34px 92px}.home-hero:after{display:none}.hero-copy h1{font-size:50px}.hero-trace{width:min(650px,100%)}.hero-scroll{display:none}.principle-band{grid-template-columns:1fr 1fr}.principle-band>div:nth-child(2){border-right:0}.principle-band>div:nth-child(-n+2){border-bottom:1px solid var(--line-strong)}.home-course,.reference-page{width:calc(100% - 44px);padding-top:80px}.course-part{grid-template-columns:90px 1fr}.part-index{font-size:42px}.home-contract{grid-template-columns:1fr;gap:28px;padding:56px 34px}.home-contract blockquote{border-left:0;padding-left:0}.reader{display:block}.course-sidebar{z-index:90;visibility:hidden;width:min(330px,88vw);height:100vh;transition:transform .18s,visibility .18s;position:fixed;top:0;bottom:0;left:0;transform:translate(-104%);box-shadow:18px 0 45px #0d14122e}.course-sidebar.is-open{visibility:visible;transform:translate(0)}.mobile-drawer-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:58px;padding:0 16px 0 24px;display:flex}.sidebar-scroll{height:calc(100% - 58px)}.drawer-backdrop{z-index:80;background:#1118166b;border:0;display:block;position:fixed;inset:0}.mobile-course-toggle{top:calc(var(--header-height) + 10px);z-index:30;color:var(--ink-soft);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f4f5f0f0;border-radius:3px;align-items:center;gap:7px;margin:10px 0 0 18px;padding:7px 10px;font-size:11px;display:inline-flex;position:sticky}.chapter-main{padding-top:0}.chapter-hero{padding-top:38px}.prose-page article{margin-left:0}.map-invariants{grid-template-columns:1fr}}@media (width<=620px){:root{--header-height:58px}.site-header{height:var(--header-height);padding:0 12px}.brand small,.search-trigger span,.header-progress{display:none}.brand-mark{width:31px;height:31px;font-size:19px}.search-trigger{justify-content:center;width:38px;min-width:38px;padding:0}.search-trigger kbd{display:none}.home-hero{padding:56px 20px 72px}.hero-copy h1{font-size:40px}.hero-intro{font-size:16px}.primary-action{min-height:70px}.hero-trace{box-shadow:8px 8px 0 var(--cyan-soft)}.hero-trace li{grid-template-columns:26px 44px 1fr;gap:6px;padding:9px 11px;font-size:9px}.principle-band{grid-template-columns:1fr}.principle-band>div{border-right:0;border-bottom:1px solid var(--line-strong);min-height:100px}.home-course,.reference-page{width:calc(100% - 32px);padding:68px 0 90px}.section-heading h2,.reference-hero h1{font-size:35px}.course-part{display:block}.part-index{border-right:0;padding:24px 0 0;font-size:34px}.part-content{padding:8px 0 30px}.part-content>header{margin-bottom:20px}.part-content header h2{font-size:23px}.part-content header>small{display:none}.part-content li>a{grid-template-columns:22px 28px minmax(0,1fr);gap:7px;min-height:64px}.part-content time,.part-content li small{display:none}.home-contract{padding:48px 20px}.home-contract blockquote{font-size:18px}.site-footer{padding:34px 20px;display:grid}.site-footer nav{grid-template-columns:1fr 1fr;display:grid}.chapter-main{padding:0 18px 75px}.chapter-hero h1{font-size:36px}.chapter-hero>p{font-size:15px}.chapter-facts{grid-template-columns:1fr 1fr}.chapter-facts>div:nth-child(2){border-right:0}.chapter-facts>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.chapter-facts>div:nth-child(3){padding-left:0}.commit-companion{padding:16px}.commit-companion>header{display:grid}.commit-companion>header>code{width:fit-content}.commit-companion dl{grid-template-columns:1fr 1fr}.commit-companion dl>div:nth-child(2){border-right:0}.commit-companion dl>div:last-child{border-top:1px solid #30443f;grid-column:1/-1;padding-left:0}.commit-command{flex-direction:column;align-items:stretch}.commit-command button{width:100%}.chapter-prose{font-size:16px}.chapter-prose h2{font-size:26px}.heading-anchor{display:none}.learning-block>header{grid-template-columns:1fr;gap:2px;padding:10px 13px}.learning-block header small{display:none}.code-frame{margin-left:-8px;margin-right:-8px}.code-frame pre{padding:16px;font-size:11px}.chapter-complete{grid-template-columns:42px 1fr}.chapter-complete button{grid-column:1/-1;justify-content:center}.chapter-pagination{grid-template-columns:1fr}.chapter-pagination>span{display:none}.map-invariants ol{grid-template-columns:1fr}.glossary>div{grid-template-columns:1fr;gap:8px}.method-steps li{grid-template-columns:1fr;gap:4px}.not-found{padding:12vh 24px}.not-found h1{font-size:38px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
