:root {
  /* Backgrounds */
  --bg:       #06040f;
  --bg-s:     #0d0a1a;
  --bg-r:     #130f22;
  --bg-card:  #18122e;

  /* Text */
  --text:     #f0ecff;
  --muted:    #8b7faa;
  --dim:      #2e2545;

  /* Brand gradient: magenta → violet → blue */
  --g1: #e91e8c;
  --g2: #9b27af;
  --g3: #2979ff;
  --g4: #00b4d8;

  --grad:        linear-gradient(110deg, var(--g1), var(--g2), var(--g3));
  --grad-soft:   linear-gradient(110deg, rgba(233,30,140,.15), rgba(41,121,255,.15));
  --grad-border: linear-gradient(110deg, var(--g1), var(--g3));
  --grad-filmfest: linear-gradient(90deg, #e8559a 0%, #5ea8e8 100%);

  --border:   rgba(255,255,255,0.06);
  --border-v: rgba(155,39,175,0.3);

  /* Typography */
  --font-display:  'Bebas Neue', sans-serif;
  --font-hairline: 'Barlow Condensed', sans-serif;
  --font-body:     'Inter', sans-serif;

  --ui-font-scale: 1.4;
  --eyebrow-size:  calc(1.4rem * var(--ui-font-scale));
  --label-size:    calc(.68rem * var(--ui-font-scale));
  --ui-sm-size:    calc(.75rem * var(--ui-font-scale));
  --ui-md-size:    calc(.82rem * var(--ui-font-scale));
  --ui-lg-size:    calc(.88rem * var(--ui-font-scale));
  --btn-size:      calc(.78rem * var(--ui-font-scale));

  --lh-body:     1.85;
  --ls-eyebrow:  0.32em;
  --ls-subhead:  0.2em;
  --hero-size:   clamp(2.4rem, 11vw, 8.5rem);
  --hero-size-sm: clamp(2rem, 10vw, 3.2rem);

  /* Layout */
  --safe-top:        env(safe-area-inset-top, 0px);
  --max-width:       1200px;
  --nav-max-width:   1400px;
  --nav-height:      75px;
  --banner-height:   42px;
  --logo-height:     clamp(40px, 5.5vw, 56px);
  --nav-link-size:   clamp(1.25rem, 1.8vw, 1.55rem);
  --dropdown-link-size: clamp(1rem, 1.4vw, 1.15rem);
  --section-pad:     clamp(4rem, 10vw, 8rem);
  --hero-home-height: clamp(308px, 36.3svh, 528px);
  --hero-interior-height: 50vh;

  /* Radius */
  --r-sm:   8px;
  --r-md:   14px;
  --r-lg:   22px;
  --r-xl:   32px;
  --r-pill: 999px;

  /* Motion */
  --ease-out:    cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --dur-reveal:  0.5s;
  --dur-flip:    0.55s;
  --stagger-card: 80ms;
  --card-glow:   inset 0 0 40px rgba(233, 30, 140, 0.12);
}
