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

h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.08;letter-spacing:-.02em}
h1{font-size:clamp(2.1rem,5.2vw,3.6rem)}
h2{font-size:clamp(1.6rem,3.6vw,2.5rem)}
h3{font-size:clamp(1.15rem,2vw,1.4rem)}
p{max-width:66ch}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1.1rem,4vw,2.5rem)}
.section{padding:var(--section) 0}
.eyebrow{font-family:var(--font-display);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan-deep)}
.dark .eyebrow{color:var(--cyan)}
.lead{font-size:clamp(1.02rem,1.4vw,1.18rem);color:var(--muted);max-width:60ch}
.dark{background:var(--ink);color:#fff}
.dark p,.dark .lead{color:var(--gray)}
.center{text-align:center}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.6rem}.mt-4{margin-top:2.4rem}

/* fade-up on scroll (set by main.js IntersectionObserver) */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}
.reveal[data-d="4"]{transition-delay:.32s}

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

/* skip link a11y */
.skip{position:absolute;left:-999px}
.skip:focus{left:1rem;top:1rem;z-index:200;background:var(--cyan);color:var(--ink);padding:.6rem 1rem;border-radius:var(--r-sm)}
:focus-visible{outline:2px solid var(--cyan-deep);outline-offset:3px}
