*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  font-family:var(--font-body);
  background:var(--white);
  color:var(--ink);
  line-height:1.65;
  font-size:16px;
}
h1,h2,h3,.display{
  font-family:var(--font-display);
  font-weight:800;
  letter-spacing:-0.01em;
  line-height:1.15;
}
p{color:var(--steel);}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul,ol{list-style:none;}
button{font:inherit; background:none; border:none; cursor:pointer; color:inherit;}
input,select,textarea{font:inherit;}
svg{display:block;}

:focus-visible{outline:3px solid var(--amber-500); outline-offset:3px; border-radius:2px;}

.label{
  font-family:var(--font-label);
  font-weight:600;
  letter-spacing:0.06em;
  font-size:var(--text-eyebrow);
  text-transform:uppercase;
  color:var(--steel);
}

.wrap{max-width:var(--container); margin:0 auto; padding:0 var(--space-5);}
.wrap-narrow{max-width:var(--container-narrow); margin:0 auto; padding:0 var(--space-5);}

section{padding:72px 0;}
@media (max-width:880px){ section{padding:52px 0;} }

.section-head{max-width:640px; margin-bottom:var(--space-6);}
.section-head .label{margin-bottom:var(--space-3); display:block;}
.section-head h2{font-size:var(--text-h2); color:var(--ink);}
.section-head p{color:var(--steel); margin-top:var(--space-4); font-size:var(--text-body-lg);}
.section-head.on-dark h2{color:var(--white);}
.section-head.on-dark p{color:var(--slate-300);}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

.seam{
  height:6px;
  background:repeating-linear-gradient(90deg, var(--slate-400) 0 10px, transparent 10px 20px);
  background-size:20px 6px;
  opacity:0.35;
}

/* scroll-reveal */
.reveal{opacity:0; transform:translateY(18px); transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);}
.reveal.is-visible{opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}

.visually-hidden{
  position:absolute; width:1px; height:1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;
}

::selection{background:var(--amber-500); color:var(--navy-900);}
