/* ==========================================================================
   ZARREL — Design Tokens / CSS Custom Properties
   Single source of truth for colors, typography, spacing, radii, shadows,
   blur and motion. Consumed by style.css, animations.css, responsive.css.
   ========================================================================== */

:root {
  /* --- Brand palette -----------------------------------------------------
     Electric blue primary, white secondary, soft silver accent.
     No purple / orange / red anywhere in the system. */
  --color-primary: #2563EB;          /* Electric Blue */
  --color-primary-strong: #1d4ed8;   /* Deeper blue for gradients / active */
  --color-primary-soft: #60a5fa;     /* Lighter blue for glows */
  --color-secondary: #ffffff;        /* White */
  --color-accent: #c7ccd6;           /* Soft Silver */
  --color-accent-dim: #8a93a3;       /* Muted silver for secondary text */

  /* --- Page (light) ink --------------------------------------------------- */
  --color-ink-dark: #0b1220;                 /* Near-black on white page */
  --color-ink-dark-muted: rgba(11, 18, 32, 0.62);
  --color-ink-dark-faint: rgba(11, 18, 32, 0.42);

  /* --- Ink over the video card (light text) ------------------------------- */
  --color-ink: #ffffff;
  --color-ink-muted: rgba(255, 255, 255, 0.82);
  --color-ink-faint: rgba(255, 255, 255, 0.6);

  /* --- Page surface ------------------------------------------------------- */
  --page-bg: #fafafa;

  /* --- Light glass (navbar on white) -------------------------------------- */
  --glass-bg: rgba(255, 255, 255, 0.55);
  --glass-bg-scrolled: rgba(255, 255, 255, 0.75);
  --glass-border: rgba(11, 18, 32, 0.08);
  --glass-border-strong: rgba(11, 18, 32, 0.14);

  /* Dark glass (used for the ghost button over the video) */
  --glass-dark-bg: rgba(255, 255, 255, 0.1);
  --glass-dark-bg-strong: rgba(255, 255, 255, 0.18);
  --glass-dark-border: rgba(255, 255, 255, 0.32);

  /* Fallback background inside the card (before/without hero.mp4) */
  --bg-deep: #05070d;
  --bg-gradient:
    radial-gradient(120% 90% at 30% -10%, #123a6b 0%, rgba(18, 58, 107, 0) 55%),
    radial-gradient(90% 70% at 85% 20%, #2563EB22 0%, rgba(37, 99, 235, 0) 50%),
    linear-gradient(180deg, #0a1122 0%, #05070d 100%);
  /* Static image swapped in when the video errors / is missing (main.js). */
  --hero-fallback-image: url("../assets/images/hero-fallback.svg");

  /* --- Overlay above video (subtle, readability only) --------------------- */
  --overlay-blue: linear-gradient(115deg,
      rgba(6, 20, 45, 0.62) 0%,
      rgba(8, 24, 52, 0.34) 42%,
      rgba(10, 40, 90, 0.12) 100%);
  --overlay-dark: rgba(5, 7, 13, 0.12);

  /* --- Typography --------------------------------------------------------- */
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --fs-logo: clamp(1.15rem, 1.4vw, 1.35rem);
  --fs-nav: 0.9rem;
  --fs-hero: clamp(2rem, 4.4vw, 3.6rem);
  --fs-subtitle: clamp(1rem, 1.35vw, 1.2rem);
  --fs-section: clamp(1.85rem, 4.2vw, 3.15rem);
  --fs-body: clamp(1rem, 1.15vw, 1.25rem);   /* 16px → 20px */
  --fs-btn: 0.98rem;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;

  --lh-tight: 1.1;
  --lh-snug: 1.35;
  --lh-relaxed: 1.6;

  --tracking-tight: -0.02em;
  --tracking-wide: 0.14em;

  /* --- Spacing scale ------------------------------------------------------ */
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;

  /* --- Radii -------------------------------------------------------------- */
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --radius-pill: 999px;
  --radius-card: 28px;          /* hero card corner radius */
  --radius-illu: 20px;          /* story illustration cards */

  /* --- Blur (liquid glass) ------------------------------------------------ */
  --blur-idle: 10px;
  --blur-scrolled: 18px;

  /* --- Shadows ------------------------------------------------------------ */
  --shadow-nav: 0 6px 24px rgba(11, 18, 32, 0.08);
  --shadow-nav-strong: 0 10px 34px rgba(11, 18, 32, 0.12);
  --shadow-card: 0 30px 70px -24px rgba(11, 18, 32, 0.35),
                 0 8px 24px -12px rgba(11, 18, 32, 0.2);
  --shadow-btn: 0 10px 30px rgba(37, 99, 235, 0.35);
  --shadow-btn-hover: 0 16px 44px rgba(37, 99, 235, 0.5);
  --shadow-illu: 0 20px 50px -20px rgba(11, 18, 32, 0.18),
                 0 8px 20px -10px rgba(11, 18, 32, 0.1);

  /* --- Motion ------------------------------------------------------------- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 0.25s;
  --dur-med: 0.45s;
  --dur-slow: 0.8s;

  /* --- Layout ------------------------------------------------------------- */
  --container-max: 1280px;      /* max content column width */
  --page-gutter: 2.5rem;        /* horizontal breathing room on desktop */
  --card-max-width: 900px;      /* hero card width cap (smaller, centered) */
  --card-aspect-ratio: 2.4 / 1; /* wide cinematic rectangle (width > height) */
  --contact-max-width: 760px;   /* contact form glass card width */
  --story-max-width: 920px;     /* illustration + copy column */
  --illu-aspect: 16 / 10;       /* story illustration card ratio */

  /* --- Z-index scale (card stacking, low -> high) -------------------------
       video / fallback  (0)  lowest: cinematic background
       overlay           (1)  blue + dark wash for readability
       hero content      (2)  headline, subtitle, actions
       navbar            (20) light-glass nav, above the page */
  --z-video: 0;
  --z-overlay: 1;
  --z-hero: 2;
  --z-navbar: 20;
}
