/* ALMA design tokens. THE source of truth for the palette and type stack.
 *
 * Extracted 2026-08-28. Before this file the palette lived in three places
 * (index.html, blog/blog.css, own-line/index.html) and had already drifted:
 *   --border  .09 on the homepage, .1 in the blog
 *   --lime    #b6ff3c on the homepage, #8fd94a in the blog
 *   --ghost   #6a6770 everywhere, which fails WCAG AA at 3.61:1
 *
 * Add a token here, never in a page. A page may override one locally when it
 * genuinely needs to, but then it owns that decision in writing.
 */
:root{
  /* ground */
  --bg:#08080a;
  --bg2:#0d0d10;
  --panel:rgba(255,255,255,.028);
  --panel-hi:rgba(255,255,255,.05);
  --border:rgba(255,255,255,.09);
  --border-hi:rgba(255,255,255,.16);

  /* ink. --ghost is the lightest we go: it carries captions, hints and legal
     lines at 9.5-13.5px, so it must clear 4.5:1 on --bg. #8a8791 is 5.67:1.
     The old #6a6770 was 3.61:1, which is large-text only. */
  --ink:#f4f2ee;
  --dim:#a29ea6;
  --ghost:#8a8791;

  /* accent */
  --ember:#ff5a1f;
  --ember-soft:rgba(255,90,31,.14);
  --amber:#ffb84d;
  --lime:#b6ff3c;
  --pink:#ff3d7f;
  --grad:linear-gradient(100deg,#ff5a1f 0%,#ffb84d 100%);
  --grad-soul:linear-gradient(100deg,#ff7a3c,#ffcf6b);

  /* type */
  --sans:"Geist",-apple-system,"Segoe UI",sans-serif;
  --disp:"Space Grotesk",var(--sans);
  --serif:"Instrument Serif",Georgia,serif;
  --mono:"JetBrains Mono","SF Mono",monospace;

  /* motion */
  --ease:cubic-bezier(.2,.75,.2,1);
}

/* WCAG 2.4.7. A keyboard user has to be able to see where they are. The blog
   shipped without this until 2026-08-28; a page can still style :focus-visible
   itself, this is the floor so no page ships with nothing. */
:focus-visible{
  outline:2px solid var(--ember);
  outline-offset:3px;
  border-radius:3px;
}

/* WCAG 2.3.3. Every ALMA page inherits this, so no page has to remember it. */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}
