@keyframes pulse-progress {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}
@keyframes slide-right {
  from { width: 0%; }
  to { width: var(--progress, 25%); }
}
.animate-pulse-progress { animation: pulse-progress 2s ease-in-out infinite; }
.progress-bar { animation: slide-right 0.5s ease-out forwards; }

/* Drag and drop */
.drop-zone { transition: all 0.2s ease; }
.drop-zone.dragover { border-color: #C44A1A; background-color: rgba(255,107,53,0.05); transform: scale(1.01); }

/* Paywall blur */
.paywall-blur { filter: blur(6px); pointer-events: none; user-select: none; }
.paywall-overlay { backdrop-filter: blur(2px); }

/* Step indicators */
.step-dot { transition: all 0.3s ease; }
.step-dot.active { background-color: #C44A1A; color: white; transform: scale(1.15); }
.step-dot.done { background-color: #22c55e; color: white; }
.step-line { transition: background-color 0.3s ease; }
.step-line.active { background-color: #C44A1A; }

/* Accordion */
.accordion-content { max-height: 0; overflow: hidden; transition: max-height 0.3s ease, padding 0.3s ease; padding-top: 0; padding-bottom: 0; }
.accordion-content.open { max-height: 500px; padding-top: 0; padding-bottom: 1.25rem; }

/* Smooth scrolling */
html { scroll-behavior: smooth; }

/* Skip link */
.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: 9999;
}
.skip-link:focus {
  position: fixed;
  top: 0;
  left: 0;
  width: auto;
  height: auto;
  padding: 0.75rem 1.5rem;
  background: #C44A1A;
  color: white;
  font-weight: 600;
  text-decoration: none;
  z-index: 9999;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Print */
@media print {
  nav, .no-print, button, .paywall-overlay { display: none !important; }
  .paywall-blur { filter: none !important; }
  body { font-size: 12pt; color: #000; }
  table { border-collapse: collapse; width: 100%; }
  th, td { border: 1px solid #ccc; padding: 4px 8px; text-align: left; }
}

/* Hero background image */
.hero-img {
  filter: saturate(0.7) brightness(0.9);
}

/* Card photo hover zoom */
.card-photo {
  transition: transform 0.4s ease;
}
.card-photo:hover {
  transform: scale(1.05);
}

@media (prefers-reduced-motion: reduce) {
  .card-photo:hover {
    transform: none;
  }
  .hero-img {
    filter: saturate(0.7) brightness(0.9);
  }
}

/* Hamburger menu slide */
#hamburger-menu { transition: transform 0.3s ease-out; }
#hamburger-menu.translate-x-0 { transform: translateX(0) !important; }

/* Profile dropdown */
#profile-dropdown {
  transition: opacity 0.15s ease, transform 0.15s ease;
  transform-origin: top right;
}