:root{--paper: #d4e26a;--paper-2: #c8d65a;--hair: #becc60;--ink: #1a2b1a;--muted: #4e5e30;--accent: #1a4d6e;--accent-3: #3d6e5f;color-scheme:light;--doc-paper: #ffffff;--doc-ink: #111111;--stage-ink: #e8ece0;--font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif;--font-serif: "DM Sans", ui-sans-serif, system-ui, sans-serif;--font-slab: "DM Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--pad-screen: 24px;--gap-card: 12px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1)}:root,[data-theme]{--hair-strong: color-mix(in srgb, var(--hair) 65%, var(--ink));--accent-2: color-mix(in srgb, var(--accent) 70%, var(--paper));--scrim: color-mix(in srgb, #000 62%, var(--paper));--shadow: color-mix(in srgb, #000 30%, transparent)}[data-theme=pistachio]{--paper: #d4e26a;--paper-2: #c8d65a;--hair: #becc60;--ink: #1a2b1a;--muted: #4e5e30;--accent: #1a4d6e;--accent-3: #3d6e5f;color-scheme:light}[data-theme=parchment]{--paper: #efe7d3;--paper-2: #e6dcc3;--hair: #d3c6a6;--ink: #3a3222;--muted: #5f553f;--accent: #7b5632;--accent-3: #e3d3b4;color-scheme:light}[data-theme=chalk]{--paper: #f5f6f4;--paper-2: #eaece8;--hair: #d2d6ce;--ink: #16191a;--muted: #5c6360;--accent: #1f5f8b;--accent-3: #dde6ed;color-scheme:light}[data-theme=clay]{--paper: #f2e4dc;--paper-2: #e9d6cb;--hair: #d6b9a9;--ink: #3a2823;--muted: #7d6055;--accent: #a4472f;--accent-3: #ebd0c2;color-scheme:light}[data-theme=warm-brown]{--paper: #1d2021;--paper-2: #282828;--hair: #3c3836;--ink: #ebdbb2;--muted: #a89984;--accent: #d5d639;--accent-3: #3e3d18;color-scheme:dark}[data-theme=soft-sage]{--paper: #272e33;--paper-2: #2e383c;--hair: #3d484d;--ink: #d3c6aa;--muted: #9aa79d;--accent: #c4d9a8;--accent-3: #3c4a34;color-scheme:dark}[data-theme=deep-swamp]{--paper: #10160f;--paper-2: #1a231a;--hair: #2a3529;--ink: #dce3d3;--muted: #8a9683;--accent: #9cb86a;--accent-3: #2c3d24;color-scheme:dark}[data-theme=moss-and-gold]{--paper: #191c13;--paper-2: #23271b;--hair: #34392a;--ink: #e4e4d6;--muted: #93967f;--accent: #ddbe6f;--accent-3: #453a1f;color-scheme:dark}[data-density=compact]{--pad-screen: 16px;--gap-card: 8px}[data-density=comfy]{--pad-screen: 36px;--gap-card: 16px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .2s ease,color .2s ease}button{font-family:inherit}input,textarea{font-family:inherit;color:inherit}a{color:inherit;text-decoration:none;cursor:pointer}::selection{background:var(--ink);color:var(--paper)}:focus{outline:none}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:8px;top:-60px;z-index:100;background:var(--ink);color:var(--paper);padding:12px 18px;font-family:var(--font-sans);font-size:14px;font-weight:600;text-decoration:none}.skip-link:focus-visible{top:8px;outline:2px solid var(--accent);outline-offset:2px}.chamfer{clip-path:polygon(4px 0%,0% 4px,0% calc(100% - 4px),4px 100%,calc(100% - 4px) 100%,100% calc(100% - 4px),100% 4px,calc(100% - 4px) 0%)}.landing-cta-card{flex:1 1 280px;min-width:260px;max-width:320px;background:transparent;border:1px solid var(--hair);padding:16px 18px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;column-gap:14px;row-gap:4px;align-items:center;cursor:pointer;font-family:inherit;color:var(--ink);text-align:left;transition:border-color .22s var(--ease-out-quart),background .22s var(--ease-out-quart),transform .26s var(--ease-out-expo)}.landing-cta-card:hover{border-color:var(--ink);background:var(--paper-2);transform:translateY(-1px)}.landing-cta-card:active{transform:translateY(0)}.landing-cta-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--ink)}.landing-cta-card .cta-kicker{grid-column:1;grid-row:1;font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .2s}.landing-cta-card:hover .cta-kicker{color:var(--accent)}.landing-cta-card .cta-title{grid-column:1;grid-row:2;font-size:17px;font-weight:600;line-height:1.25;letter-spacing:-.01em}.landing-cta-card .cta-sub{grid-column:1;grid-row:3;margin-top:4px;font-size:12px;color:var(--muted);line-height:1.4}.landing-cta-card .cta-arrow{grid-column:2;grid-row:1 / span 3;font-size:22px;color:var(--muted);align-self:center;display:inline-block;transition:transform .26s var(--ease-out-expo),color .2s}.landing-cta-card:hover .cta-arrow{transform:translate(6px);color:var(--ink)}@media (prefers-reduced-motion: reduce){.landing-cta-card,.landing-cta-card .cta-arrow,.landing-cta-card .cta-kicker{transition:none}.landing-cta-card:hover,.landing-cta-card:hover .cta-arrow{transform:none}}.landing-feature-card{background:var(--paper);border:1px solid var(--hair);display:flex;flex-direction:column;padding:0;transition:border-color .22s var(--ease-out-quart),background .22s var(--ease-out-quart),transform .26s var(--ease-out-expo)}.landing-feature-card:hover{border-color:var(--ink);background:var(--paper-2);transform:translateY(-1px)}.landing-feature-card.is-expanded{border-color:var(--ink);background:var(--paper-2);transform:none}.landing-feature-card .feature-card-header{background:transparent;border:none;padding:18px 18px 20px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"kicker indicator" "title indicator" "sub sub";align-items:start;gap:4px 12px;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;min-height:44px}.landing-feature-card .feature-card-header:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.landing-feature-card .cta-kicker{grid-area:kicker;font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase}.landing-feature-card .feature-card-title{grid-area:title;font-family:var(--font-sans);font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.25;margin:2px 0 4px;color:var(--ink)}.landing-feature-card .feature-card-sub{grid-area:sub;font-size:13px;color:var(--muted);line-height:1.5;margin:0}.landing-feature-card .feature-card-indicator{grid-area:indicator;align-self:center;font-family:var(--font-mono);font-size:18px;line-height:1;color:var(--muted);width:24px;text-align:center;-webkit-user-select:none;user-select:none}.landing-feature-card.is-expanded .feature-card-indicator{color:var(--ink)}.landing-feature-card .feature-card-details{padding:16px 18px 20px;display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--hair);margin-top:-2px;animation:feature-details-in .22s var(--ease-out-quart)}.landing-feature-card .feature-card-deep{font-family:var(--font-sans);font-size:14px;line-height:1.6;color:var(--ink);margin:0;max-width:640px}.landing-feature-card .feature-card-cta{align-self:flex-start;background:var(--accent);color:var(--paper);border:none;padding:10px 18px;font-size:13px;font-weight:600;font-family:var(--font-sans);text-decoration:none;cursor:pointer}@keyframes feature-details-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.landing-feature-card{transition:none}.landing-feature-card:hover{transform:none}.landing-feature-card .feature-card-details{animation:none}}.disclosure{transition:background-color .18s var(--ease-out-quart)}.disclosure summary{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none}.disclosure summary::-webkit-details-marker{display:none}.disclosure summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.disclosure summary:hover .chev{color:var(--ink)}.disclosure .chev{transition:transform .2s var(--ease-out-quart),color .12s ease;color:var(--muted);flex-shrink:0;display:inline-flex}.disclosure[open] .chev{transform:rotate(180deg)}.disclosure .reveal{animation:disclosure-reveal .22s var(--ease-out-quart) both}.feedback-md>:first-child{margin-top:0}.feedback-md>:last-child{margin-bottom:0}.feedback-md p{margin:0 0 8px}.feedback-md p:last-of-type{margin-bottom:0}@keyframes disclosure-reveal{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.disclosure .chev,.disclosure .reveal{transition:none;animation:none}}@media (prefers-reduced-motion: reduce){.scribe-trigger{animation:none;opacity:1}.scribe-hint{animation:none;background-image:none;color:var(--muted)}}.upgrade-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000;animation:upgrade-fade .22s var(--ease-out-quart) both}.upgrade-card{position:relative;max-width:480px;width:100%;padding:28px 26px 24px;animation:upgrade-rise .32s var(--ease-out-expo) both;box-shadow:0 20px 60px var(--shadow);max-height:calc(100vh - 40px);overflow-y:auto}@keyframes upgrade-fade{0%{opacity:0}to{opacity:1}}@keyframes upgrade-rise{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.upgrade-backdrop,.upgrade-card{animation:none}}@media (max-width: 480px){.upgrade-backdrop{padding:12px;align-items:flex-end}.upgrade-card{padding:22px 18px 18px}}@keyframes reveal-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.reveal{animation:reveal-up .7s var(--ease-out-expo) both}.reveal-1{animation-delay:60ms}.reveal-2{animation-delay:.14s}.reveal-3{animation-delay:.22s}.reveal-4{animation-delay:.3s}.reveal-5{animation-delay:.38s}.page-enter{animation:page-enter .36s var(--ease-out-expo) both}.stagger-children>*{animation:reveal-up .6s var(--ease-out-expo) both}.stagger-children>*:nth-child(1){animation-delay:60ms}.stagger-children>*:nth-child(2){animation-delay:.12s}.stagger-children>*:nth-child(3){animation-delay:.18s}.stagger-children>*:nth-child(4){animation-delay:.24s}.stagger-children>*:nth-child(5){animation-delay:.3s}.stagger-children>*:nth-child(6){animation-delay:.36s}.stagger-children>*:nth-child(7){animation-delay:.42s}.stagger-children>*:nth-child(8){animation-delay:.48s}.stagger-children>*:nth-child(n+9){animation-delay:.52s}.lift{transition:transform .28s var(--ease-out-expo),border-color .2s}.lift:hover{transform:translateY(-2px);border-color:var(--ink)}.lift:active{transform:translateY(0)}.btn-press{transition:transform .12s var(--ease-out-quart),background .2s,color .2s}.btn-press:active{transform:scale(.98)}.arrow-nudge{display:inline-block;transition:transform .28s var(--ease-out-expo)}.lift:hover .arrow-nudge,.btn-press:hover .arrow-nudge{transform:translate(4px)}.course-card{position:relative;overflow:hidden}.course-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--accent);transition:width .24s var(--ease-out-expo)}.course-card:hover:before{width:4px}.course-card .card-title{transition:transform .28s var(--ease-out-expo)}.course-card:hover .card-title{transform:translate(6px)}.type-caret{display:inline-block;width:.55em;height:.85em;margin-left:2px;vertical-align:-.07em;background:var(--ink);animation:caret-blink .9s steps(2,end) infinite}@keyframes caret-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.hero-stage{position:relative;width:100%;max-width:560px;min-height:clamp(220px,36vh,320px);display:grid;grid-template-columns:1fr;grid-template-rows:1fr;place-items:center}.hero-stage>*{grid-column:1;grid-row:1;width:100%;display:flex;flex-direction:column;align-items:center}.scribe-trigger{background:transparent;border:none;padding:0;cursor:pointer;font-family:inherit;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:16px;opacity:1;transform:scale(1);transition:opacity .28s ease-out,transform .32s cubic-bezier(.16,1,.3,1);animation:scribe-breathe 3.6s ease-in-out infinite}.scribe-trigger:hover{animation-play-state:paused;transform:scale(1.04)}.scribe-trigger:active{transform:scale(.98)}.scribe-trigger[data-active=false]{opacity:0;transform:scale(.78);pointer-events:none;animation:none;visibility:hidden;transition:opacity .28s ease-out,transform .32s cubic-bezier(.16,1,.3,1),visibility 0s linear .32s}.scribe-hint{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:transparent;transition:color .2s;background-image:linear-gradient(90deg,var(--muted) 0%,var(--muted) 40%,var(--ink) 50%,var(--muted) 60%,var(--muted) 100%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;animation:scribe-sweep 3.6s linear infinite}.scribe-trigger:hover .scribe-hint{background-image:none;color:var(--ink);animation:none}@keyframes scribe-breathe{0%,to{opacity:.55}50%{opacity:1}}@keyframes scribe-sweep{0%{background-position:100% 0}to{background-position:0% 0}}.search-form{opacity:0;transform:scale(.94);pointer-events:none;visibility:hidden;transition:opacity .32s ease-out .1s,transform .36s cubic-bezier(.16,1,.3,1) .1s,visibility 0s linear .42s}.search-form[data-active=true]{opacity:1;transform:scale(1);pointer-events:auto;visibility:visible;transition:opacity .32s ease-out .1s,transform .36s cubic-bezier(.16,1,.3,1) .1s,visibility 0s}.responsive-pad{padding:24px 20px}@media (min-width: 600px){.responsive-pad{padding:32px}}@media (min-width: 900px){.responsive-pad{padding:40px 48px}}.markdown-body p{margin:0 0 12px}.markdown-body p:last-child{margin-bottom:0}.markdown-body strong{font-weight:700}.markdown-body em{font-style:italic}.markdown-body code{font-family:var(--font-mono);font-size:.92em;background:var(--paper-2);padding:1px 5px}.markdown-body pre{background:var(--paper-2);border:1px solid var(--hair-strong);padding:10px 12px;overflow-x:auto;font-size:13px}.markdown-body ul,.markdown-body ol{margin:0 0 12px 20px}.markdown-body li{margin:2px 0}.markdown-body h1,.markdown-body h2,.markdown-body h3{font-weight:700;letter-spacing:-.01em;margin:20px 0 8px}.markdown-body h1{font-size:22px}.markdown-body h2{font-size:19px}.markdown-body h3{font-size:17px}.markdown-body blockquote{margin:0 0 12px;padding:4px 0 4px 14px;border-left:2px solid var(--ink)}.markdown-body .katex-display{margin:10px 0;overflow-x:auto}.scribe-art{position:relative;display:inline-block}.scribe-art img{opacity:0}.scribe-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);-webkit-mask:var(--scribe) center / contain no-repeat;mask:var(--scribe) center / contain no-repeat}img,svg{max-width:100%}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.print-host{position:absolute;left:-9999px;top:0;width:0;height:0;overflow:hidden}@media print{#root{display:none!important}html,body{background:#fff!important}.print-host code,.print-host pre{background:var(--doc-paper)!important;border-color:#999!important;color:var(--doc-ink)!important}.print-host blockquote{border-left-color:var(--doc-ink)!important}.print-host{position:static!important;left:auto!important;top:auto!important;width:auto!important;height:auto!important;overflow:visible!important;background:#fff!important}.print-doc{color:#000;background:#fff;font-family:DM Sans,system-ui,sans-serif;font-size:11pt;line-height:1.55;padding:.6in .7in;max-width:none}.print-doc .markdown-body{color:#000}.print-doc h1{font-size:18pt;margin:0 0 4pt}.print-doc .print-meta{font-size:9pt;color:#555;margin-bottom:14pt;padding-bottom:8pt;border-bottom:1px solid #000}.print-doc .print-footer{margin-top:18pt;padding-top:8pt;border-top:1px solid #ccc;font-size:8pt;color:#777;text-align:center}.print-doc .markdown-body p,.print-doc .markdown-body li,.print-doc .markdown-body .katex-display{page-break-inside:avoid}.print-doc .katex{font-size:1.05em}.exam-doc{color:#000;background:#fff;font-family:DM Sans,system-ui,sans-serif;font-size:12pt;line-height:1.55;padding:.6in .7in}.exam-doc .exam-header{text-align:center;border-bottom:2px solid #000;padding-bottom:14pt;margin-bottom:18pt}.exam-doc .exam-course{font-size:10pt;letter-spacing:.18em;text-transform:uppercase;color:#444;margin-bottom:4pt}.exam-doc .exam-title{font-size:24pt;font-weight:700;margin:0 0 10pt;letter-spacing:-.02em}.exam-doc .exam-meta{font-size:11pt;color:#222;margin-bottom:8pt}.exam-doc .exam-instructions{font-size:10pt;color:#444;font-style:italic}.exam-doc .exam-problem{page-break-inside:avoid;margin-bottom:14pt;border-top:1px solid #999;padding-top:10pt}.exam-doc .exam-problem:first-of-type{border-top:none;padding-top:0}.exam-doc .exam-problem-label{font-size:11pt;font-weight:700;letter-spacing:.04em}.exam-doc .exam-problem-topic{font-size:9pt;color:#666;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6pt}.exam-doc .exam-problem-body{color:#000;font-size:12pt}.exam-doc .exam-problem-body .katex{font-size:1.05em}.exam-doc .exam-workspace{min-height:3in;border-bottom:1px dashed #ccc;margin-top:8pt}.exam-doc .print-footer{margin-top:24pt;padding-top:8pt;border-top:1px solid #ccc;font-size:8pt;color:#777;text-align:center}.homework-doc{color:#000;background:#fff;font-family:DM Sans,system-ui,sans-serif;font-size:12pt;line-height:1.55;padding:.6in .7in}.homework-doc .homework-header{border-bottom:1.5px solid #000;padding-bottom:10pt;margin-bottom:16pt}.homework-doc .homework-title{font-size:22pt;font-weight:700;margin:0 0 4pt;letter-spacing:-.02em}.homework-doc .homework-meta{font-size:10pt;color:#666;letter-spacing:.04em}.homework-doc .homework-body{color:#000;font-size:12pt}.homework-doc .homework-body p,.homework-doc .homework-body li,.homework-doc .homework-body .katex-display{page-break-inside:avoid}.homework-doc .homework-body .katex{font-size:1.05em}.homework-doc .homework-body h1{font-size:14pt;margin:14pt 0 6pt}.homework-doc .homework-body h2{font-size:13pt;margin:12pt 0 6pt}.homework-doc .homework-body h3{font-size:12pt;margin:10pt 0 4pt}.homework-doc .print-footer{margin-top:24pt;padding-top:8pt;border-top:1px solid #ccc;font-size:8pt;color:#777;text-align:center}}
