/**
 * Stomme AI — Brand CSS Custom Properties v2
 * Version: 2.0 — Arc Raiders direction
 * Author: Saga Lindqvist, CMO
 * Date: 2026-03-21
 *
 * REPLACES: stomme-brand-variables.css (v1.0)
 *
 * Drop this file into the website <head> BEFORE style.css, AFTER a CSS reset.
 * This file defines all design tokens. style.css consumes them.
 *
 * Architecture:
 *   :root — dark mode (default, primary experience)
 *   [data-theme="light"] — light mode overrides
 *   @media prefers-color-scheme: light — system preference fallback
 *
 * Usage:
 *   background: var(--color-bg);
 *   font-family: var(--font-display);
 *   padding: var(--space-8);
 */

/* ─────────────────────────────────────────────────────────────────────────────
   GOOGLE FONTS
   Barlow Condensed: industrial bold display type (replaces Cormorant)
   Inter: clean humanist sans for body + UI (replaces DM Sans)
   JetBrains Mono: unchanged
   ───────────────────────────────────────────────────────────────────────────── */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500&display=swap');


/* ─────────────────────────────────────────────────────────────────────────────
   ROOT — DARK MODE (DEFAULT, PRIMARY)
   Dark is the primary experience. Light is secondary.
   ───────────────────────────────────────────────────────────────────────────── */

:root {

  /* ── Named Palette: Dark ─────────────────────────────────────────────────── */

  /* Foundation */
  --color-djup:    #111010;   /* Djup — page background, deepest layer */
  --color-kol:     #1C1A18;   /* Kol — surface, card backgrounds */
  --color-dimma:   #252220;   /* Dimma — elevated surfaces, dropdowns */
  --color-rok:     #2E2B27;   /* Rök — borders, structural dividers */

  /* Text */
  --color-linne:   #F2EDE4;   /* Linne — primary text, headings */
  --color-stal:    #8A8278;   /* Stål — secondary text, supporting UI */
  --color-muted:   #4A4642;   /* Muted — disabled text, placeholder */

  /* Accent */
  --color-amber:   #E8A54B;   /* Bärnsten — THE accent. All interactive elements. */
  --color-amber-hover:  #F2B760;   /* Amber lightened — hover state */
  --color-amber-dim:    rgba(232, 165, 75, 0.12); /* Amber at 12% — subtle highlight bg */
  --color-amber-border: rgba(232, 165, 75, 0.25); /* Amber at 25% — border accent */

  /* Semantic */
  --color-success: #4E9470;   /* Löv — green */
  --color-warning: #E8A54B;   /* Same as Amber — warning uses amber family */
  --color-error:   #C44A35;   /* Lera — brick red (error only, not brand) */
  --color-info:    #5A82A0;   /* Hav — muted sea blue */

  /* Semantic backgrounds */
  --color-success-bg: #0F2018;
  --color-warning-bg: #2A1D08;
  --color-error-bg:   #2A0F0A;
  --color-info-bg:    #0C1C28;


  /* ── Semantic Roles: Dark (default) ─────────────────────────────────────── */

  --color-bg:               var(--color-djup);       /* Page background */
  --color-bg-surface:       var(--color-kol);        /* Card/section surfaces */
  --color-bg-elevated:      var(--color-dimma);      /* Modals, dropdowns */
  --color-bg-subtle:        rgba(255,255,255,0.03);  /* Very subtle tint */
  --color-bg-muted:         rgba(255,255,255,0.06);  /* Inline code, tags */

  --color-border:           var(--color-rok);        /* Default borders */
  --color-border-subtle:    rgba(255,255,255,0.06);  /* Very subtle dividers */
  --color-border-strong:    var(--color-stal);       /* Emphasized borders */
  --color-border-accent:    var(--color-amber-border); /* Amber-tinted border */

  --color-text:             var(--color-linne);      /* Primary text */
  --color-text-secondary:   var(--color-stal);       /* Supporting text */
  --color-text-muted:       var(--color-muted);      /* Placeholder, disabled */
  --color-text-inverse:     var(--color-djup);       /* Text on amber backgrounds */
  --color-text-on-amber:    #111010;                 /* Explicit: text on amber bg */

  --color-accent:           var(--color-amber);
  --color-accent-hover:     var(--color-amber-hover);
  --color-accent-subtle:    var(--color-amber-dim);
  --color-accent-border:    var(--color-amber-border);

  --color-link:             var(--color-amber);
  --color-link-hover:       var(--color-amber-hover);
  --color-link-visited:     #C8943A;

  --color-focus-ring:       rgba(232, 165, 75, 0.5);


  /* ── Typography ─────────────────────────────────────────────────────────── */

  --font-display:  'Barlow Condensed', 'Arial Narrow', Arial, sans-serif;
  --font-body:     'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:     'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Courier New', monospace;

  /* Font feature settings */
  --font-features-display: "kern" 1, "liga" 1, "calt" 1;
  --font-features-body:    "kern" 1, "ss01" 1, "cv11" 1;
  --font-features-mono:    "liga" 1, "calt" 1;


  /* ── Type Scale ─────────────────────────────────────────────────────────── */
  /* Based on Perfect Fourth (1.333) ratio from 16px base */

  --text-display:   4rem;      /* 64px — hero headlines, Barlow Condensed 800 */
  --text-h1:        3rem;      /* 48px — Barlow Condensed 700 */
  --text-h2:        2.25rem;   /* 36px — Barlow Condensed 600 */
  --text-h3:        1.5rem;    /* 24px — Inter 600 */
  --text-h4:        1.125rem;  /* 18px — Inter 500 */
  --text-h5:        1rem;      /* 16px — Inter 600 */
  --text-h6:        0.8125rem; /* 13px — Inter 600, uppercase */
  --text-body-lg:   1.125rem;  /* 18px */
  --text-body:      1rem;      /* 16px */
  --text-body-sm:   0.875rem;  /* 14px */
  --text-label:     0.75rem;   /* 12px — Inter 500, uppercase */
  --text-caption:   0.6875rem; /* 11px */
  --text-code:      0.875rem;  /* 14px */


  /* ── Font Weights ───────────────────────────────────────────────────────── */

  --weight-light:      300;
  --weight-regular:    400;
  --weight-medium:     500;
  --weight-semibold:   600;
  --weight-bold:       700;
  --weight-extrabold:  800;


  /* ── Line Heights ───────────────────────────────────────────────────────── */

  --leading-tightest: 1.05;   /* Display headlines */
  --leading-tight:    1.1;    /* H1 */
  --leading-snug:     1.2;    /* H2, H3 */
  --leading-normal:   1.4;    /* H4/H5, UI elements */
  --leading-body:     1.7;    /* Body text */
  --leading-relaxed:  1.75;   /* Large body */
  --leading-loose:    1.8;    /* Extra-spacious */


  /* ── Letter Spacing ─────────────────────────────────────────────────────── */

  --tracking-tighter:   -0.02em;  /* (unused in v2, kept for compat) */
  --tracking-tight:     -0.01em;
  --tracking-normal:     0;
  --tracking-display:    0.02em;  /* Display/H1/H2 Barlow Condensed */
  --tracking-wide:       0.04em;  /* Body labels */
  --tracking-wider:      0.08em;  /* H6, uppercase labels */
  --tracking-widest:     0.12em;  /* Wordmark, kicker eyebrows */


  /* ── Spacing ─────────────────────────────────────────────────────────────── */
  /* Base: 4px. All values are multiples of 4. */

  --space-px:    1px;
  --space-0-5:   2px;
  --space-1:     4px;     /* Inline gaps */
  --space-2:     8px;     /* Tight component padding */
  --space-3:     12px;    /* Standard component padding */
  --space-4:     16px;    /* Sub-component spacing */
  --space-5:     24px;    /* Component groups */
  --space-6:     32px;    /* Section internal */
  --space-7:     40px;
  --space-8:     48px;    /* Section separation */
  --space-9:     56px;
  --space-10:    64px;    /* Major section breaks */
  --space-11:    72px;
  --space-12:    80px;    /* Page section vertical padding */
  --space-14:    96px;
  --space-16:    104px;
  --space-20:    120px;   /* Full-bleed hero vertical padding */
  --space-24:    160px;   /* Maximum dramatic section spacing */


  /* ── Border Radius ──────────────────────────────────────────────────────── */
  /* v2 is sharper than v1 — more structural, less friendly */

  --radius-xs:   2px;    /* Tags, chips, inline code */
  --radius-sm:   3px;    /* Buttons (secondary), tooltips */
  --radius:      3px;    /* Default — buttons, inputs */
  --radius-md:   4px;    /* Cards, panels */
  --radius-lg:   6px;    /* Modal dialogs */
  --radius-xl:   8px;    /* Large panels (uncommon) */
  --radius-full: 9999px; /* Avatars only */


  /* ── Shadows (Dark Mode) ─────────────────────────────────────────────────── */
  /* On dark surfaces: shadows go darker. Elevation = lighter bg + border, not shadow. */
  /* Shadows used only for floating elements that need to escape the surface. */

  --shadow-none: none;

  --shadow-raised:
    0 2px 8px rgba(0, 0, 0, 0.30),
    0 0 0 1px var(--color-border);

  --shadow-floating:
    0 4px 16px rgba(0, 0, 0, 0.40),
    0 0 0 1px var(--color-border);

  --shadow-overlay:
    0 8px 32px rgba(0, 0, 0, 0.50),
    0 0 0 1px var(--color-border);

  /* The signature elevation detail: amber top border on elevated cards */
  --shadow-elevated-card:
    0 0 0 1px var(--color-border),
    inset 0 1px 0 0 var(--color-amber-border);


  /* ── Borders ─────────────────────────────────────────────────────────────── */

  --border-width:    1px;
  --border-default:  1px solid var(--color-border);
  --border-subtle:   1px solid var(--color-border-subtle);
  --border-strong:   1px solid var(--color-border-strong);
  --border-accent:   1px solid var(--color-amber);
  --border-accent-dim: 1px solid var(--color-accent-border);


  /* ── Focus Ring ─────────────────────────────────────────────────────────── */

  --focus-ring:        0 0 0 3px var(--color-focus-ring);
  --focus-ring-offset: 2px;


  /* ── Transitions ─────────────────────────────────────────────────────────── */
  /* v2 is slightly faster than v1 — dark+bold already slows perception */

  --duration-instant:  60ms;
  --duration-fast:    100ms;
  --duration-normal:  180ms;
  --duration-slow:    220ms;
  --duration-slower:  300ms;

  --ease-out:    cubic-bezier(0.0, 0.0, 0.2, 1);
  --ease-in:     cubic-bezier(0.4, 0.0, 1.0, 1);
  --ease-inout:  cubic-bezier(0.4, 0.0, 0.2, 1);

  --transition-base:   var(--duration-fast) var(--ease-out);
  --transition-normal: var(--duration-normal) var(--ease-inout);
  --transition-slow:   var(--duration-slow) var(--ease-inout);


  /* ── Layout ──────────────────────────────────────────────────────────────── */

  --container-sm:    560px;
  --container-md:    720px;
  --container-lg:    960px;
  --container-xl:   1200px;
  --container-2xl:  1440px;

  --max-prose-width: 65ch;

  /* Z-index */
  --z-base:       0;
  --z-raised:    10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-overlay:  300;
  --z-modal:    400;
  --z-toast:    500;
  --z-tooltip:  600;

  /* Nav height */
  --nav-height: 56px;

}


/* ─────────────────────────────────────────────────────────────────────────────
   LIGHT MODE — via data attribute
   Light is the secondary experience. All semantic roles are overridden.
   Named palette refs still work — they're re-defined for light context.
   ───────────────────────────────────────────────────────────────────────────── */

[data-theme="light"] {

  /* Body text uses secondary (softer) in light mode */
  color: var(--color-text-secondary);

  /* ── Override Named Colors for Light ────────────────────────────────────── */

  --color-amber:        #C8841A;   /* Darker amber for light bg contrast */
  --color-amber-hover:  #A86C12;
  --color-amber-dim:    rgba(200, 132, 26, 0.10);
  --color-amber-border: rgba(200, 132, 26, 0.25);

  /* Light semantic */
  --color-success: #2D6644;
  --color-error:   #922C1A;
  --color-info:    #2E5878;

  --color-success-bg: #EBF5EE;
  --color-warning-bg: #FEF5E4;
  --color-error-bg:   #FBE9E6;
  --color-info-bg:    #E6EFF7;


  /* ── Semantic Roles: Light ──────────────────────────────────────────────── */

  --color-bg:               #F4F1EB;   /* Warm off-white page background */
  --color-bg-surface:       #FFFFFF;   /* Card surfaces */
  --color-bg-elevated:      #FFFFFF;   /* Elevated cards, modals */
  --color-bg-subtle:        #EEEBE4;   /* Section tints */
  --color-bg-muted:         #E8E2D9;   /* Tags, inline code backgrounds */

  --color-border:           #D6D0C7;   /* Sand — borders */
  --color-border-subtle:    #E8E2D9;   /* Subtle dividers */
  --color-border-strong:    #A09890;   /* Emphasized borders */
  --color-border-accent:    rgba(200, 132, 26, 0.30);

  --color-text:             #1C1A18;   /* Järn — primary text */
  --color-text-secondary:   #6B6560;   /* Stål light — secondary text */
  --color-text-muted:       #9E998F;   /* Grus — placeholder, disabled */
  --color-text-inverse:     #F2EDE4;   /* On dark backgrounds */
  --color-text-on-amber:    #1C1A18;

  --color-accent:           var(--color-amber);
  --color-accent-hover:     var(--color-amber-hover);
  --color-accent-subtle:    var(--color-amber-dim);
  --color-accent-border:    var(--color-amber-border);

  --color-link:             var(--color-amber);
  --color-link-hover:       var(--color-amber-hover);
  --color-link-visited:     #8C5E10;

  --color-focus-ring:       rgba(200, 132, 26, 0.45);


  /* ── Light Mode Shadows ─────────────────────────────────────────────────── */

  --shadow-raised:
    0 1px 4px rgba(28, 26, 24, 0.08),
    0 1px 2px rgba(28, 26, 24, 0.05);

  --shadow-floating:
    0 4px 16px rgba(28, 26, 24, 0.10),
    0 1px 4px  rgba(28, 26, 24, 0.06);

  --shadow-overlay:
    0 8px 32px rgba(28, 26, 24, 0.14),
    0 2px 8px  rgba(28, 26, 24, 0.08);

  --shadow-elevated-card:
    0 1px 4px rgba(28, 26, 24, 0.08),
    inset 0 1px 0 0 rgba(200, 132, 26, 0.30);

}


/* ─────────────────────────────────────────────────────────────────────────────
   SYSTEM PREFERENCE: LIGHT MODE
   Fallback when no data-theme attribute is set by JS.
   Covers SSR/no-JS scenarios.
   ───────────────────────────────────────────────────────────────────────────── */

@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {

    --color-amber:        #C8841A;
    --color-amber-hover:  #A86C12;
    --color-amber-dim:    rgba(200, 132, 26, 0.10);
    --color-amber-border: rgba(200, 132, 26, 0.25);

    --color-success: #2D6644;
    --color-error:   #922C1A;
    --color-info:    #2E5878;

    --color-bg:               #F4F1EB;
    --color-bg-surface:       #FFFFFF;
    --color-bg-elevated:      #FFFFFF;
    --color-bg-subtle:        #EEEBE4;
    --color-bg-muted:         #E8E2D9;

    --color-border:           #D6D0C7;
    --color-border-subtle:    #E8E2D9;
    --color-border-strong:    #A09890;
    --color-border-accent:    rgba(200, 132, 26, 0.30);

    --color-text:             #1C1A18;
    --color-text-secondary:   #6B6560;
    --color-text-muted:       #9E998F;
    --color-text-inverse:     #F2EDE4;
    --color-text-on-amber:    #1C1A18;

    --color-accent:           #C8841A;
    --color-accent-hover:     #A86C12;
    --color-accent-subtle:    rgba(200, 132, 26, 0.10);
    --color-accent-border:    rgba(200, 132, 26, 0.25);

    --color-link:             #C8841A;
    --color-link-hover:       #A86C12;
    --color-link-visited:     #8C5E10;

    --color-focus-ring:       rgba(200, 132, 26, 0.45);

    --shadow-raised:
      0 1px 4px rgba(28, 26, 24, 0.08),
      0 1px 2px rgba(28, 26, 24, 0.05);

    --shadow-floating:
      0 4px 16px rgba(28, 26, 24, 0.10),
      0 1px 4px  rgba(28, 26, 24, 0.06);

    --shadow-overlay:
      0 8px 32px rgba(28, 26, 24, 0.14),
      0 2px 8px  rgba(28, 26, 24, 0.08);

    --shadow-elevated-card:
      0 1px 4px rgba(28, 26, 24, 0.08),
      inset 0 1px 0 0 rgba(200, 132, 26, 0.30);

  }
}


/* ─────────────────────────────────────────────────────────────────────────────
   BASE ELEMENT STYLES
   Applying brand tokens to standard HTML. Component-based styles override.
   ───────────────────────────────────────────────────────────────────────────── */

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

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

body {
  background-color: var(--color-bg);
  color: var(--color-text-secondary);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  line-height: var(--leading-body);
  letter-spacing: var(--tracking-normal);
  font-feature-settings: var(--font-features-body);
  margin: 0;
  padding: 0;
  min-height: 100vh;
  transition:
    background-color var(--transition-slow),
    color var(--transition-slow);
}


/* ── Headings ────────────────────────────────────────────────────────────── */

.display, h1, .h1 {
  font-family: var(--font-display);
  letter-spacing: var(--tracking-display);
  font-feature-settings: var(--font-features-display);
  margin-top: 0;
}

.display {
  font-size: var(--text-display);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-tightest);
  margin-bottom: var(--space-6);
}

h1, .h1 {
  font-size: var(--text-h1);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-tight);
  margin-bottom: var(--space-5);
  color: var(--color-text);
}

h2, .h2 {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-medium);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-display);
  font-feature-settings: var(--font-features-display);
  margin-top: var(--space-10);
  margin-bottom: var(--space-4);
  color: var(--color-text);
}

h3, .h3 {
  font-family: var(--font-body);
  font-size: var(--text-h3);
  font-weight: var(--weight-medium);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-normal);
  margin-top: var(--space-8);
  margin-bottom: var(--space-3);
  color: var(--color-text);
}

h4, .h4 {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  margin-top: var(--space-6);
  margin-bottom: var(--space-2);
  color: var(--color-text);
}

h5, .h5 {
  font-family: var(--font-body);
  font-size: var(--text-h5);
  font-weight: var(--weight-medium);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-wide);
  margin-top: var(--space-5);
  margin-bottom: var(--space-2);
  color: var(--color-text);
}

h6, .h6 {
  font-family: var(--font-body);
  font-size: var(--text-h6);
  font-weight: var(--weight-medium);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--color-text-secondary);
  margin-top: var(--space-5);
  margin-bottom: var(--space-2);
}


/* ── Body text ───────────────────────────────────────────────────────────── */

p {
  margin-top: 0;
  margin-bottom: var(--space-4);
  max-width: var(--max-prose-width);
}

p:last-child {
  margin-bottom: 0;
}


/* ── Links ───────────────────────────────────────────────────────────────── */

a {
  color: var(--color-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color var(--transition-base);
}

a:hover {
  color: var(--color-link-hover);
}

a:visited {
  color: var(--color-link-visited);
}

a:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-xs);
}


/* ── Code ────────────────────────────────────────────────────────────────── */

code {
  font-family: var(--font-mono);
  font-size: var(--text-code);
  font-feature-settings: var(--font-features-mono);
  background-color: var(--color-bg-muted);
  color: var(--color-text);
  padding: 0.15em 0.4em;
  border-radius: var(--radius-xs);
  border: var(--border-subtle);
}

pre {
  font-family: var(--font-mono);
  font-size: var(--text-code);
  font-feature-settings: var(--font-features-mono);
  background-color: var(--color-kol);
  border: var(--border-default);
  color: var(--color-linne);
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-md);
  overflow-x: auto;
  line-height: var(--leading-relaxed);
  tab-size: 2;
}

pre code {
  background: none;
  border: none;
  padding: 0;
  border-radius: 0;
  font-size: inherit;
  color: inherit;
}


/* ── Blockquote ──────────────────────────────────────────────────────────── */

blockquote {
  font-family: var(--font-body);
  font-size: var(--text-body-lg);
  font-weight: var(--weight-light);
  line-height: var(--leading-snug);
  color: var(--color-text-secondary);
  background-color: var(--color-bg-surface);
  border-left: 2px solid var(--color-accent);
  margin: var(--space-6) 0;
  padding: var(--space-4) var(--space-6);
}

blockquote p {
  margin-bottom: 0;
}


/* ── Small, Caption, Label ───────────────────────────────────────────────── */

small, .small {
  font-size: var(--text-body-sm);
}

.caption {
  font-size: var(--text-caption);
  color: var(--color-text-secondary);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-wide);
}

.label {
  font-size: var(--text-label);
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

.text-amber {
  color: var(--color-amber);
}


/* ── HR ──────────────────────────────────────────────────────────────────── */

hr {
  border: none;
  border-top: var(--border-default);
  margin: var(--space-10) 0;
}

hr.accent {
  border-top: 2px solid var(--color-amber);
  max-width: 48px;
  margin-left: 0;
}


/* ─────────────────────────────────────────────────────────────────────────────
   COMPONENT PRIMITIVES
   Baseline patterns that style.css extends per-component.
   All values use tokens — no hardcoded colors.
   ───────────────────────────────────────────────────────────────────────────── */

/* ── Button — Primary (Amber filled) ───────────────────────────────────────── */

.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background-color: var(--color-accent);
  color: var(--color-text-on-amber);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-semibold);
  line-height: 1;
  padding: var(--space-3) var(--space-6);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius);
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background-color var(--transition-base),
    border-color var(--transition-base),
    box-shadow var(--transition-base);
}

.btn-primary:hover {
  background-color: var(--color-accent-hover);
  border-color: var(--color-accent-hover);
  color: var(--color-text-on-amber);
  text-decoration: none;
  box-shadow: 0 0 20px rgba(232, 165, 75, 0.20);
}

.btn-primary:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

a.btn-primary,
a.btn-primary:visited {
  color: var(--color-text-on-amber);
}


/* ── Button — Secondary (transparent + border) ────────────────────────────── */

.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background-color: transparent;
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  line-height: 1;
  padding: var(--space-3) var(--space-6);
  border: var(--border-default);
  border-radius: var(--radius);
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background-color var(--transition-base),
    border-color var(--transition-base),
    color var(--transition-base);
}

.btn-secondary:hover {
  background-color: var(--color-bg-muted);
  border-color: var(--color-border-strong);
  color: var(--color-text);
  text-decoration: none;
}

.btn-secondary:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}


/* ── Button — Ghost (text only with amber color) ──────────────────────────── */

.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background-color: transparent;
  color: var(--color-accent);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  line-height: 1;
  padding: var(--space-2) var(--space-3);
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--transition-base), background-color var(--transition-base);
}

.btn-ghost:hover {
  color: var(--color-accent-hover);
  background-color: var(--color-accent-subtle);
  text-decoration: none;
}


/* ── Card ─────────────────────────────────────────────────────────────────── */

.card {
  background-color: var(--color-bg-surface);
  border: var(--border-default);
  border-radius: var(--radius-md);
  padding: var(--space-6);
  transition: box-shadow var(--transition-base), border-color var(--transition-base);
}

.card:hover {
  border-color: var(--color-amber-border);
  box-shadow: var(--shadow-elevated-card);
}

/* Elevated card — premium card with amber top border */
.card--elevated {
  background-color: var(--color-bg-elevated);
  border: var(--border-default);
  border-radius: var(--radius-md);
  padding: var(--space-6);
  box-shadow: var(--shadow-elevated-card);
}


/* ── Input ───────────────────────────────────────────────────────────────── */

.input {
  display: block;
  width: 100%;
  background-color: var(--color-bg-surface);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  padding: var(--space-3) var(--space-4);
  border: var(--border-default);
  border-radius: var(--radius);
  outline: none;
  transition:
    border-color var(--transition-base),
    box-shadow var(--transition-base);
}

.input::placeholder {
  color: var(--color-text-muted);
}

.input:hover {
  border-color: var(--color-border-strong);
}

.input:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px var(--color-focus-ring);
}


/* ── Tag / Badge ─────────────────────────────────────────────────────────── */

.tag {
  display: inline-flex;
  align-items: center;
  background-color: var(--color-bg-muted);
  color: var(--color-text-secondary);
  font-family: var(--font-body);
  font-size: var(--text-label);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  padding: 0.25em var(--space-2);
  border-radius: var(--radius-xs);
  border: var(--border-subtle);
}

.tag--amber {
  background-color: var(--color-accent-subtle);
  color: var(--color-accent);
  border-color: var(--color-accent-border);
}


/* ── Section Kicker (eyebrow label) ─────────────────────────────────────── */

.section-kicker {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-widest);
  color: var(--color-accent);
  margin-bottom: var(--space-4);
}

/* Optional decorative line before the kicker */
.section-kicker::before {
  content: '';
  display: inline-block;
  width: 20px;
  height: 1px;
  background: var(--color-accent);
  flex-shrink: 0;
}


/* ─────────────────────────────────────────────────────────────────────────────
   LAYOUT PRIMITIVES
   Container, section, grid helpers.
   ───────────────────────────────────────────────────────────────────────────── */

.container {
  max-width: var(--container-xl);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.container--sm  { max-width: var(--container-sm);  }
.container--md  { max-width: var(--container-md);  }
.container--lg  { max-width: var(--container-lg);  }
.container--2xl { max-width: var(--container-2xl); }

.section {
  padding: var(--space-16) 0;
}

.section--lg {
  padding: var(--space-20) 0;
}

.section--xl {
  padding: var(--space-24) 0;
}

.text-center { text-align: center; }
.text-left   { text-align: left; }

/* Utility: constrain to prose width */
.prose {
  max-width: var(--max-prose-width);
}

/* Utility: amber text color */
.text-accent {
  color: var(--color-accent);
}

/* Utility: secondary text color */
.text-secondary {
  color: var(--color-text-secondary);
}

/* Utility: muted text */
.text-muted {
  color: var(--color-text-muted);
}


/* ─────────────────────────────────────────────────────────────────────────────
   NAVIGATION PRIMITIVES
   Base nav token-driven structure.
   ───────────────────────────────────────────────────────────────────────────── */

.nav {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  height: var(--nav-height);
  background: rgba(17, 16, 16, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: var(--border-subtle);
  transition:
    background-color var(--transition-slow),
    border-color var(--transition-slow);
}

[data-theme="light"] .nav,
:root:not([data-theme="dark"]) .nav {
  background: rgba(226, 222, 212, 0.88);
  border-bottom-color: var(--color-border);
}

.nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--container-xl);
  margin: 0 auto;
  padding: 0 var(--space-6);
  height: 100%;
  gap: var(--space-5);
}

.nav-brand {
  font-family: var(--font-display);
  font-weight: var(--weight-regular);
  font-size: 1.25rem;
  color: var(--color-text);
  letter-spacing: var(--tracking-widest);
  text-decoration: none;
  flex-shrink: 0;
  transition: opacity var(--transition-base);
}

.nav-brand:hover {
  opacity: 0.8;
}

/* ── Arc Spectrum Logo — per-letter coloring ──────────────────────────
   Decision D-ARC: Jonathan approved 01 — Arc Spectrum (2026-03-21)
   Colors from Arc Raiders palette, distributed across "stomme.ai"
   ─────────────────────────────────────────────────────────────────── */
.arc-s   { color: #E63329; }
.arc-t   { color: #EE5A22; }
.arc-o   { color: #F7941D; }
.arc-m1  { color: #FBCC10; }
.arc-m2  { color: #FFF200; }
.arc-e   { color: #5DC248; }
.arc-dot { color: #00A651; }
.arc-a   { color: #00BA74; }
.arc-i   { color: #00AEEF; }

/* Light mode: same colours as dark — must match video end card exactly */

.arc-spectrum {
  display: inline-flex;
  gap: 0;
}

.arc-spectrum:hover {
  opacity: 0.8;
}


/* ─────────────────────────────────────────────────────────────────────────────
   ACCESSIBILITY
   ───────────────────────────────────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

:focus:not(:focus-visible) {
  outline: none;
}

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
  border-radius: var(--radius-xs);
}


/* ─────────────────────────────────────────────────────────────────────────────
   NOISE TEXTURE OVERLAY
   4% opacity noise grain applied over the dark page background.
   Creates material depth that distinguishes premium dark UI from flat dark.
   Remove this block if using a CSS background-image noise texture instead.
   ───────────────────────────────────────────────────────────────────────────── */

/* Nils: implement as an SVG filter or a PNG noise overlay at 4% opacity.
   The CSS pseudo-element approach:

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: var(--z-toast);  // above everything except tooltips
  opacity: 0.04;
  background-image: url('/img/noise.png');  // generate: 256×256 PNG with Perlin noise
  background-repeat: repeat;
  background-size: 256px 256px;
}

   In light mode, reduce opacity to 0.02 or remove entirely.
   The noise.png file should be generated at low frequency (coarse grain).
   Recommended tool: https://www.noisetexturegenerator.com/ at ~50% frequency.
*/

