/*
 * Oloropa Phase 1 — global reduced-motion and motion-safety system.
 * Loaded through the shared public/admin/user head helpers only for renderable HTML pages.
 * API, webhook, logout, sitemap, and JSON handlers remain lean.
 */
:root{
  --ol-motion-fast:180ms;
  --ol-motion-medium:320ms;
  --ol-motion-slow:720ms;
  --ol-motion-ease:cubic-bezier(.22,1,.36,1);
}

[data-ol-reveal],
.ol-reveal,
.ol-motion-reveal{
  opacity:0;
  transform:translate3d(0,18px,0);
  transition:opacity var(--ol-motion-slow) var(--ol-motion-ease),transform var(--ol-motion-slow) var(--ol-motion-ease);
  will-change:opacity,transform;
}
[data-ol-reveal].is-visible,
.ol-reveal.is-visible,
.ol-motion-reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
}

.ol-motion-fade,
[data-ol-motion="fade"]{
  transition:opacity var(--ol-motion-medium) var(--ol-motion-ease),transform var(--ol-motion-medium) var(--ol-motion-ease);
}

.ol-motion-press:active,
button:not([disabled]):active,
a[role="button"]:active{
  transform:translate3d(0,1px,0) scale(.992);
}

:focus-visible{
  outline:3px solid rgba(198,162,74,.82);
  outline-offset:3px;
}


@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
    transition-delay:0ms!important;
  }
  html:focus-within{scroll-behavior:auto!important;}
  [data-ol-reveal],.ol-reveal,.ol-motion-reveal{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
    will-change:auto!important;
  }
  .ol-motion-press:active,
  button:not([disabled]):active,
  a[role="button"]:active{
    transform:none!important;
  }
  video[data-ol-decorative-video="true"],
  canvas[data-ol-decorative-canvas="true"]{
    animation:none!important;
  }
}

html[data-ol-reduced-motion="true"] *,
html[data-ol-reduced-motion="true"] *::before,
html[data-ol-reduced-motion="true"] *::after{
  animation-duration:.001ms!important;
  animation-iteration-count:1!important;
  transition-duration:.001ms!important;
  transition-delay:0ms!important;
  scroll-behavior:auto!important;
}
html[data-ol-reduced-motion="true"] [data-ol-reveal],
html[data-ol-reduced-motion="true"] .ol-reveal,
html[data-ol-reduced-motion="true"] .ol-motion-reveal{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
  will-change:auto!important;
}
