/* Anton is self-hosted */
@font-face { font-family: "Anton"; src: url("assets/fonts/Anton-Regular.woff2") format("woff2"); font-display: swap; }

:root {
  --bg: #0a1020;
  --bg-2: #0f1830;
  --surface: #131d38;
  --line: rgba(255, 255, 255, .09);
  --text: #eef2fa;
  --muted: #9aa6c0;
  --accent: #ff5a1f;
  --accent-2: #ff7b45;
  --navy: #0c2340;
  --radius: 18px;
  --display: "Anton", "Impact", "Arial Narrow", sans-serif;
  --body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --wrap: 1200px;
  --gut: clamp(16px, 4.5vw, 48px);   /* page side margin */
  --nav-h: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--nav-h); }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 400 17px/1.65 var(--body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3 { margin: 0; line-height: 1.05; }
h2 {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(2.4rem, 5vw, 4rem);
  letter-spacing: .01em;
  text-transform: uppercase;
}
h3 { font-size: 1.15rem; font-weight: 700; }
p { margin: 0 0 1em; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 6px; }

.wrap { width: min(var(--wrap), 100% - 2 * var(--gut)); margin-inline: auto; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--accent); color: #fff; padding: 8px 14px; border-radius: 8px; }
.skip:focus { left: 8px; }

/* Buttons */
.btn {
  --h: 52px;
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  height: var(--h); padding: 0 1.6em;
  border-radius: 999px; border: 1px solid transparent;
  font: 600 .95rem/1 var(--body); letter-spacing: .02em;
  text-decoration: none; cursor: pointer;
  transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.btn svg { width: 18px; height: 18px; fill: currentColor; }
.btn:hover { transform: translateY(-2px); }
.btn--accent { background: var(--accent); color: #fff; box-shadow: 0 10px 30px -10px rgba(255, 90, 31, .7); }
.btn--accent:hover { background: var(--accent-2); }
.btn--ghost { border-color: rgba(255, 255, 255, .28); color: #fff; background: rgba(255, 255, 255, .04); backdrop-filter: blur(6px); }
.btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .1); }
.btn--sm { --h: 42px; padding: 0 1.2em; font-size: .88rem; }
.btn--block { width: 100%; }

.kicker {
  display: inline-flex; align-items: center; gap: 10px;
  font: 700 .78rem/1 var(--body); letter-spacing: .22em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 14px;
}
.kicker::before { content: ""; width: 26px; height: 2px; background: currentColor; }
.kicker--muted { color: var(--muted); }

/* Nav */
.nav {
  position: fixed; inset: 0 0 auto; z-index: 50; height: var(--nav-h);
  transition: background .3s ease, border-color .3s ease;
  border-bottom: 1px solid transparent;
}
.nav.is-scrolled { background: rgba(10, 16, 32, .82); backdrop-filter: blur(14px) saturate(1.4); border-color: var(--line); }
.nav__inner { height: 100%; width: min(var(--wrap), 100% - 2 * var(--gut)); margin-inline: auto; display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.brand__mark {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px;
  background: var(--accent); color: #fff; font: 400 1.1rem/1 var(--display); letter-spacing: .04em;
}
.brand__name { font: 400 1.3rem/1 var(--display); text-transform: uppercase; letter-spacing: .05em; }
.nav__links { display: flex; gap: 28px; margin-left: auto; }
.nav__links a { text-decoration: none; font-size: .92rem; font-weight: 500; color: rgba(255, 255, 255, .78); position: relative; }
.nav__links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--accent); transform: scaleX(0); transition: transform .25s ease; }
.nav__links a:hover, .nav__links a.is-active { color: #fff; }
.nav__links a:hover::after, .nav__links a.is-active::after { transform: scaleX(1); }
.nav__toggle { display: none; margin-left: auto; width: 44px; height: 44px; background: none; border: 0; cursor: pointer; position: relative; }
.nav__toggle span { position: absolute; left: 11px; right: 11px; height: 2px; background: #fff; transition: transform .25s ease, top .25s ease; }
.nav__toggle span:first-child { top: 17px; }
.nav__toggle span:last-child { top: 25px; }
.nav__toggle[aria-expanded="true"] span:first-child { top: 21px; transform: rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:last-child { top: 21px; transform: rotate(-45deg); }
.mobile-menu {
  position: fixed; inset: var(--nav-h) 0 auto; background: rgba(10, 16, 32, .97); backdrop-filter: blur(14px);
  display: grid; gap: 4px; padding: 16px 20px 28px; border-bottom: 1px solid var(--line);
}
.mobile-menu[hidden] { display: none; }
.mobile-menu a:not(.btn) { padding: 14px 4px; text-decoration: none; font: 400 1.6rem/1 var(--display); text-transform: uppercase; border-bottom: 1px solid var(--line); }
.mobile-menu .btn { margin-top: 16px; }

/* Hero */
.hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; }
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; z-index: -2; animation: heroZoom 18s ease-out both; }
@keyframes heroZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.hero__shade {
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(10, 16, 32, .96) 0%, rgba(10, 16, 32, .78) 34%, rgba(10, 16, 32, .15) 62%, rgba(10, 16, 32, 0) 80%),
    linear-gradient(0deg, var(--bg) 0%, rgba(10, 16, 32, 0) 35%);
}
.hero__content { padding: calc(var(--nav-h) + 60px) 0 clamp(70px, 12vh, 130px); }
.eyebrow { display: flex; width: var(--lw); justify-content: center; align-items: center; gap: 10px; font: 600 .82rem/1 var(--body); letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 255, 255, .85); padding: 10px 16px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; background: rgba(10, 16, 32, .4); backdrop-filter: blur(6px); }
.live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 0 rgba(255, 90, 31, .7); animation: pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 10px rgba(255, 90, 31, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 90, 31, 0); } }
.hero__title {
  font-family: var(--display); font-weight: 400; text-transform: uppercase;
  font-size: clamp(4.6rem, 13vw, 10.5rem); line-height: .86; letter-spacing: .005em;
  margin: 26px 0 18px;
}
.hero__role { font: 400 clamp(1.2rem, 2.4vw, 1.7rem)/1.1 var(--display); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 6px; padding-top: 12px; position: relative; }
.hero__role::before { content: ""; position: absolute; top: 0; left: 0; width: var(--lw); height: 3px; background: var(--accent); }   /* spans the logo */
.hero__role i { color: var(--accent); font-style: normal; margin: 0 .3em; }
.hero__lede { max-width: 30ch; color: rgba(255, 255, 255, .78); font-size: 1.1rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 16px 0 22px; }
.socials { display: flex; gap: 10px; list-style: none; padding: 0; margin: 0; }
.socials a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2); transition: background .2s, border-color .2s, transform .2s; }
.socials a:hover { background: var(--accent); border-color: var(--accent); transform: translateY(-2px); }
.socials svg { width: 17px; height: 17px; fill: #fff; }
.hero__scroll { position: absolute; left: 50%; bottom: 26px; width: 26px; height: 42px; border: 2px solid rgba(255, 255, 255, .35); border-radius: 20px; transform: translateX(-50%); }
.hero__scroll span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: scrollDot 1.8s infinite; }
@keyframes scrollDot { 0% { opacity: 0; transform: translateY(0); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

/* Hero variant: subject on the left, copy on the right */
.hero--right .hero__img { object-position: 30% 20%; }
.hero--right .hero__shade {
  background:
    linear-gradient(270deg, rgba(10, 16, 32, .95) 0%, rgba(10, 16, 32, .78) 30%, rgba(10, 16, 32, .2) 55%, rgba(10, 16, 32, 0) 70%),
    linear-gradient(0deg, var(--bg) 0%, rgba(10, 16, 32, 0) 30%),
    linear-gradient(180deg, rgba(10, 16, 32, .7) 0%, rgba(10, 16, 32, 0) 20%);
}
.hero--right .hero__content { display: flex; flex-direction: column; align-items: flex-start; padding-left: min(52%, 640px); }

/* Gallery */
.gallery { display: block; }
.gallery__item { position: relative; margin: 0; border-radius: var(--radius); overflow: hidden; background: var(--surface); aspect-ratio: 16 / 9; }
.gallery__item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; transition: transform .6s ease; }
.gallery__item:hover img { transform: scale(1.03); }
.gallery__item figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 48px 22px 18px; font-size: .95rem; font-weight: 600; background: linear-gradient(0deg, rgba(10, 16, 32, .9), rgba(10, 16, 32, 0)); }

/* Stats */

/* Sections */
.section { padding: clamp(80px, 11vw, 140px) 0; }
.section--tint { background: var(--bg-2); }
.section__head { max-width: 720px; margin-bottom: 44px; }
.section__sub { color: var(--muted); font-size: 1.08rem; margin-top: 16px; }

/* Filters + video grid */
.filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.chip { font: 600 .88rem/1 var(--body); color: var(--muted); background: transparent; border: 1px solid var(--line); padding: 12px 18px; border-radius: 999px; cursor: pointer; transition: all .2s; }
.chip:hover { color: #fff; border-color: rgba(255, 255, 255, .3); }
.chip.is-active { color: #fff; background: var(--accent); border-color: var(--accent); }

.video-grid.is-collapsed .bcard.is-extra { display: none; }
.more-videos { display: flex; justify-content: center; margin-top: 36px; }
.more-videos[hidden] { display: none; }

/* Split */
.split { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(36px, 6vw, 80px); align-items: center; }
.split--rev .split__media { order: 2; }
.split__media { position: relative; }
.split__media img { border-radius: var(--radius); aspect-ratio: 4 / 3.4; object-fit: cover; width: 100%; }
.tag { position: absolute; left: 20px; bottom: 20px; padding: 12px 16px; border-radius: 12px; background: rgba(10, 16, 32, .8); backdrop-filter: blur(8px); font-weight: 600; font-size: .9rem; border-left: 3px solid var(--accent); }
.split__body > p { color: var(--muted); margin-top: 16px; }
.pods { margin-top: 40px; display: grid; gap: 10px; }
.pod { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); text-decoration: none; transition: border-color .2s; }
a.pod:hover { border-color: rgba(255, 90, 31, .5); }
.pod b { display: block; }
.pod small { color: var(--muted); }
.pod__icon { display: grid; place-items: center; flex: none; }
.pod__arrow { margin-left: auto; width: 18px; height: 18px; fill: none; stroke: var(--muted); stroke-width: 2; }

/* About */
.about { display: grid; grid-template-columns: minmax(280px, 420px) 1fr; gap: clamp(36px, 6vw, 90px); align-items: start; }
.about__photo { position: sticky; top: calc(var(--nav-h) + 30px); margin: 0; }
.about__photo img { border-radius: var(--radius); aspect-ratio: 1; object-fit: cover; width: 100%; }
.about__photo::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 2px solid var(--accent); border-radius: var(--radius); z-index: -1; opacity: .6; }
.about__photo { isolation: isolate; }
.about__photo figcaption { display: flex; justify-content: space-between; align-items: baseline; margin-top: 16px; }
.about__photo figcaption b { font: 400 1.4rem/1 var(--display); text-transform: uppercase; letter-spacing: .04em; }
.about__photo figcaption span { color: var(--muted); font-size: .88rem; }
.about__body h2 { margin-bottom: 26px; }
.about__body p { color: #c9d1e3; }
.lead { font-size: 1.22rem; line-height: 1.6; color: #fff !important; }
.more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s ease; }
.more.is-open { grid-template-rows: 1fr; }
.more p:first-child { margin-top: 0; }
.more-inner { overflow: hidden; }
.link-btn { background: none; border: 0; padding: 8px 0; color: var(--accent); font: 600 1rem var(--body); cursor: pointer; }
.link-btn span { display: inline-block; transition: transform .3s; }
.link-btn[aria-expanded="true"] span { transform: rotate(180deg); }

/* Career */
.career { display: grid; grid-template-columns: 1fr 360px; gap: 40px; align-items: start; }
.timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 7px; top: 10px; bottom: 10px; width: 2px; background: linear-gradient(var(--accent), var(--line) 30%); }
.tl { position: relative; padding-left: 40px; margin-bottom: 22px; }
.tl::before { content: ""; position: absolute; left: 0; top: 6px; width: 16px; height: 16px; border-radius: 50%; background: var(--bg-2); border: 2px solid var(--muted); }
.tl--now::before { border-color: var(--accent); background: var(--accent); box-shadow: 0 0 0 6px rgba(255, 90, 31, .18); }
.tl__when { font: 600 .8rem/1 var(--body); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; padding-top: 6px; }
.tl__card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px 26px; }
.tl__card h3 { font-size: 1.25rem; }
.tl__card h3 small { display: block; color: var(--muted); font-weight: 500; font-size: .85rem; margin-top: 4px; }
.tl__role { margin: 10px 0 0; font-weight: 600; color: #dfe5f2; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; }
.tl__role span { color: var(--muted); font-weight: 500; font-size: .9rem; }
.tl__card ul { margin: 14px 0 0; padding-left: 18px; color: var(--muted); font-size: .95rem; }
.tl__card li { margin-bottom: 4px; }
.tl__card li::marker { color: var(--accent); }
.awards { position: sticky; top: calc(var(--nav-h) + 30px); background: linear-gradient(160deg, var(--navy), var(--surface)); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; }
.awards h3 { font: 400 1.8rem/1 var(--display); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 18px; }
.awards ul { list-style: none; padding: 0; margin: 0 0 24px; }
.awards li { display: grid; grid-template-columns: 54px 1fr; gap: 12px; padding: 13px 0; border-top: 1px solid var(--line); font-size: .95rem; }
.awards__yr { font: 400 1.05rem/1.4 var(--display); color: var(--accent); letter-spacing: .04em; }

/* Media cards */
.cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 24px; transition: transform .3s, border-color .3s; }
.card:hover { transform: translateY(-4px); border-color: rgba(255, 90, 31, .45); }
.card__num { font: 400 2.6rem/1 var(--display); color: transparent; -webkit-text-stroke: 1px var(--accent); display: block; margin-bottom: 18px; }
.card h3 { margin-bottom: 10px; line-height: 1.3; }
.card p { color: var(--muted); font-size: .94rem; margin: 0; }

/* Writing */

/* Contact */
.contact { position: relative; padding: clamp(90px, 12vw, 150px) 0; isolation: isolate; overflow: hidden; }
.contact__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 40%; z-index: -2; }
.contact__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10, 16, 32, .55) 0%, rgba(10, 16, 32, .9) 55%, rgba(10, 16, 32, .97) 100%); }
.contact__inner { display: grid; grid-template-columns: 1fr 440px; gap: 50px; align-items: center; }
.contact__copy { max-width: 520px; }
.contact__copy h2 { font-size: clamp(2.6rem, 6vw, 4.8rem); }
.contact__copy p { margin-top: 18px; color: rgba(255, 255, 255, .85); font-size: 1.1rem; }
.contact__email { display: inline-block; margin-top: 8px; font-weight: 600; font-size: clamp(1.05rem, 2.2vw, 1.35rem); text-decoration: none; border-bottom: 2px solid var(--accent); padding-bottom: 4px; word-break: break-all; }
.form { background: rgba(15, 24, 48, .82); backdrop-filter: blur(16px); border: 1px solid var(--line); border-radius: 22px; padding: 30px; }
.field { margin-bottom: 16px; }
.field label { display: block; font-size: .82rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.field input, .field textarea { width: 100%; font: 400 1rem var(--body); color: #fff; background: rgba(255, 255, 255, .05); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; transition: border-color .2s, background .2s; resize: vertical; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--accent); background: rgba(255, 255, 255, .08); }
.field input.is-invalid { border-color: #ff4d4d; }
.form__note { margin: 12px 0 0; text-align: center; color: var(--muted); font-size: .82rem; }

/* Footer */
.footer { border-top: 1px solid var(--line); padding: 40px 0; }
.footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.footer nav { display: flex; flex-wrap: wrap; gap: 22px; }
.footer nav a { text-decoration: none; color: var(--muted); font-size: .9rem; }
.footer nav a:hover { color: #fff; }
.footer p { margin: 0; color: var(--muted); font-size: .85rem; width: 100%; }

/* Modal */
.modal { width: min(1100px, 94vw); padding: 0; border: 0; background: transparent; color: #fff; overflow: visible; }
.modal::backdrop { background: rgba(4, 7, 15, .9); backdrop-filter: blur(6px); }
.modal__frame { aspect-ratio: 16 / 9; background: #000; border-radius: 14px; overflow: hidden; box-shadow: 0 30px 80px rgba(0, 0, 0, .6); }
.modal__frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.modal__title { margin: 14px 4px 0; font-weight: 600; }
.modal__close { position: absolute; top: -50px; right: 0; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .08); color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.modal__close:hover { background: var(--accent); border-color: var(--accent); }

/* Reveal */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
.reveal.is-in { opacity: 1; transform: none; }

/* Responsive */
@media (max-width: 1080px) {
  .cards { grid-template-columns: repeat(2, 1fr); }
  .career { grid-template-columns: 1fr; }
  .awards { position: static; }
  .contact__inner { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .hero--right .hero__content { padding-left: 0; }
  .gallery__item { aspect-ratio: 3 / 2; }
  .hero__img, .hero--right .hero__img { object-position: 42% 0; height: 52svh; bottom: auto; }
  .hero__shade, .hero--right .hero__shade { background: linear-gradient(0deg, var(--bg) 50%, rgba(10, 16, 32, .65) 60%, rgba(10, 16, 32, 0) 78%), linear-gradient(180deg, rgba(10, 16, 32, .55) 0%, rgba(10, 16, 32, 0) 18%); }
  .hero__content { padding-top: calc(var(--nav-h) + 22svh); padding-bottom: 40px; }
  .nav__links, .nav__cta { display: none; }
  .nav__toggle { display: block; }
  .split, .about { grid-template-columns: 1fr; }
  .split--rev .split__media { order: 0; }
  .about__photo { position: relative; top: 0; max-width: 440px; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .cards { grid-template-columns: 1fr; }
  .about__photo::before { inset: 14px -10px -14px 14px; }
  .tl__card { padding: 20px; }
  .form { padding: 22px; }
  .hero__scroll { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; }
}

/* ===================================================================
   Brand system: lockup, baseball icons, illustrations
   =================================================================== */
/* --icon-sw is in 24px-grid units; larger icons use a thinner value so the
   drawn line stays ~2.5-3px instead of scaling up with the icon. */
:root { --icon-accent: var(--accent); --icon-sw: 2; --icon-k: 1; }

.defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Icons: 24px grid, 2px rounded strokes, orange details */
.icon { width: 1.25em; height: 1.25em; flex: none; fill: none; stroke: currentColor; stroke-width: calc(var(--icon-sw) * var(--icon-k)); stroke-linecap: round; stroke-linejoin: round; overflow: visible; vertical-align: -0.25em; }
.icon--lg { width: 44px; height: 44px; --icon-sw: 1.6; }
.btn .icon { width: 21px; height: 21px; fill: none; }
.btn--accent { --icon-accent: #fff; }
.nav__links a { display: inline-flex; align-items: center; gap: 7px; }
.nav__links .icon { width: 20px; height: 20px; opacity: .9; --icon-sw: 1.8; }
.kicker:has(.icon)::before { display: none; }
.kicker .icon { width: 22px; height: 22px; --icon-sw: 1.8; --icon-accent: var(--accent); }
.pod__icon .icon { width: 30px; height: 30px; fill: none; color: #fff; --icon-sw: 1.6; }
.awards h3 { display: flex; align-items: center; gap: 14px; }
.awards h3 .icon { width: 38px; height: 38px; }
.card__icon { display: block; margin-bottom: 22px; color: #fff; }
.card__icon .icon { width: 56px; height: 56px; --icon-sw: 1.4; }
.contact__email { display: inline-flex; align-items: center; gap: 10px; }
.contact__email .icon { width: 26px; height: 26px; --icon-sw: 1.8; }
/* Timeline markers become bases */
.tl::before { border-radius: 3px; transform: rotate(45deg); width: 14px; height: 14px; left: 1px; top: 7px; }

/* Lockup: GREG scaled to GANIA's width, lines touching, even letter gaps */
.lockup { display: block; height: auto; fill: currentColor; overflow: visible; }
.lockup__greg { fill: var(--lockup-top, currentColor); }
.brand { color: #fff; }
.lockup--nav { width: 48px; }
.lockup--footer { width: 56px; }
.hero__title { margin: 10px 0 12px; line-height: 0; font-size: 0; }
.hero__content { --lw: clamp(230px, 31vw, 440px); }
.lockup--hero { width: var(--lw); color: #fff; }

/* Illustration line style */
.ill { display: block; width: 100%; height: auto; overflow: visible; fill: none; stroke: #eef2fa; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.ill .a { stroke: var(--accent); }
.ill .af { fill: var(--accent); stroke: none; }
.ill .lf { fill: #eef2fa; stroke: none; }
.ill .soft { opacity: .35; }
.ill .faint { opacity: .18; }
.ill text { font-family: var(--display); stroke: none; }

/* Home-run flight path: draws itself as it scrolls into view */
.section--flight { padding-top: clamp(28px, 4vw, 48px); }
.flight { margin-bottom: clamp(10px, 3vw, 30px); opacity: .95; }
.flight__reveal { stroke-dasharray: 1; stroke-dashoffset: 1; }
.flight__crack, .flight__sparks { opacity: 0; }
.flight__sign { transform-box: fill-box; transform-origin: 50% 100%; }
.flight__speed { opacity: 0; }
.flight.is-done .flight__reveal { stroke-dashoffset: 0; }   /* resting state (also no-JS / reduced motion) */
.flight.is-done .flight__speed { opacity: .35; }

/* Ballpark panorama closes the contact section */
.contact { background: linear-gradient(180deg, var(--bg) 0%, #0c1530 100%); padding-bottom: 0; }
.ballpark { position: relative; z-index: -1; margin-top: calc(-1 * clamp(60px, 11vw, 170px)); height: max(300px, min(40vw, 560px));   /* tucks behind the contact block */ overflow: hidden; pointer-events: none; }
.ballpark__art { position: absolute; left: 0; right: 0; bottom: 0; will-change: transform; }
.ballpark .ill { display: block; width: 100%; min-width: 760px; position: relative; left: 50%; transform: translateX(-50%); height: auto; }
.ballpark::before { content: ""; position: absolute; inset: 0 0 auto; height: 32%; z-index: 1; background: linear-gradient(180deg, #0b1329 10%, rgba(11, 19, 41, 0)); }



@media (max-width: 900px) {
  .hero__content { --lw: min(440px, 82vw, calc((100svh - var(--nav-h) - 22svh - 130px) / 1.02)); }
}
@media (max-width: 640px) {
  }
@media (prefers-reduced-motion: reduce) {
  .flight__reveal { stroke-dashoffset: 0; }
  .flight__speed { opacity: .35; }
}

/* ===================================================================
   Hero baseball + home-run intro (assets/js/ball.js)
   =================================================================== */
.hero__lockup { position: relative; display: block; width: var(--lw); }
.hero__lockup .lockup--hero { width: 100%; }
.hero__lockup.has-ball .lockup--hero { opacity: 0; }            /* keeps the layout; the ball draws the letters */
.hero__ball { position: absolute; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none;
  -webkit-mask: var(--lockup-mask) 0 0 / 100% 100% no-repeat; mask: var(--lockup-mask) 0 0 / 100% 100% no-repeat; }
.hero__ball.is-intro { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 70; -webkit-mask: none; mask: none; }
.hero__ball.is-intro.is-masked { -webkit-mask-image: var(--lockup-mask); mask-image: var(--lockup-mask); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.hero__replay { display: none; align-items: center; gap: 9px; margin-top: 18px; padding: 0; background: none; border: 0; color: var(--muted); font: 600 .85rem var(--body); cursor: pointer; }
.hero__replay span { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid currentColor; display: grid; place-items: center; }
.hero__replay span::after { content: ""; border-left: 6px solid currentColor; border-top: 4px solid transparent; border-bottom: 4px solid transparent; margin-left: 2px; }
.hero__replay:hover { color: #fff; }
html.has-ball .hero__replay { display: inline-flex; }

html.intro-pending, html.intro-playing { overflow: hidden; }
html.intro-pending .hero__lockup, html.intro-playing .hero__lockup { visibility: hidden; }
html.intro-playing .hero__lockup { visibility: visible; }
html:is(.intro-pending, .intro-playing) :is(.nav, .hero .eyebrow, .hero__role, .hero__lede, .hero__actions, .socials, .hero__replay, .hero__scroll) { opacity: 0; transform: translateY(14px); }
html.intro-settled :is(.nav, .hero .eyebrow, .hero__role, .hero__lede, .hero__actions, .socials, .hero__replay, .hero__scroll) { opacity: 1; transform: none;
  transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); }
html.intro-settled .hero__role { transition-delay: .12s; }
html.intro-settled .hero__lede { transition-delay: .22s; }
html.intro-settled .hero__actions { transition-delay: .32s; }
html.intro-settled :is(.socials, .hero__replay) { transition-delay: .42s; }

.intro-sky { position: fixed; inset: 0; z-index: 65; background: radial-gradient(120% 80% at 50% 105%, #1c2b55 0%, #0b1226 55%, #05080f 100%); }
.intro-sky[hidden] { display: none; }
.intro-sky__park { position: absolute; left: 50%; bottom: 0; width: max(100vw, 760px); transform: translateX(-50%); opacity: .9; }
.intro-sky__glow { position: absolute; left: 50%; bottom: 0; width: 120vw; height: 50vh; transform: translateX(-50%); background: radial-gradient(50% 60% at 50% 100%, rgba(255, 170, 110, .25), transparent 70%); }
.intro-flash { position: fixed; inset: 0; z-index: 75; background: #fff; opacity: 0; pointer-events: none; }
.intro-gate { position: fixed; inset: 0; z-index: 80; display: none; place-items: center; text-align: center; padding: 16px;
  background: radial-gradient(90% 70% at 50% 100%, #142046, #05080f 70%); transition: opacity .5s ease; }
html.intro-pending .intro-gate { display: grid; }
.intro-gate.is-gone { opacity: 0; pointer-events: none; }
.intro-gate__mark { display: block; width: 90px; height: auto; margin: 0 auto 26px; }   /* inline art: shows on first paint */
.intro-gate__play { display: inline-flex; align-items: center; gap: 12px; height: 60px; padding: 0 30px 0 16px; border-radius: 999px; border: 0;
  background: var(--accent); color: #fff; font: 700 1.05rem var(--body); cursor: pointer; box-shadow: 0 14px 40px -12px rgba(255, 90, 31, .8); }
.intro-gate__play span { width: 34px; height: 34px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.intro-gate__play span::after { content: ""; border-left: 12px solid var(--accent); border-top: 8px solid transparent; border-bottom: 8px solid transparent; margin-left: 3px; }
.intro-gate p { color: var(--muted); font-size: .9rem; margin: 18px 0 4px; }
.intro-gate__skip { background: none; border: 0; color: var(--muted); text-decoration: underline; font: 500 .9rem var(--body); cursor: pointer; }
.intro-mute { position: fixed; right: 16px; bottom: 16px; z-index: 81; font: 600 .82rem var(--body); color: #fff; background: rgba(10, 16, 32, .8);
  border: 1px solid rgba(255, 255, 255, .2); border-radius: 999px; padding: 8px 14px; cursor: pointer; backdrop-filter: blur(8px); }

/* ===================================================================
   Scoreboard stats: split-flap tiles that flip into place
   =================================================================== */
.stats { padding: clamp(28px, 4vw, 44px) 0; background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%); border-bottom: 1px solid var(--line); }
.board { border-radius: 16px; padding: 20px clamp(16px, 2.4vw, 28px) 20px; background: linear-gradient(180deg, #0f1a33, #0b1428);
  border: 2px solid #1c2b4f; box-shadow: inset 0 0 0 6px #0a1224, 0 30px 60px -30px rgba(0, 0, 0, .8); }
.board__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.board__title { font: 400 clamp(.95rem, 1.4vw, 1.15rem)/1 var(--display); letter-spacing: .28em; text-transform: uppercase; color: #eef2fa; }
.board__bulbs { display: flex; gap: 6px; }
.board__bulbs i { width: 9px; height: 9px; border-radius: 50%; background: #3a2a24; animation: bulb 2.4s steps(1) infinite; }
.board__bulbs i:nth-child(2n) { animation-delay: -1.2s; }
@keyframes bulb { 0%, 49% { background: #ffb38f; box-shadow: 0 0 8px rgba(255, 140, 80, .9); } 50%, 100% { background: #3a2a24; box-shadow: none; } }
.board__cells { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.board__cell { text-align: center; }
.board__tiles { display: flex; justify-content: center; align-items: center; gap: 5px; --fw: clamp(34px, 4.1vw, 54px); --fh: calc(var(--fw) * 1.5); }
.flap { position: relative; width: var(--fw); height: var(--fh); perspective: 320px; border-radius: 6px; box-shadow: 0 3px 0 rgba(0, 0, 0, .35); color: #f4f1e8; font: 400 calc(var(--fh) * .74)/var(--fh) var(--display); text-align: center; }
.flap__half { position: absolute; left: 0; right: 0; height: 50%; overflow: hidden; background: #151b27; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .05); backface-visibility: hidden; }
.flap__half > span { display: block; height: var(--fh); }
.flap__half--top { top: 0; border-radius: 6px 6px 0 0; background: #192030; transform-origin: 50% 100%; }
.flap__half--bot { bottom: 0; border-radius: 0 0 6px 6px; transform-origin: 50% 0; }
.flap__half--bot > span { margin-top: calc(var(--fh) / -2); }
.flap::after { content: ""; position: absolute; z-index: 3; left: 0; right: 0; top: 50%; height: 2px; margin-top: -1px; background: rgba(0, 0, 0, .65); }
.flap__leaf { z-index: 2; }
.board__plus { color: var(--accent); font: 400 calc(var(--fh) * .55)/1 var(--display); margin-left: 2px; }
.board__label { display: inline-block; margin-top: 12px; font: 400 .8rem/1 var(--display); letter-spacing: .22em; text-transform: uppercase; color: #cfd6e4; padding: 6px 10px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 3px; }
@media (max-width: 760px) {
  .board__cells { grid-template-columns: repeat(2, 1fr); gap: 24px 12px; }
  .board__tiles { --fw: clamp(28px, 9vw, 40px); }
  .board__bulbs i:nth-child(n+8) { display: none; }
}
@media (prefers-reduced-motion: reduce) { .board__bulbs i { animation: none; } .board__bulbs i:nth-child(odd) { background: #ffb38f; } }

/* ===================================================================
   Signature Calls: baseball-card tiles that flip to a stat back
   =================================================================== */
.video-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.bcard { position: relative; perspective: 1400px; }
.bcard[hidden] { display: none; }
.bcard__inner { position: relative; height: 100%; display: grid; transform-style: preserve-3d; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.bcard.is-flipped .bcard__inner { transform: rotateY(180deg); }
@media (hover: hover) and (pointer: fine) {
  .bcard:hover .bcard__inner { transform: rotateY(180deg); transition-delay: .25s; }
}
.bcard__face { grid-area: 1 / 1; position: relative; border-radius: 14px; padding: 10px; display: flex; flex-direction: column; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  background: linear-gradient(160deg, #f6f1e4, #e7dfcc); color: #0a1020; box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .8); }
.bcard__back { transform: rotateY(180deg); }
.bcard__photo { position: relative; aspect-ratio: 4 / 4.4; border-radius: 8px; overflow: hidden; background: #000; border: 3px solid #0c2340; }
.bcard__photo img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }
.bcard__photo img.is-lb { top: -16.7%; height: 133.4%; }              /* hqdefault thumbnails carry letterbox bars: crop them */
.bcard__banner { position: absolute; top: 14px; left: -36px; transform: rotate(-35deg); background: var(--accent); color: #fff; font: 400 .72rem/1 var(--display);
  letter-spacing: .2em; padding: 6px 42px; box-shadow: 0 4px 10px rgba(0, 0, 0, .3); text-transform: uppercase; }
.bcard__ball { position: absolute; right: 10px; bottom: 10px; width: 40px; height: 40px; transition: transform .25s; }
.bcard__ball svg { width: 100%; height: 100%; display: block; }
.bcard__plate { position: relative; margin-top: 10px; padding: 9px 11px 8px; border-radius: 6px; background: #0c2340; color: #fff; }
.bcard__plate h3 { font: 400 clamp(.95rem, 1.25vw, 1.15rem)/1.08 var(--display); text-transform: uppercase; letter-spacing: .02em; padding-right: 26px; }
.bcard__plate p { margin: 4px 0 0; font-size: .66rem; color: #c9d1e3; letter-spacing: .06em; text-transform: uppercase; line-height: 1.35; }
.bcard__no { position: absolute; right: 8px; top: -15px; width: 32px; height: 32px; border-radius: 50%; background: var(--accent); color: #fff; font: 400 .82rem/28px var(--display); text-align: center; border: 2px solid #f6f1e4; }
.bcard__backin { flex: 1; display: flex; flex-direction: column; border: 3px solid #0c2340; border-radius: 8px; padding: 14px 14px 10px; color: #0c2340;
  background: repeating-linear-gradient(0deg, transparent 0 22px, rgba(12, 35, 64, .06) 22px 23px); }
.bcard__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; border-bottom: 2px solid #0c2340; padding: 0 34px 8px 0; }   /* room for the flip button */
.bcard__head b { font: 400 1.25rem/1 var(--display); letter-spacing: .02em; }
.bcard__head span { font: 400 .78rem/1 var(--display); color: #fff; background: var(--accent); border-radius: 4px; padding: 4px 8px; letter-spacing: .1em; }
.bcard__back h4 { font: 400 1.05rem/1.12 var(--display); text-transform: uppercase; margin: 12px 0 8px; }
.bcard__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)); gap: 0 10px; margin: 0; font-size: .72rem; }
.bcard__stats dt { font: 400 .62rem/1 var(--display); letter-spacing: .14em; color: #6b7690; text-transform: uppercase; padding: 4px 0; border-bottom: 1px solid rgba(12, 35, 64, .25); }
.bcard__stats dd { margin: 0; padding: 6px 0; font-weight: 600; }
.bcard__back p { font-size: .76rem; line-height: 1.45; color: #2a3550; margin: 10px 0 0; font-style: italic; }
.bcard__foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; font: 400 .72rem/1 var(--display); letter-spacing: .14em; text-transform: uppercase; }
.bcard__foot b { color: var(--accent); font-weight: 400; }
.bcard__hit { position: absolute; inset: 0; z-index: 2; border: 0; padding: 0; background: none; cursor: pointer; border-radius: 14px; }
.bcard__hit:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.bcard__flip { position: absolute; z-index: 3; top: 8px; right: 8px; width: 34px; height: 34px; border-radius: 50%; border: 0; display: grid; place-items: center; cursor: pointer;
  background: rgba(10, 16, 32, .78); color: #fff; backdrop-filter: blur(6px); }
.bcard__flip svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (hover: hover) and (pointer: fine) { .bcard__flip { opacity: 0; } .bcard__flip:focus-visible { opacity: 1; } }
.bcard:hover .bcard__ball { transform: scale(1.1); }
@media (max-width: 1080px) { .video-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .video-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; } .bcard__face { padding: 7px; } .bcard__plate { padding: 7px 8px 6px; margin-top: 7px; } .bcard__plate h3 { font-size: .8rem; padding-right: 18px; } .bcard__plate p { font-size: .55rem; } .bcard__no { width: 26px; height: 26px; font-size: .7rem; line-height: 22px; top: -12px; } .bcard__banner { font-size: .6rem; padding: 5px 40px; top: 10px; }
  .bcard__ball { width: 32px; height: 32px; } .bcard__back h4 { font-size: .9rem; } .bcard__back p { font-size: .68rem; } .bcard__backin { padding: 10px; } }
@media (prefers-reduced-motion: reduce) { .bcard__inner { transition: none; } }

/* ===================================================================
   Listen rows: SoundCloud broadcasts and podcast players, loaded on tap
   =================================================================== */
.listen-list { list-style: none; padding: 0; margin: 24px 0 26px; border-top: 1px solid var(--line); }
.listen { border-bottom: 1px solid var(--line); }
.listen__btn { width: 100%; display: flex; align-items: center; gap: 14px; padding: 14px 4px; background: none; border: 0; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.listen__ball { flex: none; width: 42px; height: 42px; transition: transform .25s; }
.listen__ball svg { width: 100%; height: 100%; display: block; }
.listen__close { display: none; }
.listen.is-open .listen__play { display: none; }
.listen.is-open .listen__close { display: inline; }
.listen__btn:hover .listen__ball { transform: scale(1.08); }
.listen__txt { flex: 1; min-width: 0; display: grid; gap: 2px; }
.listen__txt time { font-size: .74rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.listen__txt b { font-weight: 600; line-height: 1.3; }
.listen__txt small { color: var(--muted); font-size: .84rem; }
.listen__kind { flex: none; font: 400 .72rem/1 var(--display); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; padding: 6px 10px; }
.listen.is-open .listen__kind { color: #fff; border-color: var(--accent); background: rgba(255, 90, 31, .15); }
.listen__player { display: none; padding: 0 0 14px; }
.listen.is-open .listen__player { display: block; }
.listen__player iframe { display: block; width: 100%; border: 0; border-radius: 10px; background: #fff; }
.listen-list--pods { margin: 0; }
@media (max-width: 640px) { .listen__kind { display: none; } .listen__ball { width: 38px; height: 38px; } }

/* card front: VIDEO tag; play ball lives on the back */
.bcard__type { position: absolute; right: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px 6px 8px; border-radius: 999px;
  background: rgba(10, 16, 32, .82); color: #fff; font: 400 .7rem/1 var(--display); letter-spacing: .18em; text-transform: uppercase; backdrop-filter: blur(6px); }
.bcard__type::before { content: ""; border-left: 7px solid var(--accent); border-top: 4.5px solid transparent; border-bottom: 4.5px solid transparent; }
.bcard__foot .bcard__ball { position: static; width: 44px; height: 44px; }
.bcard:hover .bcard__foot .bcard__ball { transform: scale(1.08); }
@media (max-width: 760px) { .bcard__type { font-size: .58rem; padding: 5px 8px 5px 7px; right: 7px; bottom: 7px; } .bcard__foot .bcard__ball { width: 34px; height: 34px; } }

/* ===================================================================
   Press-release flip book
   =================================================================== */
.book-wrap { display: grid; justify-items: center; gap: 22px; overflow-x: clip; padding: 4px 0 30px; }
.book { --bw: min(1000px, 100%); position: relative; width: var(--bw); aspect-ratio: 1224 / 792; perspective: 2600px; outline: none;
  transform: translateX(var(--shift, -25%)); transition: transform .9s cubic-bezier(.3, .1, .2, 1); }
.book__leaf { position: absolute; left: 50%; top: 0; width: 50%; height: 100%; transform-origin: 0 50%; transform-style: preserve-3d;
  transition: transform .9s cubic-bezier(.3, .1, .2, 1); cursor: pointer; }
.book__leaf.is-turned { transform: rotateY(-180deg); }
.book__face { position: absolute; inset: 0; overflow: hidden; background: #fbfaf7; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  border-radius: 0 6px 6px 0; box-shadow: 0 30px 50px -30px rgba(0, 0, 0, .8), inset 14px 0 18px -14px rgba(0, 0, 0, .25); container-type: inline-size; }
.book__back { transform: rotateY(180deg); border-radius: 6px 0 0 6px; box-shadow: 0 30px 50px -30px rgba(0, 0, 0, .8), inset -14px 0 18px -14px rgba(0, 0, 0, .25); }
.book__face > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.book__cover { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 17cqw 11cqw 9cqw; color: #fff;
  background: radial-gradient(120% 70% at 50% 110%, #1c2b55 0%, #0b1428 60%), #0b1428; border: 1px solid #1c2b4f; }
.book__cover::before { content: ""; position: absolute; inset: 3.4cqw; border: 1px solid rgba(255, 255, 255, .14); border-radius: 3px; pointer-events: none; }
.book__tag { position: absolute; top: 9cqw; left: 11cqw; font: 600 2.4cqw/1 var(--body); letter-spacing: .3em; text-transform: uppercase; color: var(--accent); }
.book__cover .lockup { width: 34cqw; color: #fff; }
.book__rule { display: block; width: 34cqw; height: .7cqw; background: var(--accent); margin: 4cqw 0 5cqw; }
.book__cover h3 { font: 400 17cqw/.9 var(--display); text-transform: uppercase; letter-spacing: .01em; }
.book__cover p { margin: 4cqw 0 0; font: 600 2.8cqw/1.5 var(--body); letter-spacing: .14em; text-transform: uppercase; color: #c9d1e3; }
.book__stitch { display: block; height: 4cqw; margin-top: auto;
  background: repeating-linear-gradient(65deg, transparent 0 2.2cqw, var(--accent) 2.2cqw 2.9cqw, transparent 2.9cqw 4.6cqw) top / 100% 45% no-repeat,
              repeating-linear-gradient(115deg, transparent 0 2.2cqw, var(--accent) 2.2cqw 2.9cqw, transparent 2.9cqw 4.6cqw) bottom / 100% 45% no-repeat; opacity: .9; }
.book__cover small { margin-top: 3cqw; font: 600 2.2cqw/1 var(--body); letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }
.book__cover--back { align-items: center; text-align: center; border-radius: inherit; }
.book__cover--back .lockup { width: 22cqw; }
.book__cover--back .book__rule { width: 22cqw; margin: 3.5cqw auto 4cqw; }
.book__cover--back a { margin-top: 3cqw; color: #fff; font: 600 3.2cqw/1 var(--body); text-decoration: none; border-bottom: .5cqw solid var(--accent); padding-bottom: 1cqw; }
.book__contents { position: absolute; inset: 0; padding: 12cqw 11cqw; color: #0c2340; background: #f6f1e4; display: flex; flex-direction: column; }
.book__contents h4 { font: 400 7cqw/1 var(--display); text-transform: uppercase; letter-spacing: .04em; padding-bottom: 3cqw; border-bottom: .5cqw solid #0c2340; }
.book__contents ol { list-style: none; padding: 0; margin: 4cqw 0 0; }
.book__contents li { display: grid; grid-template-columns: 1fr auto; gap: .6cqw 4cqw; padding: 3.4cqw 0; border-bottom: 1px solid rgba(12, 35, 64, .18); }
.book__contents li span { font: 600 3.3cqw/1.3 var(--body); text-wrap: balance; }
.book__contents li small { grid-column: 1; font: 500 2.5cqw/1 var(--body); color: #6b7690; letter-spacing: .06em; text-transform: uppercase; }
.book__contents li b { grid-row: 1 / span 2; grid-column: 2; align-self: center; font: 400 5cqw/1 var(--display); color: var(--accent); }
.book__contents p { margin-top: auto; font: italic 2.7cqw/1.5 var(--body); color: #2a3550; text-wrap: pretty; }
.book-ctrl { display: flex; align-items: center; gap: 12px; }
.book-ctrl__btn { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .04); color: #fff; display: grid; place-items: center; cursor: pointer; transition: border-color .2s, background .2s; }
.book-ctrl__btn:hover:not(:disabled) { border-color: var(--accent); background: rgba(255, 90, 31, .15); }
.book-ctrl__btn:disabled { opacity: .35; cursor: default; }
.book-ctrl__btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.book-ctrl__count { min-width: 120px; text-align: center; font: 400 .9rem/1 var(--display); letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.book-ctrl__pdf { margin-left: 8px; display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font: 600 .85rem var(--body); text-decoration: none; }
.book-ctrl__pdf svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.book-ctrl__pdf:hover { color: #fff; }
.page-zoom { max-width: min(860px, 96vw); max-height: 94vh; padding: 0; border: 0; background: #fff; border-radius: 8px; overflow: auto; }
.page-zoom::backdrop { background: rgba(4, 7, 15, .88); }
.page-zoom img { display: block; width: 100%; height: auto; }
.page-zoom__close { position: sticky; top: 8px; float: right; margin: 8px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #0a1020; color: #fff; font-size: 1.5rem; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .book, .book__leaf { transition: none; } }

/* Hero block scales as one unit with the logo width (--lw) */
.hero .eyebrow { white-space: nowrap; font-size: calc(var(--lw) * .03); letter-spacing: .2em; padding: calc(var(--lw) * .022) calc(var(--lw) * .04); gap: calc(var(--lw) * .025); }
.hero .eyebrow .live-dot { width: calc(var(--lw) * .018); height: calc(var(--lw) * .018); }
.hero__role { white-space: nowrap; font-size: calc(var(--lw) * .0565); letter-spacing: .06em; }
.hero__lede { max-width: var(--lw); font-size: clamp(.95rem, calc(var(--lw) * .04), 1.15rem); line-height: 1.45; }
[data-fit].is-fit { white-space: nowrap; }
[data-fit] .fit-line { display: block; width: max-content; }

.bcard__front .bcard__photo { flex: 1 0 auto; }                      /* extra height goes to the photo, not the nameplate */
@media (max-width: 760px) {
  .bcard__head b { font-size: 1rem; }
  .bcard__head span { font-size: .62rem; padding: 3px 6px; }
  .bcard__back h4 { margin: 8px 0 4px; font-size: .82rem; }
  .bcard__stats { grid-template-columns: 1fr; }
  .bcard__stats dt { font-size: .55rem; padding: 3px 0; }
  .bcard__stats dd { padding: 3px 0 5px; font-size: .68rem; }
  .bcard__back p { font-size: .64rem; margin-top: 6px; }
  .bcard__flip { width: 30px; height: 30px; top: 6px; right: 6px; }
  .bcard__flip svg { width: 15px; height: 15px; }
  .bcard__head { padding-right: 28px; }
}

/* Calls toolbar */
.calls-bar { margin-bottom: 32px; }
.calls-bar .filters { margin-bottom: 0; }

/* Every card keeps the same trading-card proportion; the photo absorbs the difference */
.bcard__inner { aspect-ratio: 5 / 7; }
.swipe-bar { display: none; }

/* Phones: a swipeable row of cards that snaps one at a time, next card peeking in */
@media (max-width: 760px) {
  .video-grid { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    margin: 0; padding: 4px var(--gut) 18px; scroll-padding: 0 var(--gut);   /* row spans the screen; 16px gutter matches the page */ scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .video-grid::-webkit-scrollbar { display: none; }
  .video-grid .bcard { flex: 0 0 78%; scroll-snap-align: center; }
  .video-grid.is-collapsed .bcard.is-extra { display: block; }
  .more-videos { display: none !important; }
  .bcard__face { padding: 10px; }
  .bcard__plate { padding: 10px 12px 9px; margin-top: 10px; }
  .bcard__plate h3 { font-size: 1.12rem; padding-right: 30px; }
  .bcard__plate p { font-size: .66rem; }
  .bcard__no { width: 32px; height: 32px; font-size: .82rem; line-height: 28px; top: -15px; }
  .bcard__banner { font-size: .7rem; padding: 6px 42px; top: 14px; }
  .bcard__type { font-size: .68rem; padding: 6px 10px 6px 8px; right: 10px; bottom: 10px; }
  .bcard__backin { padding: 14px; }
  .bcard__head b { font-size: 1.25rem; }
  .bcard__head span { font-size: .76rem; padding: 4px 8px; }
  .bcard__back h4 { font-size: 1.05rem; margin: 12px 0 8px; }
  .bcard__stats { grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); }
  .bcard__stats dt { font-size: .6rem; padding: 4px 0; } .bcard__stats dd { font-size: .8rem; padding: 5px 0; }
  .bcard__back p { font-size: .82rem; margin-top: 10px; }
  .bcard__foot .bcard__ball { width: 44px; height: 44px; }
  .bcard__flip { width: 34px; height: 34px; top: 8px; right: 8px; }
  .bcard__head { padding-right: 34px; }
  .swipe-bar { display: block; height: 3px; margin: 2px auto 0; width: 120px; border-radius: 3px; background: rgba(255, 255, 255, .14); overflow: hidden; }
  .swipe-bar span { display: block; height: 100%; width: 20%; border-radius: inherit; background: var(--accent); transition: transform .15s linear; }
}

/* ===================================================================
   Signature Calls: one row of cards. Desktop pins the section and slides
   the row with vertical scroll; phones swipe; reduced motion scrolls natively.
   =================================================================== */
.bcard__playbig { position: absolute; left: 50%; top: 50%; width: 76px; height: 76px; transform: translate(-50%, -50%); border-radius: 50%;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .45), 0 0 0 6px rgba(255, 255, 255, .18); transition: transform .25s ease, box-shadow .25s ease; pointer-events: none; }
.bcard__playbig svg { width: 100%; height: 100%; display: block; }
.bcard:hover .bcard__playbig { transform: translate(-50%, -50%) scale(1.08); box-shadow: 0 12px 36px rgba(0, 0, 0, .5), 0 0 0 8px rgba(255, 90, 31, .35); }
.calls-foot { display: grid; justify-items: center; gap: 18px; }
.calls-row { position: relative; }

@media (min-width: 761px) {
  .section--flight { padding-bottom: clamp(50px, 6vw, 90px); }
  .calls-pin .section__head { margin-bottom: 18px; }
  .calls-pin .section__head .section__sub { margin-top: 8px; }
  .calls-pin .calls-bar { margin-bottom: 22px; }
  .video-grid { display: flex; gap: 34px; width: max-content; padding: 6px max(var(--gut), calc((100vw - var(--wrap)) / 2)) 10px; }
  .video-grid .bcard { flex: 0 0 var(--cw, 280px); }
  .video-grid.is-collapsed .bcard.is-extra { display: block; }
  .more-videos { display: none !important; }
  .swipe-bar { display: block; height: 3px; width: 160px; border-radius: 3px; background: rgba(255, 255, 255, .14); overflow: hidden; margin-top: 18px; }
  .swipe-bar span { display: block; height: 100%; width: 20%; border-radius: inherit; background: var(--accent); }
  /* fallback: native horizontal scroll */
  .calls-scroll:not(.is-pinned) .calls-row { overflow-x: auto; scrollbar-width: thin; }
}
@media (max-width: 760px) {
  .bcard__playbig { width: 62px; height: 62px; }
  .calls-foot .swipe-bar { margin-top: 2px; }
}
@media (min-width: 761px) and (max-height: 820px) {
  .calls-scroll.is-pinned .section__sub { display: none; }
  .calls-scroll.is-pinned .section__head { margin-bottom: 12px; }
  .calls-scroll.is-pinned .section__head h2 { font-size: clamp(2rem, 4vw, 3rem); }
}

.hero__actions .btn { white-space: nowrap; }
/* Hero buttons share the logo width, side by side at every size */
.hero__actions { display: grid; grid-template-columns: 1.3fr 1fr; gap: 10px; width: var(--lw); }
.hero__actions .btn { padding: 0 12px; min-width: 0; font-size: clamp(.82rem, calc(var(--lw) * .034), .95rem); gap: .45em; }

/* Pinned card row (all widths, motion allowed): the section sticks and the row slides with vertical scroll */
.calls-scroll.is-pinned { height: var(--track); }
.calls-scroll.is-pinned .calls-pin { position: sticky; top: var(--nav-h); height: calc(100svh - var(--nav-h)); display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.calls-scroll.is-pinned .calls-row { overflow: hidden; overflow: clip visible; }
.calls-scroll.is-pinned .video-grid { position: relative; }   /* moved via left (main.js): iOS blanks very wide transformed layers */
.svh-probe { position: fixed; top: 0; left: -10px; width: 1px; height: 100svh; visibility: hidden; pointer-events: none; }
@media (max-width: 760px) {
  .calls-scroll.is-pinned .video-grid { overflow: visible; scroll-snap-type: none; width: max-content; gap: 18px; padding: 4px var(--gut) 12px; }
  .calls-scroll.is-pinned .video-grid .bcard { flex: none; min-width: 0; max-width: none;
    width: max(180px, min(72vw, 300px, calc((100vh - 360px) / 1.4)));
    width: max(180px, min(72vw, 300px, calc((100svh - 360px) / 1.4))); }   /* explicit width: a flex basis alone let Safari stretch cards into each other */
  .calls-scroll.is-pinned .section__head { margin-bottom: 12px; }
  .calls-scroll.is-pinned .section__head .kicker { margin-bottom: 6px; }
  .calls-scroll.is-pinned .section__head h2 { font-size: 2.2rem; }
  .calls-scroll.is-pinned .section__sub { display: none; }
  .calls-scroll.is-pinned .calls-bar { margin-bottom: 14px; }
  .calls-scroll.is-pinned .filters { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--gut)); padding: 0 var(--gut) 2px; }
  .calls-scroll.is-pinned .filters::-webkit-scrollbar { display: none; }
  .calls-scroll.is-pinned .chip { flex: none; padding: 10px 15px; }
}
.contact__inner { position: relative; z-index: 1; }

/* Row affordances: hint, progress, counter, first-view nudge */
.row-meta { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 14px; font: 400 .78rem/1 var(--display); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.row-meta .swipe-bar { margin: 0 !important; display: block; }
.row-count b { color: #fff; font-weight: 400; }
.row-hint { display: inline-flex; align-items: center; gap: 8px; color: #fff; transition: opacity .4s ease; }
.row-hint svg { width: 16px; height: 16px; fill: none; stroke: var(--accent); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; animation: hint-nudge 1.2s ease-in-out infinite; }
@keyframes hint-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
.row-hint__wheel { display: none; }
@media (hover: hover) and (pointer: fine) { .row-hint__touch { display: none; } .row-hint__wheel { display: inline; } }
.row-meta.is-moving .row-hint { opacity: 0; }
.video-grid.is-nudge .bcard { animation: card-nudge 1.1s cubic-bezier(.3, .1, .2, 1) both; }
.video-grid.is-nudge .bcard:nth-child(2) { animation-delay: .05s; } .video-grid.is-nudge .bcard:nth-child(3) { animation-delay: .1s; }
@keyframes card-nudge { 0% { transform: translateX(0); } 40% { transform: translateX(-48px); } 100% { transform: translateX(0); } }
@media (max-width: 760px) { .row-meta { gap: 12px; font-size: .7rem; } .row-meta .swipe-bar { width: 90px; } }
@media (prefers-reduced-motion: reduce) { .row-hint svg { animation: none; } .video-grid.is-nudge .bcard { animation: none; } }

/* Hero column: flush to the right edge of the page on desktop, centered on tablet and phone */
.hero--right .hero__content { padding-left: 0; align-items: flex-end; }
.hero--right .hero__content > * { width: var(--lw); max-width: 100%; }
@media (max-width: 900px) {
  .hero--right .hero__content { align-items: center; }
  .hero__lede { text-align: center; margin-inline: auto; }
  .hero--right .hero__content > :is(.socials, .hero__replay) { justify-content: center; }
}

/* Full Broadcasts: photo on the left stays put while the list scrolls past it */
@media (min-width: 901px) {
  #full-games .split { align-items: start; grid-template-columns: 1fr 1.05fr; }
  #full-games .split__media { order: 0; position: sticky; top: calc(var(--nav-h) + 32px); }
}

/* Footer ballpark: lighter top fade so the upper deck and lights read */
.ballpark::before { height: 24%; background: linear-gradient(180deg, rgba(11, 19, 41, .8), rgba(11, 19, 41, 0)); }
.ballpark .ill .soft { opacity: .55; }
.ballpark .ill .faint { opacity: .3; }
#full-games .split__head { margin-bottom: clamp(20px, 3vw, 32px); }
#full-games .split__intro { color: var(--muted); margin-top: 14px; max-width: 46ch; }
@media (min-width: 901px) {
  #full-games .split__media img { aspect-ratio: 16 / 11; max-height: calc(100svh - var(--nav-h) - 64px - 260px); min-height: 220px; }
  #full-games .split__media .tag { bottom: 16px; left: 16px; }
}

/* Responsive balance: roomier hero column and readable minimum sizes between phone and desktop */
.hero__content { --lw: clamp(300px, 36vw, 460px); }
.hero .eyebrow { font-size: max(11px, calc(var(--lw) * .03)); }
.hero .eyebrow .live-dot { width: max(6px, calc(var(--lw) * .018)); height: max(6px, calc(var(--lw) * .018)); }
.hero__lede { font-size: clamp(1rem, calc(var(--lw) * .042), 1.2rem); }
.hero__actions .btn { font-size: clamp(.9rem, calc(var(--lw) * .036), 1rem); }
@media (max-width: 1080px) { .contact__inner { grid-template-columns: 1fr minmax(0, 400px); gap: 40px; } }
@media (max-width: 900px) {
  .hero__content { --lw: min(540px, 84vw, calc((100svh - var(--nav-h) - 22svh - 130px) / 1.02)); }
  .contact__inner { grid-template-columns: 1fr; }
  .contact__inner .form { width: 100%; max-width: 620px; }
}
.hero__content { --lw: min(clamp(300px, 36vw, 460px), max(300px, 100svh - 470px)); }
.hero__role { font-size: calc(var(--lw) * .0555); }
@media (max-width: 900px) {
  .hero__content { --lw: min(540px, 84vw, calc((100svh - var(--nav-h) - 22svh - 130px) / 1.02)); }
}
/* Phones: the closed book (cover / back) is a single page, so show it larger */
@media (max-width: 640px) {
  .book { --grow: calc((100vw - 2 * var(--gut)) * .194);   /* the extra height scale(1.6) adds above and below */
    transition: transform .9s cubic-bezier(.3, .1, .2, 1), margin .9s cubic-bezier(.3, .1, .2, 1); }
  .book.is-closed { transform: scale(1.6) translateX(var(--shift, -25%)); margin: var(--grow) 0; }
  .footer nav { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 12px 28px; }
}

/* ===================================================================
   From the booth: Instagram reels (poster tiles, the post opens in the modal)
   =================================================================== */
.social__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.social__head .section__head { margin-bottom: 0; }
.social__follow { flex: none; }
.social__follow svg, .reel__tag svg { width: 18px; height: 18px; }
.reels { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.reel { position: relative; display: block; width: 100%; aspect-ratio: 9 / 16; padding: 0; border: 0; border-radius: 18px; overflow: hidden; cursor: pointer; background: #000; color: #fff; text-align: left; isolation: isolate;
  box-shadow: 0 18px 40px -22px rgba(0, 0, 0, .8); transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s; }
.reel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.reel::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8, 12, 24, .35) 0%, rgba(8, 12, 24, 0) 22%, rgba(8, 12, 24, 0) 52%, rgba(8, 12, 24, .92) 100%); }
.reel__tag { position: absolute; top: 12px; left: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px 5px 8px; border-radius: 999px; background: rgba(8, 12, 24, .55); backdrop-filter: blur(6px); font: 600 .72rem/1 var(--body); letter-spacing: .04em; }
.reel__tag svg { width: 14px; height: 14px; }
.reel__play { position: absolute; left: 50%; top: 46%; width: 54px; height: 54px; transform: translate(-50%, -50%); border-radius: 50%; box-shadow: 0 0 0 6px rgba(8, 12, 24, .35); transition: transform .3s; }
.reel__play svg { width: 100%; height: 100%; display: block; }
.reel__txt { position: absolute; left: 14px; right: 14px; bottom: 14px; display: grid; gap: 4px; }
.reel__txt b { font: 400 1.05rem/1.05 var(--display); text-transform: uppercase; letter-spacing: .02em; text-wrap: balance; }
.reel__txt small { font-size: .74rem; color: rgba(255, 255, 255, .72); }
.reel:hover, .reel:focus-visible { transform: translateY(-4px); box-shadow: 0 26px 50px -22px rgba(0, 0, 0, .9); }
.reel:hover img { transform: scale(1.04); }
.reel:hover .reel__play { transform: translate(-50%, -50%) scale(1.08); }
.reel:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.modal.is-ig { width: min(420px, 94vw); }
.modal.is-ig .modal__frame { aspect-ratio: auto; height: min(780px, calc(100svh - 140px)); background: #fff; }
@media (max-width: 1080px) { .reels { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) {
  .social__head { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
  .reels { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(-1 * var(--gut)); padding: 4px var(--gut) 14px; scroll-padding: 0 var(--gut); scrollbar-width: none; }
  .reels::-webkit-scrollbar { display: none; }
  .reels li { flex: 0 0 min(58vw, 240px); scroll-snap-align: start; }
}
/* Card plates: same height on every card (title always reserves two lines, meta stays on one) */
.bcard__plate h3 { min-height: calc(2em * 1.08); display: flex; align-items: flex-end; }
.bcard__plate p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.reel__play { left: auto; right: 12px; top: 12px; width: 40px; height: 40px; transform: none; box-shadow: 0 0 0 4px rgba(8, 12, 24, .35); }
.reel:hover .reel__play { transform: scale(1.08); }
.modal__title a { color: var(--accent); margin-left: 10px; font-weight: 600; text-decoration: none; white-space: nowrap; }

/* Press releases: a 3D championship ring and baseball floating behind the content (assets/js/press-bg.js) */
.has-press3d { position: relative; overflow: clip; }
.has-press3d > .wrap { position: relative; z-index: 1; }
.press3d { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; opacity: 0; transition: opacity 1.2s ease; }
.press3d.is-ready { opacity: .75; }
#full-games .split__media img { object-position: 50% 8%; }   /* keep both heads in frame */

/* Section background objects (assets/js/bg3d.js) */
.has-bg3d { position: relative; overflow: clip; }
.has-bg3d > .wrap { position: relative; z-index: 1; }
.bg3d { position: absolute; pointer-events: none; z-index: 0; aspect-ratio: 1; opacity: 0; transition: opacity 1.2s ease; }
.bg3d.is-ready { opacity: .7; }
.bg3d--headset { width: clamp(300px, 30vw, 460px); top: 30px; right: max(-60px, calc((100vw - 1200px) / 2 - 180px)); }
.bg3d--plate { width: clamp(260px, 24vw, 380px); top: 40px; right: max(-30px, calc((100vw - 1200px) / 2 - 40px)); }
.bg3d--scorecard { width: clamp(260px, 26vw, 400px); top: 2%; right: max(-40px, calc((100vw - 1200px) / 2 - 80px)); }
@media (max-width: 760px) {
  .bg3d { opacity: 0; }
  .bg3d.is-ready { opacity: .45; }
  .bg3d--headset { width: 200px; top: 10px; right: -50px; }
  .bg3d--plate { width: 170px; top: 20px; right: -40px; }
  .bg3d--scorecard { width: 180px; top: 10px; right: -50px; }
}
/* Footer ballpark: a compact centred drawing; its ground line runs edge to edge */
.ballpark { --bw: min(100vw - 32px, 880px); height: calc(var(--bw) * 470 / 1200 + 50px); margin-top: calc(-1 * clamp(20px, 3vw, 50px)); }
.ballpark .ill { width: var(--bw); min-width: 0; overflow: visible; stroke-width: 1.4; }
.ballpark .ill * { vector-effect: non-scaling-stroke; }
.ballpark::before { display: none; }
/* Phone card row hardening (iOS Safari):
   - cards keep a strict 5:7 box: no stretching to the row height, photo absorbs leftovers
   - content sits at the top of the pinned area so Safari's floating bottom bar can't cover it */
@media (max-width: 760px) {
  .calls-scroll.is-pinned .video-grid { align-items: flex-start; }
  .calls-scroll.is-pinned .video-grid .bcard { align-self: flex-start; height: auto;
    width: max(170px, min(calc((100vw - var(--gut) - 18px) / 1.25), 340px, calc((100vh - 340px) / 1.4)));
    width: max(170px, min(calc((100vw - var(--gut) - 18px) / 1.25), 340px, calc((100svh - 340px) / 1.4))); }   /* one card and a quarter of the next */
  .calls-scroll.is-pinned .bcard__inner { height: auto; aspect-ratio: 5 / 7; }
  .calls-scroll.is-pinned .bcard__face { min-height: 0; }   /* no overflow clip here: it flattens the 3D flip in Safari */
  .calls-scroll.is-pinned .bcard__front .bcard__photo { flex: 1 1 0; min-height: 0; aspect-ratio: auto; }
  .calls-scroll.is-pinned .calls-pin { justify-content: flex-start; padding-top: 18px; }
}
/* Intro gate: the hero lockup (eyebrow, GREG/GANIA, full-width rule, role line) without the ball */
.gate-lock { --lw: min(300px, 70vw); width: var(--lw); margin: 0 auto 34px; }
.gate-lock .intro-gate__mark { width: 100%; margin: 0; }
.gate-lock__eyebrow { display: flex; justify-content: center; align-items: center; gap: calc(var(--lw) * .025); margin: 0 0 calc(var(--lw) * .05) !important;
  padding: calc(var(--lw) * .022) calc(var(--lw) * .04); border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; background: rgba(10, 16, 32, .4);
  font: 600 max(11px, calc(var(--lw) * .03))/1 var(--body) !important; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .85) !important; white-space: nowrap; }
.gate-lock__eyebrow .live-dot { width: max(6px, calc(var(--lw) * .018)); height: max(6px, calc(var(--lw) * .018)); }
.gate-lock__role { position: relative; margin: calc(var(--lw) * .04) 0 0 !important; padding-top: calc(var(--lw) * .045);
  font: 400 calc(var(--lw) * .064)/1.1 var(--display) !important; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; text-align: justify; text-align-last: justify; }   /* spans the logo width */
.gate-lock__role::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--accent); }
.gate-lock__role i { color: var(--accent); font-style: normal; margin: 0 .3em; }
/* Intro gate entrance: eyebrow, GREG, GANIA, the rule drawing across, role line, then the button */
@keyframes gl-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes gl-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gl-rule { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.gate-lock__eyebrow { animation: gl-fade .5s ease both .05s; }
.gate-lock .gl-greg, .gate-lock .gl-gania { transform-box: fill-box; animation: gl-up .6s cubic-bezier(.2, .7, .2, 1) both; }
.gate-lock .gl-greg { animation-delay: .15s; } .gate-lock .gl-gania { animation-delay: .3s; }
.gate-lock__role::before { transform-origin: left; animation: gl-rule .5s cubic-bezier(.3, .1, .2, 1) both .6s; }
.gate-lock__role { animation: gl-text .45s ease both .85s; }
@keyframes gl-text { from { color: transparent; } }
.intro-gate__play { animation: gl-up .5s cubic-bezier(.2, .7, .2, 1) both 1s; }
.intro-gate p:not([class]), .intro-gate__skip { animation: gl-fade .5s ease both 1.2s; }
@media (prefers-reduced-motion: reduce) { .gate-lock *, .gate-lock__role::before, .intro-gate__play, .intro-gate__skip, .intro-gate p { animation: none !important; } }
.intro-gate .gate-lock__role { color: #fff; }   /* not !important, so the text fade-in can run */
.gate-lock__role i { animation: gl-fade .45s ease both .85s; }
/* Flip book: let a turning page swing past the book's edges (the section itself clips at the screen edge) */
.book-wrap { overflow: visible; }
.has-press3d { overflow-x: clip; overflow-y: visible; }
/* Phone card backs: compact one-line stat rows, and the framed panel never spills past the card */
@media (max-width: 760px) {
  .calls-scroll.is-pinned .bcard__backin { min-height: 0; overflow: hidden; padding: 10px 12px 8px; }
  .calls-scroll.is-pinned .bcard__head { padding: 0 32px 6px 0; }
  .calls-scroll.is-pinned .bcard__head b { font-size: 1.05rem; }
  .calls-scroll.is-pinned .bcard__back h4 { margin: 8px 0 6px; font-size: .9rem; }
  .calls-scroll.is-pinned .bcard__stats { display: grid; grid-template-columns: 1fr; gap: 0; }
  .calls-scroll.is-pinned .bcard__stats > div { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; border-bottom: 1px solid rgba(12, 35, 64, .2); padding: 5px 0; }
  .calls-scroll.is-pinned .bcard__stats dt { border: 0; padding: 0; font-size: .58rem; flex: none; }
  .calls-scroll.is-pinned .bcard__stats dd { padding: 0; font-size: .72rem; text-align: right; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .calls-scroll.is-pinned .bcard__back p { font-size: .66rem; margin-top: 8px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .calls-scroll.is-pinned .bcard__foot { padding-top: 6px; }
}
@media (max-width: 760px) {
  .calls-scroll.is-pinned .bcard__head b, .calls-scroll.is-pinned .bcard__head span { white-space: nowrap; }
  .calls-scroll.is-pinned .bcard__head { gap: 6px; }
}
@media (max-width: 760px) {
  .calls-scroll.is-pinned .bcard__stats { grid-template-columns: minmax(0, 1fr); }
  .calls-scroll.is-pinned .bcard__backin > * { min-width: 0; }
}
/* Card flip, flat: the card squeezes to its edge, the faces swap at the midpoint, it widens back out.
   No 3D transforms, so mobile Safari has nothing to mis-layer (no flicker, no vanishing cards). */
.video-grid .bcard .bcard__inner { transform: none; transition: none; transform-style: flat; }   /* beats the old rotate rules; animations still apply */
.video-grid .bcard .bcard__front, .video-grid .bcard .bcard__back { transform: none; }
.bcard__back { visibility: hidden; }
.bcard.is-flipped .bcard__front { visibility: hidden; }
.bcard.is-flipped .bcard__back { visibility: visible; }
.bcard.was-flipped.is-flipped .bcard__inner { animation: card-squeeze-a .46s cubic-bezier(.45, 0, .55, 1); }
.bcard.was-flipped:not(.is-flipped) .bcard__inner { animation: card-squeeze-b .46s cubic-bezier(.45, 0, .55, 1); }
.bcard.was-flipped.is-flipped .bcard__front { animation: face-hide-a .46s step-end; }
.bcard.was-flipped.is-flipped .bcard__back { animation: face-show-a .46s step-end; }
.bcard.was-flipped:not(.is-flipped) .bcard__front { animation: face-show-b .46s step-end; }
.bcard.was-flipped:not(.is-flipped) .bcard__back { animation: face-hide-b .46s step-end; }
@keyframes card-squeeze-a { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(.02); } }
@keyframes card-squeeze-b { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(.02); } }
@keyframes face-hide-a { 0% { visibility: visible; } 50% { visibility: hidden; } }
@keyframes face-show-a { 0% { visibility: hidden; } 50% { visibility: visible; } }
@keyframes face-show-b { 0% { visibility: hidden; } 50% { visibility: visible; } }
@keyframes face-hide-b { 0% { visibility: visible; } 50% { visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .bcard .bcard__inner, .bcard .bcard__front, .bcard .bcard__back { animation: none !important; } }
/* Cards never grow wider than their set width: long one-line meta text can't push the face out */
.bcard__inner { grid-template-columns: minmax(0, 1fr); width: 100%; }
.bcard__face, .bcard__plate, .bcard__photo, .bcard__backin { min-width: 0; }
.bcard__plate h3, .bcard__plate p { min-width: 0; max-width: 100%; }
.split__note { margin: 12px 2px 0; font-size: .9rem; color: var(--muted); font-style: italic; }

/* ===================================================================
   Selected Work row (Greg's notes): no pinning. The page always scrolls down normally;
   the cards move only with the arrows, sideways swipes or sideways trackpad scrolling.
   =================================================================== */
.calls-scroll.is-pinned { height: auto; }
.calls-scroll.is-pinned .calls-pin { position: static; height: auto; overflow: visible; display: block; padding-top: 0; }
.calls-scroll.is-pinned .calls-row { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gut);
  overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; outline: none; }
@media (min-width: 761px) { .calls-scroll.is-pinned .calls-row { scroll-padding-inline: max(var(--gut), calc((100vw - var(--wrap)) / 2)); } }
.calls-scroll.is-pinned .calls-row::-webkit-scrollbar { display: none; }
.calls-scroll.is-pinned .video-grid { left: 0 !important; overflow: visible; width: max-content; }
.calls-scroll.is-pinned .video-grid .bcard { scroll-snap-align: start; }
.calls-scroll.is-pinned .section__sub { display: block !important; }
.calls-scroll .video-grid.is-collapsed .bcard.is-extra { display: block; }
.calls-scroll .more-videos { display: none !important; }
.row-meta { gap: 14px; margin-top: 18px; }
.row-meta .row-hint { display: none; }
.row-arrow { flex: none; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .04);
  color: #fff; display: grid; place-items: center; cursor: pointer; transition: background .2s, border-color .2s, opacity .2s; }
.row-arrow svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.row-arrow:hover:not(:disabled) { background: var(--accent); border-color: var(--accent); }
.row-arrow:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.row-arrow:disabled { opacity: .3; cursor: default; }
@media (max-width: 760px) { .row-arrow { width: 40px; height: 40px; } }
@media (max-width: 760px) {
  .calls-scroll.is-pinned .video-grid .bcard { width: min(calc((100vw - var(--gut) - 18px) / 1.25), 340px); }
}
.listen-group { margin: 26px 0 0; }
.split__body > .listen-group:first-child { margin-top: 0; }
.listen-group + .listen-list { margin-top: 12px; }
/* Behind the Mic crew photo: framed tight on the group (everyone head to toe), caption under it on phones */
.gallery__item--wide { aspect-ratio: auto; overflow: visible; background: none; border-radius: 0; }
.gallery__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--radius); background: var(--surface); }
.gallery__frame img { inset: auto; left: -16.08%; top: -53.75%; width: 136.25%; max-width: none; height: auto; object-fit: initial; transform-origin: 48% 60%; }
.gallery__item--wide figcaption { border-radius: 0 0 var(--radius) var(--radius); }
@media (max-width: 760px) {
  .gallery__frame { aspect-ratio: 4 / 3; }
  .gallery__frame img { left: -26.98%; top: -40.25%; width: 158.73%; }
  .gallery__item--wide figcaption { position: static; padding: 12px 2px 0; background: none; border-radius: 0; color: var(--muted); font-size: .9rem; }
}
.about__body .kicker { color: var(--accent); }
.form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.form__note[data-state="ok"] { color: #7fd99a; }
.form__note[data-state="error"] { color: #ff8a6a; }
.form button[disabled] { opacity: .7; cursor: progress; }

/* ===================================================================
   Behind the Mic photo slider (swipe, arrows, dots)
   =================================================================== */
.slider { position: relative; }
.slider__track { list-style: none; margin: 0; padding: 0; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; overscroll-behavior-x: contain; border-radius: var(--radius); outline: none; }
.slider__track::-webkit-scrollbar { display: none; }
.slider__track:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.slide { flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always; }
.slide figure { margin: 0; }
.slide__frame { position: relative; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--radius); background: var(--surface); }
.slide__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--pos, 50% 50%);
  transform: scale(var(--z, 1)); transform-origin: var(--pos, 50% 50%); }
.slide--portrait .slide__img { object-fit: contain; transform: none; }
.slide__bg { position: absolute; inset: -8%; width: 116%; height: 116%; max-width: none; object-fit: cover; filter: blur(28px) brightness(.55) saturate(1.1); }
.slide figcaption { padding: 14px 2px 0; font-weight: 600; font-size: .95rem; color: var(--muted); }
.slider__bar { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 18px; }
.slider__dots { display: flex; gap: 8px; }
.slider__dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .25); cursor: pointer; transition: background .2s, transform .2s; }
.slider__dots button[aria-selected="true"] { background: var(--accent); transform: scale(1.25); }
.slider__count { font: 400 .78rem/1 var(--display); letter-spacing: .18em; color: var(--muted); min-width: 52px; text-align: center; }
.slider__count b { color: #fff; font-weight: 400; }
@media (max-width: 760px) {
  .slider__track { margin: 0 calc(-1 * var(--gut)); border-radius: 0; scroll-padding: 0 var(--gut); }
  .slide { flex-basis: 100%; padding: 0 var(--gut); scroll-snap-align: center; }
  .slide__frame { aspect-ratio: 4 / 3; }
  .slider__dots { display: none; }
}
@media (prefers-reduced-motion: reduce) { .slider__track { scroll-behavior: auto; } }
