/* ============================================================
   base.css — reset, typography defaults, scaffolding helpers
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font);
  font-size:var(--fs-body);
  line-height:1.6;
  color:var(--body);
  background:var(--navy);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,p{ margin:0; }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
button{ font:inherit; cursor:pointer; }

/* lenis */
html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }

/* type roles ---------------------------------------------------*/
.kicker{
  font-size:var(--fs-kicker); font-weight:700;
  text-transform:uppercase; letter-spacing:.12em;
  margin:0 0 .6em;
}
.h2{
  font-size:var(--fs-h2); font-weight:800; line-height:1.08;
  letter-spacing:-.01em; color:var(--ink);
}
.lead{ max-width:60ch; }
.cap{ font-size:var(--fs-cap); color:var(--muted); }

/* accessibility */
.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;
}
:focus-visible{ outline:3px solid var(--orange); outline-offset:3px; border-radius:4px; }

/* skip link */
.skip{
  position:absolute; left:8px; top:-60px; z-index:200;
  background:var(--orange); color:#fff; padding:10px 16px; border-radius:8px;
  font-weight:700; transition:top .2s var(--ease);
}
.skip:focus{ top:8px; }
