/* Resets, document defaults and shared primitives.
   Loaded on every page, after tokens.css. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:78px}
body{font-family:var(--font-body);color:var(--ink);background:var(--paper);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
body.lock{overflow:hidden}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
fieldset{border:0;min-width:0}
legend{display:block;width:100%}
a{color:var(--electric);text-decoration:none}
a:hover{color:var(--electric-700)}
:focus-visible{outline:3px solid var(--spark);outline-offset:3px;border-radius:2px}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;letter-spacing:-.025em;line-height:1.04}
::selection{background:var(--electric);color:var(--white)}

/* paper texture — print-registration dot grid, used on inner pages */
body.paper-grid{background-image:radial-gradient(var(--n-300) 1.1px,transparent 1.1px);
  background-size:22px 22px}

/* shared primitives — .spark is now the hexagon symbol holding the spark */
.spark{width:.866em;height:1em;fill:currentColor;display:inline-block;flex:none}
.ic{width:18px;height:18px;stroke:currentColor;stroke-width:2.2;fill:none;
  stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic.rev{transform:rotate(180deg)}
.shell{max-width:var(--maxw);margin:0 auto;padding:0 24px;width:100%}
.eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--electric);display:inline-flex;align-items:center;gap:8px}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.001ms!important;
    scroll-behavior:auto!important}
}
