@font-face {
  font-family: Logo;
  src: url('../fonts/Preospe.woff2');
}

:root {
  --font-heading: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
  --font-display: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
  --font-logo: Logo, 'Plus Jakarta Sans', system-ui, sans-serif;

  /* Brand palette — white, navy, dark blue, light blue */
  --color-white: #ffffff;
  --color-light-blue: #7dd3fc;
  --color-accent-blue: #3b82f6;
  --color-dark-blue: #1e3a8a;
  --color-navy: #0f172a;
  --color-navy-soft: #1e293b;

  /* Surfaces */
  --bg-deep: #0f172a;
  --bg-base: #111827;
  --bg-elevated: #1e293b;
  --bg-navy: #0f172a;
  --bg-surface-light: #ffffff;
  --bg-card: rgba(255, 255, 255, 0.06);
  --bg-card-solid: rgba(30, 58, 138, 0.08);
  --bg-card-light: #ffffff;

  --charcoal: #1e293b;
  --charcoal-light: #64748b;

  /* Text */
  --white: #ffffff;
  --white-muted: rgba(255, 255, 255, 0.88);
  --white-dim: rgba(255, 255, 255, 0.65);

  --text-on-light: #0f172a;
  --text-muted-on-light: #475569;
  --text-on-light-subtle: #64748b;

  --gray-500: #94a3b8;
  --gray-400: #cbd5e1;
  --gray-600: #475569;
  --gray-700: #334155;

  /* Accents (legacy aliases — no neon) */
  --neon-green: var(--color-light-blue);
  --neon-green-dim: rgba(125, 211, 252, 0.4);
  --neon-cyan: var(--color-accent-blue);
  --neon-cyan-dim: rgba(59, 130, 246, 0.35);
  --neon-purple: var(--color-dark-blue);
  --neon-purple-dim: rgba(30, 58, 138, 0.3);
  --electric-blue: var(--color-accent-blue);

  /* Gradients */
  --gradient-brand: linear-gradient(135deg, #60a5fa 0%, #2563eb 100%);
  --gradient-text: linear-gradient(120deg, #ffffff 0%, #93c5fd 50%, #3b82f6 100%);
  --gradient-hero: linear-gradient(
    180deg,
    rgba(15, 23, 42, 0.4) 0%,
    rgba(15, 23, 42, 0.85) 55%,
    #0f172a 100%
  );
  --gradient-btn: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
  --gradient-glass: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.08) 0%,
    rgba(59, 130, 246, 0.04) 100%
  );

  /* Clean shadows (replaces glow) */
  --glow-green: var(--shadow-md);
  --glow-cyan: var(--shadow-md);
  --glow-purple: var(--shadow-sm);
  --glow-multi: var(--shadow-lg);
  --glow-blue: var(--shadow-md);

  /* Glass — subtle blur only */
  --glass-border: rgba(148, 163, 184, 0.18);
  --glass-border-hover: rgba(125, 211, 252, 0.45);
  --glass-blur: blur(12px);

  /* Legacy aliases */
  --black: var(--bg-deep);
  --black-soft: var(--bg-base);
  --primary-blue: var(--color-accent-blue);
  --primary-blue-light: rgba(59, 130, 246, 0.1);
  --dark-blue: var(--color-navy);
  --accent: var(--color-accent-blue);
  --accent-glow: rgba(59, 130, 246, 0.12);
  --accent-line: var(--glass-border);
  --accent-neon: rgba(59, 130, 246, 0.08);

  /* Layout */
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --space-section: clamp(4rem, 8vw, 7rem);
  --space-xl: clamp(3rem, 6vw, 5rem);

  /* Shadows */
  --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.08);
  --shadow-md: 0 8px 24px rgba(15, 23, 42, 0.12);
  --shadow-lg: 0 16px 48px rgba(15, 23, 42, 0.14);
  --shadow-xl: 0 24px 64px rgba(15, 23, 42, 0.16);

  --shadow-btn: 0 4px 14px rgba(37, 99, 235, 0.28);
  --shadow-glow: var(--shadow-md);
  --shadow-card-hover: 0 12px 32px rgba(15, 23, 42, 0.14);

  /* Radius */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-pill: 999px;

  /* Motion */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);

  --transition-fast: 0.2s var(--ease-smooth);
  --transition-med: 0.4s var(--ease-out-expo);

  /* Typography */
  --tracking-tight: -0.03em;
  --tracking-wide: 0.08em;
  --leading-tight: 1.12;
  --leading-body: 1.7;

  /* Focus */
  --focus-ring: 0 0 0 3px rgba(59, 130, 246, 0.35);

  /* Width */
  --content-max: 1280px;

  /* Navbar */
  --nav-height: 4.25rem;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  letter-spacing: 0.01em;
}

@media screen and (min-width: 320px) {
  html {
    font-size: calc(16px + 1 * ((100vw - 320px) / 880));
  }
}

@media screen and (min-width: 1200px) {
  html {
    font-size: 17px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
