/* RF27 motion: short entrances, responsive controls, no perpetual motion. */
:root { --ease-race: cubic-bezier(.2,.75,.25,1); }
@keyframes rf-arrive {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes rf-sweep {
  from { transform: translateX(-150%) skewX(-18deg); }
  to { transform: translateX(500%) skewX(-18deg); }
}
@keyframes rf-underline {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
main { animation: rf-arrive 420ms var(--ease-race) both; }
.grid > *, .event-row { animation: rf-arrive 500ms var(--ease-race) backwards; }
.grid > :nth-child(3n+2) { animation-delay: 65ms; }
.grid > :nth-child(3n) { animation-delay: 130ms; }
.event-row:nth-of-type(2) { animation-delay: 65ms; }
.event-row:nth-of-type(3) { animation-delay: 130ms; }
.event-hero::after, .page-heading::after {
  content: ''; position: absolute; inset: 0 auto 0 0; width: 26%;
  background: linear-gradient(90deg, transparent, #ffffff17, transparent);
  pointer-events: none; animation: rf-sweep 1100ms var(--ease-race) both;
}
.navigation a, .tabs button, .switcher a {
  position: relative;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.navigation a::after, .tabs.line button::after {
  content: ''; position: absolute; bottom: 0; left: 14px; right: 14px;
  height: 2px; background: currentColor; transform: scaleX(0);
  transform-origin: left; transition: transform 220ms var(--ease-race);
}
.navigation a:hover::after, .navigation a:focus-visible::after,
.tabs.line button:hover::after, .tabs.line button:focus-visible::after { transform: scaleX(1); }
.switcher a.active::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0;
  height: 2px; background: white; transform-origin: left;
  animation: rf-underline 350ms var(--ease-race) both;
}
.driver-card, .team-card, .panel, .event-row {
  transition: transform 220ms var(--ease-race), box-shadow 220ms ease, background-color 220ms ease;
}
.discord-link, .text-link, .brand img {
  transition: transform 200ms var(--ease-race), box-shadow 200ms ease, background-color 200ms ease;
}
tbody tr, .compact-row { transition: background-color 180ms ease; }
.countdown div { transition: transform 200ms var(--ease-race), background-color 200ms ease; }
@media (hover: hover) and (pointer: fine) {
  .driver-card:hover, .team-card:hover, .home-panels .panel:hover {
    transform: translateY(-4px); box-shadow: 0 12px 24px #0005;
  }
  .event-row:hover { transform: translateX(4px); }
  .discord-link:hover { transform: translateY(-2px); box-shadow: 0 6px 20px #5865f240; }
  .text-link:hover { transform: translateX(4px); }
  .brand:hover img { transform: translateX(3px); }
  tbody tr:hover, .compact-row:hover { background-color: #ffffff06; }
  .countdown div:hover { transform: translateY(-3px); background-color: #0004; }
}
.discord-link:active, .tabs button:active { transform: scale(.97); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important; transition: none !important; scroll-behavior: auto !important;
  }
  .driver-card:hover, .team-card:hover, .home-panels .panel:hover,
  .event-row:hover, .discord-link:hover, .text-link:hover, .brand:hover img,
  .countdown div:hover, .discord-link:active, .tabs button:active { transform: none; }
  .event-hero::after, .page-heading::after { display: none; }
}
