html:has(body.ir-site) {
  scroll-behavior: smooth;
  scroll-padding-top: 88px;
}

body.ir-site main#mainContent :is(.button, .pune-event-cta, .sponsor-contact, .race-day-utilities a) {
  transition: transform 220ms ease, box-shadow 220ms ease, background-color 220ms ease, color 220ms ease;
}

body.ir-site main#mainContent :is(.button, .pune-event-cta):focus-visible,
body.ir-site main#mainContent :is(.contest-card > a, .pune-event-races a, .race-day-utilities a):focus-visible {
  outline: 3px solid #a6cb4a !important;
  outline-offset: 4px;
}

body.ir-site main#mainContent > .hero {
  overflow: hidden;
}

body.ir-site .hero-slide {
  will-change: transform;
}

body.ir-site .hero-facts > div {
  transition: background-color 220ms ease, color 220ms ease;
}

body.ir-site .hero-facts > div:hover {
  background-color: #f0f7ed !important;
}

body.ir-site .contest-card,
body.ir-site .upcoming-event,
body.ir-site .update-feed article,
body.ir-site .faq-list details {
  transition: transform 240ms ease, border-color 240ms ease, box-shadow 240ms ease, background-color 240ms ease;
}

body.ir-site .contest-card:hover,
body.ir-site .upcoming-event:hover,
body.ir-site .update-feed article:hover {
  transform: translateY(-3px);
}

body.ir-site .pune-event-cta:hover,
body.ir-site .hero .button-primary:hover,
body.ir-site .closing .button-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 9px 20px rgba(9, 42, 35, .2);
}

body.ir-site .timeline li::before {
  transition: transform 220ms ease, box-shadow 220ms ease;
}

body.ir-site .timeline li:hover::before {
  transform: scale(1.24);
  box-shadow: 0 0 0 6px rgba(219, 85, 72, .14) !important;
}

@media (prefers-reduced-motion: no-preference) {
  body.ir-site .hero-slide {
    animation: ir-photo-drift 28s ease-in-out infinite alternate;
  }

  body.ir-site main#mainContent [data-reveal] {
    opacity: 0 !important;
    transform: translateY(22px) !important;
    transition: opacity 680ms cubic-bezier(.2, .7, .2, 1), transform 680ms cubic-bezier(.2, .7, .2, 1) !important;
  }

  body.ir-site main#mainContent [data-reveal].is-visible {
    opacity: 1 !important;
    transform: none !important;
  }

  body.ir-site .contest-card[data-reveal]:nth-child(2) { transition-delay: 100ms !important; }
  body.ir-site .contest-card[data-reveal]:nth-child(3) { transition-delay: 180ms !important; }

  body.ir-site .timeline li::before {
    animation: ir-marker-breathe 3.4s ease-in-out 1;
    animation-play-state: paused;
  }

  body.ir-site .timeline.is-visible li::before { animation-play-state: running; }
  body.ir-site .timeline li:nth-child(2)::before { animation-delay: 180ms; }
  body.ir-site .timeline li:nth-child(3)::before { animation-delay: 360ms; }
  body.ir-site .timeline li:nth-child(4)::before { animation-delay: 540ms; }
  body.ir-site .timeline li:nth-child(5)::before { animation-delay: 720ms; }

  @keyframes ir-photo-drift {
    from { transform: scale(1.015) translateX(-.25%); }
    to { transform: scale(1.075) translateX(.25%); }
  }

  @keyframes ir-marker-breathe {
    0%, 100% { box-shadow: 0 0 0 1px #db5548; }
    50% { box-shadow: 0 0 0 5px rgba(219, 85, 72, .18); }
  }
}

@media (max-width: 680px) {
  html:has(body.ir-site) { scroll-padding-top: 74px; }
  body.ir-site .contest-card:hover,
  body.ir-site .upcoming-event:hover,
  body.ir-site .update-feed article:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  html:has(body.ir-site) { scroll-behavior: auto; }
  body.ir-site *,
  body.ir-site *::before,
  body.ir-site *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
