html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{margin:0;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-body);background:var(--surface-page)}
h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--text-heading);margin:0;font-weight:var(--fw-semibold);text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:var(--copper-700);text-decoration:none;border-bottom:1px solid var(--copper-a32);transition:var(--transition-control)}
a:hover{color:var(--copper-600);border-bottom-color:var(--copper-600)}
code,kbd,samp{font-family:var(--font-mono);font-size:var(--fs-mono-sm)}
.ab-eyebrow{font-family:var(--font-display);font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);line-height:var(--lh-eyebrow);text-transform:uppercase;font-weight:var(--fw-semibold);color:var(--text-accent)}
.ab-mono{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:var(--ls-mono)}
/* Brand texture: fine engineering grid, for inverse panels and full-bleed blocks */
.ab-grid-texture{background-image:linear-gradient(var(--bone-a12) 1px,transparent 1px),linear-gradient(90deg,var(--bone-a12) 1px,transparent 1px);background-size:32px 32px}
.ab-rule{height:2px;background:var(--copper-600);border:0;width:48px;transform-origin:left center}
