/* Axionis landing — reset, typography, buttons, motion utilities */
*{ margin:0; padding:0; box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  background:var(--obsidian); color:var(--bone);
  font-family:'Inter',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.62;
  overflow-x:hidden;
}
::selection{ background:var(--ember); color:var(--obsidian); }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:0; background:none; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }

/* type */
h1,h2,h3,.dspl{ font-family:'Space Grotesk',sans-serif; font-weight:700; letter-spacing:-0.025em; line-height:1.03; }
.eyebrow{ font-size:11px; font-weight:600; letter-spacing:0.26em; text-transform:uppercase; color:var(--ember); }
.h2{ font-size:clamp(30px,5vw,58px); }
.lede{ color:var(--bone-dim); font-size:clamp(15px,1.55vw,19px); line-height:1.62; max-width:60ch; }
.em{ color:var(--ember); }
.muted{ color:var(--ash); }

section{ position:relative; padding:clamp(84px,12vw,156px) 0; }
.sectlabel{
  font-size:12px; letter-spacing:0.2em; text-transform:uppercase; color:var(--ash);
  display:flex; align-items:center; gap:16px; margin-bottom:26px;
}
.sectlabel::before{ content:""; width:26px; height:1px; background:var(--ember); }

/* buttons */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  font-weight:600; font-size:14.5px; letter-spacing:.01em;
  padding:14px 24px; border-radius:999px; position:relative;
  transition:transform .5s var(--ease), background .35s, color .35s, box-shadow .45s;
  will-change:transform;
}
.btn--solid{ background:var(--ember); color:#160b07; box-shadow:0 0 0 0 var(--ember-glow); }
.btn--solid:hover{ box-shadow:0 14px 40px -10px var(--ember-glow); transform:translateY(-2px); }
.btn--ghost{ border:1px solid var(--hair); color:var(--bone); }
.btn--ghost:hover{ border-color:var(--ember-line); color:#fff; background:var(--ember-soft); }
.btn--lg{ padding:17px 30px; font-size:16px; }

.dot{ width:7px; height:7px; border-radius:50%; background:var(--ember); box-shadow:0 0 10px var(--ember); }

/* reveal — gated by html.js so no-JS shows everything */
html.js .reveal{ opacity:0; transform:translateY(30px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
html.js .reveal.in{ opacity:1; transform:none; }
.reveal-d1{ transition-delay:.09s; }
.reveal-d2{ transition-delay:.18s; }
.reveal-d3{ transition-delay:.27s; }
.reveal-d4{ transition-delay:.36s; }

:focus-visible{ outline:2px solid var(--ember); outline-offset:4px; border-radius:6px; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

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