/* ============================================================
   animations.css
   ============================================================ */

.reveal{ transform:translateY(36px); opacity:0; transition:transform .8s var(--dg-ease), opacity .8s var(--dg-ease); }
.reveal.is-visible{ transform:translateY(0); opacity:1; }

.reveal-left{ transform:translateX(-48px); opacity:0; transition:transform .8s var(--dg-ease), opacity .8s var(--dg-ease); }
.reveal-left.is-visible{ transform:translateX(0); opacity:1; }

.reveal-right{ transform:translateX(48px); opacity:0; transition:transform .8s var(--dg-ease), opacity .8s var(--dg-ease); }
.reveal-right.is-visible{ transform:translateX(0); opacity:1; }

.reveal-zoom{ transform:scale(.9); opacity:0; transition:transform .8s var(--dg-ease), opacity .8s var(--dg-ease); }
.reveal-zoom.is-visible{ transform:scale(1); opacity:1; }

.reveal-stagger.is-visible > *{ animation:dg-fade-up .7s var(--dg-ease) both; }
.reveal-stagger.is-visible > *:nth-child(1){ animation-delay:.05s; }
.reveal-stagger.is-visible > *:nth-child(2){ animation-delay:.12s; }
.reveal-stagger.is-visible > *:nth-child(3){ animation-delay:.19s; }
.reveal-stagger.is-visible > *:nth-child(4){ animation-delay:.26s; }
.reveal-stagger.is-visible > *:nth-child(5){ animation-delay:.33s; }
.reveal-stagger.is-visible > *:nth-child(6){ animation-delay:.4s; }
.reveal-stagger.is-visible > *:nth-child(7){ animation-delay:.47s; }
.reveal-stagger.is-visible > *:nth-child(8){ animation-delay:.54s; }
@keyframes dg-fade-up{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:translateY(0); } }

/* Hero parallax layers */
.hero-parallax-layer{ transition:transform .1s linear; will-change:transform; }

/* Floating slow drift for decorative art */
@keyframes dg-float{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-14px); }
}
.floaty{ animation:dg-float 6s ease-in-out infinite; }

/* Skeleton shimmer for lazy blur-up */
@keyframes dg-shimmer{
  0%{ background-position:-200% 0; }
  100%{ background-position:200% 0; }
}
.shimmer{
  background:linear-gradient(90deg, var(--dg-stone) 25%, var(--dg-slate) 50%, var(--dg-stone) 75%);
  background-size:200% 100%;
  animation:dg-shimmer 1.8s linear infinite;
}

/* Scroll-indicator */
@keyframes dg-scrolldown{
  0%{ transform:translateY(0); opacity:1; }
  100%{ transform:translateY(14px); opacity:0; }
}
.scroll-indicator{ animation:dg-scrolldown 1.8s ease-in-out infinite; }

/* Ring rotation used decoratively */
@keyframes dg-rotate-slow{ to{ transform:rotate(360deg); } }
