:root{--color-paper: oklch(12.5% .008 160);--color-paper-2: oklch(16.5% .01 160);--color-paper-3: oklch(21% .011 160);--color-ink: oklch(95% .006 160);--color-ink-2: oklch(80% .008 160);--color-muted: oklch(63% .01 160);--color-rule: oklch(27% .013 160);--color-rule-2: oklch(20% .011 160);--color-accent: oklch(66% .095 163);--color-accent-hi: oklch(75% .115 163);--color-accent-dim: oklch(52% .075 163);--color-accent-ink: oklch(14% .015 163);--color-focus: oklch(78% .13 163);--font-display: "Archivo", "Helvetica Neue", ui-sans-serif, sans-serif;--font-body: "Geist", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace;--text-xs: .8125rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.1875rem;--text-lg: 1.5rem;--text-xl: 1.9375rem;--text-2xl: 2.4375rem;--text-3xl: 3.0625rem;--text-display: clamp(2.125rem, 3.4vw + 1rem, 3.75rem);--text-hero: clamp(2.75rem, 6.4vw + .5rem, 7rem);--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--space-3xl: 6.5rem;--space-4xl: 9.5rem;--page-gutter: clamp(1.125rem, 4.5vw, 4.5rem);--page-max: 84rem;--measure: 62ch;--rule-hair: 1px;--rule-thick: 2px;--radius-sm: 3px;--radius-md: 5px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .46s;--dur-sweep: 14s;--z-base: 1;--z-raised: 10;--z-sticky: 200}@media(min-width:100rem){:root{font-size:17.5px}}@media(min-width:120rem){:root{font-size:19px}}*,*:before,*:after{box-sizing:border-box}html{overflow-x:clip;scroll-behavior:smooth;color-scheme:dark}body{margin:0;overflow-x:clip;min-height:100dvh;position:relative;font-family:var(--font-body);font-weight:350;font-size:var(--text-base);line-height:1.6;color:var(--color-ink);background:var(--color-paper)}body:after{content:"";position:fixed;inset:-10rem;z-index:0;pointer-events:none;background:radial-gradient(52rem 34rem at 82% 8rem,color-mix(in oklch,var(--color-accent) 11%,transparent),transparent 68%)}@supports (animation-timeline: scroll()){body:after{animation:ember-drift linear both;animation-timeline:scroll(root)}}@keyframes ember-drift{to{transform:translate3d(-3.5rem,5rem,0) scale(1.12);opacity:.8}}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}.drafting{position:fixed;inset:0;z-index:0;pointer-events:none;background:repeating-linear-gradient(to right,color-mix(in oklch,var(--color-ink) 3.5%,transparent) 0 1px,transparent 1px 56px),repeating-linear-gradient(to bottom,color-mix(in oklch,var(--color-ink) 3.5%,transparent) 0 1px,transparent 1px 56px),repeating-linear-gradient(to right,color-mix(in oklch,var(--color-accent) 6%,transparent) 0 1px,transparent 1px 224px),repeating-linear-gradient(to bottom,color-mix(in oklch,var(--color-accent) 6%,transparent) 0 1px,transparent 1px 224px);mask-image:radial-gradient(140% 110% at 50% 0%,black 42%,transparent 96%)}body>*{position:relative;z-index:var(--z-base)}section[id]{scroll-margin-block-start:5.5rem}h1,h2,h3{font-family:var(--font-display);font-style:normal;font-weight:700;line-height:1.05;letter-spacing:-.03em;margin:0;overflow-wrap:anywhere;min-width:0}p{margin:0;max-width:var(--measure)}a{color:inherit}a:active{opacity:.75}img,svg{max-width:100%;display:block}::selection{background:var(--color-accent);color:var(--color-accent-ink)}:focus-visible{outline:var(--rule-thick) solid var(--color-focus);outline-offset:3px;border-radius:2px}.shell{width:100%;max-width:var(--page-max);margin-inline:auto;padding-inline:var(--page-gutter)}.sec-head{display:grid;gap:var(--space-md);padding-block-end:var(--space-xl)}.sec-head h2{font-size:var(--text-display)}.sec-rule{border:0;border-top:var(--rule-thick) solid var(--color-accent-hi);margin:0;width:3.5rem}html.js .sec-rule:not(.reveal){transform:scaleX(0);transform-origin:0 50%;transition:transform .8s var(--ease-out)}html.js .sec-rule:not(.reveal).is-drawn{transform:none}.chip{display:inline-flex;align-items:center;gap:.5em;min-height:44px;padding:.6rem 1.25rem;white-space:nowrap;font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;letter-spacing:.01em;color:var(--color-ink);text-decoration:none;background:transparent;border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);transition:border-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out),background-color var(--dur-short) var(--ease-out)}.chip:hover{color:var(--color-accent);border-color:var(--color-accent-dim);background:color-mix(in oklch,var(--color-accent) 7%,transparent)}.chip--primary{padding:.85rem 1.75rem;font-size:var(--text-md);font-weight:600;color:var(--color-accent-ink);background:var(--color-accent);border-color:transparent}.chip--primary:hover{color:var(--color-accent-ink);background:var(--color-accent-hi);border-color:transparent}.chip--primary .chip__arrow{color:var(--color-accent-ink)}.chip__arrow{color:var(--color-accent-hi);transition:translate var(--dur-short) var(--ease-out)}.chip:hover .chip__arrow,.chip:focus-visible .chip__arrow{translate:.25em 0}.label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);font-variant-numeric:tabular-nums}.skip-link{position:absolute;inset-inline-start:var(--space-md);inset-block-start:var(--space-md);z-index:var(--z-sticky);padding:var(--space-xs) var(--space-md);background:var(--color-paper-3);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);text-decoration:none;translate:0 -300%}.skip-link:focus-visible{translate:0 0}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.reveal{opacity:0;transform:translateY(10px);animation:reveal var(--dur-long) var(--ease-out) forwards;animation-delay:calc(var(--i, 0) * 70ms)}@keyframes reveal{to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.15s!important;animation-iteration-count:1!important;transition-duration:.15s!important}.reveal{animation:reveal-reduced .15s linear forwards}@keyframes reveal-reduced{to{opacity:1;transform:none}}body:after{animation:none}html.js .sec-rule:not(.reveal){transform:none;transition:none}}
