/* ==========================================================================
   BASE — reset, typography, utility layout primitives
   ========================================================================== */

*,*::before,*::after{box-sizing:border-box;}
*{margin:0;padding:0;}

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

body{
  background:var(--ink-900);
  color:var(--text-hi);
  font-family:var(--font-display);
  font-size:var(--fs-16);
  line-height:1.6;
  min-height:100vh;
  padding-top:calc(var(--navbar-h) + var(--chrome-h));
  padding-bottom:calc(var(--statusbar-h) + 8px);
  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:none;cursor:pointer;}
ul,ol{list-style:none;}
input,textarea,select{font:inherit;color:inherit;background:none;border:none;}

::selection{background:var(--amber);color:var(--ink-950);}

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

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.15;
}
h1{font-size:var(--fs-48);}
h2{font-size:var(--fs-36);}
h3{font-size:var(--fs-22);}
h4{font-size:var(--fs-18);}

p{color:var(--text-md);}

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

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

.section{
  padding-block:clamp(56px,9vw,110px);
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-mono);
  font-size:var(--fs-12);
  letter-spacing:.06em;
  color:var(--amber);
  text-transform:lowercase;
  margin-bottom:14px;
}
.eyebrow::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:var(--amber);
  box-shadow:0 0 0 3px var(--amber-dim);
}

.lead{
  font-size:var(--fs-18);
  color:var(--text-md);
  max-width:60ch;
}

.grid{
  display:grid;
  gap:var(--gutter);
}

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

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

::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--ink-900);}
::-webkit-scrollbar-thumb{background:var(--ink-600);border-radius:8px;}
::-webkit-scrollbar-thumb:hover{background:var(--line);}
