/* =========================================================
   BASE
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--font-body);
  font-size:var(--step-0);
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ul{ list-style:none; padding:0; }
input,textarea,select{ font:inherit; color:inherit; }

h1,h2,h3,h4{
  font-family:var(--font-display);
  text-transform:uppercase;
  letter-spacing:.01em;
  line-height:1.08;
  font-weight:600;
  color:var(--navy-900);
}
h1{ font-size:var(--step-5); }
h2{ font-size:var(--step-3); }
h3{ font-size:var(--step-2); }
h4{ font-size:var(--step-1); }

p{ max-width:62ch; }
.lede{ font-size:var(--step-1); color:var(--ink-soft); }

.mono{ font-family:var(--font-mono); }

.container{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

section{ position:relative; }

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

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

/* Selection */
::selection{ background:var(--amber-500); color:var(--navy-950); }

/* Eyebrow label — used to encode section identity, not decoration */
.eyebrow{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--font-mono);
  font-size:var(--step--1);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--amber-500);
}
.eyebrow::before{
  content:"";
  width:22px; height:2px;
  background:var(--amber-500);
}

.section-head{
  max-width:640px;
  margin-bottom:clamp(2rem,4vw,3.25rem);
}
.section-head h2{ margin-top:.5rem; }
.section-head p{ margin-top:.9rem; color:var(--ink-soft); }

.section-head.center{ margin-inline:auto; text-align:center; }
.section-head.center .eyebrow{ justify-content:center; }
.section-head.center::before{ display:none; }

/* Reveal-on-scroll (progressive enhancement, JS adds .is-visible) */
.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity var(--dur-med) var(--ease), transform var(--dur-med) var(--ease);
}
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; }
}
