/* Silvatech Design System — tokens v2.0 (2026-10-13)
   Source of truth for the Lab register. Published copy: https://silvatech.bz/brand/silvatech-ui.css (v3, hub agent).
   Properties consume variables only; never hard-code a hex. Belize register (Visit Belize, Logistics, Chillbout) is unchanged. */

:root {
  /* ---- Core palette (proposed by Cristian's wife, accepted 2026-10-13) ---- */
  --svt-ink:        #030B1B;  /* page background; the darkest value on any Silvatech surface */
  --svt-navy-800:   #102C58;  /* surfaces, cards, glass base, pinned object backgrounds */
  --svt-blue-600:   #0757F9;  /* filled buttons and strong fills; white/paper text on it (5.6:1) */
  --svt-blue-500:   #087BFF;  /* THE accent: italic accent, links and eyebrows on ink (4.95:1), glows, packets, active states */
  --svt-paper:      #F7F9FF;  /* text on dark; the single light band per page; the WhatsApp pill fill */

  /* ---- WhatsApp — the icon glyph only, never a fill, never text, never a status ---- */
  --svt-whatsapp:   #77C454;

  /* ---- Derived tints and neutrals (computed for AA; do not restyle by eye) ---- */
  --svt-blue-400:   #4D9DFF;  /* accent text on navy-800 surfaces (4.98:1); hover state of blue-500 links */
  --svt-blue-300:   #8FC1FF;  /* eyebrows and small mono labels on any dark surface (7.4:1 on navy-800) */
  --svt-blue-200:   #BFDBFF;  /* large display tints, outlined type strokes, dividers on dark at 100 % */
  --svt-text:       var(--svt-paper);
  --svt-text-muted: #A9B8D1;  /* secondary text on dark (6.9:1 on navy-800) */
  --svt-text-faint: #8A9BB8;  /* tertiary/mono metadata on dark (4.9:1 on navy-800) — minimum for text */
  --svt-text-on-paper:        #102C58;  /* body text on the light band (13.1:1) */
  --svt-text-on-paper-muted:  #3E5278;  /* secondary on the light band (7.4:1) */
  --svt-text-on-blue:         #FFFFFF;  /* text on blue-600 fills only; never on blue-500 fills (3.97:1 fails) */

  /* ---- Surfaces, borders, glass ---- */
  --svt-surface-0:  var(--svt-ink);
  --svt-surface-1:  var(--svt-navy-800);
  --svt-surface-2:  color-mix(in srgb, var(--svt-navy-800) 70%, var(--svt-ink));   /* inset panels */
  --svt-glass:      color-mix(in srgb, var(--svt-navy-800) 55%, transparent);       /* glass panes; blur 14px */
  --svt-frost:      color-mix(in srgb, var(--svt-paper) 14%, transparent);          /* the frosted bank pane (Payments) */
  --svt-border:     color-mix(in srgb, var(--svt-paper) 14%, transparent);
  --svt-border-strong: color-mix(in srgb, var(--svt-paper) 28%, transparent);
  --svt-glow:       color-mix(in srgb, var(--svt-blue-500) 35%, transparent);       /* the one light source */

  /* ---- Functional (status) colours — product app and transactional only; text + symbol, never colour alone ---- */
  --svt-success:    var(--svt-blue-500); /* paid / done / running: brand blue, so green stays unique to WhatsApp */
  --svt-warning:    #FFB454;             /* pending / expiring (7.8:1 on navy-800) */
  --svt-error:      #FF6B6B;             /* failed / reversed on dark (5.0:1 on navy-800) */
  --svt-error-on-paper: #D93025;         /* failed on the light band (4.5:1) */
  --svt-neutral:    var(--svt-text-faint); /* expired / inactive */

  /* ---- Type ---- */
  --svt-font-display: "Sora", "Inter", system-ui, sans-serif;
  --svt-font-body:    "Inter", system-ui, sans-serif;
  --svt-font-mono:    "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --svt-step--1: 0.875rem; --svt-step-0: 1rem; --svt-step-1: 1.25rem; --svt-step-2: 1.6rem;
  --svt-step-3: 2.1rem;    --svt-step-4: 2.9rem; --svt-step-5: 4rem;   --svt-step-6: clamp(3.2rem, 7vw, 6.5rem); /* one-line statements */
  --svt-leading-tight: 1.05; --svt-leading-body: 1.55; --svt-leading-long: 1.85;
  --svt-tracking-eyebrow: 0.12em; /* mono eyebrows only; display type has zero tracking */

  /* ---- Space, radius, elevation ---- */
  --svt-sp-1: 4px; --svt-sp-2: 8px; --svt-sp-3: 12px; --svt-sp-4: 16px; --svt-sp-6: 24px; --svt-sp-8: 32px;
  --svt-sp-12: 48px; --svt-sp-16: 64px; --svt-sp-24: 96px; --svt-sp-32: 128px;
  --svt-radius-card: 16px; --svt-radius-pill: 999px; --svt-radius-window: 14px; --svt-radius-chip: 8px;
  --svt-shadow-window: 0 30px 80px -30px rgb(3 11 27 / .9), 0 1px 0 color-mix(in srgb, var(--svt-paper) 10%, transparent) inset;
  --svt-shadow-card:   0 12px 32px -16px rgb(3 11 27 / .8);

  /* ---- Motion (easing set adopted from the claude.com study, 2026-10-13) ---- */
  --svt-ease-out-expo:     cubic-bezier(.19, 1, .22, 1);     /* reveals, menus opening */
  --svt-ease-out-quart:    cubic-bezier(.165, .84, .44, 1);  /* cards settling, chips */
  --svt-ease-in-out-power3: cubic-bezier(.645, .045, .355, 1); /* deck deals, pinned transitions */
  --svt-ease-in-quart:     cubic-bezier(.895, .03, .685, .22); /* exits only */
  --svt-dur-micro: 160ms; --svt-dur-ui: 200ms; --svt-dur-reveal: 400ms; --svt-dur-scene: 800ms;
  --svt-stagger: 70ms;     /* sibling reveal offset; max 8 siblings staggered */
  --svt-fps-cap: 30;       /* rAF scene scheduler */
}

/* Reduced motion: every scene static, every transition instant. */
@media (prefers-reduced-motion: reduce) {
  :root { --svt-dur-micro: 0ms; --svt-dur-ui: 0ms; --svt-dur-reveal: 0ms; --svt-dur-scene: 0ms; --svt-stagger: 0ms; }
}

/* ---- Compatibility aliases: the v1 names every property already consumes (silvatech-ui.css v2).
        Keep for one release so the swap is a token change, not a template change. ---- */
:root {
  --brand-900: var(--svt-ink);        /* was #192d40 */
  --surface:   var(--svt-navy-800);   /* was #0f1c2b — note: v2 surface is LIGHTER than the page, v1 was darker */
  --brand-500: var(--svt-blue-500);   /* was #2b8ec8 */
  --brand-300: var(--svt-blue-300);   /* was #8ac5ea */
  --violet-500: var(--svt-blue-500);  /* was #4f46e5 — violet accent retired; blue-500 is the only accent */
  --mint-500:  var(--svt-paper);      /* was #2bd4a6 (WhatsApp pill fill) — the pill is now paper with the green glyph */
  --bone:      var(--svt-paper);      /* was #F3F6FA */
  --whatsapp:  var(--svt-whatsapp);
}
