/* GTSEAT tokens — filled from the web-craft design plan (2026-07-13).
   Schema: shared/web/kit/tokens.css. Palette grounded in the P47's own materials:
   studio-silver render field · carbon black · racing red · gunmetal. */
:root{
  /* palette */
  --bg:        #e9ebee;   /* studio silver — matches the CAD render field */
  --bg-alt:    #f2f3f5;
  --ink:       #101114;   /* carbon black */
  --ink-soft:  #5b6068;   /* gunmetal */
  --hairline:  #d2d5da;
  --dark:      #0c0d10;   /* carbon band */
  --dark-ink:  #edeef0;
  --dark-soft: #8a8f98;
  --dark-hair: rgba(255,255,255,.13);
  --accent:    #e10600;   /* racing red — few places, loud */
  --accent-on-dark: #ff2d24;

  /* type — Saira Condensed display / Hanken Grotesk body / IBM Plex Mono data */
  --font-display: "Saira Condensed", "Arial Narrow", sans-serif;
  --font-body:    "Hanken Grotesk", Helvetica, sans-serif;
  --font-mono:    "IBM Plex Mono", Menlo, monospace;

  /* type scale */
  --fs-super: clamp(88px, 15vw, 240px);   /* P47 supergraphic */
  --fs-h1:    clamp(52px, 8vw, 124px);
  --fs-h2:    clamp(34px, 4.6vw, 64px);
  --fs-h3:    clamp(20px, 2.2vw, 28px);
  --fs-num:   clamp(56px, 6.4vw, 104px);
  --fs-body:  15.5px;
  --fs-small: 13.5px;
  --fs-label: 11px;
  --track-super: -.01em; --track-tight: -.005em; --track-label: .18em;

  /* rhythm */
  --maxw: 1440px; --gutter: 40px;
  --sect-y: 120px;
  --radius: 0px;  /* zero — machined, not soft */

  /* motion */
  --ease: cubic-bezier(.19,1,.22,1);
  --dur: .9s; --stagger: 80ms;
}
/* base plumbing every kit page shares */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);
  font-size:var(--fs-body);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.mono{font-family:var(--font-mono)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);position:relative}
@media(max-width:720px){.wrap{padding:0 18px}}
.label{font-family:var(--font-mono);font-size:var(--fs-label);
  letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft)}
section{padding:var(--sect-y) 0}
section.dark{background:var(--dark);color:var(--dark-ink)}
section.dark .label{color:var(--dark-soft)}
/* reveal primitives (motion.js drives these) */
.rv{opacity:0;transform:translateY(34px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
.rv.in{opacity:1;transform:none}
.line-rv{display:block;overflow:hidden}
.line-rv span{display:block;transform:translateY(110%);transition:transform 1s var(--ease)}
.in .line-rv span,.line-rv.in span{transform:none}
@media(prefers-reduced-motion:reduce){
  .rv,.line-rv span{opacity:1;transform:none;transition:none}
}
