/* THE DJ CALENDAR - Motion layer (vanilla, zero dependencies) */
/* Loaded via @import from style.css. All motion gated behind
   prefers-reduced-motion: no-preference. Entrances animate
   transform/opacity only (compositor-friendly). */
@media (prefers-reduced-motion: no-preference) {

  /* --- 2. Homepage pill nav: cyan underline sweep on hover --- */
  .pill-btn--nav { position: relative; }
  .pill-btn--nav::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 5px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, transparent, #00d2ff, transparent);
    transform: scaleX(0);
    transform-origin: center;
    opacity: .9;
    transition: transform .28s cubic-bezier(.22,.61,.36,1);
    pointer-events: none;
  }
  .pill-btn--nav:hover::after,
  .pill-btn--nav:focus-visible::after { transform: scaleX(1); }

  /* Current pill: soft breathing glow (the EQ brand, alive) */
  .pill-btn--current { animation: djcPillGlow 3.2s ease-in-out infinite; }
  @keyframes djcPillGlow {
    0%, 100% { box-shadow: 0 0 0 rgba(0,210,255,0); }
    50%      { box-shadow: 0 0 14px rgba(0,210,255,.35); }
  }

  /* --- Subpage header nav links: gentle cyan lift --- */
  .nav-login, .nav-register, .nav-genre-dropdown {
    transition: color .2s ease, text-shadow .2s ease;
  }
  .nav-login:hover, .nav-register:hover, .nav-genre-dropdown:hover {
    text-shadow: 0 0 8px rgba(0,210,255,.45);
  }

  /* --- 4. City show cards: fade-up entrance on scroll --- */
  /* Base state stays VISIBLE; hiding only happens once JS adds
     .motion-ready, so no-JS visitors and crawlers see everything. */
  .motion-ready .city-show-card {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .5s ease, transform .5s cubic-bezier(.22,.61,.36,1);
    will-change: opacity, transform;
  }
  .motion-ready .city-show-card.in-view {
    opacity: 1;
    transform: translateY(0);
  }
}/* ===== djc-home-track-v2 (Oct 19 2026): full hover track treatment + reserved height ===== */
.dj-card-track {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 3px;
    font-family: 'Rajdhani', sans-serif;
    font-size: 0.72rem;
    font-weight: 500;
    color: #00d2ff;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    letter-spacing: 0.3px;
    justify-content: center;
    min-height: 18px;
}
.dj-card-track .track-icon {
    font-size: 0.9rem;
    line-height: 1;
    flex-shrink: 0;
}
.dj-card-track .track-icon::before {
    content: '\266A';
}
.dj-card-track .track-name {
    overflow: hidden;
    text-overflow: ellipsis;
}
.dj-card.is-preview-playing .dj-card-track {
    opacity: 1;
    transform: none;
}
/* ===== end djc-home-track-v2 ===== */
