:root{--amber:#f3910f;--measure:42rem;--wide:72rem;--gutter:clamp(1.25rem, 4vw, 2.5rem);--radius:12px;--ease:cubic-bezier(.2, .7, .2, 1);--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--bg:#ebe8e2;--surface:#f4f2ee;--raised:#fbfaf8;--line:#1c1a171a;--line-strong:#1c1a172e;--text:#1c1a17;--soft:#34312c;--muted:#625d55;--faint:#6f6a62;--accent:#ec6a10;--accent-text:#b8500a;--accent-soft:#ec6a1024;--accent-line:#ec6a1073;--btn-bg:#1c1a17;--btn-ink:#f4f2ee;--btn-hover:#000;--glass:#ebe8e2c7;--hover:#1c1a170d;--hover-strong:#1c1a1714;--ok:#2e8a57;--stop:#a29d94;--logo-filter:invert(1) hue-rotate(180deg) saturate(1.3);--shadow-sm:0 1px 2px #281e140d, 0 1px 1px #281e1408;--shadow-md:0 1px 2px #281e140a, 0 8px 24px -6px #281e141f;--shadow-lg:0 2px 4px #281e140a, 0 24px 48px -12px #281e142e;--font-sans:"Host Grotesk", system-ui, sans-serif;--font-display:"Host Grotesk", system-ui, sans-serif;--display-weight:500;--display-tracking:-.05em;--display-leading:.95;--title-weight:500;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:1rem;line-height:1.6;transition:background .3s}img,svg{max-width:100%;display:block}a{color:var(--text);-webkit-text-decoration-color:var(--accent-line);text-decoration-color:var(--accent-line);text-underline-offset:.22em;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s}a:hover{color:var(--accent-text);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3{font-weight:var(--title-weight);letter-spacing:-.03em;text-wrap:balance;margin:0;line-height:1.1}h1,.display{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);line-height:var(--display-leading)}h2{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:calc(var(--display-tracking) * .7);font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}p{text-wrap:pretty;margin:0}.wrap{width:100%;max-width:var(--wide);padding-inline:var(--gutter);margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.eyebrow{color:var(--muted);align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:inline-flex}.button{border:1px solid var(--btn-bg);background:var(--btn-bg);min-height:2.75rem;color:var(--btn-ink);font:600 .9375rem/1 var(--font-sans);letter-spacing:-.01em;cursor:pointer;transition:background .15s ease, border-color .15s ease, color .15s ease, transform .15s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:0 1.15rem;text-decoration:none;display:inline-flex}.button:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:var(--btn-ink)}.button:active{transform:translateY(1px)}.button.ghost{border-color:var(--line-strong);background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text)}.button.ghost:hover{border-color:var(--text);background:var(--hover);color:var(--text)}.button .arrow{transition:transform .2s var(--ease)}.button:hover .arrow{transform:translate(3px)}.state{color:var(--muted);white-space:nowrap;align-items:center;gap:.45rem;font-size:.8125rem;font-weight:500;display:inline-flex}.state:before{content:"";background:var(--stop);border-radius:50%;width:.45rem;height:.45rem}.state.building:before{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.state.shipped:before{background:var(--ok)}.page-head{padding-block:clamp(3.5rem,8vw,6rem) clamp(2rem,4vw,3rem)}.page-head h1{font-size:clamp(2.5rem,1.6rem + 3.4vw,4rem)}.page-head .lead{text-wrap:balance;max-width:52ch;color:var(--muted);margin-top:1.1rem;font-size:clamp(1.0625rem,1rem + .3vw,1.1875rem)}.prose{max-width:var(--measure);color:var(--soft);font-size:1.125rem;line-height:1.75}.prose>*+*{margin-top:1.2em}.prose h2{color:var(--text);font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:-.025em;margin-top:2.4em;font-size:1.6rem}.prose h3{color:var(--text);letter-spacing:-.02em;margin-top:2em;font-size:1.2rem}.prose h2+*,.prose h3+*{margin-top:.7em}.prose strong{color:var(--text);font-weight:600}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.45em}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);margin-inline:0;padding-left:1.2em}.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.5em}.prose code{font-family:var(--font-mono);border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:.15em .4em;font-size:.85em}.prose pre{border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.25rem;font-size:.875rem;line-height:1.65;overflow-x:auto;background:var(--surface)!important}.prose pre code{background:0 0;border:0;padding:0}.prose img{border-radius:var(--radius)}@view-transition{navigation:auto}::view-transition-old(root){animation-duration:.22s}::view-transition-new(root){animation-duration:.22s}.js [data-reveal]{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:calc(var(--i,0) * 70ms);transform:translateY(16px)}.js [data-reveal].in{opacity:1;transform:none}.section{padding-top:clamp(5rem,11vw,8rem)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;margin-bottom:2rem;display:flex}.section-head p{max-width:56ch;color:var(--muted);margin-top:.6rem}.section-head>a{color:var(--text);white-space:nowrap;font-size:.9375rem;font-weight:500;text-decoration:none}.section-head>a span{transition:transform .25s var(--ease);display:inline-block}.section-head>a:hover{color:var(--accent-text)}.section-head>a:hover span{transform:translate(3px)}@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1;transform:none}*,:before,:after{transition:none!important;animation:none!important}}
