*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:var(--size-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--display);font-weight:var(--weight-medium);text-wrap:balance;margin:0;letter-spacing:var(--tracking-heading)}
h1{font-size:var(--size-h1);line-height:var(--lh-h1)}
h2{font-size:var(--size-h2);line-height:var(--lh-h2)}
h3{font-size:var(--size-h3)}
h4{font-size:1rem}
p{margin:0;text-wrap:pretty}
strong,b{font-weight:var(--weight-medium)}
a{color:var(--clay);text-decoration:none}
a:hover{color:var(--clay-ink);text-decoration:underline}
::selection{background:var(--clay-soft);color:var(--clay-ink)}
:focus-visible{outline:var(--focus-width) solid var(--clay);outline-offset:var(--focus-offset)}
hr{border:0;border-top:1px solid var(--line);margin:0}
code,kbd,samp{font-family:var(--mono);font-size:.92em}
@media (max-width:760px){body{font-size:var(--size-body-mobile)}}

/* ---- layout ---- */
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.section{padding-block:var(--section-pad);border-top:1px solid var(--line)}
.stack-2{display:flex;flex-direction:column;gap:var(--space-2)}
.stack-4{display:flex;flex-direction:column;gap:var(--space-4)}
.measure{max-width:var(--measure)}

/* ---- type roles ---- */
.display{font-family:var(--display);font-weight:var(--weight-medium);font-size:var(--size-display);line-height:var(--lh-display);letter-spacing:var(--tracking-display)}
.h1{font-family:var(--display);font-weight:var(--weight-medium);font-size:var(--size-h1);line-height:var(--lh-h1);letter-spacing:-.03em}
.h2{font-family:var(--display);font-weight:var(--weight-medium);font-size:var(--size-h2);line-height:var(--lh-h2);letter-spacing:var(--tracking-heading)}
.h3{font-family:var(--display);font-weight:var(--weight-medium);font-size:var(--size-h3);letter-spacing:var(--tracking-heading)}
.lead{font-size:clamp(1.05rem,2.1vw,1.28rem);color:var(--slate);line-height:1.55;max-width:56ch}
.small{font-size:var(--size-small)}
.caption{font-size:var(--size-caption);color:var(--slate)}
.mono{font-family:var(--mono)}
.muted{color:var(--slate)}
.accent{color:var(--clay)}
.eyebrow{font-family:var(--mono);font-size:var(--size-eyebrow);font-weight:var(--weight-medium);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--slate)}
.label{font-family:var(--mono);font-size:var(--size-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--slate)}
.figure{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ---- motion ---- */
.pre{opacity:0;transform:translateY(var(--reveal-distance))}
.in{opacity:1;transform:none;transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
@media (prefers-reduced-motion:reduce){.pre{opacity:1!important;transform:none!important}*{animation:none!important;transition:none!important}}
