/* --- Animations --- */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .fade-up {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .hero-phones .phone-frame { transition: none; }
  .carousel-phone { transition: none; }
  .feature-card { transition: none; }
  .patch-card { transition: none; }
  .nav-cta { transition: none; }
  html { scroll-behavior: auto; }
}

/* --- Focus States --- */
a:focus-visible,
button:focus-visible,
.primary-btn:focus-visible,
.secondary-btn:focus-visible,
.nav-cta:focus-visible {
  outline: 2px solid var(--cinnabar);
  outline-offset: 2px;
}

/* --- Skip Link --- */
.skip-link {
  position: absolute;
  top: -100%;
  left: 16px;
  background: var(--cinnabar);
  color: #fff;
  padding: 12px 24px;
  border-radius: 8px;
  font-weight: 700;
  z-index: 9999;
  transition: top 0.2s;
}
.skip-link:focus {
  top: 16px;
}

/* --- Cursor Pointer --- */
.patch-card,
.secondary-btn,
.nav-links a,
.footer-bottom a {
  cursor: pointer;
}
