:root{--cream:#faf7f0;--charcoal:#3a3733;--sage:#8fa382;--butter:#e8b94a;--bg:#fff;--ink:var(--charcoal);--fg:var(--ink);--muted:#706d68;--hairline:rgba(58,55,51,.12);--sage-ink:#56624e;--sage-wash:#d3dbcc;--note:#f6f27e;--note-ink:var(--charcoal);--surface:#fff;--shadow-color:58 55 51;--grain-opacity:0.16;--ghost-opacity:0.05;color-scheme:light;--font-sans:var(--font-inter),ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-script:var(--font-caveat),"Bradley Hand","Segoe Print",cursive;--font-mono:var(--font-sans);--leading:1.55;--leading-tight:1.1;--measure:68ch;--step--1:clamp(0.83rem,0.8rem + 0.12vw,0.9rem);--step-0:clamp(1rem,0.96rem + 0.2vw,1.125rem);--step-1:clamp(1.2rem,1.12rem + 0.4vw,1.5rem);--step-2:clamp(1.44rem,1.28rem + 0.75vw,2rem);--step-3:clamp(1.73rem,1.45rem + 1.3vw,2.67rem);--step-4:clamp(2.07rem,1.6rem + 2.2vw,3.55rem);--step-5:clamp(2.49rem,1.7rem + 3.6vw,4.74rem);--step-display:clamp(3.6rem,2rem + 8vw,10rem);--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:40px;--space-6:48px;--space-8:64px;--space-10:80px;--space-12:96px;--space-16:128px;--space-20:160px;--section-gap:clamp(var(--space-12),14vw,var(--space-20) + var(--space-8));--margin:clamp(24px,8vw,144px);--gutter:clamp(var(--space-2),2vw,var(--space-3));--max-width:1600px;--header-h:72px;--radius:2px;--shadow-rest:0 1px 2px rgb(var(--shadow-color)/0.08),0 2px 6px rgb(var(--shadow-color)/0.06);--shadow-lift:0 10px 18px rgb(var(--shadow-color)/0.14),0 22px 40px rgb(var(--shadow-color)/0.12);--dur-xs:0.2s;--dur-s:0.4s;--dur-m:0.8s;--dur-l:1.2s;--ease-ink:cubic-bezier(0.12,0.62,0.32,0.96);--ease-paper:cubic-bezier(0.3,1.45,0.55,1);--ease-snap:cubic-bezier(0.4,0,0.1,1);--z-cursor:9000;--z-transition:8000;--z-header:100}*,:after,:before{box-sizing:border-box}html{text-size-adjust:100%;background:var(--bg);scrollbar-gutter:stable}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:clip}body{margin:0;min-height:100svh;overflow-x:clip;background-color:var(--bg);background-image:radial-gradient(circle at 1px 1px,rgb(from var(--ink) r g b/var(--grain-opacity)) 1px,transparent 1.2px);background-size:24px 24px;color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:var(--leading);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background-color var(--dur-s) var(--ease-snap),color var(--dur-s) var(--ease-snap)}@supports not (color:rgb(from red r g b)){body{background-image:radial-gradient(circle at 1px 1px,rgba(58,55,51,.035) 1px,transparent 1.2px)}}canvas,img,svg,video{display:block;max-width:100%}blockquote,dd,dl,figure,h1,h2,h3,h4,ol,p,ul{margin:0}:where(ul,ol)[role=list]{list-style:none;padding:0}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--butter);color:var(--charcoal)}h1,h2,h3,h4{font-weight:600;line-height:var(--leading-tight);letter-spacing:-.02em;text-wrap:balance}li,p{text-wrap:pretty}strong{font-weight:600}.prose{max-width:var(--measure)}.prose>*+*{margin-top:1.1em}.prose li,.prose p{color:var(--ink)}.kicker{font-family:var(--font-script);font-size:var(--step-2);font-weight:600;line-height:1;color:var(--sage-ink);letter-spacing:0}.eyebrow,.muted{color:var(--muted)}.eyebrow{font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;font-weight:500}.page{padding-top:calc(var(--header-h) + var(--space-8))}.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--margin)}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-column-gap:var(--gutter);column-gap:var(--gutter)}.section{margin-top:var(--section-gap)}.stack>*+*{margin-top:var(--stack,var(--space-3))}.marker-link{background-image:linear-gradient(var(--butter),var(--butter));background-repeat:no-repeat;background-position:0 92%;background-size:0 .38em;transition:background-size var(--dur-s) var(--ease-ink);padding-inline:.06em;margin-inline:-.06em}.marker-link:focus-visible,.marker-link:hover{background-size:100% .38em}.marker-link--static,.prose a{background-size:100% .12em}.prose a{background-image:linear-gradient(var(--butter),var(--butter));background-repeat:no-repeat;background-position:0 92%;transition:background-size var(--dur-s) var(--ease-ink)}.prose a:hover{background-size:100% .38em}:focus{outline:none}:focus-visible{outline:3px solid var(--sage-ink);outline-offset:4px;border-radius:6px 3px 7px 4px}.skip-link{position:fixed;left:var(--space-2);top:var(--space-2);z-index:calc(var(--z-cursor) + 1);padding:var(--space-1) var(--space-2);background:var(--butter);color:var(--charcoal);font-weight:600;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.todo{display:block;border:1.5px dashed var(--muted);border-radius:var(--radius);padding:var(--space-2) var(--space-3);color:var(--muted);font-size:var(--step--1);background:transparent}.todo:before{content:"✎ "}.js [data-reveal=pending]{visibility:hidden;animation:reveal-failsafe 0s linear 6s forwards}@keyframes reveal-failsafe{to{visibility:visible}}html[data-motion=reduce] [data-reveal=pending]{visibility:visible}html[data-loader],html[data-loader] body{overflow:hidden}html[data-loader] [data-site-content]{opacity:0;transform:translate3d(0,12px,0);animation:loader-failsafe .4s ease-out 12s forwards}html[data-loader=reduced] [data-site-content]{transform:none}@keyframes loader-failsafe{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}html[data-motion=reduce] *,html[data-motion=reduce] :after,html[data-motion=reduce] :before{transition-duration:.01ms!important}.wiggle{display:inline-block;transform-origin:50% 70%;animation:wiggle 1.6s ease-in-out infinite}@keyframes wiggle{0%,to{transform:rotate(0deg) translateX(0)}15%{transform:rotate(-4deg) translateX(-1px)}30%{transform:rotate(3.5deg) translateX(1px)}45%{transform:rotate(-3deg) translateX(-1px)}60%{transform:rotate(2deg) translateX(1px)}75%{transform:rotate(0deg) translateX(0)}}html[data-motion=reduce] .wiggle{animation:none}@media (prefers-reduced-motion:reduce){.wiggle{animation:none}}