/**
 * Ben Live TV - Prismatic Gradient System
 * Single source of truth for the looping rainbow gradient used across the site.
 *
 * Usage:
 *   background: var(--prism-gradient-112);   (112 deg — nav links, interactive system)
 *   background: var(--prism-gradient-118);   (118 deg — landing/hire-me hero headings)
 *   background: var(--prism-gradient-122);   (122 deg — ai-lab, blog hero + section labels)
 *   background-size: var(--prism-size);      (always pair with this)
 *   background-repeat: var(--prism-repeat);
 *   animation: prismFlow <duration> linear infinite;  (keyframe in _animations.css)
 *
 * Light mode overrides remain per-file because contrast requirements differ:
 *   - Pages with dark glass surfaces use mid-lightness (~0.61) light mode values
 *   - Pages with white backgrounds (hire-me) need low-lightness (~0.43) high-chroma values
 *
 * Hex fallbacks are included so gradients render correctly in browsers without oklch support.
 * The browser will use the last valid value — oklch takes precedence where supported.
 */

/* ============================================================================
   Prismatic Gradient Custom Properties (Dark Mode — shared defaults)
   ============================================================================ */

:root {
  /* 12-stop loop-closed oklch rainbow at 112° */
  --prism-gradient-112: linear-gradient(
    112deg,
    oklch(0.88 0.2 188) 0%,
    oklch(0.86 0.22 220) 8.33%,
    oklch(0.84 0.24 248) 16.66%,
    oklch(0.82 0.24 282) 25%,
    oklch(0.83 0.23 322) 33.33%,
    oklch(0.86 0.21 166) 41.66%,
    oklch(0.88 0.2 188) 50%,
    oklch(0.86 0.22 220) 58.33%,
    oklch(0.84 0.24 248) 66.66%,
    oklch(0.82 0.24 282) 75%,
    oklch(0.83 0.23 322) 83.33%,
    oklch(0.86 0.21 166) 91.66%,
    oklch(0.88 0.2 188) 100%
  );

  /* 12-stop loop-closed oklch rainbow at 118° */
  --prism-gradient-118: linear-gradient(
    118deg,
    oklch(0.88 0.2 188) 0%,
    oklch(0.86 0.22 220) 8.33%,
    oklch(0.84 0.24 248) 16.66%,
    oklch(0.82 0.24 282) 25%,
    oklch(0.83 0.23 322) 33.33%,
    oklch(0.86 0.21 166) 41.66%,
    oklch(0.88 0.2 188) 50%,
    oklch(0.86 0.22 220) 58.33%,
    oklch(0.84 0.24 248) 66.66%,
    oklch(0.82 0.24 282) 75%,
    oklch(0.83 0.23 322) 83.33%,
    oklch(0.86 0.21 166) 91.66%,
    oklch(0.88 0.2 188) 100%
  );

  /* 12-stop loop-closed oklch rainbow at 122° */
  --prism-gradient-122: linear-gradient(
    122deg,
    oklch(0.88 0.2 188) 0%,
    oklch(0.86 0.22 220) 8.33%,
    oklch(0.84 0.24 248) 16.66%,
    oklch(0.82 0.24 282) 25%,
    oklch(0.83 0.23 322) 33.33%,
    oklch(0.86 0.21 166) 41.66%,
    oklch(0.88 0.2 188) 50%,
    oklch(0.86 0.22 220) 58.33%,
    oklch(0.84 0.24 248) 66.66%,
    oklch(0.82 0.24 282) 75%,
    oklch(0.83 0.23 322) 83.33%,
    oklch(0.86 0.21 166) 91.66%,
    oklch(0.88 0.2 188) 100%
  );

  /* Hex fallback for browsers without oklch support (used on dark backgrounds) */
  --prism-gradient-fallback: linear-gradient(
    112deg,
    #22d3ee 0%,
    #38bdf8 8.33%,
    #4f46e5 16.66%,
    #7c3aed 25%,
    #d946ef 33.33%,
    #34d399 41.66%,
    #22d3ee 50%,
    #38bdf8 58.33%,
    #4f46e5 66.66%,
    #7c3aed 75%,
    #d946ef 83.33%,
    #34d399 91.66%,
    #22d3ee 100%
  );

  /* Standard sizing and repeat — always pair with the gradient variables */
  --prism-size: 200% 100%;
  --prism-repeat: repeat;
  --prism-speed-slow: 11s;      /* hero headings */
  --prism-speed-medium: 2.35s;  /* nav links, interactive links */
  --prism-speed-fast: 1.2s;     /* subtle accents */
}

/* ============================================================================
   HDR / Wide-Gamut Display Boost
   On displays that support P3 chroma, push saturation further.
   All three angle variants get boosted simultaneously.
   ============================================================================ */

@supports (color: oklch(0% 0 0)) and (color: color(display-p3 0 0 0)) {
  @media (dynamic-range: high) {
    :root {
      --prism-gradient-112: linear-gradient(
        112deg,
        oklch(0.9 0.26 188) 0%,
        oklch(0.88 0.28 220) 8.33%,
        oklch(0.86 0.3 248) 16.66%,
        oklch(0.84 0.3 282) 25%,
        oklch(0.85 0.29 322) 33.33%,
        oklch(0.88 0.27 166) 41.66%,
        oklch(0.9 0.26 188) 50%,
        oklch(0.88 0.28 220) 58.33%,
        oklch(0.86 0.3 248) 66.66%,
        oklch(0.84 0.3 282) 75%,
        oklch(0.85 0.29 322) 83.33%,
        oklch(0.88 0.27 166) 91.66%,
        oklch(0.9 0.26 188) 100%
      );
      --prism-gradient-118: linear-gradient(
        118deg,
        oklch(0.9 0.26 188) 0%,
        oklch(0.88 0.28 220) 8.33%,
        oklch(0.86 0.3 248) 16.66%,
        oklch(0.84 0.3 282) 25%,
        oklch(0.85 0.29 322) 33.33%,
        oklch(0.88 0.27 166) 41.66%,
        oklch(0.9 0.26 188) 50%,
        oklch(0.88 0.28 220) 58.33%,
        oklch(0.86 0.3 248) 66.66%,
        oklch(0.84 0.3 282) 75%,
        oklch(0.85 0.29 322) 83.33%,
        oklch(0.88 0.27 166) 91.66%,
        oklch(0.9 0.26 188) 100%
      );
      --prism-gradient-122: linear-gradient(
        122deg,
        oklch(0.9 0.26 188) 0%,
        oklch(0.88 0.28 220) 8.33%,
        oklch(0.86 0.3 248) 16.66%,
        oklch(0.84 0.3 282) 25%,
        oklch(0.85 0.29 322) 33.33%,
        oklch(0.88 0.27 166) 41.66%,
        oklch(0.9 0.26 188) 50%,
        oklch(0.88 0.28 220) 58.33%,
        oklch(0.86 0.3 248) 66.66%,
        oklch(0.84 0.3 282) 75%,
        oklch(0.85 0.29 322) 83.33%,
        oklch(0.88 0.27 166) 91.66%,
        oklch(0.9 0.26 188) 100%
      );
    }
  }
}
