/* Explicit targets keep all project carousel elements outside these effects. */
:is(#navbar h1, #navbar .nav-toggle, .field-links a, .lab-controls button,
    .lab-map button, .event-row, .creative-grid a, .contact-note a, #footer a) {
  transition: transform 180ms ease, background-color 180ms ease,
    color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

:is(.field-links a, .contact-note a) { display: inline-block; }

:is(.field-links a span, .contact-note a span, .event-action,
    .creative-symbol, .lab-map button span) {
  display: inline-block;
  transition: transform 220ms ease, color 180ms ease;
}

:is(.event-row, .creative-grid a) h3 { transition: color 180ms ease; }

/* Hover motion only runs on devices with an accurate, hover-capable pointer. */
@media (hover: hover) and (pointer: fine) {
  :is(#navbar h1, #navbar .nav-toggle, .field-links a, .lab-controls button,
      .contact-note a, #footer a):hover {
    transform: translateY(-3px);
  }

  :is(.lab-controls button, .lab-map button):hover {
    border-color: #c9a96e;
    box-shadow: 0 5px 16px rgb(0 0 0 / 20%);
  }

  .lab-map button:hover { transform: translateX(4px); }
  :is(.event-row, .creative-grid a):hover { transform: translateY(-4px); }
  :is(.field-links a, .contact-note a):hover span { transform: translate(3px, -3px); }
  .event-row:hover .event-action { transform: translateX(4px); }
  .creative-grid a:hover .creative-symbol { transform: translateY(-4px) rotate(8deg); }
}

:is(#navbar h1, #navbar .nav-toggle, .field-links a, .lab-controls button,
    .lab-map button, .event-row, .creative-grid a, .contact-note a, #footer a):focus-visible {
  outline: 2px solid #c9a96e;
  outline-offset: 5px;
}

:is(#navbar h1, #navbar .nav-toggle, .field-links a, .lab-controls button,
    .lab-map button, .event-row, .creative-grid a, .contact-note a, #footer a):active {
  transform: translateY(1px) scale(.98);
}

/* Preserve immediate state feedback for visitors who prefer less motion. */
@media (prefers-reduced-motion: reduce) {
  :is(#navbar h1, #navbar .nav-toggle, .field-links a, .lab-controls button,
      .lab-map button, .event-row, .creative-grid a, .contact-note a, #footer a),
  :is(.field-links a span, .contact-note a span, .event-action,
      .creative-symbol, .lab-map button span, .event-row h3, .creative-grid a h3) {
    transition: none;
    transform: none !important;
  }
}
