/* ============== SCROLL REVEAL ============== */
.reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 1s var(--ease-cinematic), transform 1s var(--ease-cinematic);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001s !important;
    transition-duration: 0.001s !important;
  }
  .reveal { opacity: 1; transform: none; }
}

/* ============== RESPONSIVE — TABLET/DESKTOP ============== */
@media (min-width: 640px) {
  .shell { padding: 120px 40px; }
  .hero { padding: 0 40px calc(var(--safe-bottom) + 80px); }
  .feature-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .service-stack { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .apply-form { gap: 16px; }
  .stats-grid { grid-template-columns: repeat(4, 1fr); }
  .footer-grid { grid-template-columns: 2fr 1fr 1fr; gap: 60px; }
  .form-submit-row { flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; }
  .form-submit-row .btn { padding: 18px 32px; }
  .footer-bar { flex-direction: row; align-items: center; justify-content: space-between; }
}

@media (min-width: 1024px) {
  .site-header { padding: calc(var(--safe-top) + 24px) 48px 24px; }
  .brand { font-size: 18px; }
  .hybrid-hero { padding: 64px 48px; }
  .feature-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .feature-card { padding: 36px 32px; }
  .service-stack { grid-template-columns: repeat(4, 1fr); gap: 20px; }
  .service-card { min-height: 420px; padding: 36px; }
  .service-card h3 { font-size: 32px; }
  .founder-grid { grid-template-columns: 1fr 1.2fr; gap: 80px; }
  .show-card { flex: 0 0 32%; }
  .showcase-rail { padding-left: 48px; padding-right: 48px; margin: 0 -48px; }
  .form-wrap { grid-template-columns: 1fr; max-width: 880px; gap: 56px; align-items: start; }
}

@media (min-width: 1280px) {
  .hero-title { font-size: clamp(60px, 9vw, 140px); }
  .show-card { flex: 0 0 28%; }
}
