/* Pifre Motion — implementerer PIFRE-MOTION.md v1.0
 * Kjerne-prinsipp: bevegelse skal være feedback, ikke dekor.
 */

:root {
  --t-instant: 80ms;
  --t-fast: 150ms;
  --t-base: 200ms;
  --t-slow: 320ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-exit: cubic-bezier(0.4, 0, 1, 1);
}

/* Default hover/focus transitions — bruk på a, button, input */
a,
button,
input,
textarea,
select,
summary {
  transition:
    color var(--t-fast) var(--ease-standard),
    background-color var(--t-fast) var(--ease-standard),
    border-color var(--t-fast) var(--ease-standard);
}

/* Scroll-reveal — kun fade, ingen translate/slide */
.reveal {
  opacity: 0;
  transition: opacity var(--t-slow) var(--ease-standard);
  will-change: opacity;
}

.reveal.is-visible {
  opacity: 1;
}

/* Stagger — maks 3 elementer per playbook */
.reveal[data-stagger="1"] {
  transition-delay: 0ms;
}
.reveal[data-stagger="2"] {
  transition-delay: 60ms;
}
.reveal[data-stagger="3"] {
  transition-delay: 120ms;
}

/* Reduced motion — HARD regel */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .reveal {
    opacity: 1;
  }
}
