/* =========================================================
   CORSA WERKS — MAIN STYLESHEET
   ========================================================= */

/* ── Design Tokens ──────────────────────────────────────── */
:root {
  --bg:          #05050a;
  --bg-2:        #08080e;
  --bg-3:        #0d0d16;
  --bg-card:     #0a0a12;
  --text:        #e0e0e0;
  --text-2:      rgba(224,224,224,0.52);
  --text-3:      rgba(224,224,224,0.28);
  --cyan:        #e82030;
  --cyan-glow:   rgba(232,32,48,0.18);
  --cyan-dim:    rgba(232,32,48,0.08);
  --red:         #e82030;
  --red-dim:     rgba(232,32,48,0.12);
  --amber:       #c08818;
  --amber-dim:   rgba(192,136,24,0.12);
  --border:      rgba(255,255,255,0.07);
  --border-2:    rgba(255,255,255,0.14);
  --border-bright: rgba(255,255,255,0.32);
  --mono:        'Courier New', Courier, monospace;
  --header-h:    68px;
  --max-w:       1400px;
  --pad:         clamp(1.25rem, 5vw, 4rem);
  --dur-fast:    0.18s;
  --dur-med:     0.38s;
  --dur-slow:    0.65s;
  --ease:        cubic-bezier(0.25,0.1,0.25,1);
  --ease-out:    cubic-bezier(0,0,0.2,1);
  --ease-sharp:  cubic-bezier(0.4,0,0.2,1);
}

/* ── Font Face ──────────────────────────────────────────── */
@font-face { font-family:'Chakra Petch'; src:url('../fonts/ChakraPetch-Light.ttf') format('truetype'); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'Chakra Petch'; src:url('../fonts/ChakraPetch-Regular.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Chakra Petch'; src:url('../fonts/ChakraPetch-Italic.ttf') format('truetype'); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:'Chakra Petch'; src:url('../fonts/ChakraPetch-Medium.ttf') format('truetype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Chakra Petch'; src:url('../fonts/ChakraPetch-SemiBold.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Chakra Petch'; src:url('../fonts/ChakraPetch-Bold.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Chakra Petch'; src:url('../fonts/ChakraPetch-BoldItalic.ttf') format('truetype'); font-weight:700; font-style:italic; font-display:swap; }

/* ── Reset ──────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body {
  font-family:'Chakra Petch', system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height:1.6;
  overflow-x:hidden;
}
body::after {
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9998;
  box-shadow:inset 0 0 140px rgba(0,200,224,0.22);
}
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { border:none; background:none; cursor:pointer; font-family:inherit; color:inherit; }
input, textarea { font-family:inherit; }
ul, ol { list-style:none; }

/* ── Typography ─────────────────────────────────────────── */
.t-display {
  font-size: clamp(3.5rem, 10vw, 9rem);
  font-weight:700;
  line-height:0.9;
  letter-spacing:-0.02em;
  text-transform:uppercase;
}
.t-title {
  font-size: clamp(2rem, 5vw, 4.5rem);
  font-weight:700;
  line-height:1;
  letter-spacing:-0.01em;
  text-transform:uppercase;
}
.t-heading {
  font-size: clamp(1.25rem, 2.5vw, 2rem);
  font-weight:600;
  letter-spacing:0.02em;
  text-transform:uppercase;
}
.t-label {
  font-size: 0.7rem;
  font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color: var(--text-2);
}
.t-body {
  font-size: clamp(0.9rem, 1.2vw, 1rem);
  font-weight:400;
  line-height:1.75;
  color: var(--text-2);
}
.t-mono {
  font-size:0.75rem;
  font-weight:400;
  letter-spacing:0.1em;
  color: var(--text-3);
}

/* ── Layout ─────────────────────────────────────────────── */
.container {
  width:100%;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad);
}
.section {
  padding: clamp(4rem, 10vw, 8rem) 0;
}
.section--tight {
  padding: clamp(2.5rem, 6vw, 4.5rem) 0;
}

/* ── Header ─────────────────────────────────────────────── */
.site-header {
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  height: var(--header-h);
}
.site-header::before {
  content:'';
  position:absolute; inset:0;
  background: linear-gradient(to bottom, rgba(5,5,10,0.92) 0%, rgba(5,5,10,0.7) 100%);
  backdrop-filter: blur(12px) saturate(0.8);
  -webkit-backdrop-filter: blur(12px) saturate(0.8);
  border-bottom: 1px solid var(--border);
  pointer-events:none;
}
.header-inner {
  position:relative;
  height: var(--header-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad);
}
.logo-link {
  display:flex;
  align-items:center;
  flex-shrink:0;
}
.logo-link img {
  height:34px;
  width:auto;
}
.main-nav {
  display:flex;
  align-items:center;
  gap:0;
}
.nav-item {
  position:relative;
}
.nav-link {
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  padding: 0.5rem 1.1rem;
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color: var(--text-2);
  cursor:pointer;
  transition: color var(--dur-fast) var(--ease);
  white-space:nowrap;
}
.nav-link:hover,
.nav-link.active {
  color: var(--text);
}
.nav-link .caret {
  display:inline-block;
  width:0; height:0;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:4px solid currentColor;
  transition: transform var(--dur-fast) var(--ease);
}
.nav-item.open .nav-link .caret {
  transform: rotate(180deg);
}

/* Dropdown */
.dropdown-menu {
  position:absolute;
  top:calc(100% + 4px);
  right:0;
  min-width:180px;
  background: rgba(8,8,14,0.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--border-2);
  padding: 0.5rem 0;
  clip-path: inset(0 0 100% 0);
  transition: clip-path var(--dur-med) var(--ease-out);
  pointer-events:none;
}
.nav-item.open .dropdown-menu,
.nav-item:focus-within .dropdown-menu {
  clip-path: inset(0 0 0% 0);
  pointer-events:auto;
}
.dropdown-menu a {
  display:block;
  padding: 0.6rem 1.25rem;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color: var(--text-2);
  transition: color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.dropdown-menu a:hover {
  color: var(--cyan);
  background: var(--cyan-dim);
}
.dropdown-menu .divider {
  height:1px;
  background: var(--border);
  margin: 0.4rem 1.25rem;
}

/* Mobile toggle */
.mobile-menu-toggle {
  display:none;
  flex-direction:column;
  gap:5px;
  padding:8px;
  z-index:10;
}
.mobile-menu-toggle span {
  display:block;
  width:22px;
  height:1.5px;
  background: var(--text);
  transition: transform var(--dur-med) var(--ease-sharp), opacity var(--dur-fast);
}
.mobile-menu-toggle.active span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.mobile-menu-toggle.active span:nth-child(2) { opacity:0; transform:scaleX(0); }
.mobile-menu-toggle.active span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* Mobile menu */
.mobile-menu {
  position:fixed;
  inset:0;
  z-index:99;
  background: rgba(5,5,10,0.97);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  transform:translateX(100%);
  transition: transform var(--dur-slow) var(--ease-sharp);
  pointer-events:none;
}
.mobile-menu.open {
  transform:translateX(0);
  pointer-events:auto;
}
.mobile-menu a,
.mobile-menu .m-nav-link {
  font-size:clamp(1.8rem, 8vw, 3rem);
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color: var(--text-2);
  transition: color var(--dur-fast) var(--ease);
  cursor:pointer;
}
.mobile-menu a:hover,
.mobile-menu .m-nav-link:hover { color:var(--text); }
.mobile-menu-sub {
  display:none;
  flex-direction:column;
  align-items:center;
  gap:0.25rem;
  padding-top:0.5rem;
}
.mobile-menu-sub.open { display:flex; }
.mobile-menu-sub a {
  font-size:1rem;
  color: var(--text-3);
}
.mobile-menu-sub a:hover { color: var(--cyan); }

/* ── Footer ─────────────────────────────────────────────── */
.site-footer {
  border-top:1px solid var(--border);
  padding: 3rem 0;
}
.footer-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  flex-wrap:wrap;
}
.footer-logo img {
  height:28px;
  width:auto;
  opacity:0.5;
}
.footer-links {
  display:flex;
  gap:2rem;
}
.footer-links a {
  font-size:0.7rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color: var(--text-3);
  transition: color var(--dur-fast);
}
.footer-links a:hover { color: var(--text-2); }
.footer-copy {
  font-size:0.68rem;
  color: var(--text-3);
  letter-spacing:0.08em;
}
.footer-social {
  display:flex;
  align-items:center;
  gap:1rem;
}
.footer-social a {
  display:flex;
  align-items:center;
  justify-content:center;
  color: var(--text-3);
  transition: color var(--dur-fast);
}
.footer-social a:hover { color: var(--text-2); }
.footer-social svg { width:16px; height:16px; }
.footer-email {
  font-size:0.68rem;
  color: var(--text-3);
  letter-spacing:0.08em;
  transition: color var(--dur-fast);
}
.footer-email:hover { color: var(--text-2); }

/* ── Nav Social Icons ───────────────────────────────────── */
.nav-social {
  display:flex;
  align-items:center;
  gap:0.5rem;
  margin-left:0.75rem;
}
.nav-social-link {
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  color: var(--text-3);
  transition: color var(--dur-fast);
}
.nav-social-link:hover { color: var(--text); }
.nav-social-link svg { width:16px; height:16px; }

/* ── Mobile Menu Social ─────────────────────────────────── */
.mobile-menu-social {
  display:flex;
  gap:1.25rem;
  padding:1.5rem 2rem 0.5rem;
  border-top:1px solid var(--border);
  margin-top:0.5rem;
}
.mobile-menu-social a {
  display:flex;
  align-items:center;
  gap:0.5rem;
  font-size:0.7rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color: var(--text-3);
}
.mobile-menu-social a:hover { color: var(--text); }

/* ── Keyframe Animations ────────────────────────────────── */
@keyframes catalog-line-glitch {
  /* Fast phase 0-20%: rapid flicker */
  0%   { transform:scaleX(0);    opacity:0; }
  2%   { opacity:1; }
  4%   { opacity:0; }
  6%   { opacity:1; }
  8%   { opacity:0; }
  10%  { transform:scaleX(0.14); opacity:1; }
  12%  { opacity:0; }
  14%  { opacity:1; }
  16%  { opacity:0; }
  18%  { opacity:1; }
  /* Medium phase 20-60%: slowing down */
  20%  { transform:scaleX(0.28); opacity:0; }
  28%  { transform:scaleX(0.42); opacity:1; }
  35%  { opacity:0; }
  43%  { transform:scaleX(0.58); opacity:1; }
  52%  { opacity:0; }
  60%  { transform:scaleX(0.74); opacity:1; }
  /* Slow phase 60-85%: one last pulse */
  72%  { opacity:0; }
  82%  { transform:scaleX(0.90); opacity:1; }
  /* Settle 85-100%: lock solid */
  90%  { transform:scaleX(1);    opacity:0; }
  100% { transform:scaleX(1);    opacity:1; }
}
@keyframes catalog-corner-glitch {
  /* Fast phase 0-10%: compressed rapid flicker */
  0%   { opacity:0; }
  1%   { opacity:1; }
  2%   { opacity:0; }
  3%   { opacity:1; }
  4%   { opacity:0; }
  5%   { opacity:1; }
  7%   { opacity:0; }
  9%   { opacity:1; }
  /* Medium phase 10-55%: slowing down */
  18%  { opacity:0; }
  28%  { opacity:1; }
  40%  { opacity:0; }
  52%  { opacity:1; }
  /* Slow phase 55-80%: one last pulse */
  65%  { opacity:0; }
  78%  { opacity:1; }
  /* Settle */
  88%  { opacity:0; }
  100% { opacity:1; }
}
@keyframes hero-drift {
  0%   { transform: scale(1.06) translate(0, 0); }
  50%  { transform: scale(1.06) translate(-0.8%, 0.5%); }
  100% { transform: scale(1.06) translate(0, 0); }
}
@keyframes fade-up {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes scanline-reveal {
  from { clip-path: inset(0 0 100% 0); }
  to   { clip-path: inset(0 0 0% 0); }
}
@keyframes hud-blink {
  0%,100% { opacity:1; }
  50%      { opacity:0.3; }
}
@keyframes hud-blink-red {
  0%,100% { opacity:1; box-shadow:0 0 5px 1px rgba(232,32,48,0.7); }
  50%      { opacity:0.3; box-shadow:none; }
}
@keyframes hud-blink-amber {
  0%,100% { opacity:1; box-shadow:0 0 5px 1px rgba(192,136,24,0.7); }
  50%      { opacity:0.35; box-shadow:none; }
}
@keyframes line-draw {
  from { transform:scaleX(0); opacity:0; }
  to   { transform:scaleX(1); opacity:1; }
}
@keyframes line-glow-pulse {
  0%,100% { box-shadow:0 0 4px rgba(232,32,48,0.45), 0 0 10px rgba(232,32,48,0.15); }
  50%      { box-shadow:0 0 8px rgba(232,32,48,0.7),  0 0 18px rgba(232,32,48,0.25); }
}
@keyframes ticker {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}
@keyframes pulse-ring {
  0%   { transform:scale(0.8); opacity:0.6; }
  100% { transform:scale(2.4); opacity:0; }
}
/* ── Scroll Reveal ──────────────────────────────────────── */
.reveal {
  opacity:0;
  transform:translateY(30px);
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}
.reveal.visible {
  opacity:1;
  transform:translateY(0);
}
.reveal--left {
  transform:translateX(-30px);
}
.reveal--left.visible {
  transform:translateX(0);
}
.reveal--right {
  transform:translateX(30px);
}
.reveal--right.visible {
  transform:translateX(0);
}
.reveal--delay-1 { transition-delay:0.1s; }
.reveal--delay-2 { transition-delay:0.2s; }
.reveal--delay-3 { transition-delay:0.35s; }
.reveal--delay-4 { transition-delay:0.5s; }
.reveal--delay-5 { transition-delay:0.65s; }

/* ── Scanline Image ─────────────────────────────────────── */
.img-scanline {
  overflow:hidden;
  position:relative;
}
.img-scanline img {
  clip-path: inset(0 0 100% 0);
  transition: none;
}
.img-scanline.visible img {
  animation: scanline-reveal 0.9s var(--ease-out) forwards;
}

/* ── Status Badge ───────────────────────────────────────── */
.badge {
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  padding:0.3rem 0.75rem;
  font-size:0.62rem;
  font-weight:700;
  letter-spacing:0.2em;
  text-transform:uppercase;
  border:1px solid currentColor;
}
.badge--live {
  color: var(--red);
  border-color: rgba(232,32,48,0.35);
  background: var(--red-dim);
}
.badge--live::before {
  content:'';
  width:5px; height:5px;
  border-radius:50%;
  background: var(--red);
  animation: hud-blink-red 2s ease-in-out infinite;
}
.badge--production {
  color: var(--amber);
  border-color: rgba(192,136,24,0.35);
  background: var(--amber-dim);
}
.badge--production::before {
  content:'';
  width:5px; height:5px;
  border-radius:50%;
  background: var(--amber);
  animation: hud-blink-amber 1.5s ease-in-out infinite;
}

/* ── HUD Elements ───────────────────────────────────────── */
.hud-corner {
  position:relative;
}
.hud-corner::before,
.hud-corner::after {
  content:'';
  position:absolute;
  width:16px; height:16px;
  opacity:0;
  transition: opacity var(--dur-med) var(--ease);
}
.hud-corner::before {
  top:0; left:0;
  border-top:1px solid var(--cyan);
  border-left:1px solid var(--cyan);
}
.hud-corner::after {
  bottom:0; right:0;
  border-bottom:1px solid var(--cyan);
  border-right:1px solid var(--cyan);
}
.hud-corner:hover::before,
.hud-corner:hover::after { opacity:1; }

/* ── Buttons ────────────────────────────────────────────── */
.btn {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  padding:0.75rem 2rem;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.18em;
  text-transform:uppercase;
  overflow:hidden;
  transition: color var(--dur-fast) var(--ease);
  cursor:pointer;
}
.btn::before {
  content:'';
  position:absolute;
  inset:0;
  transform:scaleX(0);
  transform-origin:left;
  transition: transform var(--dur-med) var(--ease-sharp);
}
.btn:hover::before { transform:scaleX(1); }
.btn--primary {
  color: var(--cyan);
  background: var(--cyan-dim);
  border:1px solid var(--cyan);
}
.btn--primary::before { background: rgba(232,32,48,0.4); }
.btn--primary:hover { color: var(--text); }
.btn--outline {
  color: var(--text);
  border:1px solid var(--border-2);
}
.btn--outline::before { background: rgba(255,255,255,0.06); }
.btn--ghost {
  color: var(--cyan);
  background: transparent;
  border:1px solid var(--cyan);
}
.btn--ghost::before { background: rgba(232,32,48,0.4); }
.btn--ghost:hover { color: var(--text); }
.btn span {
  position:relative;
  z-index:1;
}
.btn .btn-arrow {
  display:inline-block;
  transition: transform var(--dur-fast) var(--ease);
}
.btn:hover .btn-arrow { transform:translateX(4px); }

/* Click ripple */
.btn .ripple {
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,0.18);
  transform:scale(0);
  animation: ripple-anim 0.55s linear;
  pointer-events:none;
}
@keyframes ripple-anim {
  to { transform:scale(4); opacity:0; }
}

/* ── Hero Section ───────────────────────────────────────── */
.hero {
  position:relative;
  height:100vh;
  min-height:600px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.hero__bg {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  animation: hero-drift 28s ease-in-out infinite;
}
.hero__video-bg {
  position:absolute;
  inset:0;
  overflow:hidden;
  opacity:0;
  transition:opacity 1.8s cubic-bezier(0,0,0.2,1);
}
.hero__video-bg.is-playing {
  opacity:1;
}
.hero__video-bg iframe {
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%) scale(1.4);
  width:100vw;
  height:56.25vw;   /* 16:9 */
  min-height:100svh;
  min-width:177.78svh;
  pointer-events:none;
  border:0;
}

/* ── YouTube video load indicator ───────────────────────── */
.yt-loader {
  position:absolute;
  bottom:clamp(1.5rem,3vw,2.5rem);
  right:clamp(1.5rem,3vw,2.5rem);
  width:28px;
  height:28px;
  z-index:12;
  pointer-events:none;
  opacity:1;
  transition:opacity 0.8s ease;
  animation:yt-loader-breathe 2.2s ease-in-out infinite;
}
.yt-loader.is-hidden {
  opacity:0;
  animation:none;
}
.yt-loader::before {
  content:'';
  position:absolute;
  inset:0;
  border-radius:50%;
  border:1.5px solid rgba(255,255,255,0.1);
}
.yt-loader::after {
  content:'';
  position:absolute;
  inset:0;
  border-radius:50%;
  border:1.5px solid transparent;
  border-top-color:rgba(255,255,255,0.75);
  border-right-color:rgba(255,255,255,0.2);
  animation:yt-spin 1.1s linear infinite;
}
@keyframes yt-spin {
  to { transform:rotate(360deg); }
}
@keyframes yt-loader-breathe {
  0%,100% { opacity:0.65; }
  50%      { opacity:1; }
}
.hero__overlay {
  position:absolute;
  inset:0;
  pointer-events: all;
  background: linear-gradient(
    to bottom,
    rgba(5,5,10,0.15) 0%,
    rgba(5,5,10,0.1)  40%,
    rgba(5,5,10,0.55) 70%,
    rgba(5,5,10,0.92) 100%
  );
}
.hero__content {
  position:relative;
  z-index:2;
  width:100%;
  padding: var(--pad);
  padding-bottom: clamp(3rem, 8vw, 6rem);
}
.hero__eyebrow {
  display:flex;
  align-items:center;
  gap:1rem;
  margin-bottom:1.25rem;
}
.hero__eyebrow::before {
  content:'';
  display:block;
  width:36px;
  height:1px;
  background: var(--cyan);
  transform-origin:left;
  animation: line-draw 1s 0.5s var(--ease-out) both,
             line-glow-pulse 4.5s 1.5s ease-in-out infinite;
}
.hero__tagline {
  font-size:clamp(0.65rem, 1vw, 0.75rem);
  font-weight:600;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color: var(--cyan);
  text-shadow:0 0 16px rgba(232,32,48,0.4);
}
.hero__title {
  font-size: clamp(4rem, 12vw, 10rem);
  font-weight:700;
  line-height:0.88;
  letter-spacing:-0.03em;
  text-transform:uppercase;
  color: var(--text);
  max-width:14ch;
}
.hero__sub {
  margin-top:1.5rem;
  font-size:clamp(0.85rem, 1.5vw, 1rem);
  line-height:1.65;
  color: var(--text-2);
  max-width:44ch;
}
.hero__actions {
  margin-top:2rem;
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
}
.hero__coords {
  position:absolute;
  bottom: clamp(3rem, 8vw, 6rem);
  right: var(--pad);
  z-index:2;
  text-align:right;
}
.hero__scroll-hint {
  position:absolute;
  bottom:2rem;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.5rem;
}
.hero__scroll-hint span {
  width:1px;
  height:40px;
  background: linear-gradient(to bottom, var(--text-3), transparent);
  animation: fade-up 2s ease-in-out infinite;
}

/* ── Series Stats Strip ─────────────────────────────────── */
.series-stats {
  padding: clamp(2.5rem, 5vw, 4rem) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.series-stats__eyebrow {
  font-family: var(--mono);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  text-align: center;
  margin-bottom: 2.5rem;
}
.series-stats__grid {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
}
.series-stat {
  flex: 1;
  min-width: 140px;
  text-align: center;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 2vw, 2rem);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.series-stat__value {
  font-family: 'Chakra Petch', sans-serif;
  font-size: clamp(2.25rem, 4.5vw, 3.25rem);
  font-weight: 700;
  line-height: 1;
  color: var(--cyan);
  letter-spacing: -0.02em;
  margin-bottom: 0.6rem;
}
.series-stat__value sup {
  font-size: 0.38em;
  font-weight: 400;
  color: var(--text-3);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  vertical-align: super;
  margin-left: 0.1em;
}
.series-stat__label {
  font-family: var(--mono);
  font-size: 0.58rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-3);
  line-height: 1.5;
}

/* ── Catalog Strip ──────────────────────────────────────── */
.catalog-strip {
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  border-top:1px solid var(--border);
}
.catalog-item {
  position:relative;
  overflow:hidden;
  aspect-ratio:4/5;
  cursor:pointer;
  text-decoration:none;
}
.catalog-item + .catalog-item {
  border-left:1px solid var(--border);
}
.catalog-item__bg {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transition: transform 0.9s var(--ease);
}
.catalog-item:hover .catalog-item__bg {
  transform: scale(1.04);
}
.catalog-item__overlay {
  position:absolute;
  inset:0;
  background: linear-gradient(to top, rgba(5,5,10,0.9) 0%, transparent 55%);
  transition: background 0.4s var(--ease);
}
.catalog-item:hover .catalog-item__overlay {
  background: linear-gradient(to top, rgba(5,5,10,0.97) 0%, rgba(5,5,10,0.25) 60%, transparent 100%);
}

/* Top accent line — glitches in from left */
.catalog-item::before {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:var(--cyan);
  transform:scaleX(0);
  transform-origin:left center;
  opacity:0;
  z-index:4;
}
.catalog-item:hover::before {
  transform: scaleX(1);
  opacity: 1;
  transition: transform 0.5s var(--ease), opacity 0.15s ease;
}

/* Corner brackets — glitch in */
.catalog-item__hud {
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:3;
}
.catalog-item__hud::before,
.catalog-item__hud::after {
  content:'';
  position:absolute;
  width:28px; height:28px;
  opacity:0;
}
.catalog-item__hud::before {
  top:14px; left:14px;
  border-top:1.5px solid var(--cyan);
  border-left:1.5px solid var(--cyan);
  transform:translate(-6px, -6px);
  transition: transform 0.35s var(--ease);
}
.catalog-item__hud::after {
  bottom:14px; right:14px;
  border-bottom:1.5px solid var(--cyan);
  border-right:1.5px solid var(--cyan);
  transform:translate(6px, 6px);
  transition: transform 0.35s var(--ease);
}
.catalog-item:hover .catalog-item__hud::before {
  transform:translate(0,0);
  animation: catalog-corner-glitch 0.35s ease forwards;
}
.catalog-item:hover .catalog-item__hud::after {
  transform:translate(0,0);
  animation: catalog-corner-glitch 0.35s ease 0.04s forwards;
}

.catalog-item__content {
  position:absolute;
  bottom:0; left:0; right:0;
  padding:1.25rem 1.5rem;
}
.catalog-item__title {
  font-size:clamp(1.25rem, 3vw, 1.75rem);
  font-weight:700;
  letter-spacing:-0.01em;
  text-transform:uppercase;
  line-height:1;
  margin-bottom:0.5rem;
  color:var(--text);
}
.catalog-item__meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

/* View Film CTA */
.catalog-item__view {
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--cyan);
  margin-top:0.65rem;
  opacity:0;
  transform:translateY(6px);
  transition: opacity 0.3s var(--ease), transform 0.3s var(--ease);
}
.catalog-item:hover .catalog-item__view {
  opacity:1;
  transform:translateY(0);
}

/* ── Two Worlds Split ───────────────────────────────────── */
.two-worlds {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:70vh;
}
.world-card {
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:clamp(2rem, 5vw, 4rem);
  cursor:pointer;
}
.world-card + .world-card {
  border-left:1px solid var(--border);
}
.world-card__bg {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transition: transform 0.9s var(--ease);
}
.world-card:hover .world-card__bg { transform:scale(1.04); }
.world-card__overlay {
  position:absolute;
  inset:0;
  background: linear-gradient(to top, rgba(5,5,10,0.95) 0%, rgba(5,5,10,0.55) 60%, rgba(5,5,10,0.3) 100%);
  transition: background var(--dur-slow) var(--ease);
}
.world-card:hover .world-card__overlay {
  background: linear-gradient(to top, rgba(5,5,10,0.97) 0%, rgba(5,5,10,0.6) 70%, rgba(5,5,10,0.35) 100%);
}
.world-card__content {
  position:relative;
  z-index:2;
}
.world-card__label {
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color: var(--cyan);
  margin-bottom:0.75rem;
}
.world-card__title {
  font-size:clamp(2rem, 5vw, 3.5rem);
  font-weight:700;
  line-height:1;
  letter-spacing:-0.01em;
  text-transform:uppercase;
  margin-bottom:1rem;
}
.world-card__desc {
  font-size:0.85rem;
  line-height:1.7;
  color: var(--text-2);
  max-width:36ch;
  margin-bottom:1.5rem;
}
.world-card__cta {
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color: var(--text-2);
  display:flex;
  align-items:center;
  gap:0.5rem;
  transition: color var(--dur-fast), gap var(--dur-fast);
}
.world-card:hover .world-card__cta {
  color: var(--text);
  gap:0.75rem;
}

/* ── Film Catalog Grid ──────────────────────────────────── */
.film-grid {
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap:1px;
  background: var(--border);
  border:1px solid var(--border);
}
.film-card {
  position:relative;
  background: var(--bg-card);
  overflow:hidden;
  cursor:pointer;
  display:flex;
  flex-direction:column;
}
.film-card__image {
  position:relative;
  aspect-ratio:16/9;
  overflow:hidden;
}
.film-card__image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition: transform 0.9s var(--ease);
}
.film-card:hover .film-card__image img { transform:scale(1.04); }
.film-card__body {
  padding:1.5rem;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  border-top:1px solid var(--border);
}
.film-card__title {
  font-size:1.5rem;
  font-weight:700;
  letter-spacing:-0.01em;
  text-transform:uppercase;
  line-height:1;
}
.film-card__desc {
  font-size:0.82rem;
  line-height:1.7;
  color: var(--text-2);
  flex:1;
}
.film-card__footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:0.75rem;
  border-top:1px solid var(--border);
  margin-top:auto;
}
.film-card__year {
  font-size:0.68rem;
  font-weight:600;
  letter-spacing:0.12em;
  color: var(--text-3);
}
.film-card__link {
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color: var(--cyan);
  display:flex;
  align-items:center;
  gap:0.3rem;
  transition: gap var(--dur-fast);
}
.film-card:hover .film-card__link { gap:0.5rem; }

/* ── Project Hero (film pages) ──────────────────────────── */
.project-hero {
  position:relative;
  height:90vh;
  min-height:550px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.project-hero__bg {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  will-change: transform;
  animation: hero-drift 32s ease-in-out infinite;
}
.project-hero__overlay {
  position:absolute;
  inset:0;
  background: linear-gradient(
    to bottom,
    rgba(5,5,10,0.25) 0%,
    rgba(5,5,10,0.1)  35%,
    rgba(5,5,10,0.65) 65%,
    rgba(5,5,10,0.97) 100%
  );
}
.project-hero__content {
  position:relative;
  z-index:2;
  padding: var(--pad);
  padding-bottom: clamp(3rem, 6vw, 5rem);
  width:100%;
}
.project-hero__number {
  font-size:clamp(6rem, 20vw, 18rem);
  font-weight:700;
  line-height:0.85;
  letter-spacing:-0.04em;
  color:rgba(255,255,255,0.06);
  position:absolute;
  bottom: clamp(3rem, 6vw, 5rem);
  right: var(--pad);
  pointer-events:none;
  user-select:none;
}

/* ── Metadata Grid ──────────────────────────────────────── */
.meta-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:0;
  border:1px solid var(--border);
}
.meta-item {
  padding:1.25rem 1.5rem;
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.meta-item:last-child { border-right:none; }
.meta-item__label {
  font-size:0.6rem;
  font-weight:700;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color: var(--text-3);
  margin-bottom:0.4rem;
}
.meta-item__value {
  font-size:0.88rem;
  font-weight:600;
  color: var(--text);
}

/* ── Cinema Gallery ─────────────────────────────────────── */
.cinema-gallery {
  display:grid;
  gap:1px;
  background: var(--border);
}
.cinema-gallery--2col { grid-template-columns:1fr 1fr; }
.cinema-gallery--3col { grid-template-columns:1fr 1fr 1fr; }
.cinema-gallery--masonry {
  grid-template-columns:2fr 1fr;
  grid-auto-rows:auto;
}
.gallery-img {
  overflow:hidden;
  background: var(--bg-3);
}
.gallery-img img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition: transform 0.9s var(--ease);
}
.gallery-img:hover img { transform:scale(1.03); }
.gallery-img--tall { grid-row:span 2; }
.gallery-img--wide { grid-column:span 2; }

/* ── Pillar Section ─────────────────────────────────────── */
.pillars {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--border);
  border:1px solid var(--border);
}
.pillar {
  padding:clamp(2rem, 5vw, 3.5rem);
  background: var(--bg-card);
  position:relative;
  overflow:hidden;
}
.pillar::before {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background: var(--cyan);
  transform:scaleX(0);
  transform-origin:left;
  transition: transform var(--dur-slow) var(--ease-out);
}
.pillar.visible::before {
  transform:scaleX(1);
  animation: line-glow-pulse 4.5s 0.65s ease-in-out infinite;
}
.pillar__number {
  font-size:clamp(3rem, 8vw, 5rem);
  font-weight:700;
  line-height:1;
  color:rgba(255,255,255,0.05);
  margin-bottom:0.5rem;
}
.pillar__title {
  font-size:clamp(1.25rem, 2.5vw, 1.75rem);
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  margin-bottom:1rem;
}
.pillar__body {
  font-size:0.85rem;
  line-height:1.8;
  color:var(--text-2);
}

/* ── Driver Cards ───────────────────────────────────────── */
.driver-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--border);
  border:1px solid var(--border);
}
.driver-card {
  background:var(--bg-card);
  padding:clamp(1.5rem, 4vw, 2.5rem);
  position:relative;
}
.driver-card__number {
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:0.18em;
  color:var(--text-3);
  margin-bottom:0.5rem;
}
.driver-card__name {
  font-size:clamp(1.5rem, 3vw, 2.25rem);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.02em;
  line-height:1;
  margin-bottom:0.75rem;
}
.driver-card__role {
  font-size:0.7rem;
  font-weight:600;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--cyan);
  margin-bottom:1rem;
}
.driver-card__placeholder {
  width:100%;
  aspect-ratio:3/4;
  background:var(--bg-3);
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1rem;
  position:relative;
  overflow:hidden;
}
.driver-card__placeholder::after {
  content:'PROFILE';
  font-size:0.6rem;
  font-weight:700;
  letter-spacing:0.2em;
  color:var(--text-3);
}
.driver-card__bio {
  font-size:0.8rem;
  line-height:1.7;
  color:var(--text-2);
}

/* ── Artifact Page ──────────────────────────────────────── */
.artifact-status {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--border);
  border:1px solid var(--border);
}
.artifact-status-item {
  background:var(--bg-card);
  padding:1.5rem 2rem;
}
.artifact-status-item__label {
  font-size:0.6rem;
  font-weight:700;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--text-3);
  margin-bottom:0.4rem;
}
.artifact-status-item__value {
  font-size:1rem;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
}
.artifact-status-item__value.is-hidden { color:var(--amber); }
.artifact-status-item__value.is-found  { color:var(--cyan); }

.artifact-archive {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:1px;
  background:var(--border);
  border:1px solid var(--border);
}
.archive-item {
  background:var(--bg-card);
  overflow:hidden;
  cursor:pointer;
  position:relative;
}
.archive-item__image {
  aspect-ratio:4/3;
  overflow:hidden;
}
.archive-item__image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition: transform 0.9s var(--ease);
  filter:grayscale(0.3);
}
.archive-item:hover .archive-item__image img {
  transform:scale(1.04);
  filter:grayscale(0);
}
.archive-item__body {
  padding:1.25rem;
  border-top:1px solid var(--border);
}
.archive-item__id {
  font-size:0.6rem;
  font-weight:700;
  letter-spacing:0.2em;
  color:var(--cyan);
  margin-bottom:0.3rem;
}
.archive-item__name {
  font-size:0.9rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.04em;
}
.archive-item__status {
  margin-top:0.4rem;
  font-size:0.65rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--text-3);
}

/* ── Forms ──────────────────────────────────────────────── */
.form-field {
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}
.form-field label {
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--text-3);
}
.form-field input,
.form-field textarea,
.form-field select {
  background: var(--bg-3);
  border:1px solid var(--border-2);
  color:var(--text);
  padding:0.85rem 1rem;
  font-size:0.85rem;
  letter-spacing:0.05em;
  outline:none;
  transition: border-color var(--dur-fast);
  appearance:none;
  -webkit-appearance:none;
}
.form-field input:focus,
.form-field textarea:focus { border-color:var(--cyan); }
.form-field textarea { min-height:120px; resize:vertical; }

.form-row {
  display:grid;
  gap:1rem;
}
.form-row--2 { grid-template-columns:1fr 1fr; }

.email-capture {
  display:flex;
  gap:0;
  max-width:480px;
}
.email-capture input {
  flex:1;
  background:var(--bg-3);
  border:1px solid var(--border-2);
  border-right:none;
  color:var(--text);
  padding:0.85rem 1.25rem;
  font-size:0.82rem;
  letter-spacing:0.04em;
  outline:none;
  transition: border-color var(--dur-fast);
}
.email-capture input:focus { border-color:var(--cyan); }
.email-capture .btn {
  border-left:none;
  flex-shrink:0;
}

/* ── Section Header ─────────────────────────────────────── */
.section-header {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:clamp(2rem, 5vw, 4rem);
  flex-wrap:wrap;
}
.section-header__left {}
.section-header__eyebrow {
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--cyan);
  margin-bottom:0.75rem;
  display:flex;
  align-items:center;
  gap:0.75rem;
  text-shadow:0 0 14px rgba(232,32,48,0.35);
}
.section-header__eyebrow::before {
  content:'';
  display:block;
  width:28px;
  height:1px;
  background:currentColor;
  transform-origin:left;
  transform:scaleX(0);
  opacity:0;
}
.reveal.visible .section-header__eyebrow::before {
  animation: line-draw 0.8s 0.1s var(--ease-out) both,
             line-glow-pulse 4.5s 0.9s ease-in-out infinite;
}
.section-header__title {
  font-size:clamp(1.75rem, 4vw, 3rem);
  font-weight:700;
  letter-spacing:-0.01em;
  text-transform:uppercase;
  line-height:1;
}
.section-header__body {
  margin-top:0.75rem;
  font-size:0.88rem;
  line-height:1.75;
  color:var(--text-2);
  max-width:54ch;
}
.section-header__sub {
  font-size:0.9rem;
  line-height:1.75;
  color:var(--text-2);
  max-width:52ch;
  margin-top:0.5rem;
}

/* ── About page grids ───────────────────────────────────── */
.about-split-grid  { grid-template-columns:1fr 1fr; }
.about-awards-grid { grid-template-columns:repeat(2,1fr); }
.about-what-grid   { grid-template-columns:repeat(3,1fr); }
.about-stats-grid  { grid-template-columns:repeat(4,1fr); }
.about-gear-strip  { grid-template-columns:repeat(4,1fr); }
.measure-spec-grid { grid-template-columns:repeat(4,1fr); }
.measure-dim-grid  { grid-template-columns:1fr 2fr; }

/* ── Divider ────────────────────────────────────────────── */
.divider {
  border:none;
  border-top:1px solid var(--border);
  margin: clamp(3rem, 6vw, 5rem) 0;
}

/* ── Ticker / Marquee ───────────────────────────────────── */
.ticker-wrap {
  overflow:hidden;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:0.75rem 0;
  background:var(--bg-2);
}
.ticker-inner {
  display:flex;
  white-space:nowrap;
  animation: ticker 28s linear infinite;
}
.ticker-item {
  display:inline-flex;
  align-items:center;
  gap:2.5rem;
  padding: 0 3rem;
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--text-3);
}
.ticker-item::after {
  content:'◆';
  font-size:0.4rem;
  color:var(--cyan);
}

/* ── About Manifesto ────────────────────────────────────── */
.manifesto-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(3rem, 6vw, 6rem);
  align-items:start;
}
.manifesto-text blockquote {
  font-size:clamp(1.1rem, 2.5vw, 1.6rem);
  font-weight:600;
  line-height:1.45;
  letter-spacing:-0.01em;
  color:var(--text);
  margin-bottom:2rem;
  position:relative;
  padding-left:1.5rem;
  border-left:2px solid var(--cyan);
}
.manifesto-image {
  position:sticky;
  top:calc(var(--header-h) + 2rem);
}
.manifesto-image img {
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:top;
}

/* ── Merch Page ─────────────────────────────────────────── */
.merch-coming-soon {
  min-height:70vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:2rem;
  position:relative;
}
.merch-grid-placeholder {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--border);
  border:1px solid var(--border);
  opacity:0.25;
  pointer-events:none;
}
.merch-placeholder-item {
  background:var(--bg-card);
  aspect-ratio:3/4;
}

/* ── Press / Partners Placeholder ──────────────────────── */
.placeholder-page {
  min-height:80vh;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:1.5rem;
  text-align:center;
}

/* ── Utilities ──────────────────────────────────────────── */
.text-cyan  { color:var(--cyan);  text-shadow:0 0 14px rgba(232,32,48,0.4); }
.text-red   { color:var(--red);   text-shadow:0 0 14px rgba(232,32,48,0.4); }
.text-amber { color:var(--amber); text-shadow:0 0 14px rgba(192,136,24,0.4); }
.text-dim   { color:var(--text-2); }
.text-muted { color:var(--text-3); }
.uppercase  { text-transform:uppercase; }
.italic     { font-style:italic; }
.pt-header  { padding-top:var(--header-h); }
.gap-sm     { gap:0.75rem; }
.gap-md     { gap:1.5rem; }
.gap-lg     { gap:3rem; }

.flex       { display:flex; }
.flex-col   { flex-direction:column; }
.items-center { align-items:center; }
.justify-between { justify-content:space-between; }
.flex-wrap  { flex-wrap:wrap; }
.grid       { display:grid; }
.relative   { position:relative; }
.overflow-hidden { overflow:hidden; }

/* ── Photo Gallery Component ────────────────────────────── */
.gallery-section-header {
  padding: clamp(2.5rem,6vw,4.5rem) var(--pad) clamp(1.25rem,3vw,2rem);
  max-width: var(--max-w);
  margin: 0 auto;
}
.gallery-count {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--text-3);
  align-self: flex-end;
}
.photo-gallery {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad) clamp(2.5rem,6vw,4.5rem);
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}
.gallery-thumb {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  cursor: zoom-in;
  background: var(--bg-3);
}
.gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s var(--ease);
}
.gallery-thumb:hover img { transform: scale(1.04); }
.gallery-thumb__overlay {
  position: absolute;
  inset: 0;
  background: rgba(5,5,10,0);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--dur-med) var(--ease);
}
.gallery-thumb:hover .gallery-thumb__overlay {
  background: rgba(5,5,10,0.32);
}
.gallery-thumb__expand {
  width: 28px; height: 28px;
  border: 1px solid rgba(255,255,255,0.45);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.8rem; color: rgba(255,255,255,0.75);
  opacity: 0;
  transform: scale(0.7);
  transition: opacity var(--dur-med), transform var(--dur-med);
}
.gallery-thumb:hover .gallery-thumb__expand { opacity:1; transform:scale(1); }
.gallery-thumb--more { cursor: pointer; }
.gallery-thumb--more .gallery-thumb__overlay {
  background: rgba(5,5,10,0.72);
  flex-direction: column;
  gap: 0.3rem;
}
.gallery-thumb--more:hover .gallery-thumb__overlay { background: rgba(5,5,10,0.82); }
.gallery-more-count {
  font-size: clamp(1.75rem, 5vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
  line-height: 1;
}
.gallery-more-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-2);
}

/* ── Lightbox ────────────────────────────────────────────── */
.cw-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(3,3,7,0.97);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur-med) var(--ease);
}
.cw-lightbox.open { opacity:1; pointer-events:auto; }
.cw-lightbox__img {
  max-width: min(90vw, 1440px);
  max-height: 84vh;
  object-fit: contain;
  display: block;
  transition: opacity 0.15s var(--ease);
  user-select: none;
}
.cw-lightbox__img.fading { opacity: 0.15; }
.cw-lightbox__counter {
  position: fixed;
  top: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--text-3);
  white-space: nowrap;
  pointer-events: none;
}
.cw-lightbox__close {
  position: fixed;
  top: 1.25rem; right: 1.5rem;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-2);
  color: var(--text-2);
  cursor: pointer;
  font-size: 1.3rem; line-height: 1;
  background: transparent;
  transition: color var(--dur-fast), border-color var(--dur-fast);
}
.cw-lightbox__close:hover { color:var(--text); border-color:var(--border-bright); }
.cw-lightbox__prev,
.cw-lightbox__next {
  position: fixed;
  top: 50%; transform: translateY(-50%);
  width: 52px; height: 52px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-2);
  color: var(--text-2);
  cursor: pointer;
  font-size: 1.1rem;
  background: rgba(5,5,10,0.6);
  transition: color var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast);
}
.cw-lightbox__prev { left: 1.5rem; }
.cw-lightbox__next { right: 1.5rem; }
.cw-lightbox__prev:hover,
.cw-lightbox__next:hover {
  color: var(--text);
  border-color: var(--border-bright);
  background: rgba(5,5,10,0.88);
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 1024px) {
  .manifesto-grid    { grid-template-columns:1fr; }
  .about-split-grid  { grid-template-columns:1fr !important; }
  .about-awards-grid { grid-template-columns:1fr !important; }
  .about-what-grid   { grid-template-columns:1fr !important; }
  .about-stats-grid  { grid-template-columns:repeat(2,1fr) !important; }
  .about-gear-strip  { grid-template-columns:repeat(2,1fr) !important; }
  .measure-spec-grid { grid-template-columns:repeat(2,1fr) !important; }
  .measure-dim-grid  { grid-template-columns:1fr !important; }
  .grid-2col         { grid-template-columns:1fr !important; }
  .grid-3col         { grid-template-columns:1fr !important; }
  .manifesto-image { position:static; }
  .manifesto-image img { aspect-ratio:16/9; }
  .pillars { grid-template-columns:1fr; }
  .driver-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 768px) {
  :root { --header-h:56px; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .cw-lightbox__prev { left: 0.5rem; width:42px; height:42px; }
  .cw-lightbox__next { right: 0.5rem; width:42px; height:42px; }

  .main-nav { display:none; }
  .nav-social { display:none; }
  .mobile-menu-toggle { display:flex; }

  /* Hide HUD coords on mobile — they overlap the hero buttons */
  .hero__coords { display:none; }

  /* Mobile social: icon-only circular buttons, centered */
  .mobile-menu-social {
    justify-content:center;
    padding:1.25rem 2rem;
  }
  .mobile-menu-social a {
    font-size:0;
    width:40px;
    height:40px;
    border:1px solid var(--border);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:0;
  }
  .mobile-menu-social a svg { width:18px; height:18px; }

  .catalog-strip { grid-template-columns:1fr 1fr; }
  .catalog-item + .catalog-item { border-left:none; }
  .catalog-item:nth-child(odd) { border-right:1px solid var(--border); }
  .catalog-item:nth-child(n+3) { border-top:1px solid var(--border); }

  .two-worlds { grid-template-columns:1fr; min-height:auto; }
  .world-card { min-height:55vw; }
  .world-card + .world-card { border-left:none; border-top:1px solid var(--border); }

  .film-grid { grid-template-columns:1fr; }

  .cinema-gallery--2col,
  .cinema-gallery--3col,
  .cinema-gallery--masonry {
    grid-template-columns:1fr;
  }
  .gallery-img--tall,
  .gallery-img--wide {
    grid-row:auto;
    grid-column:auto;
  }

  .driver-grid { grid-template-columns:1fr; }

  .artifact-status { grid-template-columns:1fr; }

  .meta-grid { grid-template-columns:1fr 1fr; }

  .merch-grid-placeholder { grid-template-columns:1fr 1fr; }

  .form-row--2 { grid-template-columns:1fr; }

  .email-capture { flex-direction:column; }
  .email-capture input { border-right:1px solid var(--border-2); }
  .email-capture .btn { border-left:1px solid var(--border-2); }

  .footer-inner { flex-direction:column; text-align:center; }
  .footer-links { justify-content:center; }
  .footer-social { justify-content:center; }

  .section-header { flex-direction:column; align-items:flex-start; }
}

@media (max-width: 480px) {
  .catalog-strip { grid-template-columns:1fr; }
  .catalog-item + .catalog-item { border-left:none; border-top:1px solid var(--border); }
  .catalog-item:nth-child(odd) { border-right:none; }
  .meta-grid { grid-template-columns:1fr; }
  .hero__title { font-size:clamp(3rem, 16vw, 5rem); }
}

/* ── Custom Cursor ───────────────────────────────────────── */
@media (pointer: fine) {
  *, *::before, *::after { cursor: none !important; }

  .cw-cursor-dot {
    position: fixed;
    top: 0; left: 0;
    width: 5px; height: 5px;
    background: var(--cyan);
    border-radius: 50%;
    pointer-events: none;
    z-index: 10000;
    transform: translate(-50%, -50%);
    will-change: left, top;
    transition: opacity 0.3s;
    opacity: 0;
  }

  .cw-cursor-ring {
    position: fixed;
    top: 0; left: 0;
    width: 30px; height: 30px;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 50%;
    pointer-events: none;
    z-index: 9999;
    transform: translate(-50%, -50%);
    will-change: left, top;
    transition: width 0.22s var(--ease-out), height 0.22s var(--ease-out),
                border-color 0.22s, opacity 0.3s;
    opacity: 0;
  }

  .cw-cursor-dot.visible   { opacity: 1; }
  .cw-cursor-ring.visible  { opacity: 1; }

  .cw-cursor-ring.is-hovering {
    width: 52px; height: 52px;
    border-color: var(--cyan);
  }

  .cw-cursor-ring.is-pressing {
    width: 18px; height: 18px;
    border-color: var(--cyan);
    transition-duration: 0.1s;
  }
}
