/* animations.css — Panzer IT: cineastische Scroll-Animationen
   GPU-Transforms only. Setzt auf base.css-Tokens auf. */

/* ---- Scroll-Rotation / Parallax ---- */
[data-rotate]{
  will-change: transform;
  transform-origin: 50% 50%;
}
[data-parallax]{
  will-change: transform;
}

/* ---- Große Hintergrund-Deko (edel, dezent, ganzflächig) ----
   Wrapper braucht .has-deco (position:relative; overflow:hidden), damit die
   riesigen rotierenden Elemente nie horizontales Scrollen erzeugen. */
.has-deco{ position: relative; overflow: hidden; isolation: isolate; }
.has-deco > .container,
.has-deco > .cta-panel__inner,
.has-deco > .page-hero__inner{ position: relative; z-index: 1; }

.bg-deco{
  position: absolute;
  z-index: 0;
  pointer-events: none;
  will-change: transform;
  color: var(--c-copper);
  opacity: .07;            /* sehr dezent -> wirkt teuer, nicht verspielt */
}
.bg-deco svg{ display: block; width: 100%; height: 100%; }
.bg-deco--petrol{ color: var(--c-petrol); }
.bg-deco--brass{ color: var(--c-brass); opacity: .06; }
.bg-deco--faint{ opacity: .045; }

/* ---- Gestaffelte Reveals (Richtungen) ---- */
[data-reveal]{
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
[data-reveal="left"]{ transform: translateX(-46px); }
[data-reveal="right"]{ transform: translateX(46px); }
[data-reveal="scale"]{ transform: scale(.93); }
[data-reveal="up-lg"]{ transform: translateY(64px); }
[data-reveal].is-visible{ opacity: 1; transform: none; }

[data-delay="1"]{ transition-delay: .09s; }
[data-delay="2"]{ transition-delay: .18s; }
[data-delay="3"]{ transition-delay: .27s; }
[data-delay="4"]{ transition-delay: .36s; }
[data-delay="5"]{ transition-delay: .45s; }

/* ---- Reduced Motion: alles ruhigstellen, Inhalte sofort sichtbar ---- */
@media (prefers-reduced-motion: reduce){
  [data-rotate],
  [data-parallax],
  .bg-deco{
    transform: none !important;
    animation: none !important;
  }
  [data-reveal]{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
