*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.65;-webkit-font-smoothing:antialiased}
body.locked{overflow:hidden}
::selection{background:var(--accent);color:var(--accent-fg)}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.08;letter-spacing:-.055em}
h2{font-size:var(--fs-3xl)}h3{font-size:var(--fs-xl)}
a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{ -webkit-tap-highlight-color:transparent }
button{color:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}
button{border:0}img,svg{display:block;max-width:100%}img{height:auto}
ul,ol{margin:0;padding:0;list-style:none}button,input,textarea,select{border-radius:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
[hidden]{display:none!important}.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}
.shell{width:calc(100% - var(--gutter)*2);max-width:var(--max-width);margin-inline:auto}
.section{padding-block:var(--sp-10)}.muted{color:var(--text-muted)}.accent{color:var(--accent)}
.eyebrow,.micro{font:var(--fs-xs)/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}
.skip-link{position:fixed;top:12px;left:12px;z-index:100;background:var(--accent);color:var(--accent-fg);padding:12px;transform:translateY(-200%)}.skip-link:focus{transform:none}
.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;flex:none}
.flex{display:flex;align-items:center;gap:16px}.stack{display:grid;gap:24px}.wrap{flex-wrap:wrap}
.reveal{opacity:1}.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease)}.motion-ready .reveal.in-view{opacity:1;transform:none}
@media(min-width:1024px){.section{padding-block:var(--sp-12)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}}
