/* MOTION. Durations, easings, distances. Engine class per use is decided in the component spec (css for hover/focus/simple enter; js for layout, exit, gesture). */
:root {
  --duration-instant: 0ms;
  --duration-fast: 160ms;      /* hover, focus, color, border */
  --duration-base: 200ms;      /* toast enter, dialog enter, switch knob (approved Admin toast) */
  --duration-slow: 700ms;      /* scroll reveal */
  --duration-swing: 6000ms;    /* decorative pendant swing */

  --ease-standard: cubic-bezier(0.2, 0.6, 0.2, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-linear: linear;

  --distance-reveal: 18px;     /* section reveal translateY */
  --distance-toast: 8px;       /* toast enter translateY */
  --distance-dialog: 12px;     /* dialog enter translateY */
  --angle-swing: 1.2deg;

  /* Scroll parallax (approved Landingsside v2). Factor × scrollY in px, applied as translateY; js engine, rAF-throttled. */
  --parallax-hero-image: 0.2;
  --parallax-hero-filament: 0.25;
  --parallax-hero-title: 0.15;
  --parallax-event-range: 80px;  /* event photo: (progress − 0.5) × −range while the block crosses the viewport */

  --motion-hover: var(--duration-fast) var(--ease-standard);
  --motion-enter: var(--duration-base) var(--ease-out);
  --motion-exit: var(--duration-fast) var(--ease-in);
  --motion-reveal: var(--duration-slow) var(--ease-standard);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms;
    --duration-base: 0ms;
    --duration-slow: 0ms;
    --duration-swing: 0ms;
    --distance-reveal: 0px;
    --distance-toast: 0px;
    --distance-dialog: 0px;
    --angle-swing: 0deg;
    --parallax-hero-image: 0;
    --parallax-hero-filament: 0;
    --parallax-hero-title: 0;
    --parallax-event-range: 0px;
  }
}
