/* ============================================================
   PDA — Panoptic Digital Architecture
   Color & Type tokens
   ------------------------------------------------------------
   Source: PDA_Brand_Guidelines.pdf, PDA_brand_guidelines_poster.png,
           PDA-BRAND.md
   Dark-first; navy ground, teal-to-blue gradient as the signature.
   ============================================================ */

/* Local Space Grotesk — brand-supplied TTFs in /fonts.
   Path is resolved relative to this CSS file, so consumers can import
   colors_and_type.css from any depth without rewriting URLs. */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('fonts/SpaceGrotesk-Light.ttf') format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/SpaceGrotesk-Regular.ttf') format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/SpaceGrotesk-Medium.ttf') format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/SpaceGrotesk-SemiBold.ttf') format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/SpaceGrotesk-Bold.ttf') format('truetype');
}

:root {
  /* ---------- Brand color primitives ---------- */
  --pda-navy:        #0E121E;   /* Deep Navy — primary background, 65% */
  --pda-card-bg:     #1A2034;   /* Card / surface above navy */
  --pda-teal:        #20C8A2;   /* Teal — primary accent, 18% */
  --pda-blue:        #1E82D2;   /* Blue — secondary accent, 10% */
  --pda-purple:      #6E50C8;   /* Purple — tertiary, 4% */
  --pda-white:       #FFFFFF;
  --pda-light-grey:  #C8D0E2;
  --pda-mid-grey:    #828CA5;

  /* The signature gradient. Always teal -> blue, left to right. */
  --pda-gradient: linear-gradient(90deg, #20C8A2 0%, #4FA0DA 100%);
  --pda-gradient-soft: linear-gradient(90deg, rgba(32,200,162,.18) 0%, rgba(30,130,210,.18) 100%);
  --pda-gradient-radial: radial-gradient(ellipse at 30% 30%, rgba(32,200,162,.25), transparent 60%),
                          radial-gradient(ellipse at 80% 70%, rgba(30,130,210,.22), transparent 55%);

  /* ---------- Semantic colors ---------- */
  /* Foreground */
  --fg-1: #FFFFFF;          /* Primary text on navy */
  --fg-2: #C8D0E2;          /* Secondary text — light grey */
  --fg-3: #828CA5;          /* Tertiary text — mid grey, captions, meta */
  --fg-accent: #20C8A2;     /* Teal — links, highlights */
  --fg-on-accent: #0E121E;  /* Navy text on teal/gradient buttons */

  /* Background */
  --bg-1: #0E121E;          /* Primary surface — deep navy */
  --bg-2: #1A2034;          /* Elevated card surface */
  --bg-3: #232a44;          /* Higher elevation / hover surface */
  --bg-inverse: #FFFFFF;

  /* Borders / dividers */
  --border-1: rgba(200, 208, 226, 0.08);  /* Subtle hairline */
  --border-2: rgba(200, 208, 226, 0.16);  /* Visible divider */
  --border-strong: rgba(200, 208, 226, 0.28);
  --border-accent: #20C8A2;

  /* Status (used sparingly — palette is intentionally narrow) */
  --status-success: #20C8A2;   /* Teal does double duty */
  --status-info:    #1E82D2;
  --status-warning: #E8B341;
  --status-danger:  #E25862;

  /* ---------- Type ---------- */
  --font-sans: 'Space Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono: ui-monospace, 'JetBrains Mono', SFMono-Regular, 'Roboto Mono', Menlo, monospace;

  /* Type scale — generous for screen. The PDF poster used very small print sizes;
     these are the screen-equivalent scale used across the UI kit and slides. */
  --text-display:   clamp(48px, 6vw, 88px);   /* Hero / marketing display */
  --text-h1:        clamp(36px, 4vw, 56px);
  --text-h2:        clamp(28px, 3vw, 40px);
  --text-h3:        22px;
  --text-h4:        18px;
  --text-body-lg:   18px;
  --text-body:      16px;
  --text-body-sm:   14px;
  --text-caption:   12px;
  --text-eyebrow:   13px;   /* uppercase section labels */

  --leading-tight:  1.05;
  --leading-snug:   1.2;
  --leading-normal: 1.45;
  --leading-loose:  1.65;

  --tracking-tight: -0.02em;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-eyebrow: 0.18em;  /* For uppercase eyebrow labels */

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

  /* ---------- Spacing ---------- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;

  /* ---------- Radii ---------- */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;     /* Default for cards */
  --radius-xl: 20px;
  --radius-pill: 9999px; /* Buttons are pills */

  /* ---------- Shadows / elevation ---------- */
  /* Dark-first: shadows are low-contrast; use accent glows for emphasis. */
  --shadow-1: 0 1px 2px rgba(0,0,0,0.32);
  --shadow-2: 0 6px 16px rgba(0,0,0,0.36);
  --shadow-3: 0 16px 40px rgba(0,0,0,0.44);
  --shadow-inset-line: inset 0 1px 0 rgba(255,255,255,0.04);
  --glow-teal: 0 0 0 1px rgba(32,200,162,0.35), 0 8px 32px -4px rgba(32,200,162,0.32);
  --glow-blue: 0 0 0 1px rgba(30,130,210,0.35), 0 8px 32px -4px rgba(30,130,210,0.32);

  /* ---------- Motion ---------- */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);   /* Default — soft ease-out */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 400ms;
}

/* ============================================================
   Base / element styles
   ============================================================ */
html, body {
  background: var(--bg-1);
  color: var(--fg-1);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  line-height: var(--leading-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ---------- Headings ---------- */
.pda-display, .pda-h1, .pda-h2, .pda-h3, .pda-h4 {
  font-family: var(--font-sans);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
  color: var(--fg-1);
  margin: 0;
}
.pda-display { font-size: var(--text-display); }
.pda-h1      { font-size: var(--text-h1); }
.pda-h2      { font-size: var(--text-h2); }
.pda-h3      { font-size: var(--text-h3); line-height: var(--leading-snug); }
.pda-h4      { font-size: var(--text-h4); line-height: var(--leading-snug); font-weight: var(--weight-semibold); }

/* ---------- Body ---------- */
.pda-body-lg { font-size: var(--text-body-lg); line-height: var(--leading-loose); color: var(--fg-2); }
.pda-body    { font-size: var(--text-body);    line-height: var(--leading-loose); color: var(--fg-2); }
.pda-body-sm { font-size: var(--text-body-sm); line-height: var(--leading-normal); color: var(--fg-2); }
.pda-caption { font-size: var(--text-caption); line-height: var(--leading-normal); color: var(--fg-3); }

/* ---------- Eyebrow / uppercase label — used heavily on poster + UI ---------- */
.pda-eyebrow {
  font-size: var(--text-eyebrow);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--fg-accent);
}

/* ---------- Gradient text (for accent words) ---------- */
.pda-gradient-text {
  background: var(--pda-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* ---------- Mono ---------- */
.pda-mono { font-family: var(--font-mono); font-size: 0.95em; letter-spacing: 0; }

/* ---------- Links ---------- */
.pda-link {
  color: var(--fg-accent);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}
.pda-link:hover { border-bottom-color: currentColor; }

/* ---------- Selection ---------- */
::selection { background: rgba(32,200,162,0.35); color: var(--fg-1); }
