/* Prolific Prep — site CSS. Generated from the design system tokens. Load once, site-wide (Appearance → Customize → Additional CSS, or enqueue). */

/* ---- fonts ---- */
/* Webfonts — Google Fonts. Replace with self-hosted @font-face when licensed files are available. */
@import url("https://fonts.googleapis.com/css2?family=Archivo+Black&family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap");

/* ---- colors ---- */
:root {
  /* Base — neutral blacks pulled from the logo's black fill */
  --ink-950: oklch(0.12 0.003 100);
  --ink-900: oklch(0.16 0.004 100);
  --ink-800: oklch(0.21 0.005 100);
  --ink-700: oklch(0.29 0.006 100);
  --ink-600: oklch(0.41 0.007 100);
  --ink-500: oklch(0.54 0.008 100);
  --ink-400: oklch(0.65 0.008 100);
  --ink-300: oklch(0.75 0.007 100);
  --ink-200: oklch(0.85 0.006 100);
  --ink-100: oklch(0.93 0.004 100);
  --paper:   oklch(0.975 0.003 100);
  --white:   oklch(1 0 0);

  /* Accent — Prolific Volt (from logo, ~#D4E21B) */
  --volt-300: oklch(0.94 0.16 108);
  --volt-400: oklch(0.91 0.20 106);
  --volt-500: oklch(0.88 0.21 105);
  --volt-600: oklch(0.78 0.19 105);
  --volt-700: oklch(0.62 0.15 105);
  --volt-900: oklch(0.32 0.07 105);

  /* Logo outline grey */
  --steel: oklch(0.70 0.005 100);

  /* Semantic (hue-shifted from volt, similar lightness/chroma) */
  --success: oklch(0.78 0.19 150);
  --warning: oklch(0.80 0.17 70);
  --danger:  oklch(0.62 0.22 25);
  --live:    var(--danger);

  /* Aliases — surfaces */
  --surface-page:    var(--ink-950);
  --surface-raised:  var(--ink-900);
  --surface-card:    var(--ink-900);
  --surface-inset:   var(--ink-800);
  --surface-inverse: var(--paper);
  --surface-accent:  var(--volt-500);

  /* Aliases — text on dark */
  --text-primary:   var(--paper);
  --text-secondary: var(--ink-300);
  --text-muted:     var(--ink-500);
  --text-accent:    var(--volt-500);
  --text-on-accent: var(--ink-950);
  /* text on inverse (light) surfaces */
  --text-inverse:   var(--ink-950);
  --text-inverse-secondary: var(--ink-600);

  /* Borders */
  --border-subtle: oklch(1 0 0 / 0.08);
  --border-strong: oklch(1 0 0 / 0.18);
  --border-accent: var(--volt-500);
  --border-inverse: oklch(0 0 0 / 0.12);

  /* Links */
  --link: var(--paper);
  --link-hover: var(--volt-500);
  --link-underline: var(--volt-500);

  /* Focus */
  --focus-ring: 0 0 0 2px var(--ink-950), 0 0 0 4px var(--volt-500);
}

/* ---- typography ---- */
:root {
  --font-display: "Archivo Black", "Arial Black", Impact, sans-serif;
  --font-body: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;

  /* Display — uppercase, tight. Hero statements, section titles, stats. Nothing on the site renders below 15px. */
  --text-display-1: 400 clamp(72px, 10vw, 176px) / 0.86 var(--font-display);
  --text-display-2: 400 clamp(52px, 6.5vw, 112px) / 0.88 var(--font-display);
  --text-h1: 400 clamp(44px, 4.5vw, 68px) / 0.92 var(--font-display);
  --text-h2: 400 clamp(32px, 3vw, 44px) / 0.96 var(--font-display);
  --text-h3: 800 30px / 1.1 var(--font-body);
  --text-h4: 700 22px / 1.2 var(--font-body);

  --text-lead: 500 clamp(22px, 1.6vw, 26px) / 1.4 var(--font-body);
  --text-body: 400 19px / 1.55 var(--font-body);
  --text-body-sm: 400 17px / 1.5 var(--font-body);
  --text-caption: 500 15px / 1.4 var(--font-body);

  --text-eyebrow: 700 15px / 1 var(--font-body);
  --text-label: 700 15px / 1 var(--font-body);
  --text-stat: 400 clamp(72px, 7vw, 128px) / 0.9 var(--font-display);
  --text-mono: 500 15px / 1.4 var(--font-mono);
  --text-mono-lg: 500 20px / 1.3 var(--font-mono);

  --tracking-display: -0.02em;
  --tracking-eyebrow: 0.16em;
  --tracking-label: 0.08em;
  --tracking-mono: 0.02em;

  --measure-body: 58ch;
  --measure-lead: 42ch;
}

/* ---- spacing ---- */
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --space-11: 160px;

  /* Layout */
  --container-max: 1440px;
  --container-pad: clamp(20px, 4vw, 64px);
  --section-pad-y: clamp(72px, 10vw, 160px);
  --grid-gap: clamp(16px, 2vw, 32px);

  /* Radii — sharp by default; pills only for tags & chips */
  --radius-none: 0px;
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-pill: 999px;

  /* Elevation — dark UI relies on tone, not shadow */
  --shadow-card: 0 1px 0 oklch(1 0 0 / 0.06) inset;
  --shadow-float: 0 24px 60px oklch(0 0 0 / 0.5);

  /* Hairlines */
  --rule: 1px solid var(--border-subtle);
  --rule-strong: 1px solid var(--border-strong);
  --rule-accent: 3px solid var(--border-accent);
}

/* ---- motion ---- */
:root {
  /* Easing — decisive out-expo for reveals, standard for hovers */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.83, 0, 0.17, 1);
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);

  /* Durations */
  --dur-fast: 150ms;    /* hover color/opacity */
  --dur-base: 300ms;    /* button fills, underline sweeps */
  --dur-slow: 700ms;    /* content reveals */
  --dur-hero: 1200ms;   /* hero kinetic type, video fade-in */
  --stagger: 80ms;      /* between sibling reveals */

  /* Reveal offsets */
  --reveal-y: 32px;
  --reveal-clip: inset(0 0 100% 0);
  --reveal-clip-end: inset(0 0 -10% 0);

  /* Hover */
  --hover-lift: translateY(-2px);
  --press-scale: scale(0.98);
  --hover-zoom: scale(1.04);  /* imagery inside cards */
}

@keyframes pp-rise {
  from { opacity: 0; transform: translateY(var(--reveal-y)); }
  to   { opacity: 1; transform: none; }
}
@keyframes pp-clip-up {
  from { clip-path: inset(100% 0 0 0); transform: translateY(20%); }
  to   { clip-path: inset(-10% 0 -10% 0); transform: none; }
}
@keyframes pp-sweep {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@keyframes pp-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes pp-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
@keyframes pp-count {
  from { --n: 0; }
}

@media (prefers-reduced-motion: reduce) {
  :root { --dur-slow: 0ms; --dur-hero: 0ms; --stagger: 0ms; --reveal-y: 0px; }
}

/* ---- media ---- */
:root {
  /* Photo & video treatment */
  --media-grade: grayscale(0.15) contrast(1.12) brightness(0.92);
  --media-grade-hero: grayscale(0.25) contrast(1.18) brightness(0.8);
  --media-hover-grade: grayscale(0) contrast(1.1) brightness(1);

  /* Protection gradients — text always sits on these, never on raw footage */
  --protect-bottom: linear-gradient(180deg, oklch(0.12 0.003 100 / 0) 35%, oklch(0.12 0.003 100 / 0.92) 100%);
  --protect-top: linear-gradient(0deg, oklch(0.12 0.003 100 / 0) 60%, oklch(0.12 0.003 100 / 0.7) 100%);
  --protect-left: linear-gradient(90deg, oklch(0.12 0.003 100 / 0.9) 0%, oklch(0.12 0.003 100 / 0.3) 55%, oklch(0.12 0.003 100 / 0) 100%);
  --protect-full: oklch(0.12 0.003 100 / 0.55);

  /* Volt wash — used sparingly for featured/highlight tiles */
  --wash-volt: linear-gradient(180deg, oklch(0.88 0.21 105 / 0) 40%, oklch(0.88 0.21 105 / 0.35) 100%);

  /* Film grain overlay (feTurbulence noise) */
  --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  --grain-opacity: 0.22;

  /* Aspect ratios */
  --ratio-hero: 16 / 9;
  --ratio-portrait: 3 / 4;
  --ratio-card: 4 / 5;
  --ratio-wide: 21 / 9;
  --ratio-square: 1 / 1;
}

/* ---- base ---- */
html, body { margin: 0; background: var(--surface-page); color: var(--text-primary); font: var(--text-body); -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }
img, video { max-width: 100%; display: block; }
a { color: var(--link); }
a:hover { color: var(--link-hover); }
button { font: inherit; }
::selection { background: var(--volt-500); color: var(--ink-950); }
:focus-visible { outline: none; box-shadow: var(--focus-ring); }
/* hover states for the static build (React hover state is not exported) */
.pp-site a[href]:hover { color: var(--volt-500); }
.pp-site a[href] img { transition: opacity var(--dur-fast); }
.pp-site a[href]:hover img { opacity: .9; }
.pp-site [data-pp-acc-btn] { transition: color var(--dur-fast); }
.pp-site [data-pp-acc-btn]:hover { color: var(--volt-500) !important; }
/* WordPress theme neutralisation — keep theme typography from leaking in */
.pp-site h1, .pp-site h2, .pp-site h3, .pp-site p, .pp-site ul { margin-block: 0; }
.pp-site h1, .pp-site h2, .pp-site h3 { font-weight: inherit; }

/* ---- Prolific theme additions (appended to the design CSS at build time) ---- */
/* WordPress admin bar sits above the sticky header */
.admin-bar [data-pp-header] { top: 32px !important; }
@media (max-width: 782px) { .admin-bar [data-pp-header] { top: 46px !important; } }
/* Hover zoom/grade on roster + staff imagery (the export lost React hover state) */
.pp-site [data-pp-player] a:hover img, .pp-site [data-pp-coach]:hover img { transform: var(--hover-zoom) !important; filter: var(--media-hover-grade) !important; }
.pp-site [data-pp-coach]:focus-visible, .pp-site [data-pp-player] a:focus-visible { box-shadow: var(--focus-ring); }
/* Coach dialog */
dialog[data-pp-coach-dialog]::backdrop { background: oklch(0.12 0.003 100 / 0.8); backdrop-filter: blur(4px); }
/* Fallback page content (legacy pages, legal copy) */
.pp-prose { font: var(--text-body); color: var(--text-secondary); max-width: 72ch; }
.pp-prose h2, .pp-prose h3 { font: var(--text-h3); color: var(--text-primary); margin: var(--space-7) 0 var(--space-4); }
.pp-prose p, .pp-prose ul, .pp-prose ol { margin: 0 0 var(--space-4); }
.pp-prose a { color: var(--volt-500); }
.pp-prose img { height: auto; }
/* Inputs inherit the dark scheme */
.pp-site input, .pp-site select, .pp-site textarea { color-scheme: dark; }

/* ---- Responsive layer -------------------------------------------------------------------------
   The design export was captured at desktop width from a React prototype that handled phones in JS,
   so the static markup has no breakpoints. These rules restore the mobile layout over the inline styles. */
html, body { overflow-x: clip; }
@media (max-width: 960px) {
  [data-pp-header] nav { display: none !important; }
  [data-pp-header] > div { gap: 12px !important; height: 72px !important; }
  [data-pp-header] > div > a:first-child { margin-right: auto; flex-shrink: 0; }
  [data-pp-header] img { flex-shrink: 0; width: auto; height: 34px !important; }
  [data-pp-header] a[href*="player-application"] { padding: 12px 14px !important; font-size: 14px !important; }
  /* heroes are pulled up under the sticky header by -88px; header is 72px here */
  .pp-site section[style*="margin-top: -88px"] { margin-top: -72px !important; }
}
@media (max-width: 700px) {
  :root {
    --text-display-1: 400 clamp(40px, 12.5vw, 72px) / 0.9 var(--font-display);
    --text-display-2: 400 clamp(36px, 11vw, 56px) / 0.92 var(--font-display);
    --text-h1: 400 clamp(32px, 9vw, 44px) / 0.95 var(--font-display);
    --text-h2: 400 clamp(26px, 7.5vw, 34px) / 0.98 var(--font-display);
    --text-h3: 800 24px / 1.15 var(--font-body);
    --text-stat: 400 clamp(56px, 16vw, 72px) / 0.9 var(--font-display);
    --text-lead: 500 19px / 1.45 var(--font-body);
    --text-body: 400 17px / 1.55 var(--font-body);
    --section-pad-y: 64px;
  }
  /* display text whose font-size the export inlined */
  .pp-site [style*="font-size: clamp(36px, 8vw, 64px)"] { font-size: clamp(30px, 9vw, 44px) !important; }
  .pp-site [style*="font-size: clamp(56px, 6vw, 96px)"] { font-size: clamp(40px, 11vw, 56px) !important; }
  .pp-site [style*="font-size: clamp(48px, 7vw, 120px)"] { font-size: clamp(40px, 12vw, 64px) !important; }
  .pp-site [style*="font-size: clamp(72px, 7vw, 128px)"] { font-size: clamp(56px, 16vw, 72px) !important; }
  .pp-site [style*="font-size: 72px"] { font-size: 48px !important; }
  /* eyebrows and button rows wrap instead of pushing the page wide */
  .pp-site [style*="tracking-eyebrow"]:not([style*="radius-pill"]) { white-space: normal !important; flex-wrap: wrap; }
  .pp-site [style*="flex-wrap: wrap"] > div { min-width: 0; max-width: 100%; }
  .pp-site div:has(> a[style*="padding: 18px 30px"]), .pp-site div:has(> button[style*="padding: 18px 30px"]), .pp-site div:has(> a[style*="padding: 24px 40px"]) { flex-wrap: wrap !important; }
  .pp-site a[style*="padding: 18px 30px"], .pp-site button[style*="padding: 18px 30px"], .pp-site a[style*="padding: 24px 40px"] { padding: 16px 20px !important; white-space: normal !important; font-size: 15px !important; }
  .pp-site [style*="min-width: 320px"] { min-width: 0 !important; }
  .pp-site [style*="min-width: 280px"] { min-width: 0 !important; width: 100%; }
  /* fixed multi-column grids collapse */
  .pp-site [style*="grid-template-columns: repeat(6, minmax(0px, 1fr))"] { grid-template-columns: minmax(0, 1fr) !important; }
  .pp-site [style*="grid-column: span 2"], .pp-site [style*="grid-column: span 3"] { grid-column: auto !important; }
  .pp-site [style*="grid-template-columns: 1fr 1fr"] { grid-template-columns: minmax(0, 1fr) !important; }
  .pp-site [style*="grid-template-columns: 80px repeat(6"] { min-width: 560px; }
  .pp-site div:has(> [style*="grid-template-columns: 80px repeat(6"]) { overflow-x: auto; }
  /* schedule rows: date on top, matchup, then the action */
  .pp-site [data-pp-game] { grid-template-columns: minmax(0, 1fr) !important; gap: var(--space-3) !important; }
  .pp-site [data-pp-game] > div:last-child { text-align: left !important; }
  .pp-site [style*="grid-template-columns: 140px minmax(0px, 1fr) auto"] { grid-template-columns: minmax(0, 1fr) !important; }
  .pp-site [style*="grid-template-columns: 120px minmax(0px, 1fr)"] { grid-template-columns: 80px minmax(0, 1fr) !important; }
  .pp-site [style*="gap: var(--space-7)"][style*="display: flex"] { gap: var(--space-5) !important; }
  .pp-site [style*="padding: var(--space-7)"] { padding: var(--space-5) !important; }
  .pp-site h1, .pp-site h2 { overflow-wrap: normal; word-break: normal; hyphens: none; }
  /* section headers that put a button beside the heading stack on phones */
  .pp-site [style*="grid-template-columns: minmax(0px, 1fr) auto"] { grid-template-columns: minmax(0, 1fr) !important; }
}

/* Mobile menu drawer: scrollable, sized to the visible viewport, page locked behind it */
[data-pp-drawer] { overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; height: 100vh; height: 100dvh; }
[data-pp-drawer] nav { flex: 0 0 auto !important; }
body:has([data-pp-drawer][style*="display: flex"]) { overflow: hidden; }
@media (max-width: 700px) {
  [data-pp-drawer] nav { margin-top: var(--space-6) !important; }
  [data-pp-drawer] nav a { font-size: clamp(28px, 8.5vw, 40px) !important; padding-top: 8px !important; padding-bottom: 8px !important; }
  [data-pp-drawer] a[style*="padding: 24px 40px"] { padding: 16px 20px !important; font-size: 15px !important; }
}
[data-pp-drawer] div:has(> a[href*="instagram"]) { flex-wrap: wrap; row-gap: 12px; }

/* Video cards + lightbox */
.pp-site [data-pp-video] { cursor: pointer; }
.pp-site [data-pp-video]:hover img { transform: var(--hover-zoom) !important; filter: var(--media-hover-grade) !important; }
.pp-site [data-pp-video]:hover span[style*="border: 1px solid var(--paper)"] { background: var(--volt-500); color: var(--ink-950); border-color: var(--volt-500) !important; }
.pp-site [data-pp-video]:focus-visible { box-shadow: var(--focus-ring); }
dialog[data-pp-video-dialog]::backdrop { background: oklch(0.12 0.003 100 / 0.88); backdrop-filter: blur(6px); }

/* Social page */
.pp-platform:hover .pp-platform-fill { transform: scaleY(1) !important; }
.pp-platform:hover { color: var(--ink-950) !important; }
.pp-platform:hover .pp-platform-icon { color: var(--ink-950) !important; }
.pp-follow-chip:hover { border-color: var(--volt-500) !important; color: var(--volt-500) !important; }
.pp-feature:hover img, .pp-ig-tile:hover img, .pp-upnext:hover img { transform: var(--hover-zoom); filter: var(--media-hover-grade) !important; }
.pp-feature:hover .pp-play { transform: scale(1.08); }
.pp-upnext:hover > div:last-child { color: var(--volt-500); }
.pp-wall .instagram-media { min-width: 0 !important; }
.pp-wall .twitter-tweet { margin: 0 auto !important; }
@media (max-width: 700px) { .pp-upnext { grid-template-columns: 112px minmax(0, 1fr) !important; } .pp-upnext > div:last-child { font-size: 15px !important; } }
@media (max-width: 700px) {
  .pp-site [data-pp-video] span[style*="font: var(--text-h3)"], .pp-site [data-pp-video] span[style*="font: var(--text-h4)"] { font: 700 16px/1.25 var(--font-body) !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .pp-site [data-pp-video] span[style*="width: 44px; height: 44px"] { width: 36px !important; height: 36px !important; }
  .pp-feature .pp-play { width: 72px !important; height: 72px !important; margin: -36px 0 0 -36px !important; top: 40% !important; }
  .pp-platform { min-height: 190px !important; padding: var(--space-5) !important; }
  [data-pp-x-fallback] { min-height: 380px !important; padding: var(--space-6) !important; }
}

/* Unified credit */
.pp-credit:hover { color: var(--volt-500) !important; }
.pp-credit img { opacity: .85; transition: opacity var(--dur-fast); }
.pp-credit:hover img { opacity: 1; }
@media (max-width: 700px) { .pp-footer-bottom { flex-direction: column; align-items: flex-start !important; } }
.pp-team-cta:hover img { transform: scale(1) !important; }
.pp-team-cta a:hover { filter: brightness(1.08); }
section[id] { scroll-margin-top: 88px; }
@media (max-width: 900px) {
  .pp-countdown-grid { grid-template-columns: auto minmax(0, 1fr) !important; gap: var(--space-5) !important; }
  .pp-countdown-date { padding-right: var(--space-5) !important; }
  .pp-countdown-right { grid-column: 1 / -1; align-items: stretch !important; }
  .pp-countdown-right [data-pp-cd-boxes] > div { flex: 1; min-width: 0 !important; }
}
.pp-site button[data-pp-href]:hover { color: var(--text-primary) !important; }

/* ---- Player takeover ---- */
html.pp-pt-lock, html.pp-pt-lock body { overflow: hidden; }
.pp-pt { position: fixed; inset: 0; z-index: 95; color: var(--text-primary); }
.pp-pt-bg { position: absolute; inset: 0; background: radial-gradient(120% 90% at 20% 30%, oklch(0.2 0.02 105 / .96), oklch(0.09 0.003 100 / .985) 60%); opacity: 0; transition: opacity .45s var(--ease-out); }
.pp-pt.is-open .pp-pt-bg { opacity: 1; }
.pp-pt-sweep { position: absolute; left: 0; right: 0; top: 0; height: 100%; background: var(--volt-500); transform: scaleX(0); transform-origin: left; pointer-events: none; z-index: 1; }
.pp-pt.is-open .pp-pt-sweep { animation: ppPtSweep .9s var(--ease-in-out) both; }
@keyframes ppPtSweep { 0% { transform: scaleX(0); transform-origin: left; } 45% { transform: scaleX(1); transform-origin: left; } 46% { transform-origin: right; } 100% { transform: scaleX(0); transform-origin: right; } }
.pp-pt-num { position: absolute; right: -2vw; bottom: -6vh; font: 400 min(62vw, 72vh) / .8 var(--font-display); letter-spacing: -0.06em; color: transparent; -webkit-text-stroke: 2px oklch(0.88 0.21 105 / .22); pointer-events: none; transform: translateX(14%); opacity: 0; transition: transform 1.1s var(--ease-out) .15s, opacity .8s var(--ease-out) .15s; z-index: 1; }
.pp-pt.is-open .pp-pt-num { transform: none; opacity: 1; }
.pp-pt-scroll { position: absolute; inset: 0; overflow-y: auto; overscroll-behavior: contain; z-index: 2; }
.pp-pt-grid { min-height: 100%; max-width: var(--container-max); margin: 0 auto; padding: 96px var(--container-pad) 120px; display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 96px); align-items: center; }
.pp-pt-photo { position: relative; aspect-ratio: 3 / 4; max-height: 78vh; width: 100%; justify-self: end; overflow: hidden; background: var(--ink-800); box-shadow: 0 40px 120px oklch(0 0 0 / .6); }
.pp-pt-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: var(--media-grade); transition: opacity .25s, transform .6s var(--ease-out); }
.pp-pt-photo.is-waiting img { opacity: 0; }
.pp-pt-photo.is-swap img { opacity: 0; transform: scale(1.06); }
.pp-pt-photo-shade { position: absolute; inset: 0; background: var(--protect-bottom); }
.pp-pt-flyer { position: fixed; z-index: 99; object-fit: cover; filter: var(--media-grade); pointer-events: none; box-shadow: 0 40px 120px oklch(0 0 0 / .6); }
.pp-pt-info { transition: transform .26s var(--ease-out), opacity .26s; }
.pp-pt-info.is-out-left { transform: translateX(-40px); opacity: 0; }
.pp-pt-info.is-out-right { transform: translateX(40px); opacity: 0; }
.pp-pt-info.is-in-right { transform: translateX(40px); opacity: 0; transition: none; }
.pp-pt-info.is-in-left { transform: translateX(-40px); opacity: 0; transition: none; }
.pp-pt-in { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.pp-pt-in.is-on { opacity: 1; transform: none; }
.pp-pt-eyebrow { display: flex; align-items: center; gap: 14px; font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-accent); }
.pp-pt-eyebrow span { width: 28px; height: 3px; background: currentColor; }
.pp-pt-name { margin: var(--space-5) 0 0 !important; font: 400 clamp(52px, 7.2vw, 128px) / .86 var(--font-display) !important; letter-spacing: var(--tracking-display); text-transform: uppercase; }
.pp-pt-name span { display: block; }
.pp-pt-last { color: var(--volt-500); }
.pp-pt-facts { display: flex; flex-wrap: wrap; gap: var(--space-5) var(--space-7); margin-top: var(--space-7); padding-top: var(--space-5); border-top: var(--rule-strong); }
.pp-pt-fact span { display: block; font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-muted); }
.pp-pt-fact b { display: block; font: var(--text-mono-lg); font-weight: 500; margin-top: 8px; }
.pp-pt-block { margin-top: var(--space-7); }
.pp-pt-label { font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-muted); margin-bottom: var(--space-4); }
.pp-pt-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.pp-pt-stats div { border-top: var(--rule-accent); padding-top: 10px; }
.pp-pt-stats b { display: block; font: 400 clamp(36px, 3.4vw, 56px) / 1 var(--font-display); }
.pp-pt-stats span { font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); color: var(--text-muted); }
.pp-pt-stars { font-size: 28px; color: var(--volt-500); letter-spacing: .12em; } .pp-pt-stars i { font-style: normal; color: var(--ink-700); }
.pp-pt-rank, .pp-pt-commit { font: var(--text-mono-lg); margin-top: 8px; }
.pp-pt-offers { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--space-4); }
.pp-pt-offers span { padding: 7px 12px; border: 1px solid var(--border-strong); border-radius: var(--radius-pill); font: var(--text-caption); color: var(--text-secondary); }
.pp-pt-bio { margin: var(--space-6) 0 0 !important; font: var(--text-body); color: var(--text-secondary); max-width: 56ch; }
.pp-pt-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--space-7); }
.pp-pt-back, .pp-pt-btn { display: inline-flex; align-items: center; gap: 10px; padding: 16px 22px; font: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast); }
.pp-pt-back { background: var(--volt-500); color: var(--ink-950); border: 1px solid var(--volt-500); }
.pp-pt-back:hover { background: var(--paper); border-color: var(--paper); }
.pp-pt-btn { background: transparent; color: var(--text-primary) !important; border: 1px solid var(--border-strong); }
.pp-pt-btn:hover { border-color: var(--volt-500); color: var(--volt-500) !important; }
.pp-pt-x { position: absolute; top: 20px; right: 20px; z-index: 4; width: 52px; height: 52px; background: oklch(0.12 0.003 100 / .6); border: 1px solid var(--border-strong); color: var(--paper); font: var(--text-mono-lg); cursor: pointer; transition: background var(--dur-fast), color var(--dur-fast), transform var(--dur-base) var(--ease-out); }
.pp-pt-x:hover { background: var(--volt-500); color: var(--ink-950); transform: rotate(90deg); }
.pp-pt-nav { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 4; display: flex; align-items: center; gap: 14px; padding: 8px; background: oklch(0.12 0.003 100 / .92); border: 1px solid var(--border-subtle); }
.pp-pt-nav button { width: 46px; height: 46px; background: transparent; border: 1px solid var(--border-strong); color: var(--paper); font: var(--text-mono-lg); cursor: pointer; transition: background var(--dur-fast), color var(--dur-fast); }
.pp-pt-nav button:hover { background: var(--volt-500); color: var(--ink-950); border-color: var(--volt-500); }
.pp-pt-count { font: var(--text-mono); color: var(--text-secondary); min-width: 56px; text-align: center; }
.pp-pt.is-closing .pp-pt-nav, .pp-pt.is-closing .pp-pt-x { opacity: 0; transition: opacity .2s; }
.admin-bar .pp-pt-x { top: 52px; }
@media (max-width: 860px) {
  .pp-pt-grid { grid-template-columns: minmax(0, 1fr); padding: 72px 16px 120px; gap: var(--space-6); align-items: start; }
  .pp-pt-photo { max-height: 58vh; width: min(100%, 44vh); justify-self: center; }
  .pp-pt-name { font-size: clamp(44px, 13vw, 72px) !important; }
  .pp-pt-facts { gap: var(--space-4) var(--space-6); }
  .pp-pt-num { font-size: 92vw; bottom: auto; top: 6vh; right: -6vw; }
  .pp-pt-x { top: 12px; right: 12px; width: 46px; height: 46px; }
  .pp-pt-nav { bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) { .pp-pt * { animation: none !important; transition: none !important; } }

/* Alumni + headings on phones: more air (Adam 2026-10-01) */
@media (max-width: 700px) {
  :root {
    --text-display-2: 400 clamp(36px, 11vw, 56px) / 0.98 var(--font-display);
    --text-h1: 400 clamp(32px, 9vw, 44px) / 1.02 var(--font-display);
  }
  .pp-site [data-pp-alum-year] { gap: var(--space-4) !important; padding: var(--space-7) 0 var(--space-6) !important; }
  .pp-site [data-pp-alum-year] > div:first-child { font-size: 52px !important; }
  .pp-site [data-pp-alum] { flex-direction: column; align-items: flex-start !important; gap: 6px !important; padding: 16px 0 !important; }
  .pp-site [data-pp-alum] > span:first-child { line-height: 1.25; }
  .pp-site [data-pp-alum] > span:last-child { text-align: left !important; white-space: normal !important; color: var(--text-muted) !important; font-size: 15px !important; }
  .pp-site [data-pp-alum-count] { display: block; margin-top: var(--space-4); }
  .pp-site p { line-height: 1.6; }
}

/* ---- Takeover v2: basketball transition + bigger motion ---- */
.pp-ball { position: fixed; z-index: 120; left: 50%; top: 50%; width: 72vmax; height: 72vmax; margin: -36vmax 0 0 -36vmax; opacity: 0; transform: scale(0.06); pointer-events: none; will-change: transform, opacity; contain: strict; }
.pp-ball svg { width: 100%; height: 100%; display: block; }
.pp-pt-sweep { display: none; }
.pp-pt-num { transform: scale(1.7) translateX(10%); transition: transform 1s cubic-bezier(0.34, 1.56, 0.64, 1) .25s, opacity .6s var(--ease-out) .25s; will-change: transform, opacity; }
.pp-pt.is-open .pp-pt-num { transform: none; }
.pp-pt-num.is-swap { opacity: 0 !important; transform: translateY(8%) scale(.9) !important; transition: transform .25s, opacity .2s !important; }
.pp-pt.is-leaving .pp-pt-num { opacity: 0; transform: translateX(30%) scale(1.2); transition: transform .4s var(--ease-in-out), opacity .3s; }
.pp-pt.is-leaving .pp-pt-photo { transform: scale(.94) rotate(-2deg); opacity: 0; transition: transform .35s var(--ease-in-out), opacity .3s; }
.pp-pt.is-leaving .pp-pt-x, .pp-pt.is-leaving .pp-pt-nav { opacity: 0; transition: opacity .2s; }
.pp-pt-photo { transform: translateY(40px) scale(.96) rotate(1.5deg); opacity: 0; transition: transform 1s var(--ease-out) .05s, opacity .6s var(--ease-out) .05s; }
.pp-pt.is-open .pp-pt-photo { transform: none; opacity: 1; }
.pp-pt.is-open .pp-pt-photo img { animation: ppPtKen 16s linear .9s both; }
@keyframes ppPtKen { from { transform: scale(1); } to { transform: scale(1.1); } }
.pp-pt-photo.is-swap-left img { transform: translateX(-35%) skewX(8deg) !important; opacity: 0; transition: transform .26s var(--ease-in-out), opacity .22s; animation: none !important; }
.pp-pt-photo.is-swap-right img { transform: translateX(35%) skewX(-8deg) !important; opacity: 0; transition: transform .26s var(--ease-in-out), opacity .22s; animation: none !important; }
.pp-pt-photo.is-enter-right img { transform: translateX(35%) skewX(-8deg); opacity: 0; transition: none; animation: none; }
.pp-pt-photo.is-enter-left img { transform: translateX(-35%) skewX(8deg); opacity: 0; transition: none; animation: none; }
.pp-pt-photo img { transition: transform .7s var(--ease-out), opacity .45s var(--ease-out); }
.pp-pt-line { display: block; overflow: hidden; padding-bottom: .04em; }
.pp-pt-line > span { display: block; transform: translateY(105%) skewY(6deg); transition: transform .8s var(--ease-out); }
.pp-pt-name.is-on .pp-pt-line > span { transform: none; }
.pp-pt-in { transform: translateY(36px); }
.pp-pt.is-leaving .pp-pt-in { transform: translateY(-24px); }
[data-pp-player].pp-pt-return { animation: ppPtReturn .8s var(--ease-out); }
@keyframes ppPtReturn { 0% { transform: scale(.9); box-shadow: 0 0 0 0 var(--volt-500); } 40% { transform: scale(1.03); box-shadow: 0 0 0 4px var(--volt-500); } 100% { transform: none; box-shadow: 0 0 0 0 transparent; } }
@media (max-width: 860px) {
  .pp-pt-nav { top: 12px; bottom: auto; left: 12px; transform: none; padding: 6px; gap: 8px; }
  .pp-pt-nav button { width: 40px; height: 40px; }
  .admin-bar .pp-pt-nav { top: 58px; }
  .pp-pt-grid { padding-top: 76px !important; padding-bottom: 48px !important; }
}
@media (prefers-reduced-motion: reduce) { .pp-ball, .pp-ring { display: none !important; } }
.pp-ring { position: fixed; z-index: 119; left: 50%; top: 50%; width: 80vmin; height: 80vmin; margin: -40vmin 0 0 -40vmin; border: 18px solid var(--volt-500); border-radius: 50%; opacity: 0; will-change: transform, opacity; pointer-events: none; box-shadow: 0 0 80px oklch(0.88 0.21 105 / .5), inset 0 0 60px oklch(0.88 0.21 105 / .35); }

/* ---- PPShot (swish transitions) ---- */
.pp-shot { position: fixed; inset: 0; z-index: 118; display: none; pointer-events: none; }
.pp-shot-dim { position: absolute; inset: 0; background: radial-gradient(80% 70% at 50% 30%, rgba(20,22,6,.9), rgba(5,5,5,.97)); opacity: 0; }
.pp-shot-stage { position: absolute; inset: 0; will-change: transform, opacity; }
.pp-shot-rig { position: absolute; left: 50%; top: 7%; width: min(68vmin, 540px); transform: translate(-50%, -130%); opacity: 0; will-change: transform, opacity; }
.pp-shot-rig svg { display: block; width: 100%; overflow: visible; }
.pp-shot-front, .pp-shot-balls, .pp-shot-sparks { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
.pp-shot-ball { position: absolute; left: 0; top: 0; opacity: 0; will-change: transform, opacity; }
.pp-shot-ball svg { width: 100%; height: 100%; display: block; }
.pp-shot-spark { position: absolute; width: 10px; height: 10px; border-radius: 50%; background: var(--volt-500); box-shadow: 0 0 14px var(--volt-500); opacity: 0; will-change: transform, opacity; }
.pp-shot-word { position: absolute; left: 50%; top: 40%; font: 400 clamp(64px, 12vw, 170px) / 1 var(--font-display); color: var(--volt-500); text-transform: uppercase; letter-spacing: -.02em; -webkit-text-stroke: 2px #050505; text-shadow: 0 10px 40px rgba(220,225,31,.45); transform: translate(-50%,-50%) scale(.2); opacity: 0; will-change: transform, opacity; }
.pp-shot.is-classic .pp-shot-board { display: none; }
.pp-shot.is-classic .pp-shot-rig { top: 18%; }

/* Denser phone layouts: pages were 15–24 screens tall (Adam: "mobile scrolls down forever") */
@media (max-width: 600px) {
  .pp-site div:has(> [data-pp-player]) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; margin-top: var(--space-6) !important; }
  .pp-site [data-pp-player] a > div:first-child > div:last-child { padding: 10px !important; }
  .pp-site [data-pp-player] [style*="font-size: 26px"] { font-size: 16px !important; line-height: 1 !important; }
  .pp-site [data-pp-player] [style*="text-mono-lg"] { font-size: 13px !important; }
  .pp-site [data-pp-player] a > div:nth-child(2) { font-size: 11px !important; gap: 2px 8px !important; padding-top: 6px !important; margin-top: 6px !important; }
  .pp-site [data-pp-player] a > div:nth-child(3) { font-size: 12px !important; margin-top: 2px !important; }
  .pp-site div:has(> [data-pp-coach][style*="cursor"]) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  .pp-site [data-pp-coach] [style*="font-size: 26px"] { font-size: 16px !important; }
  .pp-site [data-pp-coach] [style*="text-caption"] { font-size: 12px !important; margin-top: 4px !important; }
  .pp-site [data-pp-coach] > div > div:last-child { padding: 10px !important; }
  .pp-site [data-pp-alum-year] > div:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 16px !important; }
  .pp-site [data-pp-alum] { padding: 10px 0 !important; }
  .pp-site [data-pp-alum] > span:first-child { font-size: 16px !important; }
  .pp-site [data-pp-alum] > span:last-child { font-size: 13px !important; }
  .pp-site [data-pp-alum-year] { padding: var(--space-5) 0 !important; }
  .pp-site [data-pp-alum-year] > div:first-child { font-size: 40px !important; }
  .pp-site [style*="grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: var(--space-7)"] { gap: var(--space-5) !important; }
}
@media (max-width: 600px) {
  /* footer: compact */
  .pp-site footer [style*="grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px)"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--space-6) var(--space-5) !important; }
  .pp-site footer [style*="grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px)"] > div:first-child { grid-column: 1 / -1; }
  .pp-site footer [style*="grid-template-columns: repeat(auto-fit, minmax(160px, 1fr))"] { grid-template-columns: minmax(0, 1fr) !important; gap: var(--space-5) !important; }
  .pp-site footer [style*="animation: 30s linear"] { font-size: 44px !important; }
  .pp-site footer > div:first-child { padding-top: var(--space-5) !important; padding-bottom: var(--space-5) !important; }
  .pp-site footer a[style*="padding: 4px 0px"] { padding: 2px 0 !important; font-size: 15px !important; }
  /* horizontal swipe carousels: videos + camp coaches */
  .pp-site [style*="grid-template-columns: repeat(6, minmax(0px, 1fr))"], .pp-site .pp-carousel { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px !important; margin-left: calc(-1 * var(--container-pad)); margin-right: calc(-1 * var(--container-pad)); padding: 0 var(--container-pad) 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .pp-site [style*="grid-template-columns: repeat(6, minmax(0px, 1fr))"]::-webkit-scrollbar, .pp-site .pp-carousel::-webkit-scrollbar { display: none; }
  .pp-site [style*="grid-template-columns: repeat(6, minmax(0px, 1fr))"] > *, .pp-site .pp-carousel > * { flex: 0 0 84%; scroll-snap-align: start; min-width: 0; }
  /* staff groups collapse */
  .pp-site .pp-staff-group > div:first-child { cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
  .pp-site .pp-staff-group > div:first-child::after { content: "+"; font: var(--text-mono-lg); color: var(--text-accent); transition: transform var(--dur-base) var(--ease-out); }
  .pp-site .pp-staff-group.is-open > div:first-child::after { transform: rotate(45deg); }
  .pp-site .pp-staff-group:not(.is-open) > div:not(:first-child) { display: none; }
  /* regional table: tighter rows */
  .pp-site [style*="grid-template-columns: 56px minmax(0px, 2fr)"] { padding: 10px 0 !important; min-width: 560px !important; gap: 12px !important; }
  .pp-site [style*="grid-template-columns: 56px minmax(0px, 2fr)"] > span { font-size: 15px !important; }
}
@media (max-width: 600px) {
  .pp-site .pp-duo { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .pp-site .pp-short { aspect-ratio: 16 / 10 !important; }
  .pp-site .pp-addons { border-bottom: 0 !important; }
  .pp-site .pp-addons > * { flex-basis: 82% !important; border: var(--rule) !important; padding: var(--space-5) !important; background: var(--ink-900); }
}

/* ---- Path to the League globe ---- */
.pp-globe-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; margin-top: var(--space-8); }
.pp-globe-wrap { position: relative; width: 100%; max-width: 680px; justify-self: center; aspect-ratio: 1 / 1; touch-action: pan-y; }
.pp-globe { display: block; cursor: grab; }
.pp-globe-sec.is-dragged .pp-globe { cursor: grabbing; }
.pp-globe-hint { position: absolute; left: 50%; bottom: 2%; transform: translateX(-50%); font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-muted); pointer-events: none; transition: opacity .4s; }
.pp-globe-sec.is-dragged .pp-globe-hint { opacity: 0; }
.pp-globe-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); padding-bottom: var(--space-6); border-bottom: var(--rule-strong); }
.pp-globe-stats b { display: block; font: 400 clamp(44px, 4.4vw, 72px) / 1 var(--font-display); letter-spacing: var(--tracking-display); }
.pp-globe-stats span { display: block; margin-top: 8px; font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-muted); }
.pp-globe-modes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--space-6); }
.pp-globe-modes button { border: 1px solid var(--border-strong); background: transparent; color: var(--text-secondary); }
.pp-globe-modes button[aria-checked="true"] { border-color: var(--volt-500); background: var(--volt-500); color: var(--ink-950); }
.pp-globe-list { list-style: none; margin: var(--space-5) 0 0; padding: 0; max-height: 340px; overflow-y: auto; border-top: var(--rule); scrollbar-width: thin; }
.pp-globe-list li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 4px; border-bottom: var(--rule); cursor: pointer; transition: background var(--dur-fast); }
.pp-globe-list li:hover, .pp-globe-list li:focus { background: oklch(0.88 0.21 105 / .08); outline: none; }
.pp-globe-list b { font: 700 16px/1.3 var(--font-body); }
.pp-globe-list b em { font-style: normal; font: var(--text-eyebrow); color: var(--ink-950); background: var(--volt-500); padding: 2px 6px; margin-left: 6px; letter-spacing: .1em; }
.pp-globe-list span { font: var(--text-caption); color: var(--text-muted); text-align: right; }
@media (max-width: 860px) {
  .pp-globe-grid { grid-template-columns: minmax(0, 1fr); }
  .pp-globe-wrap { max-width: 520px; }
  .pp-globe-list { max-height: 260px; }
  .pp-globe-stats b { font-size: 40px; }
}

/* ---- Scroll story (home) ---- */
.pp-split { display: inline-block; will-change: transform, opacity; }
[data-pp-scrub] .pp-w { opacity: .16; transition: opacity .25s linear; }
[data-pp-scrub] .pp-w.on { opacity: 1; }
.pp-plx { overflow: hidden; }
.pp-plx > img, .pp-plx > picture > img { transform: scale(1.14); will-change: transform; }
.pp-decade { position: relative; border-top: var(--rule); background: var(--ink-950); }
.pp-decade-pin { position: sticky; top: 0; height: 100vh; height: 100svh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: var(--space-7) 0; }
.pp-decade-track { display: flex; gap: 20px; margin-top: var(--space-7); padding: 0 var(--container-pad); padding-left: max(var(--container-pad), calc((100vw - var(--container-max)) / 2 + var(--container-pad))); will-change: transform; }
.pp-decade-card { flex: 0 0 clamp(280px, 26vw, 380px); min-height: 440px; border: var(--rule); background: linear-gradient(180deg, var(--ink-900), var(--ink-950)); padding: var(--space-6); display: flex; flex-direction: column; position: relative; overflow: hidden; }
.pp-decade-card.has-nba { border-color: oklch(0.88 0.21 105 / .45); }
.pp-decade-year { font: 400 clamp(96px, 9vw, 150px) / .85 var(--font-display); letter-spacing: var(--tracking-display); color: transparent; -webkit-text-stroke: 1.5px var(--text-muted); }
.pp-decade-card.has-nba .pp-decade-year { -webkit-text-stroke-color: var(--volt-500); }
.pp-decade-meta { margin-top: var(--space-4); font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-muted); }
.pp-decade-meta b { color: var(--text-primary); font-size: 1.4em; }
.pp-decade-meta em { font-style: normal; color: var(--ink-950); background: var(--volt-500); padding: 2px 6px; }
.pp-decade-card ul { list-style: none; margin: var(--space-5) 0 0; padding: 0; }
.pp-decade-card li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-top: var(--rule); font: 600 15px/1.3 var(--font-body); }
.pp-decade-card li small { font: var(--text-caption); color: var(--text-muted); text-align: right; }
.pp-decade-card li.is-nba span { color: var(--volt-500); }
.pp-decade-card li.more { color: var(--text-muted); font-weight: 500; }
.pp-decade-cta { justify-content: flex-end; text-decoration: none; color: var(--text-primary); background: var(--volt-500); border-color: var(--volt-500); }
.pp-decade-cta span { font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--ink-950); }
.pp-decade-cta b { margin-top: 8px; font: var(--text-h2); text-transform: uppercase; color: var(--ink-950); }
.pp-decade-bar { margin: var(--space-6) auto 0; width: min(var(--container-max) - 2 * var(--container-pad), calc(100% - 2 * var(--container-pad))); height: 3px; background: var(--border-inverse, rgba(255,255,255,.12)); }
.pp-decade-bar i { display: block; height: 100%; width: 100%; background: var(--volt-500); transform-origin: left; transform: scaleX(0); }
@media (max-width: 860px), (prefers-reduced-motion: reduce) {
  .pp-decade { height: auto !important; }
  .pp-decade-pin { position: static; height: auto; padding: var(--section-pad-y) 0; }
  .pp-decade-track { transform: none !important; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 8px; }
  .pp-decade-track::-webkit-scrollbar { display: none; }
  .pp-decade-card { flex-basis: 78%; min-height: 0; scroll-snap-align: start; }
  .pp-decade-bar { display: none; }
}

/* ---- Page transitions (cross-document View Transitions; ignored by browsers without support) ---- */
@view-transition { navigation: auto; }
.pp-site header[data-pp-header] { view-transition-name: pp-header; }
::view-transition { background: var(--volt-500, #dce11f); }
::view-transition-group(pp-header) { animation: none; z-index: 3; }
::view-transition-old(pp-header), ::view-transition-new(pp-header) { animation: none; }
::view-transition-old(root) { animation: pp-vt-out 380ms cubic-bezier(.55, 0, .7, .2) both; transform-origin: 50% 30%; }
::view-transition-new(root) { animation: pp-vt-in 620ms cubic-bezier(.16, 1, .3, 1) 140ms both; }
@keyframes pp-vt-out { to { opacity: 0; transform: scale(.94) translateY(-2vh); } }
@keyframes pp-vt-in { from { clip-path: inset(100% 0 0 0); transform: translateY(6vh); } to { clip-path: inset(0 0 0 0); transform: none; } }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
}

/* ---- Game-day live mode ---- */
.pp-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #ff3b30; vertical-align: 1px; margin-right: 4px; animation: pp-dot 1.2s ease-in-out infinite; }
@keyframes pp-dot { 50% { opacity: .25; transform: scale(.7); } }
.pp-board { display: flex; align-items: stretch; gap: 8px; }
.pp-board > div { min-width: 96px; padding: 10px 12px; background: var(--ink-950); color: var(--paper); text-align: center; }
.pp-board b { display: block; font: 400 52px/1 var(--font-display); color: var(--volt-500); }
.pp-board span { display: block; margin-top: 4px; font: 700 11px/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; opacity: .7; }
.pp-board .pp-board-mid { min-width: 0; display: flex; align-items: center; font: 700 13px/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; background: transparent; color: var(--ink-950); }
.pp-bump { animation: pp-bump .9s cubic-bezier(.2, 1.4, .4, 1); }
@keyframes pp-bump { 0% { transform: scale(1.5); color: #fff; } 100% { transform: none; } }
.pp-livepill { position: fixed; left: 16px; bottom: 16px; z-index: 60; display: flex; align-items: center; gap: 12px; padding: 10px 12px 10px 14px; background: var(--ink-950); color: var(--paper); border: 1px solid oklch(0.88 0.21 105 / .5); box-shadow: 0 18px 50px rgba(0,0,0,.55); font: 700 13px/1 var(--font-body); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; transform: translateY(140%); opacity: 0; transition: transform .6s cubic-bezier(.16,1,.3,1), opacity .4s; }
.pp-livepill.on { transform: none; opacity: 1; }
.pp-livepill .sc { font: 400 22px/1 var(--font-display); letter-spacing: .02em; color: var(--volt-500); display: inline-block; }
.pp-livepill .per { color: var(--text-muted); font-weight: 600; }
.pp-livepill .go { padding: 8px 10px; background: var(--volt-500); color: var(--ink-950); }
.pp-livepill .x { margin-left: 2px; background: none; border: 0; color: var(--text-muted); font-size: 18px; cursor: pointer; padding: 0 2px; }
.pp-recap { background: var(--ink-900); border-top: var(--rule); border-bottom: var(--rule); }
.pp-recap-in { max-width: var(--container-max); margin: 0 auto; padding: var(--space-5) var(--container-pad); display: flex; align-items: center; gap: var(--space-6); flex-wrap: wrap; }
.pp-recap-tag { display: grid; place-items: center; width: 52px; height: 52px; font: 400 30px/1 var(--font-display); background: var(--ink-800); color: var(--paper); }
.pp-recap-tag.is-w { background: var(--volt-500); color: var(--ink-950); }
.pp-recap-main small { display: block; font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-muted); }
.pp-recap-main b { display: block; margin-top: 4px; font: 400 clamp(22px, 2.4vw, 32px)/1 var(--font-display); text-transform: uppercase; letter-spacing: var(--tracking-display); }
.pp-recap-top { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--space-6); flex: 1; flex-wrap: wrap; }
.pp-recap-top a { display: block; color: var(--paper); text-decoration: none; font-weight: 700; }
.pp-recap-top span { font: var(--text-caption); color: var(--volt-500); }
.pp-recap-link { font: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--paper); text-decoration: none; border-bottom: 2px solid var(--volt-500); }
@media (max-width: 600px) {
  .pp-board > div { min-width: 76px; } .pp-board b { font-size: 40px; }
  .pp-livepill { left: 12px; right: 12px; justify-content: space-between; }
  .pp-recap-in { gap: var(--space-4); } .pp-recap-top { gap: var(--space-4); flex-basis: 100%; }
}

/* ---- About manifesto ---- */
.pp-mani { position: relative; overflow: hidden; padding: var(--section-pad-y) 0; background: radial-gradient(60% 50% at 85% 10%, oklch(0.88 0.21 105 / .08), transparent 70%), var(--ink-950); }
.pp-mani-in { position: relative; max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad); }
.pp-mani-year { position: absolute; right: var(--container-pad); top: -0.12em; font: 400 clamp(140px, 22vw, 340px) / .8 var(--font-display); letter-spacing: -0.04em; color: transparent; -webkit-text-stroke: 1.5px oklch(0.88 0.21 105 / .22); pointer-events: none; user-select: none; }
.pp-mani-h { position: relative; margin: 0; font: 400 clamp(44px, 7.4vw, 120px) / .9 var(--font-display); letter-spacing: var(--tracking-display); text-transform: uppercase; }
.pp-mani-h span { display: block; }
.pp-mani-h .o { color: transparent; -webkit-text-stroke: 2px var(--paper); }
.pp-mani-lead { position: relative; margin: var(--space-6) 0 0; max-width: 820px; font: 500 clamp(22px, 2.3vw, 34px) / 1.25 var(--font-body); color: var(--text-secondary); text-wrap: balance; }
.pp-mani-lead b { color: var(--volt-500); font-weight: 700; }
.pp-mani-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: var(--space-8); background: var(--border-inverse, rgba(255,255,255,.12)); border: 1px solid var(--border-inverse, rgba(255,255,255,.12)); }
.pp-mani-card { position: relative; padding: clamp(28px, 3.4vw, 52px); background: var(--ink-950); overflow: hidden; transition: background var(--dur-base); }
.pp-mani-card::before { content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%; background: var(--volt-500); transform: scaleX(0); transform-origin: left; transition: transform .9s cubic-bezier(.16,1,.3,1) calc(var(--d) + 250ms); }
.pp-mani-card:hover { background: var(--ink-900); }
.pp-mani-num { position: absolute; right: clamp(20px, 2.4vw, 40px); top: clamp(14px, 1.6vw, 28px); font: 400 clamp(64px, 6vw, 104px) / 1 var(--font-display); color: transparent; -webkit-text-stroke: 1.5px var(--ink-700, #333); transition: -webkit-text-stroke-color var(--dur-base); }
.pp-mani-card:hover .pp-mani-num { -webkit-text-stroke-color: var(--volt-500); }
.pp-mani-label { font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-accent); }
.pp-mani-card h3 { position: relative; margin: var(--space-4) 0 0; max-width: 16ch; font: 400 clamp(28px, 2.6vw, 42px) / 1 var(--font-display); letter-spacing: var(--tracking-display); text-transform: uppercase; }
.pp-mani-card p { position: relative; margin: var(--space-5) 0 0; font: var(--text-body); color: var(--text-secondary); text-wrap: pretty; max-width: 58ch; }
.pp-mani-card mark { background: none; color: var(--paper); font-weight: 700; box-shadow: inset 0 -0.42em 0 oklch(0.88 0.21 105 / .28); }
/* reveal */
.pp-js .pp-mani-h span, .pp-js .pp-mani-lead, .pp-js .pp-mani-card { opacity: 0; transform: translate3d(0, 40px, 0); transition: opacity .8s ease, transform 1s cubic-bezier(.16,1,.3,1); }
.pp-js .pp-mani-h span:nth-child(2) { transition-delay: .12s; }
.pp-js .pp-mani-lead { transition-delay: .24s; }
.pp-js .pp-mani-card { transition-delay: var(--d); }
.pp-mani.is-in .pp-mani-h span, .pp-mani.is-in .pp-mani-lead, .pp-mani-grid.is-in .pp-mani-card { opacity: 1; transform: none; }
.pp-mani-grid.is-in .pp-mani-card::before { transform: scaleX(1); }
@media (max-width: 760px) {
  .pp-mani-grid { grid-template-columns: minmax(0, 1fr); }
  .pp-mani-h .o { -webkit-text-stroke-width: 1.5px; }
  .pp-mani-year { top: auto; bottom: 30%; right: -10px; opacity: .7; }
}
@media (prefers-reduced-motion: reduce) { .pp-js .pp-mani-h span, .pp-js .pp-mani-lead, .pp-js .pp-mani-card { opacity: 1; transform: none; } }

/* ---- headline that must clear a side photo ---- */
.pp-site h2.pp-h-fit { font-size: clamp(34px, 3.6vw, 58px) !important; padding-right: clamp(16px, 3vw, 48px); overflow-wrap: normal; }

/* ---- Toggle lists (academics features) ---- */
.pp-tgl-list > div { cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent; }
.pp-tgl-list > div:last-child { border-bottom: var(--rule); }
.pp-tgl-list > div > div > div:first-child { display: flex; align-items: center; min-height: 28px; }
.pp-tgl-list > div > div > div:last-child { display: grid; grid-template-rows: 0fr; opacity: 0; margin-top: 0 !important; transition: grid-template-rows .45s cubic-bezier(.16,1,.3,1), opacity .3s, margin-top .3s; }
.pp-tgl-list > div > div > div:last-child > span { overflow: hidden; }
.pp-tgl-list > div.is-open > div > div:last-child { grid-template-rows: 1fr; opacity: 1; margin-top: 10px !important; }
.pp-tgl-list > div > span[aria-hidden] { position: relative; width: 22px !important; height: 22px !important; margin-top: 4px !important; background: none !important; transform: none !important; transition: transform .45s cubic-bezier(.16,1,.3,1) !important; }
.pp-tgl-list > div > span[aria-hidden]::before, .pp-tgl-list > div > span[aria-hidden]::after { content: ""; position: absolute; left: 0; top: 50%; width: 100%; height: 3px; margin-top: -1.5px; background: var(--volt-500); }
.pp-tgl-list > div > span[aria-hidden]::after { transform: rotate(90deg); transition: transform .45s cubic-bezier(.16,1,.3,1); }
.pp-tgl-list > div.is-open > span[aria-hidden]::after { transform: rotate(0deg); }
.pp-tgl-list > div:hover > div > div:first-child, .pp-tgl-list > div.is-open > div > div:first-child { color: var(--volt-500) !important; }
.pp-tgl-list > div:focus-visible { outline: 2px solid var(--volt-500); outline-offset: 4px; }
@media (max-width: 760px) { .pp-mani-num { font-size: 48px; } .pp-mani-card h3 { padding-right: 52px; } }

/* ---- Facility amenities grid ---- */
.pp-amen { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5) var(--space-5); margin-top: var(--space-7); }
.pp-amen-i { position: relative; border-top: var(--rule); padding-top: 12px; }
.pp-amen-i::before { content: ""; position: absolute; left: 0; top: -1px; width: 24px; height: 3px; background: var(--volt-500); transform: scaleX(.4); transform-origin: left; transition: transform var(--dur-base) var(--ease-out); }
.pp-amen-i:hover::before { transform: scaleX(1); }
.pp-amen-i > div:last-child { font-size: 17px !important; }
@media (max-width: 1100px) { .pp-amen { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---- Footer reel ---- */
.pp-reel { position: relative; overflow: hidden; border-bottom: var(--rule); height: clamp(180px, 22vw, 320px); }
.pp-reel-track { display: flex; width: max-content; height: 100%; animation: pp-reel 90s linear infinite; will-change: transform; }
.pp-reel-set { display: flex; gap: 8px; padding-right: 8px; height: 100%; }
.pp-reel-set img { height: 100%; width: auto; aspect-ratio: 4 / 3; object-fit: cover; filter: grayscale(1) contrast(1.1); opacity: .55; }
@keyframes pp-reel { to { transform: translate3d(-50%, 0, 0); } }
.pp-reel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ink-950), transparent 14%, transparent 86%, var(--ink-950)), linear-gradient(0deg, oklch(0 0 0 / .45), oklch(0 0 0 / .15)); pointer-events: none; }
.pp-reel-ghost { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; font: 400 clamp(64px, 13vw, 220px) / .85 var(--font-display); letter-spacing: var(--tracking-display); text-transform: uppercase; white-space: nowrap; color: transparent; -webkit-text-stroke: 2px oklch(1 0 0 / .85); text-shadow: 0 0 60px oklch(0 0 0 / .4); pointer-events: none; }
@media (max-width: 600px) { .pp-reel-ghost { -webkit-text-stroke-width: 1.5px; } .pp-reel-track { animation-duration: 60s; } }
@media (prefers-reduced-motion: reduce) { .pp-reel-track { animation: none; } }
/* sponsorship headline: long word beside the cards */
.pp-site h2.pp-h-partners { font-size: clamp(38px, 4.2vw, 76px) !important; }
/* amenities values: bold sans reads better than mono */
.pp-amen-i > div:last-child { font: 700 17px/1.3 var(--font-body) !important; }

/* ---- Player page: sticky roster nav + next-up card ---- */
.pp-pnav { position: sticky; top: 88px; z-index: 40; display: flex; align-items: center; gap: 16px; margin-top: 88px; padding: 10px max(var(--container-pad), calc((100vw - var(--container-max)) / 2 + var(--container-pad))); background: oklch(0.13 0.005 100 / .94); border-bottom: var(--rule); }
.pp-pnav + section { margin-top: 0 !important; padding-top: 0 !important; }
.pp-pnav-back { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; background: var(--volt-500); color: var(--ink-950); font: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.pp-pnav-back span { font-size: 18px; transition: transform var(--dur-fast); }
.pp-pnav-back:hover span { transform: translateX(-4px); }
.pp-pnav-count { margin-left: auto; font: var(--text-mono); color: var(--text-muted); }
.pp-pnav-step { display: flex; gap: 8px; }
.pp-pnav-step a { display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid var(--border-strong); color: var(--paper); text-decoration: none; font: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; transition: border-color var(--dur-fast), background var(--dur-fast); }
.pp-pnav-step a:hover { border-color: var(--volt-500); background: oklch(0.88 0.21 105 / .08); }
.pp-pnav-step a span { font-size: 22px; line-height: 1; color: var(--volt-500); }
.pp-pnav-step em { font-style: normal; max-width: 22ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-pnext-wrap { display: flex; flex-direction: column; gap: var(--space-5); align-items: flex-start; }
.pp-pnext { display: grid; grid-template-columns: 160px minmax(0, 1fr) auto; align-items: center; gap: var(--space-6); width: 100%; border: var(--rule); background: var(--ink-900); color: var(--paper); text-decoration: none; overflow: hidden; transition: border-color var(--dur-base); }
.pp-pnext:hover { border-color: var(--volt-500); }
.pp-pnext-img { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--ink-800); }
.pp-pnext-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.pp-pnext:hover .pp-pnext-img img { transform: scale(1.06); }
.pp-pnext-txt small { display: block; font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-accent); }
.pp-pnext-txt b { display: block; margin-top: 8px; font: 400 clamp(32px, 4vw, 64px) / .95 var(--font-display); letter-spacing: var(--tracking-display); text-transform: uppercase; }
.pp-pnext-txt i { display: block; margin-top: 10px; font: var(--text-mono); font-style: normal; color: var(--text-muted); }
.pp-pnext-go { padding-right: var(--space-7); font: 400 64px/1 var(--font-display); color: var(--volt-500); transition: transform var(--dur-base) var(--ease-out); }
.pp-pnext:hover .pp-pnext-go { transform: translateX(10px); }
.pp-pnav-back.is-lg { padding: 18px 28px; }
@media (max-width: 760px) {
  .pp-pnav { top: 64px; gap: 8px; padding: 8px var(--container-pad); }
  .pp-pnav-back { padding: 10px 12px; font-size: 12px; }
  .pp-pnav-count { display: none; }
  .pp-pnav-step { margin-left: auto; }
  .pp-pnav-step em { display: none; }
  .pp-pnav-step a { padding: 8px 14px; }
  .pp-pnext { grid-template-columns: 96px minmax(0, 1fr) auto; gap: var(--space-4); }
  .pp-pnext-go { padding-right: var(--space-4); font-size: 40px; }
}

/* ---- Roster card without a photo yet ---- */
[data-pp-player][data-nophoto] a > div:first-child { background: radial-gradient(80% 60% at 50% 35%, oklch(0.88 0.21 105 / .10), transparent 70%), var(--ink-900) !important; }
[data-pp-player][data-nophoto] a > div:first-child img { object-fit: contain !important; padding: 26% 26% 40%; opacity: .14; filter: grayscale(1); }
[data-pp-player][data-nophoto] a > div:first-child::before { content: "Photo coming soon"; position: absolute; left: 0; right: 0; top: 46%; z-index: 1; text-align: center; font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-muted); }
/* National page: Regional teaser button */
.pp-reg-cta { display: inline-flex; align-items: center; gap: 16px; margin-top: var(--space-7); padding: 18px 28px; background: var(--volt-500); color: var(--ink-950); font: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; text-decoration: none; }
.pp-reg-cta span:last-child { font-size: 20px; transition: transform var(--dur-fast); }
.pp-reg-cta:hover span:last-child { transform: translateX(6px); }

/* ---- Staff photo grid ---- */
.pp-sg-wrap { margin-top: var(--space-8); display: grid; gap: var(--space-8); }
.pp-sg > div:first-child { margin-bottom: var(--space-5); }
.pp-sg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: var(--grid-gap); }
.pp-sc[role="button"] { cursor: pointer; }
.pp-sc-img { position: relative; aspect-ratio: var(--ratio-portrait); overflow: hidden; background: var(--ink-800); }
.pp-sc-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: var(--media-grade); transition: transform var(--dur-slow) var(--ease-out); }
.pp-sc[role="button"]:hover .pp-sc-img img:not(.pp-sc-logo) { transform: scale(1.05); }
.pp-sc.is-nophoto .pp-sc-img { background: radial-gradient(80% 60% at 50% 35%, oklch(0.88 0.21 105 / .10), transparent 70%), var(--ink-900); }
.pp-sc-img .pp-sc-logo { object-fit: contain; padding: 24% 24% 38%; opacity: .14; filter: grayscale(1); }
.pp-sc-soon { position: absolute; left: 0; right: 0; top: 60%; text-align: center; font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-muted); }
.pp-sc-tag { position: absolute; left: 10px; top: 10px; padding: 5px 8px; background: var(--volt-500); color: var(--ink-950); font: 800 10px/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; }
.pp-sc-more { position: absolute; right: 10px; bottom: 10px; width: 32px; height: 32px; display: grid; place-items: center; background: oklch(0 0 0 / .55); color: var(--volt-500); font-size: 16px; }
.pp-sc-name { margin-top: 12px; font: 400 22px/1 var(--font-display); letter-spacing: var(--tracking-display); text-transform: uppercase; }
.pp-sc-title { margin-top: 6px; font: var(--text-caption); color: var(--text-accent); }
@media (max-width: 600px) {
  .pp-sg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .pp-sc-name { font-size: 16px; } .pp-sc-title { font-size: 12px; }
  .pp-sc-tag { left: 6px; top: 6px; font-size: 9px; padding: 4px 6px; }
  .pp-sc-soon { font-size: 10px; }
  .pp-site .pp-staff-group.pp-sg:not(.is-open) > div:not(:first-child) { display: none; }
}
@media (max-width: 600px) { .pp-sg-wrap { gap: 0; } .pp-sg > div:first-child { margin-bottom: 0; } .pp-sg.is-open > div:first-child { margin-bottom: var(--space-5); } .pp-sg.is-open { margin-bottom: var(--space-6); } }

/* manifesto: keep pillar headlines clear of the ghost numbers */
.pp-mani-card h3 { max-width: none; padding-right: clamp(64px, 8vw, 132px); }
/* Apply: CTA instead of the cramped widget */
.pp-apply-cta { padding: var(--space-7); border: var(--rule); background: var(--ink-900); }
.pp-apply-cta small { display: block; font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-accent); }
.pp-apply-cta b { display: block; margin-top: 10px; font: 400 clamp(32px, 3.4vw, 52px) / .95 var(--font-display); letter-spacing: var(--tracking-display); text-transform: uppercase; }
.pp-apply-cta p { margin: 12px 0 0; color: var(--text-secondary); }
.pp-apply-btn { display: inline-flex; align-items: center; gap: 14px; margin-top: var(--space-6); padding: 22px 34px; background: var(--volt-500); color: var(--ink-950); font: var(--text-label); font-size: 16px; letter-spacing: var(--tracking-label); text-transform: uppercase; text-decoration: none; }
.pp-apply-btn:hover span:last-child { transform: translate(3px, -3px); }
.pp-apply-btn span:last-child { transition: transform var(--dur-fast); }
.pp-inline-link { color: var(--volt-500); text-decoration: underline; text-underline-offset: 3px; }
.pp-apply-page { padding: calc(88px + var(--space-7)) 0 var(--section-pad-y); }
.pp-apply-page-in { max-width: 1100px; margin: 0 auto; padding: 0 var(--container-pad); }
.pp-apply-page h1 { margin: var(--space-6) 0 var(--space-6); font: var(--text-h1); letter-spacing: var(--tracking-display); text-transform: uppercase; }
.pp-apply-widget { padding: var(--space-6); background: #fff; color: #111; min-height: 400px; }
.pp-apply-widget a { color: #111; }
.pp-apply-widget { padding: 0; }
.pp-apply-widget iframe { display: block; width: 100%; height: 760px; border: 0; background: #fff; }
.pp-apply-alt { margin-top: var(--space-5); color: var(--text-muted); }
.pp-apply-alt a { color: var(--volt-500); }
@media (max-width: 600px) { .pp-apply-widget iframe { height: 880px; } }
.pp-apply-widget iframe { height: 380px; }
@media (max-width: 600px) { .pp-apply-widget iframe { height: 620px; } }

/* ---- Footer reel: hover flash ---- */
.pp-reel { cursor: default; }
.pp-reel-ghost::after { content: "Be Prolific"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--volt-500); -webkit-text-stroke: 0; text-shadow: 0 0 18px oklch(0.88 0.21 105 / .9), 0 0 60px oklch(0.88 0.21 105 / .7), 0 0 140px oklch(0.88 0.21 105 / .5); opacity: 0; pointer-events: none; }
.pp-reel::before { content: ""; position: absolute; inset: 0; z-index: 1; background: radial-gradient(60% 80% at 50% 50%, oklch(0.95 0.2 105 / .55), transparent 70%); opacity: 0; pointer-events: none; }
.pp-reel-set img { transition: opacity .35s ease, filter .35s ease; }
@media (hover: hover) {
  .pp-reel:hover .pp-reel-ghost::after { animation: pp-flash 1.1s cubic-bezier(.2, .9, .3, 1) both; }
  .pp-reel:hover::before { animation: pp-flash-bg 1.1s ease-out both; }
  .pp-reel:hover .pp-reel-set img { opacity: .9; filter: grayscale(0) contrast(1.15) brightness(1.1); }
}
@keyframes pp-flash { 0% { opacity: 0; transform: scale(.98); } 12% { opacity: 1; transform: scale(1.03); } 22% { opacity: .35; } 34% { opacity: 1; } 100% { opacity: .92; transform: none; } }
@keyframes pp-flash-bg { 0% { opacity: 0; } 12% { opacity: 1; } 40% { opacity: .25; } 100% { opacity: .15; } }
@media (prefers-reduced-motion: reduce) { .pp-reel:hover .pp-reel-ghost::after { animation: none; opacity: .92; } .pp-reel:hover::before { animation: none; } }
.pp-roster-soon { grid-column: 1 / -1; padding: var(--space-8) var(--space-6); border: 1px dashed var(--border-strong); text-align: center; }
.pp-roster-soon b { display: block; font: var(--text-h2); text-transform: uppercase; letter-spacing: var(--tracking-display); }
.pp-roster-soon span { display: block; margin-top: 10px; color: var(--text-muted); }

/* ---- Decade carousel (replaces the scroll-pinned version) ---- */
.pp-decade { height: auto !important; }
.pp-decade-pin { position: static !important; height: auto !important; padding: var(--section-pad-y) 0 !important; }
.pp-decade-track { transform: none !important; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; cursor: grab; user-select: none; -webkit-user-select: none; padding-bottom: 8px; outline: none; }
.pp-decade-track::-webkit-scrollbar { display: none; }
.pp-decade-track.is-drag { cursor: grabbing; }
.pp-decade-track:focus-visible { box-shadow: inset 0 0 0 2px var(--volt-500); }
.pp-decade-card { scroll-snap-align: none !important; }
.pp-decade-card img { pointer-events: none; }
.pp-decade-ctrl { display: flex; align-items: center; gap: 10px; max-width: var(--container-max); margin: var(--space-6) auto 0; padding: 0 var(--container-pad); }
.pp-decade-ctrl .pp-decade-bar { display: block !important; flex: 1; margin: 0; width: auto; }
.pp-decade-ctrl button { width: 48px; height: 48px; border: 1px solid var(--border-strong); background: transparent; color: var(--paper); font-size: 26px; line-height: 1; cursor: pointer; transition: all var(--dur-fast); }
.pp-decade-ctrl button:hover { background: var(--volt-500); color: var(--ink-950); border-color: var(--volt-500); }
@media (max-width: 860px) { .pp-decade-card { flex-basis: 78%; } .pp-decade-ctrl button { width: 42px; height: 42px; } }
.pp-globe-more { display: inline-flex; align-items: center; gap: 14px; margin-top: var(--space-6); padding: 18px 28px; background: var(--volt-500); color: var(--ink-950); font: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; text-decoration: none; }
.pp-globe-more span:last-child { font-size: 20px; transition: transform var(--dur-fast); }
.pp-globe-more:hover span:last-child { transform: translateX(6px); }
.pp-team-cta [style*="text-mono-lg"] { font: 400 clamp(44px, 4.4vw, 72px) / 1 var(--font-display) !important; letter-spacing: var(--tracking-display); }
.pp-cta-split { margin: var(--space-4) 0 0; font: var(--text-mono); color: var(--text-muted); }
.pp-team-cta [style*="text-mono-lg"]::after { content: ""; }
.pp-globe-list:hover li:not(.is-on), .pp-globe-list.has-on li:not(.is-on) { opacity: .4; }
.pp-globe-list li { transition: opacity var(--dur-fast), background var(--dur-fast); }
.pp-globe-list li.is-on { background: oklch(0.88 0.21 105 / .12); opacity: 1; }
.pp-globe-list li.is-on b { color: var(--volt-500); }

/* ---- Alumni lists: name with school directly under it (desktop had them pushed to opposite edges) ---- */
.pp-site [data-pp-alum] { display: flex !important; flex-direction: column; justify-content: flex-start !important; align-items: flex-start !important; gap: 4px !important; padding: 14px 0 !important; min-width: 0; }
.pp-site [data-pp-alum] > span:first-child { font: 600 18px/1.25 var(--font-body) !important; }
.pp-site [data-pp-alum] > span:last-child { font: 500 14px/1.3 var(--font-body) !important; letter-spacing: .01em; color: var(--text-muted) !important; text-align: left !important; white-space: normal !important; }
.pp-site [data-pp-alum][data-nba="1"] > span:last-child { color: var(--volt-500) !important; }
.pp-site [data-pp-alum-year] > div:last-child { column-gap: var(--space-7) !important; }
@media (max-width: 600px) { .pp-site [data-pp-alum] > span:first-child { font-size: 16px !important; } .pp-site [data-pp-alum] > span:last-child { font-size: 13px !important; } }
.pp-team-links { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-7); }
.pp-team-links .pp-reg-cta { margin-top: 0; }
.pp-reg-cta.is-ghost { background: transparent; color: var(--paper); border: 1px solid var(--border-strong); }
.pp-reg-cta.is-ghost:hover { border-color: var(--volt-500); color: var(--volt-500); }

/* ---- Sponsor logos ---- */
.pp-sponsors { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: var(--grid-gap); margin-top: var(--space-5); }
.pp-sponsor { display: grid; place-items: center; aspect-ratio: 5 / 2; padding: 10% 14%; border: 1px solid var(--border-inverse); transition: background var(--dur-fast), border-color var(--dur-fast); }
.pp-sponsor img { max-width: 100%; max-height: 64px; width: auto; height: auto; filter: brightness(0); opacity: .82; transition: opacity var(--dur-fast); }
.pp-sponsor:hover { border-color: currentColor; } .pp-sponsor:hover img { opacity: 1; }
.pp-sponsor img[src$="adidas.svg"] { max-height: 76px; }
.pp-sponsor { aspect-ratio: auto; height: 120px; padding: 0 12%; }
.pp-sponsor img { max-height: 46px; }
.pp-sponsor img[src$="adidas.svg"] { max-height: 64px; }
@media (max-width: 600px) { .pp-sponsor { height: 96px; } }

/* ---- Exposure band ---- */
.pp-expo { position: relative; overflow: hidden; background: var(--volt-500); color: var(--ink-950); }
.pp-expo::after { content: ""; position: absolute; right: -8%; top: -40%; width: 46vw; aspect-ratio: 1; border: 60px solid oklch(0 0 0 / .06); border-radius: 50%; pointer-events: none; }
.pp-expo-in { position: relative; z-index: 1; max-width: var(--container-max); margin: 0 auto; padding: var(--section-pad-y) var(--container-pad); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.pp-expo-num { display: flex; align-items: flex-start; font: 400 clamp(120px, 17vw, 260px) / .8 var(--font-display); letter-spacing: -0.04em; }
.pp-expo-num span { font-size: .42em; line-height: 1; margin-left: .04em; }
.pp-expo-txt small { display: block; font: var(--text-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; opacity: .7; }
.pp-expo-txt h2 { margin: 10px 0 0; font: var(--text-h1); letter-spacing: var(--tracking-display); text-transform: uppercase; text-wrap: balance; }
.pp-expo-txt p { margin: var(--space-5) 0 0; max-width: 56ch; font: 600 18px/1.5 var(--font-body); }
.pp-expo-txt ul { list-style: none; margin: var(--space-5) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pp-expo-txt li { padding: 8px 12px; background: var(--ink-950); color: var(--volt-500); font: 700 12px/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; }
.pp-expo-txt li.plus { background: transparent; color: var(--ink-950); border: 2px solid var(--ink-950); }
.pp-expo-line { margin: var(--space-5) 0 0; max-width: var(--measure-lead); font: var(--text-body); color: var(--text-secondary); }
.pp-expo-line b { color: var(--volt-500); font: 400 1.6em/1 var(--font-display); margin-right: 4px; }
@media (max-width: 760px) { .pp-expo-in { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); } .pp-expo-num { font-size: 130px; } }

/* ---- Teams dropdown in the main nav ---- */
.pp-navdd { position: relative; display: inline-flex; align-items: center; }
.pp-navdd-caret { font-size: 10px; margin-left: 4px; display: inline-block; transition: transform var(--dur-fast); }
.pp-navdd-menu { position: absolute; left: 50%; top: 100%; min-width: 220px; padding: 8px; margin-top: 14px; background: var(--ink-950); border: 1px solid var(--border-strong); box-shadow: 0 24px 60px rgba(0,0,0,.5); display: flex; flex-direction: column; opacity: 0; visibility: hidden; transform: translate(-50%, -6px); transition: opacity var(--dur-fast), transform var(--dur-fast), visibility 0s linear var(--dur-fast); z-index: 80; }
.pp-navdd-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.pp-navdd:hover .pp-navdd-menu, .pp-navdd:focus-within .pp-navdd-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
.pp-navdd:hover .pp-navdd-caret, .pp-navdd:focus-within .pp-navdd-caret { transform: rotate(180deg); }
.pp-navdd-menu a { padding: 12px 14px; font: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-secondary); text-decoration: none; white-space: nowrap; border-left: 2px solid transparent; }
.pp-navdd-menu a:hover, .pp-navdd-menu a:focus { color: var(--paper); background: oklch(0.88 0.21 105 / .08); border-left-color: var(--volt-500); outline: none; }
.pp-drawer-sub { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 0 12px; }
.pp-drawer-sub a { padding: 8px 14px; border: 1px solid var(--border-strong); color: var(--text-secondary); font: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; text-decoration: none; }
.pp-drawer-sub a:hover { border-color: var(--volt-500); color: var(--volt-500); }

/* ---- Roster: "tap for profile" hint ---- */
.pp-roster-hint { display: inline-flex; align-items: center; gap: 10px; margin: var(--space-6) 0 0; padding: 10px 14px; border: 1px solid oklch(0.88 0.21 105 / .4); color: var(--text-secondary); font: 600 15px/1.3 var(--font-body); }
.pp-roster-hint span { color: var(--volt-500); font-size: 18px; }
[data-pp-player] a > div:first-child::after { content: "View profile ↗"; position: absolute; right: 10px; top: 10px; z-index: 2; padding: 6px 9px; background: var(--volt-500); color: var(--ink-950); font: 800 10px/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; opacity: 0; transform: translateY(-4px); transition: opacity var(--dur-fast), transform var(--dur-fast); }
[data-pp-player] a:hover > div:first-child::after, [data-pp-player] a:focus-visible > div:first-child::after { opacity: 1; transform: none; }
@media (hover: none) { [data-pp-player] a > div:first-child::after { content: "↗"; opacity: .95; transform: none; padding: 6px 7px; font-size: 12px; } }

/* ---- Roster card stat block (uniform on every card) ---- */
.pp-cs { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 2px solid var(--volt-500); }
.pp-cs-line { display: flex; align-items: center; gap: 10px; min-width: 0; }
.pp-cs-line .pos { flex: 0 0 auto; padding: 4px 8px; background: var(--volt-500); color: var(--ink-950); font: 800 12px/1 var(--font-body); letter-spacing: .1em; }
.pp-cs-line .from { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: var(--text-mono); letter-spacing: var(--tracking-mono); text-transform: uppercase; color: var(--text-secondary); }
.pp-cs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--space-3); border-top: var(--rule); }
.pp-cs-grid > div { padding: 10px 0 2px; text-align: left; }
.pp-cs-grid > div + div { padding-left: 12px; border-left: var(--rule); }
.pp-cs-grid b { display: block; font: 400 clamp(22px, 1.9vw, 30px) / 1 var(--font-display); letter-spacing: .01em; color: var(--paper); white-space: nowrap; }
.pp-cs-grid small { display: block; margin-top: 6px; font: 700 10px/1 var(--font-body); letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }
[data-pp-player] a:hover .pp-cs-grid b { color: var(--volt-500); }
@media (max-width: 600px) {
  .pp-cs-grid b { font-size: 17px; } .pp-cs-grid > div + div { padding-left: 8px; } .pp-cs-grid small { font-size: 9px; letter-spacing: .12em; }
  .pp-cs-line { gap: 6px; } .pp-cs-line .pos { font-size: 10px; padding: 3px 6px; } .pp-cs-line .from { font-size: 11px; }
}

/* ---- Teams dropdown: the nav clipped it (overflow hidden) ---- */
.pp-site header[data-pp-header] nav { overflow: visible !important; }
.pp-navdd.is-open .pp-navdd-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
.pp-navdd.is-open .pp-navdd-caret { transform: rotate(180deg); }

/* ---- Roster hint: more prominent ---- */
.pp-roster-hint { display: flex; width: fit-content; max-width: 100%; margin: var(--space-7) 0 var(--space-2); padding: 18px 26px 18px 20px; gap: 14px; background: oklch(0.88 0.21 105 / .1); border: 1px solid var(--volt-500); border-left: 5px solid var(--volt-500); color: var(--paper); font: 700 clamp(16px, 1.4vw, 19px)/1.35 var(--font-body); }
.pp-roster-hint span { display: grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px; background: var(--volt-500); color: var(--ink-950); font-size: 18px; animation: pp-hint-nudge 2.4s ease-in-out infinite; }
@keyframes pp-hint-nudge { 0%, 70%, 100% { transform: none; } 80% { transform: translate(3px, -3px); } 90% { transform: none; } }
@media (max-width: 600px) { .pp-roster-hint { padding: 14px 16px; font-size: 15px; } }
@media (prefers-reduced-motion: reduce) { .pp-roster-hint span { animation: none; } }

/* ---- Player name: never clipped (JS fits long names to the column) ---- */
.pp-fit { overflow-wrap: normal; word-break: keep-all; max-width: 100%; }

/* ---- Player page: previous + next cards ---- */
.pp-pnext-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); width: 100%; }
.pp-pnext-pair .pp-pnext { grid-template-columns: 120px minmax(0, 1fr) auto; }
.pp-pnext-pair .pp-pnext.is-prev { grid-template-columns: auto 120px minmax(0, 1fr); }
.pp-pnext.is-prev .pp-pnext-go { padding: 0 0 0 var(--space-6); }
.pp-pnext.is-prev:hover .pp-pnext-go { transform: translateX(-10px); }
.pp-pnext-pair .pp-pnext-txt b { font-size: clamp(26px, 2.6vw, 44px); }
@media (max-width: 760px) {
  .pp-pnext-pair { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .pp-pnext-pair .pp-pnext, .pp-pnext-pair .pp-pnext.is-prev { grid-template-columns: auto 80px minmax(0, 1fr); }
  .pp-pnext-pair .pp-pnext.is-next { grid-template-columns: 80px minmax(0, 1fr) auto; }
  .pp-pnext.is-prev .pp-pnext-go { padding-left: var(--space-4); }
}
.pp-fit[style*="--fit"] { font-size: var(--fit) !important; }
.pp-tv { color: var(--volt-500); text-decoration: none; border-bottom: 1px solid currentColor; white-space: nowrap; }
.pp-tv:hover { color: var(--paper); }

/* Header logo a little larger (Adam 2026-10-01) */
.pp-site header[data-pp-header] img[src*="prolific-logo.svg"] { height: 60px !important; width: auto !important; }
@media (max-width: 760px) { .pp-site header[data-pp-header] img[src*="prolific-logo.svg"] { height: 44px !important; } }
.pp-tiktok-embed { min-height: 520px; background: var(--ink-900); border: var(--rule); padding: 12px; }
.pp-tiktok-embed .tiktok-embed { background: #fff; }
@media (max-width: 860px) { .pp-tiktok-grid { grid-template-columns: minmax(0, 1fr) !important; } }
.pp-apply-cta, .pp-apply-cta b { color: var(--paper) !important; }
.pp-apply-cta p { color: var(--text-secondary) !important; }
.pp-roster-hint { margin-top: var(--space-8) !important; }
@media (max-width: 600px) { .pp-roster-hint { margin-top: var(--space-7) !important; } }
/* Adam 2026-10: footer "Be Prolific" clipped on phones — let it shrink/wrap within the viewport */
@media (max-width:600px){.pp-reel-ghost,.pp-reel-ghost::after{font-size:clamp(38px,14vw,80px);white-space:normal;text-align:center;line-height:.9;padding:0 16px;box-sizing:border-box}}
/* Alumni: text-only editorial (Adam 2026-10 v6, namespaced ppa-) */
.ppa-year{margin-top:var(--space-10,96px)}
.ppa-yrhead{display:flex;align-items:baseline;gap:16px;border-bottom:var(--rule-strong);padding-bottom:var(--space-4);margin-bottom:var(--space-5)}
.ppa-yrnum{font:var(--text-h2);letter-spacing:var(--tracking-display);text-transform:uppercase;color:var(--text-primary)}
.ppa-yrlbl{font:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted)}
/* THE PROS — full-width text blocks */
.ppa-pros{display:block}
.ppa-pro{display:block;padding:var(--space-7) 0;border-top:var(--rule);text-decoration:none}
a.ppa-pro:hover .ppa-pro-name{color:var(--volt-500)}
.ppa-pro-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:var(--space-5)}
.ppa-pro-name{font:var(--text-h3);letter-spacing:var(--tracking-display);text-transform:uppercase;color:var(--text-primary);transition:color var(--dur-fast)}
.ppa-pro-tag{padding:4px 10px;border:1px solid var(--border-strong);color:var(--text-secondary);font:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}
.ppa-pro-tag.is-nba{background:var(--volt-500);color:var(--ink-950);border-color:var(--volt-500)}
.ppa-pro-meta{display:grid;gap:var(--space-4);margin:0;max-width:var(--measure-lead,70ch)}
.ppa-pro-meta>div{display:grid;grid-template-columns:100px 1fr;gap:var(--space-5);align-items:baseline}
.ppa-pro-meta dt{font:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted)}
.ppa-pro-meta dd{margin:0;font:var(--text-body);color:var(--text-secondary);line-height:1.8}
.ppa-pro-meta dd small{color:var(--text-muted)}
.ppa-pro-path b{color:var(--text-primary);font-weight:600}
.ppa-pro-path b small{color:var(--volt-500)}
.ppa-pro-arr{color:var(--text-muted);padding:0 6px}
/* COLLEGE — spaced multi-column text list */
.ppa-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:0 var(--space-10,96px)}
.ppa-col{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-5);padding:var(--space-4) 0;border-top:var(--rule)}
.ppa-col-name{font:600 18px/1.35 var(--font-body);color:var(--text-primary)}
.ppa-col-school{font:var(--text-mono);color:var(--text-secondary);text-align:right;white-space:nowrap;flex:0 0 auto}
.ppa-col-school small{color:var(--text-muted)}
@media(max-width:640px){
 .ppa-pro-meta>div{grid-template-columns:1fr;gap:4px}
 .ppa-col-school{font-size:13px;white-space:normal}
}
