:root {
  --ink: #07100c;
  --ink-2: #0d1712;
  --paper: #f3f0e7;
  --paper-2: #e8e3d7;
  --white: #ffffff;
  --green: #174f35;
  --green-bright: #63d195;
  --muted: #a7b1aa;
  --line: rgba(255,255,255,.16);
  --dark-line: rgba(7,16,12,.17);
  --shadow: 0 30px 80px rgba(0,0,0,.22);
  --font-sans: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Manrope", var(--font-sans);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--white);
  font-family: var(--font-sans);
  line-height: 1.5;
}
body.lightbox-open { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }

.site-header {
  position: fixed;
  z-index: 50;
  top: 0;
  left: 0;
  width: 100%;
  padding: 14px 0;
  color: var(--white);
  background: rgba(7,16,12,.86);
  border-bottom: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.nav-wrap { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.brand-mark {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  max-height: 58px;
}
.brand-name { letter-spacing: .02em; }
.site-nav { display: flex; align-items: center; gap: 28px; font-size: .92rem; font-weight: 600; }
.site-nav a { opacity: .88; transition: opacity .2s ease; }
.site-nav a:hover { opacity: 1; }
.nav-cta { padding: 10px 17px; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; }
.menu-toggle { display: none; background: none; border: 0; padding: 8px; color: #fff; }
.menu-toggle span { display: block; width: 24px; height: 2px; background: currentColor; margin: 5px 0; }

.hero {
  position: relative;
  min-height: 100vh;
  min-height: 760px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #15221b;
}
.hero-media, .hero-overlay { position: absolute; inset: 0; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 32%; }
.hero-overlay {
  background:
    linear-gradient(90deg, rgba(2,8,5,.82) 0%, rgba(2,8,5,.54) 40%, rgba(2,8,5,.08) 73%, rgba(2,8,5,.14) 100%),
    linear-gradient(0deg, rgba(2,8,5,.58) 0%, transparent 42%);
}
.hero-content { position: relative; z-index: 2; padding: 180px 0 170px; }
.hero-copy { max-width: 650px; }
.eyebrow {
  margin: 0 0 18px;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--green-bright);
}
.eyebrow-dark { color: var(--green); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--font-display); letter-spacing: -.05em; }
h1 { margin-bottom: 28px; font-size: clamp(5rem, 11vw, 9.4rem); line-height: .76; text-transform: uppercase; }
h2 { margin-bottom: 26px; font-size: clamp(3rem, 6.5vw, 6rem); line-height: .96; }
.hero-lede { max-width: 600px; margin-bottom: 0; font-size: clamp(1.1rem, 2vw, 1.42rem); line-height: 1.65; color: rgba(255,255,255,.86); }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 35px; flex-wrap: wrap; }
.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: 0 23px;
  border-radius: 999px;
  font-weight: 700;
  transition: transform .2s ease, background .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button-light { background: var(--white); color: var(--ink); }
.text-link { font-weight: 700; }
.text-link span { display: inline-block; margin-left: 8px; transition: transform .2s ease; }
.text-link:hover span { transform: translate(3px, 3px); }
.hero-rail {
  position: absolute;
  z-index: 3;
  left: 0;
  bottom: 0;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(255,255,255,.28);
  background: rgba(5,12,8,.48);
  backdrop-filter: blur(12px);
}
.hero-rail > div { padding: 20px clamp(20px, 5vw, 70px); border-right: 1px solid rgba(255,255,255,.2); }
.hero-rail > div:last-child { border-right: 0; }
.hero-rail span { display: block; margin-bottom: 4px; color: rgba(255,255,255,.63); font-size: .74rem; text-transform: uppercase; letter-spacing: .14em; }
.hero-rail strong { font-size: 1rem; }

.section { padding: 125px 0; }
.profile { background: var(--paper); color: var(--ink); overflow: hidden; }
.profile-grid { display: grid; grid-template-columns: .87fr 1.13fr; gap: 95px; align-items: center; }
.profile-copy .lead { font-size: 1.25rem; line-height: 1.65; color: #29362f; }
.profile-copy > p:not(.eyebrow):not(.lead) { color: #59645e; font-size: 1.02rem; line-height: 1.75; }
.profile-ranking { margin-top: 42px; padding-top: 28px; border-top: 1px solid var(--dark-line); }
.profile-ranking span, .profile-ranking small { display: block; }
.profile-ranking span { color: #607069; font-size: .75rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.profile-ranking strong { display: block; margin: 5px 0 1px; font-family: var(--font-display); font-size: 4rem; line-height: 1; letter-spacing: -.06em; color: var(--green); }
.profile-ranking small { color: #5e6b64; }
.wagr-link { display: inline-block; margin-top: 10px; color: var(--green); font-size: .92rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.wagr-link:hover { color: #0f3f2a; }
.profile-ranking.is-loading #wagr-status { color: #5e6b64; }
.profile-ranking.is-live { border-top-color: rgba(23,79,53,.35); }
.profile-ranking.is-live #wagr-rank { color: var(--green); }
.profile-ranking.is-fallback #wagr-status { color: #8a6f2f; }
.profile-photo-stack { position: relative; min-height: 670px; }
.photo-main { position: absolute; inset: 0 12% 0 13%; margin: 0; overflow: hidden; box-shadow: var(--shadow); }
.photo-main img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.photo-float { position: absolute; right: -6%; bottom: 7%; width: 47%; margin: 0; border: 10px solid var(--paper); box-shadow: 0 22px 60px rgba(0,0,0,.18); overflow: hidden; }
.photo-float img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }

.section-dark { background: var(--ink); color: var(--white); }
.section-heading { display: grid; grid-template-columns: 1.1fr .75fr; gap: 80px; align-items: end; margin-bottom: 55px; }
.section-heading h2 { margin-bottom: 0; }
.section-intro { max-width: 540px; margin: 0 0 8px auto; color: var(--muted); font-size: 1.05rem; line-height: 1.7; }
.resume-list { border-top: 1px solid var(--line); }
.resume-row {
  display: grid;
  grid-template-columns: 145px 1fr 55px;
  gap: 25px;
  align-items: center;
  min-height: 96px;
  border-bottom: 1px solid var(--line);
  transition: background .2s ease, padding .2s ease;
}
.resume-row:hover { background: rgba(255,255,255,.035); padding-left: 15px; padding-right: 15px; }
.resume-row.featured-row { background: var(--green); padding-left: 24px; padding-right: 24px; border-bottom-color: transparent; }
.resume-row.featured-row:hover { padding-left: 30px; padding-right: 30px; }
.resume-year { color: var(--green-bright); font-size: .76rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.featured-row .resume-year { color: #c4f4d7; }
.resume-row h3 { margin: 0; font-family: var(--font-display); font-size: clamp(1.25rem, 2.4vw, 2rem); letter-spacing: -.025em; }
.resume-num { text-align: right; color: #707d75; font-size: .76rem; }
.featured-row .resume-num { color: rgba(255,255,255,.55); }
.career-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 80px; margin-top: 95px; padding-top: 55px; border-top: 1px solid var(--line); }
.career-heading h3 { margin: 0; font-family: var(--font-display); font-size: 2.2rem; letter-spacing: -.04em; }
.career-items { display: grid; grid-template-columns: 1fr 1fr; gap: 0 45px; }
.career-items p { margin: 0; padding: 17px 0; border-bottom: 1px solid var(--line); color: #d9dfda; }
.career-items strong { color: var(--white); }

.image-break { position: relative; height: min(72vw, 760px); min-height: 470px; overflow: hidden; }
.image-break img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.image-break::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,10,6,.6), transparent 58%); }
.image-break-copy { position: absolute; z-index: 2; left: clamp(24px, 8vw, 130px); bottom: clamp(35px, 7vw, 95px); display: flex; flex-direction: column; }
.image-break-copy span { font-family: var(--font-display); font-size: clamp(3.2rem, 8vw, 7.2rem); line-height: .87; letter-spacing: -.06em; text-transform: uppercase; }

.schedule { background: var(--paper-2); color: var(--ink); }
.schedule-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 95px; align-items: start; }
.schedule-heading { position: sticky; top: 45px; }
.schedule-heading .schedule-description, .schedule-heading > p:not(.eyebrow) { max-width: 470px; color: #5a655f; font-size: 1.04rem; line-height: 1.7; }
.schedule-cards { display: grid; gap: 18px; }
.schedule-card { overflow: hidden; min-height: 390px; display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(7,16,12,.09); transition: transform .25s ease, box-shadow .25s ease; }
.schedule-card:hover { transform: translateY(-4px); box-shadow: 0 20px 55px rgba(30,45,36,.10); }
.schedule-card-image { margin: 0; aspect-ratio: 16 / 9; overflow: hidden; background: #dfe4df; }
.schedule-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.schedule-card:hover .schedule-card-image img { transform: scale(1.03); }
.schedule-card-body { display: flex; flex: 1; flex-direction: column; justify-content: space-between; padding: 24px 28px 28px; }
.schedule-top { display: flex; justify-content: space-between; margin-bottom: 24px; color: #6c756f; font-size: .75rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.schedule-type { margin-bottom: 8px; color: var(--green); font-size: .73rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.schedule-card h3 { margin: 0 0 7px; font-family: var(--font-display); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.05; letter-spacing: -.04em; }
.schedule-card-body > div:last-child > p:last-child { margin-bottom: 0; color: #68736c; }

.gallery { overflow: hidden; }
.gallery-heading { display: flex; justify-content: space-between; align-items: end; gap: 50px; margin-bottom: 52px; }
.gallery-heading h2 { margin-bottom: 0; }
.gallery-heading > p { max-width: 380px; margin-bottom: 8px; color: var(--muted); }
.gallery-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 235px; gap: 16px; }
.gallery-item { grid-column: span 4; position: relative; margin: 0; padding: 0; border: 0; background: #162019; cursor: zoom-in; overflow: hidden; }
.gallery-item.gallery-wide { grid-column: span 8; }
.gallery-item.gallery-tall { grid-row: span 2; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, filter .5s ease; }
.gallery-item:hover img { transform: scale(1.035); filter: brightness(.92); }

.contact { background: var(--paper); color: var(--ink); }
.contact-grid { display: grid; grid-template-columns: 1fr .9fr; gap: 100px; align-items: end; }
.contact-copy h2 { margin-bottom: 0; }
.contact-panel { padding: 42px; background: var(--green); color: #fff; }
.contact-panel > p:first-child { font-size: 1.22rem; line-height: 1.65; }
.contact-placeholder { margin: 35px 0 18px; padding: 24px 0; border-top: 1px solid rgba(255,255,255,.3); border-bottom: 1px solid rgba(255,255,255,.3); }
.contact-placeholder span, .contact-placeholder strong { display: block; }
.contact-placeholder span { margin-bottom: 7px; color: #c8e8d6; font-size: .74rem; text-transform: uppercase; letter-spacing: .14em; }
.contact-placeholder strong { font-size: 1.2rem; }
.contact-placeholder a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.contact-links { display: grid; gap: 10px; margin: 0 0 24px; }
.contact-links a { color: #dff5e9; font-weight: 600; }
.contact-links a:hover { color: #fff; }
.instagram-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  padding: 10px 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, #f58529 0%, #dd2a7b 42%, #8134af 72%, #515bd4 100%);
  color: #fff !important;
  font-weight: 800 !important;
  letter-spacing: .01em;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.instagram-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(0,0,0,.24);
  filter: brightness(1.06);
}
.small-note { margin-bottom: 0; color: #d1e7da; font-size: .88rem; }

.site-footer { padding: 36px 0; background: #050906; border-top: 1px solid rgba(255,255,255,.08); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.footer-brand { font-family: var(--font-display); font-size: 1.35rem; font-weight: 800; }
.site-footer p { margin: 0; color: #7f8983; font-size: .86rem; }
.site-footer a:last-child { color: #bdc5c0; font-size: .86rem; }

.lightbox { position: fixed; z-index: 100; inset: 0; display: none; place-items: center; padding: 48px; background: rgba(2,7,4,.94); }
.lightbox.open { display: grid; }
.lightbox-image { max-width: min(1250px, 94vw); max-height: 88vh; object-fit: contain; box-shadow: 0 30px 100px rgba(0,0,0,.6); }
.lightbox-close { position: absolute; top: 18px; right: 24px; width: 48px; height: 48px; border: 0; background: transparent; color: #fff; font-size: 2.5rem; cursor: pointer; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s ease, transform .75s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay { transition-delay: .12s; }

@media (max-width: 980px) {
  .site-nav { gap: 18px; }
  .hero { min-height: 720px; }
  .hero-media img { object-position: 58% center; }
  .hero-overlay { background: linear-gradient(90deg, rgba(2,8,5,.82) 0%, rgba(2,8,5,.55) 58%, rgba(2,8,5,.15) 100%), linear-gradient(0deg, rgba(2,8,5,.5), transparent 45%); }
  .hero-content { padding: 160px 0 180px; }
  .profile-grid, .schedule-grid, .contact-grid { grid-template-columns: 1fr; gap: 70px; }
  .profile-copy { max-width: 680px; }
  .profile-photo-stack { min-height: 650px; }
  .schedule-heading { position: static; }
  .section-heading { grid-template-columns: 1fr; gap: 25px; }
  .section-intro { margin-left: 0; }
  .career-grid { grid-template-columns: 1fr; gap: 35px; }
  .gallery-grid { grid-auto-rows: 210px; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 76px; }
  .hero .hero-eyebrow { color: var(--green); }
  .container { width: min(100% - 32px, 1180px); }
  .site-header { padding: 8px 0; }
  .menu-toggle { display: block; z-index: 3; }
  .site-nav {
    position: absolute;
    top: 70px;
    right: 16px;
    left: 16px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 16px;
    background: rgba(5,11,7,.97);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 20px 60px rgba(0,0,0,.35);
  }
  .site-nav.open { display: flex; }
  .site-nav a { padding: 13px 8px; }
  .nav-cta { margin-top: 8px; text-align: center; }

  .hero { min-height: 760px; align-items: flex-end; }
  .hero-media img { object-position: 54% center; }
  .hero-overlay { background: linear-gradient(0deg, rgba(2,8,5,.9) 0%, rgba(2,8,5,.54) 56%, rgba(2,8,5,.12) 100%); }
  .hero-content { padding: 130px 0 230px; }
  h1 { font-size: clamp(4.6rem, 25vw, 7.5rem); }
  .hero-copy { max-width: 560px; }
  .hero-rail { grid-template-columns: 1fr; }
  .hero-rail > div { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 10px 16px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); }
  .hero-rail > div:last-child { border-bottom: 0; }
  .hero-rail span { margin: 0; }
  .hero-rail strong { text-align: right; font-size: .9rem; }

  .section { padding: 88px 0; }
  .profile-photo-stack { min-height: 520px; }
  .photo-main { inset: 0 10% 0 0; }
  .photo-float { width: 54%; right: 0; bottom: 5%; border-width: 7px; }

  .resume-row { grid-template-columns: 85px 1fr 30px; gap: 12px; min-height: 88px; }
  .resume-row.featured-row { padding-left: 15px; padding-right: 15px; }
  .career-items { grid-template-columns: 1fr; }
  .image-break { min-height: 520px; }
  .image-break img { object-position: 57% center; }
  .image-break-copy { left: 20px; bottom: 38px; }

  .gallery-heading { align-items: start; flex-direction: column; gap: 16px; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 210px; }
  .gallery-item, .gallery-item.gallery-wide { grid-column: span 1; }
  .gallery-item.gallery-wide:first-child { grid-column: span 2; }
  .gallery-item.gallery-tall { grid-row: span 2; }
  .footer-inner { align-items: flex-start; flex-direction: column; }
  .lightbox { padding: 22px; }
}

@media (max-width: 520px) {
  .hero-media img { object-position: 40% center; }
  .hero-content { padding-bottom: 245px; }
  .hero-lede { font-size: 1rem; }
  .hero-actions { gap: 18px; }
  h2 { font-size: clamp(2.8rem, 14vw, 4.4rem); }
  .profile-photo-stack { min-height: 430px; }
  .resume-row { grid-template-columns: 70px 1fr; }
  .resume-num { display: none; }
  .image-break { min-height: 450px; }
  .schedule-card { min-height: 230px; padding: 24px; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 250px; }
  .gallery-item, .gallery-item.gallery-wide, .gallery-item.gallery-wide:first-child { grid-column: span 1; }
  .gallery-item.gallery-tall { grid-row: span 1; }
  .contact-panel { padding: 30px 24px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Requested responsive refinements */
@media (min-width: 761px) {
  /* Lower Jay within the desktop gallery crop so his full kneeling pose is more visible. */
  .gallery-grid .gallery-item:first-child img {
    object-position: center 25%;
  }
}

@media (max-width: 760px) {
  /* Use the WAGR dark green for Jay's name on mobile only. */
  .hero h1 {
    color: var(--green);
  }
}

@media (max-width: 640px) {
  .brand-mark { width: 46px; height: 46px; }
  .brand-mark img { max-height: 46px; }
}


/* Collegiate schedule page */
.schedule-page-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 18px;
  color: var(--green);
  font-weight: 700;
}
.schedule-page-link span { transition: transform .2s ease; }
.schedule-page-link:hover span { transform: translateX(4px); }

.collegiate-hero {
  padding: 175px 0 95px;
  background:
    radial-gradient(circle at 82% 18%, rgba(99,209,149,.14), transparent 29%),
    linear-gradient(135deg, #07100c 0%, #0d1b13 58%, #123d29 100%);
  color: var(--white);
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.collegiate-hero-inner { max-width: 1020px; }
.collegiate-hero h1 {
  max-width: 980px;
  margin: 16px 0 30px;
  font-size: clamp(4rem, 9vw, 8rem);
  line-height: .88;
}
.collegiate-lede {
  max-width: 720px;
  color: rgba(255,255,255,.80);
  font-size: clamp(1.05rem, 1.7vw, 1.28rem);
  line-height: 1.65;
}
.collegiate-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
  margin-top: 32px;
}
.collegiate-schedule { min-height: 100vh; }
.collegiate-photo-placeholder {
  position: relative;
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, rgba(23,79,53,.12), rgba(99,209,149,.08)),
    #dfe4df;
  color: #526058;
}
.collegiate-photo-placeholder::before {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px dashed rgba(23,79,53,.28);
}
.collegiate-photo-placeholder span {
  position: relative;
  z-index: 1;
  padding: 10px 14px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.collegiate-card .schedule-top span:last-child { text-align: right; }
.site-nav a[aria-current="page"] { opacity: 1; color: var(--green-bright); }

@media (max-width: 760px) {
  .collegiate-hero { padding: 135px 0 72px; }
  .collegiate-hero h1 { font-size: clamp(3.6rem, 17vw, 6.2rem); }
  .collegiate-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
}

/* Professional and collegiate schedules on the main page */
.schedule-sections { display: grid; gap: 110px; }
.schedule-block + .schedule-block { padding-top: 95px; border-top: 1px solid var(--dark-line); }
.schedule-block-college { scroll-margin-top: 90px; }
.schedule-block-college .schedule-card-image img { object-position: center; }
@media (max-width: 760px) {
  .schedule-sections { gap: 80px; }
  .schedule-block + .schedule-block { padding-top: 70px; }
}


/* Collegiate event links */
.schedule-event-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 18px;
  padding-top: 10px;
  border-top: 1px solid rgba(7,16,12,.14);
  color: var(--green);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .04em;
  transition: opacity .2s ease, transform .2s ease;
}
.schedule-event-link:hover {
  opacity: .72;
  transform: translateX(2px);
}
.schedule-event-link:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 4px;
}

.schedule-card-link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.schedule-card-link:focus-visible {
  outline: 3px solid var(--green-bright);
  outline-offset: 3px;
}


/* In-site event browser */
body.event-browser-open {
  overflow: hidden;
}
.event-browser {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  background: #fff;
}
.event-browser.open {
  display: block;
}
.event-browser-shell {
  display: grid;
  grid-template-rows: auto 1fr;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background: #fff;
}
.event-browser-bar {
  min-height: 62px;
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  align-items: center;
  gap: 10px;
  padding: max(8px, env(safe-area-inset-top)) 14px 8px;
  border-bottom: 1px solid rgba(7,16,12,.12);
  background: var(--green);
  color: #fff;
}
.event-browser-close {
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.12);
  color: #fff;
  font: inherit;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.event-browser-close:hover { background: rgba(255,255,255,.2); }
.event-browser-close:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.event-browser-heading {
  min-width: 0;
  text-align: center;
  display: grid;
  gap: 2px;
}
.event-browser-brand {
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .72;
}
.event-browser-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .95rem;
  font-weight: 700;
}
.event-browser-frame {
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
}
@media (max-width: 760px) {
  .event-browser-bar {
    min-height: 58px;
    grid-template-columns: 44px 1fr 44px;
    padding-left: 10px;
    padding-right: 10px;
  }
  .event-browser-close {
    width: 40px;
    height: 40px;
  }
}

/* Interactive travel map */
.schedule-map-block {
  padding-bottom: 8px;
}
.schedule-map-header {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(300px, 1.1fr);
  gap: 70px;
  align-items: end;
  margin-bottom: 34px;
}
.schedule-map-header h2 {
  margin: 12px 0 0;
  font-size: clamp(3rem, 6vw, 5.8rem);
  line-height: .9;
}
.schedule-map-copy {
  max-width: 620px;
  justify-self: end;
}
.schedule-map-copy > p {
  margin: 0 0 22px;
  color: var(--muted, #5f6b64);
  line-height: 1.7;
}
.schedule-map-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.map-filter {
  min-height: 42px;
  padding: 9px 15px;
  border: 1px solid rgba(7,16,12,.18);
  border-radius: 999px;
  background: transparent;
  color: var(--green);
  font: inherit;
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.map-filter:hover,
.map-filter.is-active {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}
.map-filter:focus-visible {
  outline: 3px solid rgba(99,209,149,.6);
  outline-offset: 2px;
}
.schedule-map-shell {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(7,16,12,.13);
  background: #dfe8e2;
  box-shadow: 0 24px 65px rgba(7,16,12,.09);
}
.schedule-map {
  width: 100%;
  height: 560px;
  min-height: 420px;
  background: #e8eee9;
}
.schedule-map-key {
  position: absolute;
  z-index: 500;
  left: 18px;
  bottom: 18px;
  display: flex;
  gap: 13px;
  flex-wrap: wrap;
  padding: 10px 13px;
  border: 1px solid rgba(7,16,12,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.93);
  backdrop-filter: blur(10px);
  color: #1b2821;
  font-size: .72rem;
  font-weight: 700;
  box-shadow: 0 8px 28px rgba(7,16,12,.12);
}
.schedule-map-key span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.map-key-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  display: inline-block;
}
.map-key-pro { background: #07100c; }
.map-key-college { background: #8c2f39; }
.schedule-map-note {
  margin: 12px 4px 0;
  color: #6b756f;
  font-size: .78rem;
}
@media (max-width: 820px) {
  .schedule-map-header {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .schedule-map-copy {
    max-width: none;
    justify-self: stretch;
  }
  .schedule-map {
    height: 470px;
    min-height: 390px;
  }
}
@media (max-width: 560px) {
  .schedule-map-shell { border-radius: 16px; }
  .schedule-map { height: 420px; min-height: 360px; }
  .schedule-map-key {
    left: 10px;
    right: 10px;
    bottom: 10px;
    width: fit-content;
    max-width: calc(100% - 20px);
    border-radius: 14px;
  }
}
.event-map-pulse {
  animation: eventCardPulse 1.15s ease;
}
@keyframes eventCardPulse {
  0%, 100% { box-shadow: inherit; }
  40% { box-shadow: 0 0 0 5px rgba(99,209,149,.48), 0 18px 40px rgba(7,16,12,.16); }
}
@media (prefers-reduced-motion: reduce) {
  .event-map-pulse { animation: none; }
}


/* Self-contained vector event map — avoids third-party tile blocking */
.event-map-svg {
  display: block;
  width: 100%;
  height: 100%;
  color: rgba(7,16,12,.075);
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}
.event-map-water { fill: #e7efea; }
.event-map-grid { fill: url(#event-map-grid); opacity: .55; }
.event-map-land {
  fill: #c7d5cb;
  stroke: rgba(7,16,12,.28);
  stroke-width: 1.1;
  vector-effect: non-scaling-stroke;
}
.event-map-region-labels text {
  fill: rgba(7,16,12,.38);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .15em;
}
.event-map-marker {
  cursor: pointer;
  outline: none;
}
.event-map-marker.is-hidden {
  display: none;
}
.event-map-stem {
  stroke: rgba(7,16,12,.4);
  stroke-width: 1.5;
  stroke-dasharray: 3 3;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}
.event-map-halo {
  fill: #fff;
  stroke: rgba(7,16,12,.12);
  stroke-width: 1;
  filter: drop-shadow(0 3px 5px rgba(7,16,12,.18));
  transition: transform .18s ease;
  transform-box: fill-box;
  transform-origin: center;
}
.event-map-dot {
  stroke: #fff;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}
.event-map-marker-pro .event-map-dot { fill: #07100c; }
.event-map-marker-college .event-map-dot { fill: #8c2f39; }
.event-map-marker:hover .event-map-halo,
.event-map-marker:focus .event-map-halo {
  transform: scale(1.2);
}
.event-map-marker:focus .event-map-halo {
  stroke: #2f8f64;
  stroke-width: 3;
}
.event-map-label {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .16s ease;
}
.event-map-label rect {
  fill: rgba(255,255,255,.97);
  stroke: rgba(7,16,12,.12);
  stroke-width: 1;
  filter: drop-shadow(0 5px 12px rgba(7,16,12,.16));
}
.event-map-label text {
  fill: #07100c;
  font-family: inherit;
}
.event-map-label-title {
  font-size: 12px;
  font-weight: 800;
}
.event-map-label-place {
  font-size: 10.5px;
  fill: #59645e !important;
}
@media (hover: hover) and (pointer: fine) {
  .event-map-marker:hover .event-map-label,
  .event-map-marker:focus .event-map-label { opacity: 1; visibility: visible; }
}
@media (max-width: 560px) {
  .event-map-region-labels text { font-size: 16px; }
  .event-map-label { display: none; }
  .event-map-halo { r: 14px; }
  .event-map-dot { r: 7px; }
}


/* Globe-style event map */
.schedule-map-shell {
  background: radial-gradient(circle at 50% 43%, #eef4ef 0%, #e1eae4 50%, #d7e2db 100%);
}
.schedule-map {
  background: transparent;
}
.event-globe-svg {
  overflow: visible;
}
.globe-stage {
  fill: transparent;
}
.globe-shadow-disc {
  fill: rgba(7,16,12,.06);
}
.globe-ocean {
  fill: url(#globe-ocean);
}
.globe-graticule path {
  fill: none;
  stroke: rgba(7,16,12,.105);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.globe-land-lines path {
  fill: none;
  stroke: rgba(7,16,12,.52);
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.globe-light {
  fill: url(#globe-shade);
  pointer-events: none;
}
.globe-rim {
  fill: none;
  stroke: rgba(7,16,12,.26);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}
.globe-caption {
  fill: rgba(7,16,12,.42);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .22em;
}
.event-globe-svg .event-map-label rect {
  fill: rgba(255,255,255,.97);
}
.event-globe-svg .event-map-label-title {
  font-size: 12px;
}
.event-globe-svg .event-map-label-place {
  font-size: 10.5px;
}
@media (max-width: 560px) {
  .schedule-map { height: 430px; min-height: 390px; }
  .event-globe-svg { transform: scale(1.1); transform-origin: 50% 48%; }
  .globe-caption { font-size: 13px; letter-spacing: .16em; }
}

/* Native in-site fallback for services such as WAGR that block iframe embedding. */
.event-browser-internal {
  flex: 1;
  min-height: 0;
  overflow: auto;
  background: #f4f1e8;
}
.internal-link-panel {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 48px 24px;
  color: var(--green);
}
.internal-link-kicker {
  margin: 0 0 12px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.internal-link-panel h2 {
  margin: 0;
  font-size: clamp(2rem, 7vw, 4.5rem);
  line-height: 1;
}
.internal-link-rank {
  margin-top: 22px;
  font-size: clamp(4rem, 18vw, 8rem);
  font-weight: 900;
  line-height: .9;
}
.internal-link-copy {
  margin: 22px 0 0;
  max-width: 30rem;
  color: #56635b;
  font-size: .95rem;
}


/* Partners page */
.partners-page { background: var(--paper); color: var(--ink); }
.partners-hero {
  position: relative;
  overflow: hidden;
  padding: 180px 0 105px;
  background:
    radial-gradient(circle at 84% 22%, rgba(99,209,149,.18), transparent 28%),
    linear-gradient(135deg, #07100c 0%, #0f2c20 100%);
  color: #fff;
}
.partners-hero::after {
  content: "";
  position: absolute;
  width: 360px;
  height: 360px;
  right: -90px;
  bottom: -180px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  box-shadow: 0 0 0 56px rgba(255,255,255,.035), 0 0 0 112px rgba(255,255,255,.022);
}
.partners-hero-inner { position: relative; z-index: 1; }
.partners-hero h1 { margin-bottom: 24px; font-size: clamp(4.8rem, 12vw, 9rem); }
.partners-lede { max-width: 660px; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(1.15rem, 2.3vw, 1.5rem); line-height: 1.6; }
.partners-showcase { background: var(--paper); }
.partners-heading > p { max-width: 540px; color: #536058; font-size: 1.05rem; line-height: 1.75; }
.partner-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
.partner-card {
  min-height: 500px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border: 1px solid rgba(7,16,12,.1);
  overflow: hidden;
  position: relative;
}
.partner-card::after {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  right: -110px;
  bottom: -125px;
  border-radius: 50%;
  border: 1px solid currentColor;
  opacity: .08;
}
.partner-card-bridgestone { background: #fff; color: #0d1511; }
.partner-card-lab { background: #173d2d; color: #fff; }
.partner-card-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; position: relative; z-index: 1; }
.partner-number, .partner-label { font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.partner-label { padding: 7px 11px; border: 1px solid currentColor; border-radius: 999px; opacity: .72; }
.partner-brand { min-height: 220px; display: grid; align-content: center; justify-items: start; position: relative; z-index: 1; }
.partner-brand-main { display: block; font-family: var(--font-display); font-weight: 800; line-height: .9; letter-spacing: -.065em; }
.partner-brand-sub { display: block; margin-top: 12px; font-size: .76rem; font-weight: 700; letter-spacing: .34em; }
.partner-brand-bridgestone .partner-brand-main { font-size: clamp(2.4rem, 6vw, 4.6rem); }
.partner-brand-bridgestone .partner-brand-main::before { content: "/"; color: #d9342b; margin-right: 7px; font-weight: 800; }
.partner-brand-lab .partner-brand-main { font-size: clamp(4.6rem, 10vw, 8rem); letter-spacing: -.08em; }
.partner-brand-lab .partner-brand-sub { color: var(--green-bright); }
.partner-card-copy { position: relative; z-index: 1; border-top: 1px solid currentColor; padding-top: 24px; }
.partner-card-copy h3 { margin: 0 0 8px; font-family: var(--font-display); font-size: clamp(1.7rem, 3vw, 2.6rem); letter-spacing: -.04em; }
.partner-card-copy p { margin: 0; opacity: .67; }
.partners-contact { background: var(--green); color: #fff; }
.partners-contact-inner { display: flex; justify-content: space-between; align-items: end; gap: 42px; }
.partners-contact h2 { margin: 0; }

@media (max-width: 820px) {
  .partner-grid { grid-template-columns: 1fr; }
  .partner-card { min-height: 420px; }
  .partners-contact-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 620px) {
  .partners-hero { padding: 145px 0 76px; }
  .partners-hero h1 { font-size: clamp(4.1rem, 21vw, 6.5rem); }
  .partners-lede { font-size: 1.05rem; }
  .partner-card { min-height: 350px; padding: 24px; }
  .partner-brand { min-height: 155px; }
}

/* Rory-inspired partner presentation */
.home-partners {
  background: #f0ede4;
  color: var(--ink);
}
.home-partners-heading {
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr);
  align-items: end;
  gap: 56px;
  margin-bottom: 42px;
}
.home-partners-heading h2 { margin: 0; }
.home-partners-heading > p {
  margin: 0 0 8px;
  color: #526057;
  font-size: 1.04rem;
  line-height: 1.7;
  max-width: 470px;
}
.home-partner-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 20px;
}
.home-partner-tile {
  position: relative;
  min-height: 520px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  color: #fff;
  text-decoration: none;
  isolation: isolate;
}
.home-partner-tile > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s ease;
  z-index: -3;
}
.home-partner-bridgestone > img { object-position: 54% center; }
.home-partner-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7,16,12,.10) 15%, rgba(7,16,12,.86) 100%);
  z-index: -2;
}
.home-partner-content {
  width: 100%;
  padding: 34px;
  display: grid;
  gap: 22px;
}
.home-partner-kicker {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .8;
}
.home-partner-wordmark,
.partner-feature-wordmark {
  display: flex;
  align-items: baseline;
  gap: 12px;
  width: fit-content;
}
.home-partner-wordmark span,
.partner-feature-wordmark span {
  font-family: var(--font-display);
  font-weight: 800;
  line-height: .88;
  letter-spacing: -.055em;
}
.home-partner-wordmark small,
.partner-feature-wordmark small {
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .30em;
}
.bridgestone-wordmark span::before {
  content: "/";
  margin-right: 6px;
  color: #e24234;
}
.home-partner-wordmark.bridgestone-wordmark span { font-size: clamp(2rem,4vw,3.55rem); }
.home-partner-wordmark.lab-wordmark span { font-size: clamp(3.5rem,7vw,6rem); }
.home-partner-explore {
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.45);
  font-size: .84rem;
  font-weight: 700;
  letter-spacing: .04em;
}
.home-partners-footer { margin-top: 30px; }
@media (hover:hover) and (pointer:fine) {
  .home-partner-tile:hover > img { transform: scale(1.035); }
}

.partners-hero-rory {
  min-height: 58vh;
  display: flex;
  align-items: flex-end;
  padding-bottom: 85px;
}
.partner-feature {
  position: relative;
  min-height: 760px;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
  isolation: isolate;
}
.partner-feature-media {
  position: absolute;
  inset: 0;
  z-index: -3;
}
.partner-feature-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% center;
}
.partner-feature-media-right img { object-position: 62% center; }
.partner-feature-overlay {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(90deg, rgba(7,16,12,.94) 0%, rgba(7,16,12,.76) 38%, rgba(7,16,12,.14) 72%, rgba(7,16,12,.10) 100%);
}
.partner-feature-dark .partner-feature-overlay {
  background: linear-gradient(270deg, rgba(7,16,12,.95) 0%, rgba(7,16,12,.80) 42%, rgba(7,16,12,.18) 72%, rgba(7,16,12,.12) 100%);
}
.partner-feature-inner {
  width: 100%;
  display: flex;
  justify-content: flex-start;
}
.partner-feature-inner-right { justify-content: flex-end; }
.partner-feature-copy {
  width: min(570px, 52%);
  padding: 95px 0;
}
.partner-feature-index {
  margin: 0 0 70px;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .72;
}
.partner-feature-wordmark { margin-bottom: 36px; }
.partner-feature-wordmark.bridgestone-wordmark span { font-size: clamp(3rem,6vw,5.7rem); }
.partner-feature-wordmark.lab-wordmark span { font-size: clamp(5rem,10vw,9rem); }
.partner-feature-wordmark.lab-wordmark small { color: var(--green-bright); }
.partner-feature-copy h2 {
  margin: 0 0 16px;
  font-size: clamp(2rem,4vw,4rem);
}
.partner-feature-intro {
  max-width: 520px;
  margin: 0;
  color: rgba(255,255,255,.86);
  font-size: clamp(1.05rem,2vw,1.35rem);
  line-height: 1.65;
}
.partner-explore {
  margin-top: 30px;
  border-top: 1px solid rgba(255,255,255,.45);
  border-bottom: 1px solid rgba(255,255,255,.24);
}
.partner-explore summary {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  cursor: pointer;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.partner-explore summary::-webkit-details-marker { display:none; }
.partner-explore summary::after { content:"+"; font-size: 1.5rem; font-weight: 400; }
.partner-explore[open] summary::after { content:"–"; }
.partner-explore-body { padding: 0 0 28px; }
.partner-explore-body p {
  margin: 0 0 18px;
  max-width: 500px;
  color: rgba(255,255,255,.78);
  line-height: 1.7;
}
.partner-explore-body a {
  color: #fff;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 5px;
}

@media (max-width: 820px) {
  .home-partners-heading { grid-template-columns: 1fr; gap: 18px; }
  .home-partner-grid { grid-template-columns: 1fr; }
  .home-partner-tile { min-height: 460px; }
  .partner-feature { min-height: 680px; align-items: flex-end; }
  .partner-feature-copy { width: min(100%,640px); padding: 95px 0 70px; }
  .partner-feature-index { margin-bottom: 46px; }
  .partner-feature-overlay,
  .partner-feature-dark .partner-feature-overlay {
    background: linear-gradient(180deg, rgba(7,16,12,.10) 12%, rgba(7,16,12,.55) 48%, rgba(7,16,12,.96) 100%);
  }
  .partner-feature-inner-right { justify-content: flex-start; }
}
@media (max-width: 620px) {
  .home-partner-tile { min-height: 390px; }
  .home-partner-content { padding: 24px; }
  .home-partner-wordmark.bridgestone-wordmark span { font-size: 2.05rem; }
  .home-partner-wordmark.lab-wordmark span { font-size: 4rem; }
  .partner-feature { min-height: 620px; }
  .partner-feature-copy { padding: 80px 0 48px; }
  .partner-feature-wordmark.bridgestone-wordmark span { font-size: clamp(2.3rem,11vw,3.6rem); }
  .partner-feature-wordmark.lab-wordmark span { font-size: clamp(4rem,20vw,6.5rem); }
}


/* Media & Press */
.home-press { background: #f3efe5; }
.home-press-heading {
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(260px,.65fr); gap:56px;
  align-items:end; margin-bottom:42px;
}
.home-press-heading h2 { margin:8px 0 0; font-size:clamp(2.7rem,6vw,5.8rem); line-height:.95; letter-spacing:-.05em; color:var(--green); }
.home-press-heading > p { margin:0; max-width:520px; line-height:1.75; color:#39453e; }
.home-press-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.home-press-card { position:relative; min-height:430px; overflow:hidden; display:flex; align-items:flex-end; color:#fff; text-decoration:none; border-radius:2px; isolation:isolate; }
.home-press-featured { grid-column:span 2; min-height:520px; }
.home-press-image { position:absolute; inset:0; z-index:-3; margin:0; }
.home-press-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.home-press-featured .home-press-image img { object-position:center 28%; }
.home-press-overlay { position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,rgba(4,12,8,.04) 20%,rgba(4,12,8,.88) 100%); }
.home-press-copy { width:100%; padding:28px; }
.home-press-outlet { display:block; margin-bottom:14px; font-size:.72rem; font-weight:800; letter-spacing:.16em; }
.home-press-copy h3 { max-width:760px; margin:0 0 15px; font-size:clamp(1.35rem,2.35vw,2.5rem); line-height:1.08; }
.home-press-date { font-size:.82rem; opacity:.72; }
.home-press-footer { margin-top:30px; }
@media (hover:hover) and (pointer:fine){ .home-press-card:hover .home-press-image img{transform:scale(1.035)} }

.media-page { background:#f3efe5; }
.media-hero { min-height:62vh; display:flex; align-items:flex-end; padding:150px 0 80px; background:var(--green); color:#fff; }
.media-hero-inner h1 { margin:10px 0 24px; font-size:clamp(4rem,10vw,9.5rem); line-height:.82; letter-spacing:-.065em; }
.media-lede { max-width:620px; margin:0; font-size:clamp(1.05rem,2vw,1.35rem); line-height:1.6; color:rgba(255,255,255,.72); }
.media-feature-section { background:#07100c; }
.press-feature { position:relative; min-height:690px; display:flex; align-items:flex-end; overflow:hidden; color:#fff; text-decoration:none; isolation:isolate; }
.press-feature-image { position:absolute; inset:0; margin:0; z-index:-3; }
.press-feature-image img { width:100%; height:100%; object-fit:cover; object-position:center 25%; transition:transform .5s ease; }
.press-feature-overlay { position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,rgba(7,16,12,.05) 22%,rgba(7,16,12,.94) 100%); }
.press-feature-content { width:min(900px,90%); padding:54px; }
.press-outlet { font-size:.75rem; font-weight:800; letter-spacing:.18em; }
.press-feature h2 { margin:16px 0 20px; font-size:clamp(2.4rem,5vw,5.6rem); line-height:.95; letter-spacing:-.045em; }
.press-feature p { max-width:700px; margin:0 0 28px; font-size:1.05rem; line-height:1.7; color:rgba(255,255,255,.78); }
.press-meta { display:flex; gap:28px; flex-wrap:wrap; font-size:.83rem; font-weight:700; }
@media (hover:hover) and (pointer:fine){ .press-feature:hover .press-feature-image img{transform:scale(1.025)} }
.media-grid-section { background:#f3efe5; }
.media-section-heading { margin-bottom:34px; }
.media-section-heading h2 { margin:8px 0 0; color:var(--green); font-size:clamp(2.5rem,5vw,5rem); line-height:.95; letter-spacing:-.045em; }
.press-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.press-card { display:flex; flex-direction:column; min-width:0; background:#fff; color:#07100c; text-decoration:none; }
.press-card-image { aspect-ratio:4/3; margin:0; overflow:hidden; }
.press-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.press-card:nth-child(1) .press-card-image img { object-position:center 30%; }
.press-card-body { display:flex; flex:1; flex-direction:column; padding:28px; }
.press-card-top { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:22px; font-size:.72rem; color:#68736c; }
.press-outlet-dark { color:var(--green); }
.press-card h3 { margin:0 0 16px; font-size:clamp(1.25rem,2vw,1.75rem); line-height:1.15; }
.press-card p { margin:0 0 28px; color:#56625b; line-height:1.65; }
.press-read { margin-top:auto; padding-top:18px; border-top:1px solid rgba(7,16,12,.12); font-size:.82rem; font-weight:800; letter-spacing:.04em; }
@media (hover:hover) and (pointer:fine){ .press-card:hover .press-card-image img{transform:scale(1.035)} }
.media-contact-inner { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; }
.media-contact-inner h2 { margin:8px 0 0; font-size:clamp(2.4rem,5vw,5rem); }

@media (max-width:900px){
  .home-press-grid{grid-template-columns:1fr 1fr}.home-press-featured{grid-column:1/-1}.press-grid{grid-template-columns:1fr 1fr}.press-card:last-child{grid-column:1/-1}.media-contact-inner{align-items:flex-start;flex-direction:column}
}
@media (max-width:700px){
  .home-press-heading{grid-template-columns:1fr;gap:16px}.home-press-grid{grid-template-columns:1fr}.home-press-featured{grid-column:auto;min-height:460px}.home-press-card{min-height:390px}.home-press-copy{padding:24px}
  .media-hero{min-height:520px;padding:130px 0 58px}.press-feature{min-height:570px}.press-feature-content{width:100%;padding:30px 24px}.press-grid{grid-template-columns:1fr}.press-card:last-child{grid-column:auto}.press-card-body{padding:24px}.press-card-top{align-items:flex-start;flex-direction:column;gap:7px}
}

/* FOX 5 U.S. Amateur image framing */
.fox5-press-image img { object-position: 34% center !important; }
@media (max-width: 700px) {
  .fox5-press-image img { object-position: 32% center !important; }
}

/* Keep Jay's face and trophy visible in the AmateurGolf.com press card crop. */
.amateurgolf-press-image img {
  object-position: center 22% !important;
}
@media (max-width: 760px) {
  .amateurgolf-press-image img {
    object-position: center 18% !important;
  }
}

/* Main hero photo framing */
.hero-media-main img { object-position: 64% 10%; }
@media (max-width: 1100px) {
  .hero-media-main img { object-position: 60% 10%; }
}
@media (max-width: 760px) {
  .hero-media-main img { object-position: 40% 12%; }
}

/* Bridgestone-only partner presentation */
.home-partner-grid .home-partner-bridgestone { min-height: 560px; }
@media (max-width: 760px) {
  .home-partner-grid .home-partner-bridgestone { min-height: 430px; }
}

/* Center Bridgestone partner content away from screen edges */
#bridgestone .partner-feature-inner {
  justify-content: center;
}
#bridgestone .partner-feature-copy {
  width: min(680px, 76%);
  margin: 0 auto;
  text-align: center;
}
#bridgestone .partner-feature-intro,
#bridgestone .partner-explore-body p {
  margin-left: auto;
  margin-right: auto;
}
#bridgestone .partner-explore summary {
  padding-left: 14px;
  padding-right: 14px;
}
@media (max-width: 820px) {
  #bridgestone .partner-feature-copy {
    width: min(640px, calc(100% - 56px));
    margin: 0 auto;
  }
}
@media (max-width: 620px) {
  #bridgestone .partner-feature-copy {
    width: calc(100% - 48px);
    padding-left: 0;
    padding-right: 0;
  }
}

/* Vertical crop for Walker Cup gallery image */
.gallery-item[data-full="assets/jay-walker-cup.jpg"] img { object-position: 52% center; }


/* Rory-inspired animated gallery */
.gallery-motion {
  align-items: stretch;
  perspective: 1200px;
}
.gallery-motion .gallery-item {
  isolation: isolate;
  transform: translateY(34px);
  opacity: 0;
  transition:
    opacity .85s cubic-bezier(.22,1,.36,1),
    transform .95s cubic-bezier(.22,1,.36,1),
    box-shadow .45s ease;
}
.gallery-motion .gallery-item.gallery-motion-visible {
  opacity: 1;
  transform: translateY(0);
}
.gallery-motion .gallery-item::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.08));
  opacity: .25;
  transition: opacity .45s ease;
}
.gallery-motion .gallery-item img {
  display: block;
  width: 100%;
  height: calc(100% + 44px);
  margin-top: -22px;
  object-fit: cover;
  transform: translate3d(0, var(--gallery-shift, 0px), 0) scale(1.055);
  transform-origin: center;
  transition:
    transform .18s linear,
    filter .45s ease;
  will-change: transform;
}
@media (hover:hover) and (pointer:fine) {
  .gallery-motion .gallery-item:hover {
    box-shadow: 0 28px 70px rgba(0,0,0,.32);
  }
  .gallery-motion .gallery-item:hover::after {
    opacity: 0;
  }
  .gallery-motion .gallery-item:hover img {
    filter: brightness(.94);
  }
}
.gallery-motion .gallery-item:nth-child(2n) {
  transition-delay: .08s;
}
.gallery-motion .gallery-item:nth-child(3n) {
  transition-delay: .14s;
}

@media (max-width: 760px) {
  .gallery-motion .gallery-item {
    transform: translateY(24px);
  }
  .gallery-motion .gallery-item.gallery-motion-visible {
    transform: translateY(0);
  }
  .gallery-motion .gallery-item img {
    height: calc(100% + 30px);
    margin-top: -15px;
    transform: translate3d(0, var(--gallery-shift, 0px), 0) scale(1.035);
  }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-motion .gallery-item {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .gallery-motion .gallery-item img {
    height: 100%;
    margin-top: 0;
    transform: none !important;
    transition: none !important;
  }
}


/* Elegant cinematic gallery slideshow — soft 2-second cross-dissolve with very subtle motion */
.gallery-slideshow {
  position: relative;
  aspect-ratio: 16 / 9;
  min-height: 520px;
  overflow: hidden;
  background: #0b120e;
}
.gallery-slideshow .gallery-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  visibility: visible;
  pointer-events: none;
  cursor: zoom-in;
  background: #0b120e;
  z-index: 1;
  will-change: opacity;
  transition: opacity 2s cubic-bezier(.4,0,.2,1);
}
.gallery-slideshow .gallery-slide.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}
.gallery-slideshow .gallery-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(4,10,6,.04), rgba(4,10,6,.2));
  pointer-events: none;
}
.gallery-slideshow .gallery-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.012);
  will-change: transform;
  transition: transform 9s cubic-bezier(.22,.61,.36,1), filter 1.2s ease;
}
.gallery-slideshow .gallery-slide.is-active img {
  transform: scale(1.0);
}
.gallery-slideshow .gallery-slide[data-full="assets/jay-walker-cup.jpg"] img { object-position: 52% center; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-us-amateur-trophy.jpg"] img { object-position: 50% 58%; }
.gallery-slideshow-controls {
  position: absolute;
  z-index: 4;
  left: 0;
  right: 0;
  bottom: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  pointer-events: none;
}
.gallery-arrow, .gallery-dot { pointer-events: auto; }
.gallery-arrow {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.48);
  border-radius: 999px;
  background: rgba(4,10,6,.28);
  color: #fff;
  font-size: 1.1rem;
  cursor: pointer;
  backdrop-filter: blur(10px);
  transition: background .25s ease, transform .25s ease, border-color .25s ease;
}
.gallery-arrow:hover {
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.8);
  transform: translateY(-1px);
}
.gallery-dots {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 14px;
  border-radius: 999px;
  background: rgba(4,10,6,.28);
  backdrop-filter: blur(10px);
}
.gallery-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.42);
  cursor: pointer;
  transition: width .3s ease, background .3s ease;
}
.gallery-dot.is-active {
  width: 24px;
  background: #fff;
}
.gallery-progress {
  position: absolute;
  z-index: 4;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: rgba(255,255,255,.14);
}
.gallery-progress span {
  display: block;
  width: 100%;
  height: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  background: rgba(255,255,255,.78);
}
@keyframes galleryProgress {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
@media (max-width: 760px) {
  .gallery-slideshow {
    aspect-ratio: 4 / 5;
    min-height: 0;
  }
  .gallery-slideshow .gallery-slide img {
    height: 100%;
    margin: 0;
  }
  .gallery-slideshow-controls { bottom: 16px; gap: 12px; }
  .gallery-arrow { width: 42px; height: 42px; }
  .gallery-dots { gap: 7px; padding: 10px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-slideshow .gallery-slide,
  .gallery-slideshow .gallery-slide img { transition: none !important; }
  .gallery-progress { display: none; }
}

/* Keep Jay's full hat and face visible in the Jay + officer gallery image. */
.gallery-slideshow .gallery-slide[data-full="assets/jay-course-walk.jpg"] img {
  object-position: 28% 8%;
}
@media (max-width: 760px) {
  .gallery-slideshow .gallery-slide[data-full="assets/jay-course-walk.jpg"] img {
    object-position: 30% 10%;
  }
}

/* Automatic gallery: no manual arrows or dots. */
.gallery-slideshow-controls {
  display: none !important;
}

/* No visible slideshow UI or progress bar. */
.gallery-progress {
  display: none !important;
}

/* Mobile hero text color override */
@media (max-width: 760px) {
  .hero h1,
  .hero .hero-eyebrow {
    color: #fff !important;
  }
}

/* Keep Jay clear of the left-side hero text on phones. */
@media (max-width: 520px) {
  .hero-media-main img {
    object-position: 32% 12% !important;
  }
}

/* Crop positioning for the added gallery photos. */
.gallery-slideshow .gallery-slide[data-full="assets/jay-coastal-links-tee.jpeg"] img { object-position: 20% 58%; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-gallery-crowd-swing.jpeg"] img { object-position: 44% 54%; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-ocean-tee-shot.jpeg"] img { object-position: 48% 72%; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-links-rough-shot.jpeg"] img { object-position: 28% 56%; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-links-crowd-shot.jpeg"] img { object-position: 55% 54%; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-randa-tee-shot.jpeg"] img { object-position: 63% 56%; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-us-amateur-final-crowd.jpeg"] img { object-position: 27% 54%; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-media-interview.jpeg"] img { object-position: 53% 68%; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-clubhouse-approach.jpeg"] img { object-position: 30% 60%; }
.gallery-slideshow .gallery-slide[data-full="assets/jay-rainy-tee-shot.jpeg"] img { object-position: 38% 65%; }
@media (max-width: 760px) {
  .gallery-slideshow .gallery-slide[data-full="assets/jay-coastal-links-tee.jpeg"] img { object-position: 18% center; }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-gallery-crowd-swing.jpeg"] img { object-position: 43% center; }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-ocean-tee-shot.jpeg"] img { object-position: 50% 58%; }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-links-rough-shot.jpeg"] img { object-position: 25% center; }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-links-crowd-shot.jpeg"] img { object-position: 55% center; }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-randa-tee-shot.jpeg"] img { object-position: 62% center; }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-us-amateur-final-crowd.jpeg"] img { object-position: 28% center; }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-media-interview.jpeg"] img { object-position: 53% 58%; }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-clubhouse-approach.jpeg"] img { object-position: 30% center; }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-rainy-tee-shot.jpeg"] img { object-position: 38% 58%; }
}


/* =========================================================
   Rory-inspired landing page — original code and Jay assets
   ========================================================= */
body.rory-home {
  background: #06100b;
  color: #fff;
  overflow-x: hidden;
}
.rory-home-main {
  scroll-snap-type: y mandatory;
}
.rory-home .rory-home-header {
  padding: 18px 0;
  background: linear-gradient(180deg, rgba(2,8,5,.58), rgba(2,8,5,0));
  border-bottom: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.rory-home .rory-home-header .brand-mark { width: 50px; height: 50px; }
.rory-home .rory-home-header .brand-name {
  font-family: var(--font-display);
  font-size: 1.03rem;
  font-weight: 800;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.rory-home .rory-home-header .site-nav {
  gap: clamp(22px, 2.5vw, 42px);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.rory-home .rory-home-header .site-nav a {
  position: relative;
  opacity: 1;
  padding-bottom: 5px;
}
.rory-home .rory-home-header .site-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #fff;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .28s ease;
}
.rory-home .rory-home-header .site-nav a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}
.rory-panel {
  position: relative;
  min-height: 100vh;
  height: 100svh;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  background: #0a1710;
}
.rory-panel-media,
.rory-panel-shade { position: absolute; inset: 0; }
.rory-panel-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.002);
}
.rory-panel-career .rory-panel-media img { object-position: 52% 28%; }
.rory-panel-schedule .rory-panel-media img { object-position: center 48%; }
.rory-panel-profile .rory-panel-media img { object-position: center 30%; }
.rory-panel-partners .rory-panel-media img { object-position: center 44%; }
.rory-panel-shade {
  background:
    linear-gradient(90deg, rgba(2,7,4,.76) 0%, rgba(2,7,4,.42) 39%, rgba(2,7,4,.08) 72%, rgba(2,7,4,.12) 100%),
    linear-gradient(0deg, rgba(2,7,4,.68) 0%, rgba(2,7,4,.05) 45%, rgba(2,7,4,.2) 100%);
}
.rory-panel-content {
  position: relative;
  z-index: 2;
  width: min(1180px, calc(100% - 96px));
  margin: 0 auto;
  padding: 0 0 clamp(82px, 9vh, 120px);
}
.rory-panel-content-narrow { max-width: 1180px; }
.rory-panel-kicker {
  margin: 0 0 17px;
  font-size: clamp(.73rem, .9vw, .86rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.88);
}
.rory-panel h1,
.rory-panel h2 {
  max-width: 880px;
  margin: 0 0 24px;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(3.4rem, 7.1vw, 7.7rem);
  font-weight: 700;
  line-height: .91;
  letter-spacing: -.065em;
  text-transform: none;
}
.rory-panel h1 { font-size: clamp(3.8rem, 7.8vw, 8.4rem); }
.rory-panel-subtitle {
  max-width: 620px;
  margin: -2px 0 30px;
  color: rgba(255,255,255,.78);
  font-size: clamp(1rem, 1.35vw, 1.25rem);
  line-height: 1.55;
}
.rory-explore {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  min-width: 180px;
  padding: 13px 0 10px;
  border-bottom: 1px solid rgba(255,255,255,.7);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: gap .25s ease, border-color .25s ease;
}
.rory-explore:hover { gap: 26px; border-color: #fff; }
.rory-explore span:last-child { font-size: 1rem; }
.rory-next {
  position: absolute;
  z-index: 3;
  right: clamp(28px, 5vw, 74px);
  bottom: 42px;
  display: flex;
  align-items: center;
  gap: 13px;
  color: rgba(255,255,255,.75);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.rory-next b { font-size: 1.2rem; font-weight: 400; animation: roryBob 1.8s ease-in-out infinite; }
@keyframes roryBob { 0%,100%{transform:translateY(-2px)} 50%{transform:translateY(4px)} }
.rory-section-nav {
  position: fixed;
  z-index: 35;
  top: 50%;
  right: 22px;
  transform: translateY(-50%);
  display: grid;
  gap: 13px;
}
.rory-section-nav a {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: rgba(255,255,255,.45);
  font-size: .58rem;
  font-weight: 700;
  transition: color .2s ease, transform .2s ease;
}
.rory-section-nav a::before {
  content: "";
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
}
.rory-section-nav a span { opacity: 0; transform: translateX(-8px); transition: .2s ease; }
.rory-section-nav a:hover span,
.rory-section-nav a.is-active span { opacity: 1; transform: translateX(-18px); }
.rory-section-nav a.is-active { color: #fff; transform: scale(1.15); }
.rory-home-footer {
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  bottom: 0;
  min-height: 52px;
  padding: 0 clamp(28px, 5vw, 74px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid rgba(255,255,255,.24);
  color: rgba(255,255,255,.66);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.rory-home-footer a:hover { color: #fff; }

@media (max-width: 860px) {
  .rory-home-main { scroll-snap-type: none; }
  .rory-home .rory-home-header { padding: 11px 0; background: rgba(4,10,7,.64); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
  .rory-home .rory-home-header .brand-mark { width: 44px; height: 44px; }
  .rory-home .rory-home-header .menu-toggle { display: block; z-index: 3; }
  .rory-home .rory-home-header .site-nav {
    position: fixed;
    inset: 0;
    padding: 120px 30px 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 18px;
    background: rgba(4,12,8,.97);
    transform: translateY(-105%);
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
    pointer-events: none;
  }
  .rory-home .rory-home-header .site-nav.open { transform: translateY(0); pointer-events: auto; }
  .rory-home .rory-home-header .site-nav a { font-size: clamp(2rem, 9vw, 3.3rem); letter-spacing: -.03em; text-transform: none; font-family: var(--font-display); }
  .rory-panel { min-height: 760px; height: 100svh; scroll-snap-align: none; }
  .rory-panel-content { width: min(100% - 42px, 1180px); padding-bottom: 88px; }
  .rory-panel h1, .rory-panel h2 { max-width: 92%; font-size: clamp(3.15rem, 14.5vw, 5.4rem); }
  .rory-panel h1 { font-size: clamp(3.35rem, 15.8vw, 5.8rem); }
  .rory-panel-subtitle { max-width: 92%; font-size: 1rem; }
  .rory-panel-career .rory-panel-media img { object-position: 48% 30%; }
  .rory-panel-schedule .rory-panel-media img { object-position: 58% center; }
  .rory-panel-profile .rory-panel-media img { object-position: 53% center; }
  .rory-panel-partners .rory-panel-media img { object-position: 48% center; }
  .rory-panel-shade { background: linear-gradient(0deg, rgba(2,7,4,.82) 0%, rgba(2,7,4,.22) 62%, rgba(2,7,4,.25) 100%); }
  .rory-section-nav { display: none; }
  .rory-next { display: none; }
  .rory-home-footer { min-height: 66px; padding: 10px 21px; gap: 8px; flex-wrap: wrap; font-size: .58rem; }
}

@media (prefers-reduced-motion: reduce) {
  .rory-home-main { scroll-snap-type: none; }
  .rory-next b { animation: none; }
}

/* =========================================================
   Timeline-inspired homepage — Jay assets / original code
   ========================================================= */
body.timeline-home {
  background: #06100b;
  color: #fff;
  overflow-x: hidden;
}
.timeline-home .timeline-home-header {
  padding: 18px 0;
  background: linear-gradient(180deg, rgba(2,8,5,.78), rgba(2,8,5,.10));
  border-bottom: 0;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.timeline-home .timeline-home-header .brand-mark { width: 50px; height: 50px; }
.timeline-home .timeline-home-header .brand-name {
  font-family: var(--font-display);
  font-size: 1.03rem;
  font-weight: 800;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.timeline-home .timeline-home-header .site-nav {
  gap: clamp(22px, 2.5vw, 42px);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.timeline-home .timeline-home-header .site-nav a {
  position: relative;
  opacity: 1;
  padding-bottom: 5px;
}
.timeline-home .timeline-home-header .site-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #fff;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .28s ease;
}
.timeline-home .timeline-home-header .site-nav a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}
.timeline-home-main {
  position: relative;
}
.timeline-hero {
  position: relative;
  min-height: 100vh;
  height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #0a1710;
}
.timeline-hero-media,
.timeline-hero-overlay {
  position: absolute;
  inset: 0;
}
.timeline-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% 28%;
}
.timeline-hero-overlay {
  background:
    radial-gradient(circle at 50% 58%, rgba(255,255,255,.06), transparent 26%),
    linear-gradient(90deg, rgba(2,7,4,.72) 0%, rgba(2,7,4,.46) 38%, rgba(2,7,4,.08) 72%, rgba(2,7,4,.16) 100%),
    linear-gradient(0deg, rgba(2,7,4,.82) 0%, rgba(2,7,4,.1) 45%, rgba(2,7,4,.28) 100%);
}
.timeline-hero-content {
  position: relative;
  z-index: 2;
  padding: 0 0 clamp(110px, 12vh, 142px);
}
.timeline-hero-kicker,
.timeline-section-kicker {
  margin: 0 0 16px;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.82);
}
.timeline-hero h1 {
  max-width: 860px;
  margin: 0 0 22px;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(4rem, 8vw, 8.3rem);
  font-weight: 700;
  line-height: .9;
  letter-spacing: -.065em;
}
.timeline-hero-subtitle {
  max-width: 700px;
  margin: 0;
  color: rgba(255,255,255,.8);
  font-size: clamp(1rem, 1.4vw, 1.22rem);
  line-height: 1.6;
}
.timeline-hero-actions {
  margin-top: 34px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.timeline-link-button {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-height: 50px;
  padding: 0 20px;
  border: 1px solid rgba(255,255,255,.46);
  border-radius: 999px;
  color: #fff;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: transform .24s ease, background .24s ease, border-color .24s ease;
}
.timeline-link-button:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.76);
}
.timeline-link-button-secondary {
  background: rgba(255,255,255,.06);
}
.timeline-hero-centerpiece {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 34px;
  transform: translateX(-50%);
  width: min(520px, calc(100% - 32px));
  padding: 17px 22px 18px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 18px;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  text-align: center;
  box-shadow: 0 14px 40px rgba(0,0,0,.22);
}
.timeline-hero-centerpiece span {
  display: block;
  margin-bottom: 7px;
  color: rgba(255,255,255,.7);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.timeline-hero-centerpiece strong {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2.2vw, 1.8rem);
  font-weight: 700;
  line-height: 1.05;
}
.timeline-overview {
  padding: 100px 0 44px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)),
    #06100b;
}
.timeline-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr);
  gap: 30px 48px;
  align-items: end;
}
.timeline-overview h2 {
  margin: 0;
  max-width: 640px;
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 4vw, 4.4rem);
  line-height: .96;
  letter-spacing: -.05em;
}
.timeline-overview p:last-child {
  margin: 0;
  color: rgba(255,255,255,.74);
  font-size: 1rem;
  line-height: 1.72;
}
.career-timeline-wrap {
  position: relative;
  padding: 26px 0 110px;
  background: #06100b;
}
.career-timeline-wrap .container {
  position: relative;
}
.career-timeline-line {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,.18) 7%, rgba(255,255,255,.18) 93%, transparent 100%);
  transform: translateX(-50%);
}
.career-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 36px;
  align-items: center;
  min-height: 390px;
  margin: 0 0 38px;
}
.career-timeline-item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.5);
  background: #06100b;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 10px rgba(255,255,255,.03);
  transition: transform .24s ease, background .24s ease, border-color .24s ease;
}
.career-timeline-item.is-active::before {
  background: #fff;
  border-color: #fff;
  transform: translate(-50%, -50%) scale(1.12);
}
.career-timeline-media,
.career-timeline-card {
  width: min(100%, 510px);
}
.career-timeline-media {
  justify-self: end;
  overflow: hidden;
  border-radius: 24px;
  box-shadow: 0 30px 70px rgba(0,0,0,.26);
}
.career-timeline-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.career-timeline-card {
  justify-self: start;
  padding: 34px 34px 30px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 24px;
  background: rgba(255,255,255,.05);
  box-shadow: 0 18px 45px rgba(0,0,0,.18);
  transition: transform .24s ease, border-color .24s ease, background .24s ease;
}
.career-timeline-item.is-active .career-timeline-card {
  border-color: rgba(255,255,255,.22);
  background: rgba(255,255,255,.07);
  transform: translateY(-4px);
}
.career-timeline-year {
  margin: 0 0 14px;
  color: #b6c4bc;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.career-timeline-card h3 {
  margin: 0 0 16px;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(2rem, 3vw, 2.95rem);
  line-height: .97;
  letter-spacing: -.04em;
}
.career-timeline-card p:not(.career-timeline-year) {
  margin: 0;
  color: rgba(255,255,255,.78);
  font-size: 1rem;
  line-height: 1.7;
}
.career-timeline-link {
  margin-top: 22px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.career-timeline-link:hover { gap: 15px; }
.career-timeline-item-right .career-timeline-media {
  order: 2;
  justify-self: start;
}
.career-timeline-item-right .career-timeline-card {
  order: 1;
  justify-self: end;
  text-align: right;
}
.career-timeline-item-featured .career-timeline-card {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.18);
}
.career-timeline-item-featured .career-timeline-card h3 {
  font-size: clamp(2.25rem, 3.25vw, 3.3rem);
}
.timeline-quick-links {
  padding: 0 0 90px;
  background: #06100b;
}
.timeline-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.timeline-quick-card {
  min-height: 220px;
  padding: 30px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 24px;
  background: rgba(255,255,255,.04);
  transition: transform .24s ease, border-color .24s ease, background .24s ease;
}
.timeline-quick-card:hover {
  transform: translateY(-5px);
  border-color: rgba(255,255,255,.2);
  background: rgba(255,255,255,.06);
}
.timeline-quick-card p {
  margin: 0 0 16px;
  color: #b6c4bc;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.timeline-quick-card h3 {
  margin: 0 0 28px;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 2.6vw, 2.5rem);
  line-height: 1;
  letter-spacing: -.04em;
}
.timeline-quick-card span {
  color: rgba(255,255,255,.8);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.timeline-home-footer {
  border-top: 1px solid rgba(255,255,255,.12);
  background: #06100b;
}
.timeline-home-footer-inner {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: rgba(255,255,255,.66);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.timeline-home-footer a:hover { color: #fff; }

@media (max-width: 980px) {
  .timeline-overview-grid,
  .timeline-card-grid {
    grid-template-columns: 1fr;
  }
  .career-timeline-line {
    left: 22px;
    transform: none;
  }
  .career-timeline-item,
  .career-timeline-item-right {
    grid-template-columns: 1fr;
    gap: 18px;
    min-height: 0;
    padding-left: 52px;
  }
  .career-timeline-item::before {
    left: 22px;
    top: 26px;
    transform: translate(-50%, 0);
  }
  .career-timeline-item.is-active::before {
    transform: translate(-50%, 0) scale(1.12);
  }
  .career-timeline-media,
  .career-timeline-card,
  .career-timeline-item-right .career-timeline-media,
  .career-timeline-item-right .career-timeline-card {
    order: unset;
    justify-self: stretch;
    width: 100%;
    text-align: left;
  }
}

@media (max-width: 860px) {
  .timeline-home .timeline-home-header { padding: 11px 0; background: rgba(4,10,7,.7); }
  .timeline-home .timeline-home-header .brand-mark { width: 44px; height: 44px; }
  .timeline-home .timeline-home-header .menu-toggle { display: block; z-index: 3; }
  .timeline-home .timeline-home-header .site-nav {
    position: fixed;
    inset: 0;
    padding: 120px 30px 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 18px;
    background: rgba(4,12,8,.97);
    transform: translateY(-105%);
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
    pointer-events: none;
  }
  .timeline-home .timeline-home-header .site-nav.open { transform: translateY(0); pointer-events: auto; }
  .timeline-home .timeline-home-header .site-nav a {
    font-size: clamp(2rem, 9vw, 3.3rem);
    letter-spacing: -.03em;
    text-transform: none;
    font-family: var(--font-display);
  }
  .timeline-hero { min-height: 760px; height: 100svh; }
  .timeline-hero-media img { object-position: 48% 30%; }
  .timeline-hero-content { padding-bottom: 142px; }
  .timeline-hero h1 { font-size: clamp(3.3rem, 15vw, 5.6rem); max-width: 92%; }
  .timeline-hero-subtitle { max-width: 92%; font-size: 1rem; }
  .timeline-hero-centerpiece {
    bottom: 20px;
    padding: 14px 16px;
    width: min(520px, calc(100% - 24px));
  }
  .timeline-overview { padding: 76px 0 30px; }
  .career-timeline-wrap { padding-bottom: 80px; }
  .career-timeline-card { padding: 26px 24px 23px; }
  .career-timeline-card h3 { font-size: clamp(1.8rem, 8vw, 2.5rem); }
  .timeline-home-footer-inner {
    min-height: 88px;
    padding: 14px 0;
    flex-wrap: wrap;
    justify-content: center;
    font-size: .58rem;
    text-align: center;
  }
}

@media (max-width: 560px) {
  .timeline-hero-actions { gap: 12px; }
  .timeline-link-button { width: 100%; justify-content: center; }
  .career-timeline-item,
  .career-timeline-item-right { padding-left: 36px; }
  .career-timeline-line,
  .career-timeline-item::before { left: 14px; }
  .timeline-quick-card { min-height: 0; padding: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .timeline-link-button,
  .career-timeline-card,
  .timeline-quick-card,
  .career-timeline-item::before { transition: none; }
}


/* Hero revision: just JAY on photo, timeline after scroll */
.timeline-hero-jay {
  align-items: flex-end;
}
.timeline-hero-jay .timeline-hero-media img {
  object-position: center 24%;
}
.timeline-hero-title-wrap {
  position: relative;
  z-index: 2;
  width: min(1180px, calc(100% - 96px));
  margin: 0 auto;
  padding: 0 0 clamp(70px, 9vh, 104px);
}
.timeline-hero-title-only {
  margin: 0;
  color: rgba(255,255,255,.96);
  font-family: var(--font-display);
  font-size: clamp(6.3rem, 17vw, 15rem);
  font-weight: 700;
  line-height: .82;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-align: center;
  text-shadow: 0 12px 34px rgba(0,0,0,.24);
}
.timeline-hero-scroll {
  position: absolute;
  z-index: 3;
  right: clamp(28px, 5vw, 74px);
  bottom: 36px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(255,255,255,.78);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.timeline-hero-scroll b {
  font-size: 1.2rem;
  font-weight: 400;
  animation: roryBob 1.8s ease-in-out infinite;
}
@media (max-width: 860px) {
  .timeline-hero-jay .timeline-hero-media img {
    object-position: 58% 22%;
  }
  .timeline-hero-title-wrap {
    width: min(100% - 42px, 1180px);
    padding-bottom: 90px;
  }
  .timeline-hero-title-only {
    font-size: clamp(4.1rem, 19vw, 7.4rem);
    letter-spacing: .08em;
    text-align: left;
  }
  .timeline-hero-scroll { right: 22px; bottom: 18px; }
}
@media (max-width: 560px) {
  .timeline-hero-jay .timeline-hero-media img {
    object-position: 62% 22%;
  }
  .timeline-hero-title-only {
    font-size: clamp(3.5rem, 20vw, 6.1rem);
  }
}
@media (prefers-reduced-motion: reduce) {
  .timeline-hero-scroll b { animation: none; }
}

/* Side header / rail for timeline homepage */
.timeline-home .timeline-side-header {
  padding: 0;
  background: none;
  border: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.timeline-side-shell {
  position: fixed;
  top: 46px;
  left: 0;
  z-index: 65;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.timeline-side-brand {
  display: inline-flex;
  align-items: center;
  min-height: 78px;
  padding: 0 22px 0 18px;
  background: #050505;
  color: #fff;
  box-shadow: 0 14px 34px rgba(0,0,0,.28);
}
.timeline-home .timeline-side-brand .brand-mark {
  display: none;
}
.timeline-home .timeline-side-brand .brand-name {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 2vw, 2.3rem);
  font-weight: 800;
  letter-spacing: .24em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}
.timeline-home .timeline-side-header .menu-toggle {
  display: none;
}
.timeline-home .timeline-side-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.timeline-home .timeline-side-nav a {
  position: relative;
  min-width: 112px;
  min-height: 58px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background: rgba(255,255,255,.95);
  color: #07100c;
  border-left: 0;
  border-radius: 0;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  transform: translateX(-24px);
  transition: transform .22s ease, background .22s ease, color .22s ease, min-width .22s ease;
}
.timeline-home .timeline-side-nav a::after {
  display: none;
}
.timeline-home .timeline-side-nav a:hover,
.timeline-home .timeline-side-nav a.is-active {
  transform: translateX(0);
  background: #050505;
  color: #fff;
  min-width: 136px;
}
.timeline-home .timeline-side-nav a[href^="#hero"],
.timeline-home .timeline-side-nav a[href="#hero"] {
  margin-top: 2px;
}
.timeline-home .timeline-hero-title-wrap {
  padding-left: clamp(112px, 12vw, 168px);
  padding-right: clamp(24px, 4vw, 56px);
}
.timeline-home .timeline-hero-scroll {
  right: clamp(28px, 5vw, 74px);
}

@media (max-width: 860px) {
  .timeline-side-shell {
    position: static;
    top: auto;
    left: auto;
    gap: 0;
  }
  .timeline-home .timeline-side-header {
    padding: 11px 0;
    background: rgba(4,10,7,.7);
    border-bottom: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
  .timeline-home .timeline-side-brand {
    min-height: 0;
    padding: 0;
    background: none;
    box-shadow: none;
  }
  .timeline-home .timeline-side-brand .brand-mark {
    display: grid;
    width: 44px;
    height: 44px;
  }
  .timeline-home .timeline-side-brand .brand-name {
    font-size: 1.03rem;
    letter-spacing: .01em;
    text-transform: uppercase;
  }
  .timeline-home .timeline-side-header .menu-toggle {
    display: block;
    z-index: 3;
  }
  .timeline-home .timeline-side-header .timeline-side-nav {
    position: fixed;
    inset: 0;
    min-width: 0;
    padding: 120px 30px 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 18px;
    background: rgba(4,12,8,.97);
    transform: translateY(-105%);
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
    pointer-events: none;
    box-shadow: none;
  }
  .timeline-home .timeline-side-header .timeline-side-nav.open {
    transform: translateY(0);
    pointer-events: auto;
  }
  .timeline-home .timeline-side-header .timeline-side-nav a {
    min-width: 0;
    min-height: 0;
    padding: 0;
    background: none;
    color: #fff;
    box-shadow: none;
    transform: none;
    font-size: clamp(2rem, 9vw, 3.3rem);
    letter-spacing: -.03em;
    text-transform: none;
    font-family: var(--font-display);
  }
  .timeline-home .timeline-side-header .timeline-side-nav a:hover,
  .timeline-home .timeline-side-header .timeline-side-nav a.is-active {
    min-width: 0;
    background: none;
    color: #fff;
    transform: none;
  }
  .timeline-home .timeline-side-header .timeline-side-nav a::after {
    display: block;
  }
  .timeline-home .timeline-hero-title-wrap {
    padding-left: 0;
    padding-right: 0;
  }
}


/* Timeline image positioning adjustments */
#milestone-2023 .career-timeline-media img {
  object-position: center 28%;
}
#milestone-2026-usam .career-timeline-media img {
  object-position: center 22%;
}
#milestone-2026-western .career-timeline-media img {
  object-position: center top;
}
@media (max-width: 980px) {
  #milestone-2023 .career-timeline-media img {
    object-position: center 26%;
  }
  #milestone-2026-usam .career-timeline-media img {
    object-position: center 18%;
  }
  #milestone-2026-western .career-timeline-media img {
    object-position: center 8%;
  }
}


/* Desktop homepage side rail: bars only, no text */
@media (min-width: 861px) {
  .timeline-home .timeline-side-nav {
    gap: 8px;
  }
  .timeline-home .timeline-side-nav a {
    min-width: 0;
    width: 30px;
    min-height: 58px;
    padding: 0;
    color: transparent;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
    overflow: hidden;
    background: rgba(255,255,255,.96);
    box-shadow: 0 10px 24px rgba(0,0,0,.12);
    transform: translateX(-16px);
  }
  .timeline-home .timeline-side-nav a:hover,
  .timeline-home .timeline-side-nav a.is-active {
    min-width: 0;
    width: 40px;
    background: rgba(255,255,255,.96);
    color: transparent;
    transform: translateX(0);
  }
}


/* Updated timeline / gallery image placement */
#milestone-2024 .career-timeline-media img {
  object-position: center 26%;
}
.gallery-slideshow .gallery-slide[data-full="assets/jay-gallery-highfive.jpg"] img {
  object-position: center 24%;
}
@media (max-width: 980px) {
  #milestone-2024 .career-timeline-media img {
    object-position: center 22%;
  }
  .gallery-slideshow .gallery-slide[data-full="assets/jay-gallery-highfive.jpg"] img {
    object-position: center 18%;
  }
}

/* Desktop side rail: bars only by default, labels reveal on hover */
@media (min-width: 861px) {
  .timeline-home .timeline-side-nav {
    gap: 8px;
  }
  .timeline-home .timeline-side-nav a {
    width: 30px;
    min-width: 0;
    min-height: 58px;
    padding: 0;
    justify-content: flex-start;
    white-space: nowrap;
    overflow: hidden;
    color: transparent;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 10px 24px rgba(0,0,0,.12);
    transform: translateX(-16px);
    transition: width .24s ease, padding .24s ease, transform .22s ease, color .18s ease, font-size .18s ease, background .22s ease;
  }
  .timeline-home .timeline-side-nav a.is-active {
    width: 36px;
    min-width: 0;
    padding: 0;
    background: rgba(255,255,255,.96);
    color: transparent;
    font-size: 0;
    line-height: 0;
    text-indent: -9999px;
    transform: translateX(0);
  }
  .timeline-home .timeline-side-nav a:hover,
  .timeline-home .timeline-side-nav a:focus-visible {
    width: 152px;
    min-width: 0;
    padding: 0 18px;
    color: #07100c;
    font-size: .72rem;
    line-height: 1;
    text-indent: 0;
    background: rgba(255,255,255,.98);
    transform: translateX(0);
  }
}


/* Final homepage/timeline refinements */
.timeline-overview {
  display: none;
}
#timeline.career-timeline-wrap {
  padding-top: 72px;
}
#milestone-2026-western .career-timeline-media img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 6%;
}
@media (max-width: 980px) {
  #timeline.career-timeline-wrap {
    padding-top: 56px;
  }
  #milestone-2026-western .career-timeline-media img {
    aspect-ratio: 4 / 5;
    object-position: center 5%;
  }
}


/* Minimal homepage quick links */
.timeline-card-grid-minimal {
  gap: 18px;
}
.timeline-quick-card-minimal {
  min-height: 190px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
}
.timeline-quick-card-minimal h3 {
  margin: 0;
  font-size: clamp(2rem, 3vw, 3.1rem);
  letter-spacing: -.045em;
}
@media (max-width: 980px) {
  .timeline-quick-card-minimal {
    min-height: 145px;
  }
}

/* =========================================================
   Elegant side navigation — site-wide desktop treatment
   ========================================================= */
.side-nav-page .global-side-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 80;
  width: auto;
  padding: 0;
  background: transparent;
  border: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.global-side-shell {
  position: fixed;
  top: 46px;
  left: 0;
  z-index: 81;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.global-side-brand {
  display: inline-flex;
  align-items: center;
  min-height: 78px;
  padding: 0 22px 0 18px;
  background: #050505;
  color: #fff;
  box-shadow: 0 14px 34px rgba(0,0,0,.28);
}
.global-side-brand .brand-mark { display: none; }
.global-side-brand .brand-name {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 2vw, 2.3rem);
  font-weight: 800;
  letter-spacing: .24em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}
.side-nav-page .global-side-header .menu-toggle { display: none; }
.side-nav-page .global-side-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.side-nav-page .global-side-nav a {
  position: relative;
  width: 30px;
  min-width: 0;
  min-height: 58px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  white-space: nowrap;
  overflow: hidden;
  background: rgba(255,255,255,.96);
  color: transparent;
  font-size: 0;
  line-height: 0;
  text-indent: -9999px;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  transform: translateX(-16px);
  transition: width .24s ease, padding .24s ease, transform .22s ease,
              color .18s ease, font-size .18s ease, background .22s ease;
}
.side-nav-page .global-side-nav a::after { display: none; }
.side-nav-page .global-side-nav a.is-active,
.side-nav-page .global-side-nav a[aria-current="page"] {
  width: 36px;
  background: rgba(255,255,255,.98);
  transform: translateX(0);
}
.side-nav-page .global-side-nav a:hover,
.side-nav-page .global-side-nav a:focus-visible {
  width: 152px;
  padding: 0 18px;
  background: rgba(255,255,255,.99);
  color: #07100c;
  font-size: .72rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-indent: 0;
  transform: translateX(0);
  outline: none;
}
.side-nav-page .global-side-nav a:focus-visible {
  box-shadow: 0 0 0 3px rgba(99,209,149,.6), 0 10px 24px rgba(0,0,0,.15);
}

/* Floating return control after using the tournament map. */
.back-to-map-fab {
  position: fixed;
  z-index: 70;
  right: 28px;
  bottom: 28px;
  min-height: 48px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(7,16,12,.94);
  color: #fff;
  box-shadow: 0 14px 38px rgba(0,0,0,.24);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font: inherit;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease, background .22s ease;
}
.back-to-map-fab:hover { background: #13291d; }
.back-to-map-fab.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

@media (max-width: 860px) {
  .side-nav-page .global-side-header {
    top: 0;
    left: 0;
    width: 100%;
    padding: 11px 0;
    background: rgba(4,10,7,.88);
    border-bottom: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
  .global-side-shell {
    position: static;
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
  }
  .global-side-brand {
    min-height: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
  }
  .global-side-brand .brand-mark {
    width: 44px;
    height: 44px;
    display: grid;
  }
  .global-side-brand .brand-name {
    font-size: 1.03rem;
    letter-spacing: .01em;
  }
  .side-nav-page .global-side-header .menu-toggle {
    display: block;
    z-index: 3;
  }
  .side-nav-page .global-side-nav {
    position: fixed;
    inset: 0;
    min-width: 0;
    padding: 120px 30px 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 18px;
    background: rgba(4,12,8,.98);
    transform: translateY(-105%);
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
    pointer-events: none;
  }
  .side-nav-page .global-side-nav.open {
    transform: translateY(0);
    pointer-events: auto;
  }
  .side-nav-page .global-side-nav a,
  .side-nav-page .global-side-nav a.is-active,
  .side-nav-page .global-side-nav a[aria-current="page"],
  .side-nav-page .global-side-nav a:hover,
  .side-nav-page .global-side-nav a:focus-visible {
    width: auto;
    min-width: 0;
    min-height: 0;
    padding: 0;
    background: transparent;
    color: #fff;
    box-shadow: none;
    transform: none;
    overflow: visible;
    font-family: var(--font-display);
    font-size: clamp(2rem, 9vw, 3.3rem);
    line-height: 1;
    font-weight: 700;
    letter-spacing: -.03em;
    text-indent: 0;
    text-transform: none;
  }
  .back-to-map-fab {
    right: 16px;
    bottom: 16px;
    min-height: 46px;
    padding: 0 16px;
    font-size: .7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .side-nav-page .global-side-nav a,
  .back-to-map-fab { transition: none; }
}

/* =========================================================
   Unified dark theme + calm navigation + cinematic intro
   ========================================================= */
html,
body {
  background: #06100b;
}

/* Site-wide dark treatment for interior pages */
.side-nav-page {
  background: #06100b !important;
  color: #f7f8f6;
}
.side-nav-page main,
.side-nav-page .section,
.side-nav-page .profile,
.side-nav-page .schedule,
.side-nav-page .gallery,
.side-nav-page .contact,
.side-nav-page .media-feature-section,
.side-nav-page .media-grid-section,
.side-nav-page .collegiate-schedule,
.side-nav-page .partners-contact,
.side-nav-page .partner-feature-light,
.side-nav-page .partner-feature,
.side-nav-page .media-contact,
.side-nav-page .site-footer {
  background: #06100b !important;
  color: #f7f8f6 !important;
}
.side-nav-page .section-dark,
.side-nav-page .resume,
.side-nav-page .media-contact,
.side-nav-page .partners-contact {
  background: #09130e !important;
}
.side-nav-page h1,
.side-nav-page h2,
.side-nav-page h3,
.side-nav-page strong,
.side-nav-page .lead,
.side-nav-page .schedule-heading h2,
.side-nav-page .schedule-heading h3,
.side-nav-page .media-section-heading h2,
.side-nav-page .partners-hero h1,
.side-nav-page .partner-feature-copy h2,
.side-nav-page .contact-copy h2,
.side-nav-page .footer-brand {
  color: #fff !important;
}
.side-nav-page p,
.side-nav-page .section-intro,
.side-nav-page .schedule-description,
.side-nav-page .small-note,
.side-nav-page .media-lede,
.side-nav-page .partners-lede,
.side-nav-page .partner-feature-intro,
.side-nav-page .press-card-body p,
.side-nav-page .press-meta,
.side-nav-page .schedule-card-body p,
.side-nav-page .career-items p,
.side-nav-page .profile-copy p,
.side-nav-page .contact-panel p {
  color: rgba(255,255,255,.72) !important;
}
.side-nav-page .eyebrow,
.side-nav-page .eyebrow-dark,
.side-nav-page .schedule-type,
.side-nav-page .press-outlet,
.side-nav-page .press-outlet-dark,
.side-nav-page .resume-year,
.side-nav-page .resume-num {
  color: #b8c5bd !important;
}
.side-nav-page .schedule-card,
.side-nav-page .press-card,
.side-nav-page .contact-panel,
.side-nav-page .profile-ranking,
.side-nav-page .career-grid,
.side-nav-page .collegiate-card,
.side-nav-page .partner-explore,
.side-nav-page .event-browser-shell {
  background: #0d1812 !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.12) !important;
  box-shadow: 0 20px 50px rgba(0,0,0,.22) !important;
}
.side-nav-page .schedule-card,
.side-nav-page .press-card,
.side-nav-page .profile-ranking,
.side-nav-page .contact-panel,
.side-nav-page .career-grid {
  border: 1px solid rgba(255,255,255,.10) !important;
}
.side-nav-page .schedule-card:hover,
.side-nav-page .press-card:hover,
.side-nav-page .partner-explore:hover {
  border-color: rgba(255,255,255,.22) !important;
  background: #111f17 !important;
}
.side-nav-page .schedule-page-link,
.side-nav-page .text-link,
.side-nav-page .press-read,
.side-nav-page .wagr-link,
.side-nav-page .contact-links a,
.side-nav-page .partner-explore a {
  color: rgba(255,255,255,.9) !important;
}
.side-nav-page .site-footer {
  border-top-color: rgba(255,255,255,.12) !important;
}
.side-nav-page .site-footer,
.side-nav-page .site-footer p,
.side-nav-page .site-footer a {
  color: rgba(255,255,255,.7) !important;
}

/* Dark schedule map */
.side-nav-page .schedule-map-shell {
  background: radial-gradient(circle at 50% 43%, #13221a 0%, #0c1711 54%, #07100c 100%) !important;
  border-color: rgba(255,255,255,.12) !important;
  box-shadow: 0 24px 65px rgba(0,0,0,.30) !important;
}
.side-nav-page .schedule-map { background: transparent !important; }
.side-nav-page .globe-ocean { fill: #102019 !important; }
.side-nav-page .globe-shadow-disc { fill: rgba(0,0,0,.18) !important; }
.side-nav-page .globe-graticule path { stroke: rgba(255,255,255,.11) !important; }
.side-nav-page .globe-land-lines path { stroke: rgba(220,235,226,.55) !important; }
.side-nav-page .globe-rim { stroke: rgba(255,255,255,.22) !important; }
.side-nav-page .globe-caption { fill: rgba(255,255,255,.42) !important; }
.side-nav-page .event-map-halo {
  fill: #0d1812 !important;
  stroke: rgba(255,255,255,.16) !important;
}
.side-nav-page .event-map-marker-pro .event-map-dot { fill: #f4f5f3 !important; }
.side-nav-page .event-map-marker-college .event-map-dot { fill: #bb5a65 !important; }
.side-nav-page .event-map-label rect {
  fill: rgba(8,17,12,.97) !important;
  stroke: rgba(255,255,255,.14) !important;
}
.side-nav-page .event-map-label text,
.side-nav-page .event-map-label-title { fill: #fff !important; }
.side-nav-page .event-map-label-place { fill: rgba(255,255,255,.62) !important; }
.side-nav-page .schedule-map-key {
  background: rgba(8,17,12,.93) !important;
  border-color: rgba(255,255,255,.12) !important;
  color: #fff !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.24) !important;
}
.side-nav-page .map-filter {
  background: rgba(255,255,255,.04) !important;
  color: rgba(255,255,255,.82) !important;
  border-color: rgba(255,255,255,.18) !important;
}
.side-nav-page .map-filter:hover,
.side-nav-page .map-filter.is-active {
  background: #f5f7f5 !important;
  border-color: #f5f7f5 !important;
  color: #07100c !important;
}

/* Make the Back to map control unmistakable after a marker is used. */
.back-to-map-fab {
  z-index: 220 !important;
  left: 50% !important;
  right: auto !important;
  bottom: 24px !important;
  min-height: 54px !important;
  padding: 0 24px !important;
  transform: translate(-50%, 18px) scale(.98) !important;
  border: 1px solid rgba(7,16,12,.16) !important;
  background: rgba(250,251,249,.97) !important;
  color: #07100c !important;
  box-shadow: 0 18px 54px rgba(0,0,0,.38) !important;
  font-size: .78rem !important;
  letter-spacing: .10em !important;
}
.back-to-map-fab:hover {
  background: #fff !important;
  transform: translate(-50%, -2px) scale(1.02) !important;
}
.back-to-map-fab.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translate(-50%, 0) scale(1) !important;
}
@media (max-width: 860px) {
  .back-to-map-fab {
    left: 50% !important;
    right: auto !important;
    bottom: 16px !important;
    width: calc(100% - 32px);
    max-width: 340px;
    justify-content: center;
  }
}

/* Calm navigation wash / cross-page transition. */
.page-transition-overlay {
  position: fixed;
  inset: 0;
  z-index: 9800;
  pointer-events: none;
  opacity: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(35,68,50,.26), rgba(6,16,11,.86) 58%, #06100b 100%);
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  transition: opacity .42s cubic-bezier(.45,0,.2,1), backdrop-filter .42s ease;
}
.nav-arrival-pending .page-transition-overlay,
.page-transition-overlay.is-leaving {
  opacity: 1;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.page-transition-overlay.is-soft-pulse {
  animation: sideNavCalmWash .76s cubic-bezier(.4,0,.2,1) both;
}
@keyframes sideNavCalmWash {
  0% { opacity: 0; backdrop-filter: blur(0); }
  35% { opacity: .16; backdrop-filter: blur(3px); }
  100% { opacity: 0; backdrop-filter: blur(0); }
}

/* Softer hover movement on the side bars. */
.timeline-home .timeline-side-nav a,
.side-nav-page .global-side-nav a {
  transition-timing-function: cubic-bezier(.2,.78,.2,1) !important;
  transition-duration: .34s !important;
}

/* Homepage opening: black -> fizz -> hero -> panels open. */
.hero-intro {
  position: fixed;
  inset: 0;
  z-index: 10000;
  overflow: hidden;
  pointer-events: none;
  background: transparent;
}
.hero-intro-panel {
  position: absolute;
  left: 0;
  width: 100%;
  height: 50.5%;
  background: #000;
  will-change: transform;
}
.hero-intro-panel-top {
  top: 0;
  animation: heroPanelTop 1.05s cubic-bezier(.72,0,.2,1) 1.18s forwards;
}
.hero-intro-panel-bottom {
  bottom: 0;
  animation: heroPanelBottom 1.05s cubic-bezier(.72,0,.2,1) 1.18s forwards;
}
.hero-intro-fizz {
  position: absolute;
  inset: -15%;
  z-index: 2;
  opacity: 0;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.92) 0 1px, transparent 1.6px),
    radial-gradient(circle, rgba(133,193,158,.72) 0 1px, transparent 1.5px),
    radial-gradient(circle, rgba(255,255,255,.36) 0 1px, transparent 1.4px);
  background-size: 9px 9px, 13px 13px, 17px 17px;
  background-position: 0 0, 4px 7px, 9px 2px;
  mix-blend-mode: screen;
  filter: blur(.15px);
  animation: heroFizz 1.45s ease .18s both;
}
.hero-intro-glow {
  position: absolute;
  inset: 0;
  z-index: 3;
  opacity: 0;
  background: radial-gradient(circle at 50% 48%, rgba(113,174,139,.18), transparent 32%);
  animation: heroGlow 1.6s ease .45s both;
}
.timeline-home .timeline-hero-media img {
  animation: heroImageWake 2.25s cubic-bezier(.2,.72,.2,1) both;
}
.timeline-home .timeline-hero-title-only,
.timeline-home .timeline-side-shell,
.timeline-home .timeline-hero-scroll {
  animation: heroUiWake .8s cubic-bezier(.2,.72,.2,1) 1.72s both;
}
.hero-intro.is-finished {
  opacity: 0;
  transition: opacity .55s ease;
}
@keyframes heroFizz {
  0% { opacity: 0; transform: scale(.95); filter: blur(1.2px); }
  18% { opacity: .16; }
  45% { opacity: .8; transform: scale(1.02); filter: blur(.2px); }
  72% { opacity: .34; }
  100% { opacity: 0; transform: scale(1.08); filter: blur(2px); }
}
@keyframes heroGlow {
  0%,100% { opacity: 0; transform: scale(.86); }
  45% { opacity: 1; transform: scale(1.16); }
}
@keyframes heroPanelTop {
  0% { transform: translateY(0); }
  100% { transform: translateY(-101%); }
}
@keyframes heroPanelBottom {
  0% { transform: translateY(0); }
  100% { transform: translateY(101%); }
}
@keyframes heroImageWake {
  0% { opacity: .05; transform: scale(1.055); filter: blur(12px) brightness(.25) saturate(.6); }
  45% { opacity: .55; filter: blur(5px) brightness(.7) saturate(.85); }
  100% { opacity: 1; transform: scale(1.002); filter: blur(0) brightness(1) saturate(1); }
}
@keyframes heroUiWake {
  0% { opacity: 0; transform: translateY(18px); }
  100% { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .page-transition-overlay,
  .hero-intro,
  .hero-intro-panel,
  .hero-intro-fizz,
  .hero-intro-glow,
  .timeline-home .timeline-hero-media img,
  .timeline-home .timeline-hero-title-only,
  .timeline-home .timeline-side-shell,
  .timeline-home .timeline-hero-scroll {
    animation: none !important;
    transition: none !important;
  }
  .hero-intro { display: none !important; }
}


/* Four elegant homepage destination cards */
.timeline-card-grid-minimal {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.timeline-quick-card-minimal {
  min-height: 188px;
}
@media (max-width: 1100px) {
  .timeline-card-grid-minimal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 620px) {
  .timeline-card-grid-minimal {
    grid-template-columns: 1fr;
  }
}

/* Longer cinematic homepage intro: darkness -> fizz -> image forms -> screen opens */
.hero-intro {
  background: #000;
}
.hero-intro::before,
.hero-intro::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.hero-intro::before {
  z-index: 4;
  opacity: 0;
  background:
    linear-gradient(90deg, transparent 0%, rgba(255,255,255,.035) 48%, rgba(255,255,255,.11) 50%, rgba(255,255,255,.035) 52%, transparent 100%),
    radial-gradient(circle at 50% 50%, rgba(116,190,151,.17), transparent 34%);
  animation: heroCinematicSweep 2.75s cubic-bezier(.2,.72,.2,1) .35s both;
}
.hero-intro::after {
  z-index: 5;
  opacity: 1;
  background: radial-gradient(circle at center, transparent 0 18%, rgba(0,0,0,.18) 48%, rgba(0,0,0,.72) 100%);
  animation: heroVignetteLift 4.05s ease .12s both;
}
.hero-intro-panel {
  z-index: 1;
  background: #000;
}
.hero-intro-panel-top {
  animation: heroPanelTop 1.45s cubic-bezier(.72,0,.16,1) 2.55s forwards;
}
.hero-intro-panel-bottom {
  animation: heroPanelBottom 1.45s cubic-bezier(.72,0,.16,1) 2.55s forwards;
}
.hero-intro-fizz {
  inset: -20%;
  opacity: 0;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.96) 0 1px, transparent 1.7px),
    radial-gradient(circle, rgba(119,191,152,.78) 0 1px, transparent 1.6px),
    radial-gradient(circle, rgba(255,255,255,.42) 0 1px, transparent 1.4px),
    radial-gradient(circle, rgba(153,219,180,.3) 0 .7px, transparent 1.3px);
  background-size: 10px 10px, 15px 15px, 21px 21px, 29px 29px;
  background-position: 0 0, 6px 9px, 11px 3px, 17px 13px;
  mix-blend-mode: screen;
  filter: blur(.35px);
  animation: heroFizzDramatic 2.8s cubic-bezier(.2,.72,.2,1) .28s both;
}
.hero-intro-glow {
  inset: -6%;
  opacity: 0;
  background:
    radial-gradient(circle at 50% 47%, rgba(124,203,161,.26), transparent 26%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.08), transparent 45%);
  animation: heroGlowDramatic 3.05s ease .25s both;
}
.timeline-home .timeline-hero-media img {
  animation: heroImageWakeDramatic 4.45s cubic-bezier(.18,.74,.18,1) .08s both;
}
.timeline-home .timeline-hero-title-only,
.timeline-home .timeline-side-shell,
.timeline-home .timeline-hero-scroll {
  animation: heroUiWakeDramatic 1.05s cubic-bezier(.2,.72,.2,1) 3.82s both;
}
.hero-intro.is-finished {
  opacity: 0;
  transition: opacity .7s ease;
}
@keyframes heroFizzDramatic {
  0% { opacity: 0; transform: scale(.9) rotate(-.25deg); filter: blur(2px); }
  14% { opacity: .08; }
  34% { opacity: .48; filter: blur(.8px); }
  52% { opacity: .9; transform: scale(1.015) rotate(.15deg); filter: blur(.18px); }
  67% { opacity: .66; }
  82% { opacity: .28; transform: scale(1.075); filter: blur(1px); }
  100% { opacity: 0; transform: scale(1.14); filter: blur(3px); }
}
@keyframes heroGlowDramatic {
  0% { opacity: 0; transform: scale(.72); }
  28% { opacity: .18; }
  56% { opacity: 1; transform: scale(1.06); }
  78% { opacity: .56; transform: scale(1.22); }
  100% { opacity: 0; transform: scale(1.38); }
}
@keyframes heroCinematicSweep {
  0% { opacity: 0; transform: translateX(-28%) scaleX(.65); }
  34% { opacity: .12; }
  58% { opacity: .8; transform: translateX(0) scaleX(1); }
  100% { opacity: 0; transform: translateX(25%) scaleX(1.22); }
}
@keyframes heroVignetteLift {
  0%, 18% { opacity: 1; }
  58% { opacity: .82; }
  82% { opacity: .36; }
  100% { opacity: 0; }
}
@keyframes heroImageWakeDramatic {
  0%, 12% {
    opacity: .015;
    transform: scale(1.095);
    filter: blur(20px) brightness(.08) saturate(.3) contrast(1.15);
  }
  34% {
    opacity: .22;
    transform: scale(1.072);
    filter: blur(12px) brightness(.28) saturate(.55) contrast(1.12);
  }
  56% {
    opacity: .58;
    transform: scale(1.044);
    filter: blur(6px) brightness(.62) saturate(.78) contrast(1.06);
  }
  76% {
    opacity: .9;
    transform: scale(1.018);
    filter: blur(1.8px) brightness(.9) saturate(.94) contrast(1.02);
  }
  100% {
    opacity: 1;
    transform: scale(1.002);
    filter: blur(0) brightness(1) saturate(1) contrast(1);
  }
}
@keyframes heroUiWakeDramatic {
  0% { opacity: 0; transform: translateY(26px); filter: blur(5px); }
  58% { opacity: .7; filter: blur(1px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}


/* =========================================================
   Interactive globe controls: wheel/button zoom + drag pan
   ========================================================= */
.schedule-map-shell {
  position: relative;
}
.schedule-map {
  overflow: hidden;
  cursor: grab;
}
.schedule-map.is-dragging {
  cursor: grabbing;
}
.schedule-map .event-globe-svg {
  width: 100%;
  height: 100%;
  max-width: none;
  outline: none;
  touch-action: pan-y;
}
.schedule-map.is-zoomed .event-globe-svg {
  touch-action: none;
}
.schedule-map .event-globe-svg:focus-visible {
  outline: 2px solid rgba(255,255,255,.7);
  outline-offset: -4px;
}
.globe-interaction-controls {
  position: absolute;
  z-index: 700;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 999px;
  background: rgba(6,16,11,.84);
  color: #fff;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 12px 32px rgba(0,0,0,.26);
}
.globe-control-button {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 50%;
  background: rgba(255,255,255,.07);
  color: #fff;
  font: inherit;
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
  transition: background .22s ease, transform .22s ease, border-color .22s ease;
}
.globe-control-button:hover,
.globe-control-button:focus-visible {
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.34);
  transform: translateY(-1px);
  outline: none;
}
.globe-control-reset {
  width: auto;
  padding: 0 14px;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.globe-control-hint {
  padding: 0 8px 0 5px;
  color: rgba(255,255,255,.62);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .05em;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .globe-interaction-controls {
    top: 10px;
    right: 10px;
  }
  .globe-control-button {
    width: 44px;
    height: 44px;
  }
  .globe-control-reset {
    width: auto;
  }
  .globe-control-hint {
    display: none;
  }
}

/* Softer final reveal: preserve the fizz/opening sequence, then dissolve the
   remaining black veil slowly so Jay's face never appears abruptly. */
.hero-intro.is-finished {
  opacity: 0 !important;
  transition: opacity 1.55s cubic-bezier(.22,.7,.2,1) !important;
}
@keyframes heroImageWakeDramatic {
  0%, 12% {
    opacity: .008;
    transform: scale(1.095);
    filter: blur(22px) brightness(.06) saturate(.25) contrast(1.12);
  }
  30% {
    opacity: .11;
    transform: scale(1.078);
    filter: blur(15px) brightness(.20) saturate(.45) contrast(1.1);
  }
  48% {
    opacity: .32;
    transform: scale(1.058);
    filter: blur(9px) brightness(.42) saturate(.64) contrast(1.08);
  }
  64% {
    opacity: .58;
    transform: scale(1.037);
    filter: blur(5px) brightness(.66) saturate(.78) contrast(1.05);
  }
  80% {
    opacity: .82;
    transform: scale(1.018);
    filter: blur(2px) brightness(.86) saturate(.91) contrast(1.02);
  }
  92% {
    opacity: .95;
    transform: scale(1.007);
    filter: blur(.7px) brightness(.96) saturate(.98) contrast(1.01);
  }
  100% {
    opacity: 1;
    transform: scale(1.002);
    filter: blur(0) brightness(1) saturate(1) contrast(1);
  }
}

/* Reliable globe dragging: capture gestures on the whole map surface. */
.schedule-map {
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}
.schedule-map.is-zoomed {
  touch-action: none;
}
.schedule-map.is-dragging,
.schedule-map.is-dragging * {
  cursor: grabbing !important;
}
.schedule-map .event-globe-svg {
  touch-action: inherit;
  -webkit-user-drag: none;
}


/* =========================================================
   Mobile navigation cleanup + gentler map-to-event motion
   ========================================================= */
@media (max-width: 860px) {
  body.mobile-menu-open {
    overflow: hidden;
  }

  /* One clean mobile header system for the homepage and every inner page. */
  .timeline-home .timeline-side-header,
  .side-nav-page .global-side-header {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    height: 68px !important;
    padding: 0 !important;
    display: block !important;
    background: rgba(4,10,7,.92) !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    z-index: 900 !important;
  }

  .timeline-side-shell,
  .global-side-shell {
    position: relative !important;
    inset: auto !important;
    width: calc(100% - 32px) !important;
    max-width: none !important;
    height: 68px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    z-index: 901 !important;
  }

  .timeline-home .timeline-side-brand,
  .global-side-brand {
    min-height: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .timeline-home .timeline-side-brand .brand-mark,
  .global-side-brand .brand-mark {
    display: grid !important;
    width: 42px !important;
    height: 42px !important;
    flex: 0 0 42px !important;
  }

  .timeline-home .timeline-side-brand .brand-name,
  .global-side-brand .brand-name {
    display: inline-block !important;
    color: #fff !important;
    font-family: var(--font-display) !important;
    font-size: .96rem !important;
    font-weight: 800 !important;
    letter-spacing: .05em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }

  .timeline-home .timeline-side-header .menu-toggle,
  .side-nav-page .global-side-header .menu-toggle {
    position: relative !important;
    z-index: 1002 !important;
    width: 46px !important;
    height: 46px !important;
    padding: 10px !important;
    display: grid !important;
    align-content: center !important;
    justify-items: center !important;
    flex: 0 0 46px !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
  }

  .timeline-home .timeline-side-header .menu-toggle span,
  .side-nav-page .global-side-header .menu-toggle span {
    width: 22px !important;
    height: 1.5px !important;
    margin: 3px 0 !important;
    background: currentColor !important;
    transition: transform .32s cubic-bezier(.2,.75,.2,1), opacity .22s ease !important;
    transform-origin: center !important;
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7.5px) rotate(45deg) !important;
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0 !important;
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7.5px) rotate(-45deg) !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav,
  .side-nav-page .global-side-nav {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    padding: 108px 28px 42px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 14px !important;
    overflow-y: auto !important;
    background: rgba(4,12,8,.985) !important;
    box-shadow: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-18px) !important;
    transition: opacity .42s ease, transform .42s cubic-bezier(.2,.75,.2,1), visibility .42s ease !important;
    z-index: 1000 !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav.open,
  .side-nav-page .global-side-nav.open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav a,
  .timeline-home .timeline-side-header .timeline-side-nav a.is-active,
  .timeline-home .timeline-side-header .timeline-side-nav a:hover,
  .timeline-home .timeline-side-header .timeline-side-nav a:focus-visible,
  .side-nav-page .global-side-nav a,
  .side-nav-page .global-side-nav a.is-active,
  .side-nav-page .global-side-nav a[aria-current="page"],
  .side-nav-page .global-side-nav a:hover,
  .side-nav-page .global-side-nav a:focus-visible {
    width: auto !important;
    min-width: 0 !important;
    min-height: 48px !important;
    padding: 4px 0 !important;
    display: flex !important;
    align-items: center !important;
    overflow: visible !important;
    background: transparent !important;
    color: rgba(255,255,255,.82) !important;
    box-shadow: none !important;
    transform: none !important;
    font-family: var(--font-display) !important;
    font-size: clamp(1.85rem, 8vw, 2.8rem) !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: -.035em !important;
    text-indent: 0 !important;
    text-transform: none !important;
    white-space: normal !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav a.is-active,
  .side-nav-page .global-side-nav a.is-active,
  .side-nav-page .global-side-nav a[aria-current="page"] {
    color: #fff !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav a::after,
  .side-nav-page .global-side-nav a::after {
    display: none !important;
  }

  /* Keep content clear of the fixed mobile header. */
  .side-nav-page main {
    padding-top: 68px;
  }
  .timeline-home .timeline-home-main {
    padding-top: 0;
  }
}

/* Make the event arrival cue subtle rather than punchy. */
.event-map-pulse {
  animation: eventCardPulseGentle 1.55s ease-out !important;
}
@keyframes eventCardPulseGentle {
  0%, 100% { box-shadow: inherit; }
  42% { box-shadow: 0 0 0 2px rgba(99,209,149,.22), 0 14px 34px rgba(7,16,12,.12); }
}


/* Phone-only schedule transition: quick soft fade, not a long scroll. Desktop unchanged. */
.mobile-map-fade {
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: 0;
  background: rgba(3, 10, 7, .72);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
@media (max-width: 860px) {
  .mobile-map-fade.is-entering {
    opacity: 1;
    transition: opacity 260ms cubic-bezier(.4,0,.2,1);
  }
  .mobile-map-fade.is-leaving {
    opacity: 0;
    transition: opacity 420ms cubic-bezier(.22,.61,.36,1);
  }

  /* Keep Jay centered in the phone hero crop. */
  .timeline-home .timeline-hero-jay .timeline-hero-media img,
  .timeline-home .timeline-hero-media img {
    object-position: 50% 22% !important;
  }
}
@media (max-width: 560px) {
  .timeline-home .timeline-hero-jay .timeline-hero-media img,
  .timeline-home .timeline-hero-media img {
    object-position: 50% 22% !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-map-fade { display: none !important; }
}

/* Side navigation: hovering anywhere on the rail reveals every menu item together. */
@media (min-width: 861px) {
  .timeline-home .timeline-side-nav:hover a,
  .timeline-home .timeline-side-nav:focus-within a,
  .side-nav-page .global-side-nav:hover a,
  .side-nav-page .global-side-nav:focus-within a {
    width: 152px;
    min-width: 0;
    padding: 0 18px;
    color: #07100c;
    font-size: .72rem;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    text-indent: 0;
    background: rgba(255,255,255,.98);
    transform: translateX(0);
  }
}


/* Media page: four equal article cards, no oversized featured story */
.press-grid.press-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.press-grid.press-grid-four .press-card:last-child {
  grid-column: auto;
}
@media (max-width: 1180px) {
  .press-grid.press-grid-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .press-grid.press-grid-four .press-card:last-child { grid-column: auto; }
}
@media (max-width: 720px) {
  .press-grid.press-grid-four { grid-template-columns: 1fr; }
}


/* Play the cinematic homepage intro only once per browser tab/session. */
html.skip-home-intro .hero-intro {
  display: none !important;
}
html.skip-home-intro .timeline-home .timeline-hero-media img,
html.skip-home-intro .timeline-home .timeline-hero-title-only,
html.skip-home-intro .timeline-home .timeline-side-shell,
html.skip-home-intro .timeline-home .timeline-hero-scroll {
  animation: none !important;
}


/* True global rotating event globe */
.globe-graticule-path {
  fill: none;
  stroke: rgba(255,255,255,.11);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}
.globe-land-path {
  fill: rgba(220,235,226,.13);
  stroke: rgba(220,235,226,.62);
  stroke-width: 1.15;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}
.schedule-map .event-globe-svg {
  transform: none !important;
  touch-action: pan-y;
}
.schedule-map.is-dragging .event-globe-svg {
  touch-action: none;
}
.schedule-map:not(.is-dragging) { cursor: grab; }
.schedule-map.is-dragging { cursor: grabbing; }
.event-map-marker { cursor: pointer; }

/* =========================================================
   Mobile menu: simple dropdown beneath the header
   ========================================================= */
@media (max-width: 860px) {
  body.mobile-menu-open {
    overflow: auto !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav,
  .side-nav-page .global-side-nav {
    position: fixed !important;
    top: 68px !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-height: 0 !important;
    min-width: 0 !important;
    padding: 0 20px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    overflow: hidden !important;
    background: rgba(4, 12, 8, .985) !important;
    border-bottom: 1px solid rgba(255,255,255,.09) !important;
    box-shadow: 0 18px 42px rgba(0,0,0,.34) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-10px) !important;
    transition:
      max-height .42s cubic-bezier(.22,.8,.22,1),
      padding .42s cubic-bezier(.22,.8,.22,1),
      opacity .24s ease,
      transform .36s cubic-bezier(.22,.8,.22,1),
      visibility .36s ease !important;
    z-index: 899 !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav.open,
  .side-nav-page .global-side-nav.open {
    max-height: calc(100dvh - 68px) !important;
    padding: 10px 20px 18px !important;
    overflow-y: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav a,
  .timeline-home .timeline-side-header .timeline-side-nav a.is-active,
  .timeline-home .timeline-side-header .timeline-side-nav a:hover,
  .timeline-home .timeline-side-header .timeline-side-nav a:focus-visible,
  .side-nav-page .global-side-nav a,
  .side-nav-page .global-side-nav a.is-active,
  .side-nav-page .global-side-nav a[aria-current="page"],
  .side-nav-page .global-side-nav a:hover,
  .side-nav-page .global-side-nav a:focus-visible {
    width: 100% !important;
    min-height: 52px !important;
    padding: 0 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    border-bottom: 1px solid rgba(255,255,255,.075) !important;
    background: transparent !important;
    color: rgba(255,255,255,.86) !important;
    font-size: 1.08rem !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: .01em !important;
    text-transform: none !important;
    white-space: nowrap !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav a:last-child,
  .side-nav-page .global-side-nav a:last-child {
    border-bottom: 0 !important;
  }

  .timeline-home .timeline-side-header .timeline-side-nav a.is-active,
  .side-nav-page .global-side-nav a.is-active,
  .side-nav-page .global-side-nav a[aria-current="page"] {
    color: #fff !important;
  }
}


/* Direct Bridgestone link — visible without an Explore disclosure */
.partner-direct-link-wrap {
  margin-top: 30px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.45);
}
.partner-direct-link-wrap p {
  margin: 0 0 20px;
  max-width: 500px;
  color: rgba(255,255,255,.78);
  line-height: 1.7;
}
.partner-direct-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(255,255,255,.65);
  transition: opacity .2s ease, gap .2s ease;
}
.partner-direct-link:hover,
.partner-direct-link:focus-visible {
  opacity: .78;
  gap: 14px;
}

/* Bridgestone page: keep copy clear of Jay's photo */
@media (min-width: 821px) {
  #bridgestone .partner-feature-inner {
    justify-content: flex-end;
    padding-right: clamp(28px, 5vw, 92px);
  }

  #bridgestone .partner-feature-copy {
    width: min(560px, 43vw);
    margin: 0;
    padding: 52px 48px;
    text-align: left;
    background: rgba(6, 16, 11, .88);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 22px;
    box-shadow: 0 24px 70px rgba(0,0,0,.28);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }

  #bridgestone .partner-feature-index {
    margin-bottom: 38px;
  }

  #bridgestone .partner-feature-intro,
  #bridgestone .partner-direct-link-wrap p {
    margin-left: 0;
    margin-right: 0;
  }
}

@media (max-width: 820px) {
  #bridgestone.partner-feature {
    display: block;
    min-height: 0;
    background: #06100b;
  }

  #bridgestone .partner-feature-media {
    position: relative;
    inset: auto;
    height: min(62vw, 430px);
    min-height: 300px;
    z-index: 0;
  }

  #bridgestone .partner-feature-media img {
    object-position: 38% center;
  }

  #bridgestone .partner-feature-overlay {
    display: none;
  }

  #bridgestone .partner-feature-inner {
    position: relative;
    z-index: 1;
    display: block;
    padding: 0;
  }

  #bridgestone .partner-feature-copy {
    width: 100%;
    margin: 0;
    padding: 42px 28px 50px;
    text-align: left;
    background: #0b1710;
  }

  #bridgestone .partner-feature-index {
    margin-bottom: 28px;
  }

  #bridgestone .partner-feature-intro,
  #bridgestone .partner-direct-link-wrap p {
    margin-left: 0;
    margin-right: 0;
  }
}

/* Keep the full Bridgestone wordmark inside the partner card */
@media (min-width: 821px) {
  #bridgestone .partner-feature-wordmark.bridgestone-wordmark {
    width: 100%;
    max-width: 100%;
    gap: 10px;
    flex-wrap: nowrap;
    overflow: visible;
  }

  #bridgestone .partner-feature-wordmark.bridgestone-wordmark span {
    font-size: clamp(2.6rem, 4vw, 4.6rem);
    white-space: nowrap;
    letter-spacing: -.065em;
  }

  #bridgestone .partner-feature-wordmark.bridgestone-wordmark small {
    flex: 0 0 auto;
    font-size: .66rem;
    letter-spacing: .22em;
  }
}


/* Bridgestone layout refinement: keep all headline/copy off Jay's photo */
@media (min-width: 821px) {
  #bridgestone.partner-feature {
    display: grid;
    grid-template-columns: minmax(0, 58%) minmax(420px, 42%);
    min-height: 760px;
    align-items: stretch;
    background: #07100c;
  }

  #bridgestone .partner-feature-media {
    position: relative;
    inset: auto;
    z-index: 0;
    grid-column: 1;
    grid-row: 1;
    min-height: 760px;
    overflow: hidden;
  }

  #bridgestone .partner-feature-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 38% center;
  }

  #bridgestone .partner-feature-overlay {
    display: none;
  }

  #bridgestone .partner-feature-inner {
    grid-column: 2;
    grid-row: 1;
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 0;
    background: #0b1710;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  #bridgestone .partner-feature-copy {
    width: min(100%, 590px);
    margin: 0;
    padding: 72px 54px;
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  #bridgestone .partner-feature-index {
    margin-bottom: 42px;
  }

  #bridgestone .partner-feature-wordmark.bridgestone-wordmark {
    width: 100%;
    max-width: 100%;
    margin-bottom: 34px;
  }

  #bridgestone .partner-feature-wordmark.bridgestone-wordmark span {
    font-size: clamp(2.45rem, 3.7vw, 4.35rem);
    white-space: nowrap;
  }

  #bridgestone .partner-feature-wordmark.bridgestone-wordmark small {
    font-size: .62rem;
  }
}

@media (min-width: 821px) and (max-width: 1100px) {
  #bridgestone.partner-feature {
    grid-template-columns: 52% 48%;
  }

  #bridgestone .partner-feature-copy {
    padding: 60px 38px;
  }

  #bridgestone .partner-feature-wordmark.bridgestone-wordmark span {
    font-size: clamp(2.15rem, 4vw, 3.4rem);
  }
}

/* Career page now opens directly at the trophy/profile section */
#profile {
  scroll-margin-top: 24px;
}


/* Main scrolling page media section now mirrors the dedicated Media page exactly. */
.side-nav-page #media.media-grid-section {
  background: #06100b !important;
}
.side-nav-page #media .media-section-heading {
  margin-bottom: 34px;
}
.side-nav-page #media .press-grid.press-grid-four {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}
.side-nav-page #media .press-card {
  min-width: 0;
  height: 100%;
  background: #0d1812 !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: none !important;
}
.side-nav-page #media .press-card-image {
  aspect-ratio: 4 / 3;
}
.side-nav-page #media .press-card-body {
  min-height: 430px;
  background: #0d1812 !important;
}
.side-nav-page #media .press-card h3 {
  color: #fff !important;
}
@media (max-width: 1180px) {
  .side-nav-page #media .press-grid.press-grid-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .side-nav-page #media .press-card-body {
    min-height: 360px;
  }
}
@media (max-width: 720px) {
  .side-nav-page #media .press-grid.press-grid-four {
    grid-template-columns: 1fr;
  }
  .side-nav-page #media .press-card-body {
    min-height: 0;
  }
}


/* Keep Gallery and every primary destination accessible in the fixed side rail. */
@media (min-width: 861px) {
  .timeline-side-shell,
  .global-side-shell {
    max-height: calc(100vh - 60px);
  }

  .timeline-side-nav,
  .global-side-nav {
    max-height: calc(100vh - 150px);
    overflow-y: auto;
    overflow-x: visible;
    scrollbar-width: none;
  }

  .timeline-side-nav::-webkit-scrollbar,
  .global-side-nav::-webkit-scrollbar {
    display: none;
  }
}


/* Homepage quick-link cards removed; no reserved spacing. */
.timeline-card-grid-minimal,
.timeline-quick-card-minimal {
  display: none !important;
}


/* Media is now a same-page destination on the main scrolling page. */
#media {
  scroll-margin-top: 32px;
}


/* Partners is now a same-page destination on the main scrolling page. */
#partners {
  scroll-margin-top: 32px;
}


/* Rankings & Honors — cleaner, open editorial layout */
.career-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px, .68fr) minmax(0, 1.32fr);
  gap: clamp(52px, 7vw, 110px);
  margin-top: 100px;
  padding: 64px 0 22px;
  border-top: 0 !important;
}

.career-grid::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 76px;
  height: 2px;
  background: rgba(255,255,255,.72);
}

.career-heading {
  align-self: start;
  padding-top: 4px;
}

.career-heading .eyebrow {
  margin-bottom: 18px;
  color: rgba(255,255,255,.62);
}

.career-heading h3 {
  max-width: 360px;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.35rem, 4vw, 4rem);
  line-height: .98;
  letter-spacing: -.055em;
}

.career-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(34px, 4vw, 64px);
  row-gap: 0;
}

.career-items p {
  position: relative;
  margin: 0;
  padding: 0 0 28px;
  margin-bottom: 28px;
  border-bottom: 0 !important;
  color: rgba(255,255,255,.67);
  font-size: clamp(1rem, 1.3vw, 1.18rem);
  line-height: 1.48;
}

.career-items p::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,.20), rgba(255,255,255,0));
}

.career-items strong {
  color: #fff;
  font-weight: 800;
}

@media (max-width: 980px) {
  .career-grid {
    grid-template-columns: 1fr;
    gap: 42px;
    margin-top: 78px;
    padding-top: 54px;
  }

  .career-heading h3 {
    max-width: none;
  }
}

@media (max-width: 760px) {
  .career-grid {
    margin-top: 64px;
    padding-top: 46px;
  }

  .career-grid::before {
    width: 54px;
  }

  .career-items {
    grid-template-columns: 1fr;
  }

  .career-items p {
    padding-bottom: 22px;
    margin-bottom: 22px;
  }
}


/* Rankings & Honors: add breathing room from the screen edge and remove leftover outer border. */
.career-grid {
  box-sizing: border-box;
  width: calc(100% - clamp(40px, 6vw, 110px));
  max-width: 1700px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(26px, 3.5vw, 58px);
  padding-right: clamp(26px, 3.5vw, 58px);
  border: 0 !important;
}

.career-grid::before {
  left: clamp(26px, 3.5vw, 58px);
}

@media (max-width: 760px) {
  .career-grid {
    width: calc(100% - 32px);
    padding-left: 18px;
    padding-right: 18px;
  }

  .career-grid::before {
    left: 18px;
  }
}

/* Media cards: dates removed, outlet labels stay clean and left-aligned. */
#media .press-card-top,
.media-page .press-card-top {
  justify-content: flex-start !important;
}


/* Automatic schedule lifecycle */
.schedule-auto-section {
  padding-top: 92px;
  margin-top: 92px;
  border-top: 1px solid var(--dark-line);
}

.schedule-auto-section[hidden] {
  display: none !important;
}

.schedule-auto-heading {
  max-width: 760px;
  margin-bottom: 34px;
}

.schedule-auto-heading h2 {
  margin: 8px 0 12px;
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4.7rem);
  line-height: .98;
  letter-spacing: -.055em;
}

.schedule-auto-heading > p:last-child {
  margin: 0;
  color: #667169;
  font-size: 1rem;
}

.schedule-auto-cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.event-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  padding: 6px 10px;
  border-radius: 999px;
  background: #e8ede9;
  color: #243029;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.event-status-pill[hidden] {
  display: none !important;
}

.schedule-card.is-event-live {
  border-color: rgba(21, 88, 49, .38);
  box-shadow: 0 18px 45px rgba(21, 88, 49, .10);
}

.schedule-card.is-event-live .event-status-pill {
  background: #173c26;
  color: #fff;
}

.schedule-card.is-event-completed {
  background: #f5f6f4;
}

.schedule-card.is-latest-result {
  background: #0b1710;
  color: #fff;
  border-color: #0b1710;
}

.schedule-card.is-latest-result .schedule-card-body > div:last-child > p:last-child,
.schedule-card.is-latest-result .schedule-top {
  color: rgba(255,255,255,.68);
}

.schedule-card.is-latest-result .event-status-pill {
  background: rgba(255,255,255,.13);
  color: #fff;
}

.event-map-marker-completed {
  opacity: .46;
}

.event-map-marker-live .event-map-dot {
  transform-box: fill-box;
  transform-origin: center;
  animation: eventMarkerLivePulse 1.6s ease-in-out infinite;
}

@keyframes eventMarkerLivePulse {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.45); }
}

@media (max-width: 860px) {
  .schedule-auto-section {
    padding-top: 68px;
    margin-top: 68px;
  }

  .schedule-auto-cards {
    grid-template-columns: 1fr;
  }

  .event-status-pill {
    font-size: .62rem;
    padding: 5px 8px;
  }
}


/* Recent-results details */
.schedule-result-detail {
  margin-top: 14px !important;
  font-size: .9rem !important;
  color: #4d5b52 !important;
  letter-spacing: .01em;
}

.schedule-result-detail strong {
  color: #132019;
}

.schedule-card.is-latest-result .schedule-result-detail {
  color: rgba(255,255,255,.72) !important;
}

.schedule-card.is-latest-result .schedule-result-detail strong {
  color: #fff;
}

.latest-result-section .schedule-auto-cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 860px) {
  .latest-result-section .schedule-auto-cards {
    grid-template-columns: 1fr;
  }
}


/* Fighting Illini event photo */
#event-fighting-illini .schedule-card-image img {
  object-position: center 48%;
}

/* Four partner layouts */
.home-partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.custom-partner-wordmark { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.6rem,3vw,3rem); letter-spacing: -.04em; line-height: 1.08; }
.custom-partner-feature-wordmark { font-family: var(--font-display); font-weight: 800; font-size: clamp(2.2rem,6vw,5rem); letter-spacing: -.045em; line-height: 1.08; max-width: 750px; }
.home-partner-empower .home-partner-shade { background: linear-gradient(180deg,rgba(9,24,49,.18),rgba(7,18,38,.92)); }
.home-partner-lab .home-partner-shade { background: linear-gradient(180deg,rgba(10,39,28,.2),rgba(5,25,17,.95)); }
.home-partner-wwt .home-partner-shade { background: linear-gradient(180deg,rgba(7,24,43,.12),rgba(5,19,33,.95)); }
@media(max-width:700px) { .home-partner-grid { grid-template-columns: 1fr; } .custom-partner-feature-wordmark { font-size: clamp(2rem,9vw,3.5rem); } }

/* Partner detail-page content clearance: keep all text beyond the fixed sidebar. */
@media (min-width: 861px) {
  .partners-page .partner-feature:not(#bridgestone) .partner-feature-inner {
    width: 100%;
    max-width: 1440px;
    box-sizing: border-box;
    padding-left: clamp(210px, 19vw, 330px);
    padding-right: clamp(42px, 7vw, 115px);
  }
  .partners-page .partner-feature:not(#bridgestone) .partner-feature-copy {
    width: min(100%, 590px);
  }
}
@media (max-width: 860px) {
  .partners-page .partner-feature:not(#bridgestone) .partner-feature-inner {
    width: 100%;
    box-sizing: border-box;
    padding-inline: clamp(24px, 7vw, 64px);
  }
  .partners-page .partner-feature:not(#bridgestone) .partner-feature-copy {
    width: 100%;
    max-width: 620px;
  }
}
.partners-page .custom-partner-feature-wordmark {
  overflow-wrap: anywhere;
}

/* Co-branded partner presentation, inset from sidebar */
.partner-feature-co-branded{min-height:650px;position:relative}
.partner-feature-co-branded .partner-feature-media{position:absolute;inset:0;width:100%}
.partner-feature-co-branded .partner-feature-media img{width:100%;height:100%;object-fit:cover;object-position:center 34%}
.partner-feature-co-branded .partner-feature-overlay{background:linear-gradient(90deg,rgba(6,14,25,.90) 0%,rgba(6,14,25,.78) 36%,rgba(6,14,25,.12) 76%)}
.partner-feature-co-branded .partner-feature-inner{position:relative;z-index:2;width:min(100% - 64px,1120px);margin-inline:auto;padding:115px 48px;display:flex;align-items:center;min-height:650px}
.partner-feature-co-branded .partner-feature-copy{margin-left:clamp(45px,8vw,135px);max-width:480px}
.partner-feature-co-branded .custom-partner-feature-wordmark{font-size:clamp(2rem,4vw,3.5rem);line-height:1.12}
.partner-feature-co-branded .partner-direct-link-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.home-partner-empower-wwt .home-partner-wordmark{font-size:clamp(1.45rem,2.6vw,2.6rem);line-height:1.12;max-width:90%}
.home-partner-empower-wwt .home-partner-shade{background:linear-gradient(180deg,transparent 12%,rgba(3,14,23,.92) 100%)}
@media(max-width:800px){.partner-feature-co-branded .partner-feature-inner{width:100%;padding:320px 32px 65px;align-items:flex-end}.partner-feature-co-branded .partner-feature-copy{margin:0 auto;max-width:540px}.partner-feature-co-branded .partner-feature-overlay{background:linear-gradient(180deg,rgba(6,14,25,.02),rgba(6,14,25,.88) 70%)}.partner-feature-co-branded .partner-feature-media img{object-position:center top}}

/* WWT + Empower: text entirely on dark left panel, photo uncropped on right. */
@media (min-width: 861px) {
 body.partners-page #empower-wwt.partner-feature-co-branded {min-height: 720px; background: #142029; overflow:hidden; isolation:isolate;}
 body.partners-page #empower-wwt .partner-feature-media {position:absolute;inset:0 0 0 auto;width:53%;height:100%;z-index:-3;background:#a5b1b2;}
 body.partners-page #empower-wwt .partner-feature-media img {width:100%;height:100%;object-fit:contain;object-position:right center;}
 body.partners-page #empower-wwt .partner-feature-overlay {position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#142029 0%,#142029 40%,rgba(20,32,41,.95) 48%,rgba(20,32,41,.28) 67%,transparent 80%);}
 body.partners-page #empower-wwt .partner-feature-inner {position:relative;z-index:2;box-sizing:border-box;min-height:720px;max-width:none;width:100%;margin:0;padding:72px max(30px,5vw) 72px clamp(180px,16vw,265px);display:flex;justify-content:flex-start;align-items:center;}
 body.partners-page #empower-wwt .partner-feature-copy {box-sizing:border-box;width:min(450px,40vw);max-width:450px;margin:0;padding:0;text-align:left;}
 body.partners-page #empower-wwt .partner-feature-index {margin-bottom:48px;}
 body.partners-page #empower-wwt .custom-partner-feature-wordmark {font-size:clamp(1.9rem,3.1vw,3.45rem);line-height:1.12;max-width:100%;overflow-wrap:normal;}
 body.partners-page #empower-wwt .partner-feature-intro {font-size:clamp(1rem,1.45vw,1.2rem);max-width:410px;}
 body.partners-page #empower-wwt .partner-direct-link-wrap {max-width:410px;}
}
@media (min-width:861px) and (max-width:1150px){
 body.partners-page #empower-wwt .partner-feature-inner {padding-left:155px;}
 body.partners-page #empower-wwt .partner-feature-copy {width:40vw;}
 body.partners-page #empower-wwt .custom-partner-feature-wordmark {font-size:clamp(1.8rem,3vw,2.65rem);}
}
@media (max-width:860px) {
 body.partners-page #empower-wwt {display:flex; flex-direction:column; min-height:0;background:#142029;}
 body.partners-page #empower-wwt .partner-feature-media {position:relative; inset:auto;width:100%;height: min(115vw,650px);min-height:330px;background:#142029;}
 body.partners-page #empower-wwt .partner-feature-media img {width:100%;height:100%;object-fit:contain;object-position:center center;}
 body.partners-page #empower-wwt .partner-feature-overlay {display:none;}
 body.partners-page #empower-wwt .partner-feature-inner {position:relative;min-height:0;width:100%;margin:0;padding:38px 28px 55px;display:block;}
 body.partners-page #empower-wwt .partner-feature-copy {margin:0; padding:0;max-width:100%;width:100%;}
 body.partners-page #empower-wwt .partner-feature-index {margin-bottom:24px;}
 body.partners-page #empower-wwt .custom-partner-feature-wordmark {font-size:clamp(2rem,7vw,3.4rem);max-width:100%;}
}
