/*
 * Codyn motion tokens — timing and easing vocabulary only in Step 2.
 * Animation implementations live in motion.js (Step 3+).
 * Last modified: 2026-05-19
 *
 * Hierarchy: mockups define form; motion brief defines behavior.
 */

:root {
  /* Signature easing — no ease, ease-in-out, or linear elsewhere */
  --ease-settle: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-precise: cubic-bezier(0.65, 0, 0.35, 1);

  /* Weight-based durations (brief rule 2) */
  --duration-micro: 120ms;
  --duration-micro-max: 200ms;
  --duration-body: 300ms;
  --duration-body-max: 500ms;
  --duration-heading: 500ms;
  --duration-heading-max: 700ms;
  --duration-display: 900ms;
  --duration-display-max: 1200ms;

  /* Composed sequences */
  --duration-hero-phase-1: 600ms;
  --duration-hero-pause: 400ms;
  --duration-hero-phase-3: 800ms;
  --duration-hero-phase-4: 600ms;
  --duration-hero-total: 2800ms;
  --duration-stat-count: 1400ms;
  --duration-hairline-draw: 700ms;
  --duration-hairline-stagger: 120ms;
  --duration-pillar-fade: 200ms;
  --duration-page-transition: 320ms;
  --duration-nav-underline: 200ms;
  --duration-form-focus: 240ms;
  --duration-service-hover: 200ms;
  --duration-reveal: 500ms;
  --duration-accordion: 400ms;
}

/* Scroll reveal (all pages) */
@media (prefers-reduced-motion: no-preference) {
  .codyn-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition:
      opacity var(--duration-reveal) var(--ease-settle),
      transform var(--duration-reveal) var(--ease-settle);
    transition-delay: var(--reveal-delay, 0ms);
  }

  .codyn-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .codyn-reveal {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-micro: 0ms;
    --duration-body: 0ms;
    --duration-heading: 0ms;
    --duration-display: 0ms;
    --duration-hero-total: 0ms;
    --duration-stat-count: 0ms;
    --duration-hairline-draw: 0ms;
    --duration-page-transition: 0ms;
  }
}
