*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-weight:400;font-size:var(--fs-body);line-height:var(--lh);color:var(--ink);background:var(--paper);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0 0 .5em;line-height:var(--lh-tight);font-weight:800;letter-spacing:-.01em}
h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3);font-weight:700}
p{margin:0 0 1rem}
a{color:inherit;text-decoration:none;transition:color var(--t-fast)}
img{max-width:100%;height:auto;display:block}
ul{margin:0;padding:0;list-style:none}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--lime);outline-offset:2px;border-radius:4px}
.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.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}
.skip-link{position:fixed;inset-inline-start:1rem;top:-100px;z-index:1000;background:var(--lime);color:var(--navy-900);padding:.7rem 1.2rem;border-radius:var(--r-sm);font-weight:700;transition:top var(--t)}
.skip-link:focus{top:1rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.95rem 1.5rem .78rem;line-height:1;border-radius:var(--r-pill);font-weight:700;border:0;transition:transform var(--t-fast),background var(--t-fast),box-shadow var(--t-fast)}
.btn-primary{background:var(--lime);color:var(--navy-900)}
.btn-primary:hover{background:var(--lime-600);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.btn-ghost{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,.25)}
.btn-ghost:hover{border-color:var(--lime);color:var(--lime)}
.reveal{opacity:0;transform:translateY(24px)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
.section{padding-block:clamp(3rem,6vw,6rem)}
.hero-stub{background:linear-gradient(160deg,var(--navy-800),var(--navy-900));color:#fff;padding-block:clamp(4rem,10vw,8rem)}
.hero-stub__kicker{color:var(--lime);font-weight:600;letter-spacing:.04em;margin-bottom:1rem}
.hero-stub__title{font-size:var(--fs-display);font-weight:800}
.hero-stub__lead{color:rgba(255,255,255,.8);font-size:1.25rem;max-width:44ch}
