/* ════════════════════════════════════════════════════════════
   P0-1 · Global motion tokens (Apple-grade easing + durations)
   ════════════════════════════════════════════════════════════ */

:root {
  /* Durations — pinned to Apple's reference scale (60Hz frames) */
  --dur-instant: 80ms;
  --dur-fast:    140ms;
  --dur-base:    220ms;
  --dur-slow:    320ms;
  --dur-xslow:   480ms;
  --dur-sheet:   520ms;

  /* Aliases used by older rules in the codebase */
  --dur-1: var(--dur-fast);
  --dur-2: var(--dur-base);
  --dur-3: var(--dur-slow);

  /* Easings — Apple HIG references */
  --ease-standard:   cubic-bezier(0.4, 0.0, 0.2, 1);    /* default */
  --ease-decelerate: cubic-bezier(0.0, 0.0, 0.2, 1);    /* enter */
  --ease-accelerate: cubic-bezier(0.4, 0.0, 1.0, 1);    /* exit */
  --ease-emphasized: cubic-bezier(0.2, 0.0, 0.0, 1);    /* attention */
  --ease-spring-soft:  cubic-bezier(0.34, 1.30, 0.64, 1);
  --ease-spring-snap:  cubic-bezier(0.30, 1.55, 0.50, 1);
  --ease-out:        cubic-bezier(0.0, 0.0, 0.2, 1);    /* alias */
  --ease-in:         cubic-bezier(0.4, 0.0, 1.0, 1);
  --ease-in-out:     cubic-bezier(0.4, 0.0, 0.2, 1);

  /* Apple shadow elevations — composite (ambient + key) */
  --shadow-1: 0 1px 2px rgba(0,0,0,0.06), 0 1px 1px rgba(0,0,0,0.04);
  --shadow-2: 0 2px 4px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.06);
  --shadow-3: 0 4px 8px rgba(0,0,0,0.10), 0 8px 24px rgba(0,0,0,0.08);
  --shadow-4: 0 8px 16px rgba(0,0,0,0.12), 0 16px 40px rgba(0,0,0,0.10);
  --shadow-pop: 0 24px 64px rgba(0,0,0,0.24), 0 4px 12px rgba(0,0,0,0.12);
}

/* Reduced motion — kill all springs, fades only */
@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-instant: 0ms;
    --dur-fast: 0ms;
    --dur-base: 0ms;
    --dur-slow: 0ms;
    --dur-xslow: 0ms;
    --dur-sheet: 0ms;
    --ease-spring-soft: linear;
    --ease-spring-snap: linear;
  }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* P0-3 · Focus system — Apple-blue 4px ring + 2px offset */
:focus-visible {
  outline: 2px solid var(--focus-ring, #0a84ff);
  outline-offset: 2px;
  border-radius: inherit;
}
[data-style="union"] :focus-visible,
[data-style="editorial"] :focus-visible {
  outline-color: var(--accent-paper, #c2410c);
}

/* Standard pressable affordance */
.pressable {
  transition: transform var(--dur-fast) var(--ease-standard);
  cursor: pointer;
}
.pressable:active { transform: scale(0.96); }
