:root{--paper:#f2efe8;--ink:#2a35c8;--ink-soft:color-mix(in srgb, var(--ink) 80%, var(--paper));--ink-25:color-mix(in srgb, var(--ink) 25%, var(--paper));--ink-12:color-mix(in srgb, var(--ink) 12%, var(--paper));--ink-6:color-mix(in srgb, var(--ink) 6%, var(--paper));--ink-deep:color-mix(in srgb, var(--ink) 82%, black);--font-display:"Instrument Serif", Georgia, serif;--font-body:"Karla", "Helvetica Neue", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:40px;--s6:48px;--s8:64px;--s10:80px;--s12:96px;--step--1:clamp(.8125rem, .79rem + .1vw, .875rem);--step-0:clamp(1rem, .96rem + .2vw, 1.125rem);--step-1:clamp(1.125rem, 1.04rem + .4vw, 1.375rem);--step-2:clamp(1.375rem, 1.17rem + .9vw, 1.875rem);--step-3:clamp(2rem, 1.5rem + 2.2vw, 3.5rem);--step-4:clamp(2.5rem, 1.5rem + 4.4vw, 5.5rem);--step-amp:clamp(18rem, 12rem + 34vw, 54rem);--gutter:clamp(24px, 5vw, 64px);--max:1440px;--radius:16px;--hairline:1px solid var(--ink-25);--shadow:0 1px 2px color-mix(in srgb, var(--ink) 10%, transparent), 0 12px 32px -8px color-mix(in srgb, var(--ink) 22%, transparent);--halftone:radial-gradient(circle, var(--ink) 32%, transparent 34%);--halftone-size:9px 9px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:100;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .16 0 0 0 0 .2 0 0 0 0 .78 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}img{max-width:100%;height:auto;display:block}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:400;line-height:1.04}p{margin:0 0 var(--s2)}a{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:var(--ink-25);text-underline-offset:.22em;transition:text-decoration-color .2s}a:hover{text-decoration-color:var(--ink)}:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:4px}::selection{background:var(--ink-25)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;overflow:hidden;position:absolute!important}.skip-link{left:var(--s2);z-index:200;padding:var(--s1) var(--s2);background:var(--ink);color:var(--paper);border-radius:999px;position:absolute;top:-100px}.skip-link:focus{top:var(--s2)}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.label{font-size:var(--step--1);color:var(--ink-soft);font-weight:600}.num{font-family:var(--font-mono);font-weight:400}hr.rule{border:0;border-top:var(--hairline);margin:0}.btn{align-items:center;gap:var(--s1);min-height:48px;padding:0 var(--s3);border:1.5px solid var(--ink);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);cursor:pointer;background:0 0;border-radius:999px;font-weight:600;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.btn:hover{background:var(--ink-6)}.btn--solid{background:var(--ink);color:var(--paper)}.btn--solid:hover{background:var(--ink-deep);border-color:var(--ink-deep)}.btn .arrow{transition:transform .2s}.btn:hover .arrow{transform:translate(3px)}.section-head{align-items:baseline;gap:var(--s2);margin-bottom:var(--s6);display:flex}.section-head h2{font-size:var(--step-3)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-motion:no-preference){.js [data-reveal]{opacity:0;transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0) * 90ms);transform:translateY(28px)}.js [data-reveal=left]{transform:translate(-40px)}.js [data-reveal=right]{transform:translate(40px)}.js [data-reveal=scale]{transform:scale(.94)}.js [data-reveal].is-in{opacity:1;transform:none}}
