*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body, input, select, textarea, button {
  font-family: var(--body-font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:root {
  --accent:        #e4002b;
  --accent-dk:     #b80023;
  --accent-lt:     #fff0f2;
  --sun:           #f6b90f;
  --sun-lt:        #fff8e1;
  --black:         #080808;
  --near-black:    #111111;
  --gray-900:      #1a1a1a;
  --gray-700:      #374151;
  --gray-600:      #4b5563;
  --gray-500:      #6b7280;
  --gray-400:      #9ca3af;
  --gray-200:      #e5e7eb;
  --gray-100:      #f5f5f5;
  --gray-50:       #fafafa;
  --white:         #ffffff;
  --heading-font:  'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --body-font:     'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --nav-bg:        #0a0a0a;
  --nav-text:      #ffffff;
}

[data-nav-theme="light"] {
  --nav-bg:   #ffffff;
  --nav-text: #111111;
}

html { scroll-behavior: smooth; }
body { background: var(--white); color: var(--gray-700); overflow-x: hidden; }
a { color: var(--accent); text-decoration: none; transition: color .15s; }
a:hover { color: var(--accent-dk); }
img { max-width: 100%; height: auto; display: block; }
ul { list-style: none; }

h1, h2, h3, h4, h5, h6, .listing-price, .episode-num {
  font-variant-numeric: lining-nums;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--heading-font);
  color: var(--near-black);
  line-height: 1.1;
}
h1 { font-size: clamp(44px, 6vw, 72px);   font-weight: 700; letter-spacing: -0.02em; }
h2 { font-size: clamp(32px, 4vw, 52px);   font-weight: 700; letter-spacing: -0.015em; }
h3 { font-size: clamp(20px, 2.5vw, 28px); font-weight: 700; letter-spacing: -0.01em; }
h4 { font-size: clamp(18px, 2vw, 22px);   font-weight: 700; }
h5 { font-size: 18px; font-weight: 600; }
h6 { font-size: 16px; font-weight: 600; letter-spacing: .02em; }
p  { line-height: 1.8; }

.lead-text {
  font-size: clamp(16px, 1.6vw, 19px);
  font-weight: 400;
  line-height: 1.8;
  color: var(--gray-600);
}

.label-overline {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
}

.section    { padding: 100px 32px; }
.section-sm { padding: 64px 32px; }
.section-inner  { max-width: 1200px; margin: 0 auto; }
.section-header { margin-bottom: 64px; }

.bg-white { background: var(--white); }
.bg-off   { background: var(--gray-50); }
.bg-dark  { background: #0a0a0a; }
.bg-near-black { background: var(--near-black); }

/* Skip link */
.skip-link {
  position: absolute; top: -100px; left: 16px; z-index: 9999;
  background: var(--accent); color: white;
  padding: 10px 18px; border-radius: 0 0 8px 8px;
  font-size: 15px; font-weight: 600;
  transition: top .15s;
}
.skip-link:focus { top: 0; color: white; }

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* Fade up animation */
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
.animate-fadeup { animation: fadeUp .6s ease both; }
.delay-1 { animation-delay: .12s; }
.delay-2 { animation-delay: .24s; }
.delay-3 { animation-delay: .36s; }
.delay-4 { animation-delay: .5s; }

/* Arrow icon hover nudge */
i.fa-arrow-right { display: inline-block; transition: transform .2s ease; }
a:hover i.fa-arrow-right,
button:hover i.fa-arrow-right { transform: translateX(4px); }

/* Focus & a11y */
*:focus-visible { outline: 2px solid var(--accent) !important; outline-offset: 3px; }
*:focus:not(:focus-visible) { outline: none; }
button, [role="button"], a { cursor: pointer; }

/* Responsive */
@media (max-width: 767px) {
  .section    { padding: 64px 20px; }
  .section-sm { padding: 48px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .animate-fadeup { animation: none; opacity: 1; }
}
