/* Luxury-feel animations — DRAMATIC variant.
   Curtain reveals, split-text, count-ups, parallax, magnetic CTAs.
   One easing curve. One sustained tempo. Heavy and slow. */

:root {
  --ease-luxe: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-curtain: cubic-bezier(0.77, 0, 0.175, 1);
  --curtain-color: #f0e6d8;
}

@media (prefers-reduced-motion: reduce) {
  [data-anim], [data-anim] * { opacity: 1 !important; transform: none !important; }
  .curtain-overlay { display: none !important; }
}

/* === REVEAL (translate + fade) === */
[data-anim="reveal"] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 1100ms var(--ease-luxe), transform 1300ms var(--ease-luxe);
  will-change: opacity, transform;
}
[data-anim="reveal"].in {
  opacity: 1;
  transform: translateY(0);
}

/* === STAGGER === */
[data-anim-stagger].in > [data-anim="reveal"]:nth-child(1) { transition-delay: 0ms; }
[data-anim-stagger].in > [data-anim="reveal"]:nth-child(2) { transition-delay: 120ms; }
[data-anim-stagger].in > [data-anim="reveal"]:nth-child(3) { transition-delay: 240ms; }
[data-anim-stagger].in > [data-anim="reveal"]:nth-child(4) { transition-delay: 360ms; }
[data-anim-stagger].in > [data-anim="reveal"]:nth-child(5) { transition-delay: 480ms; }
[data-anim-stagger].in > [data-anim="reveal"]:nth-child(6) { transition-delay: 600ms; }
[data-anim-stagger].in > [data-anim="reveal"]:nth-child(7) { transition-delay: 720ms; }
[data-anim-stagger].in > [data-anim="reveal"]:nth-child(8) { transition-delay: 840ms; }

/* === SPLIT-TEXT REVEAL (line-by-line) === */
[data-anim="split"] { display: block; }
[data-anim="split"] .line { display: block; overflow: hidden; }
[data-anim="split"] .line-inner {
  display: inline-block;
  transform: translateY(105%);
  transition: transform 1200ms var(--ease-luxe);
  will-change: transform;
}
[data-anim="split"].in .line:nth-child(1) .line-inner { transition-delay: 0ms;   transform: translateY(0); }
[data-anim="split"].in .line:nth-child(2) .line-inner { transition-delay: 100ms; transform: translateY(0); }
[data-anim="split"].in .line:nth-child(3) .line-inner { transition-delay: 200ms; transform: translateY(0); }
[data-anim="split"].in .line:nth-child(4) .line-inner { transition-delay: 300ms; transform: translateY(0); }

/* === CURTAIN REVEAL (scale-in) === */
[data-anim="curtain"] {
  position: relative;
  overflow: hidden;
}
[data-anim="curtain"] > img,
[data-anim="curtain"] > picture {
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1100ms var(--ease-luxe), transform 1400ms var(--ease-luxe);
  will-change: opacity, transform;
}
[data-anim="curtain"].in > img,
[data-anim="curtain"].in > picture {
  opacity: 1;
  transform: scale(1);
}

/* === COUNT-UP NUMERAL === */
[data-anim="count"] {
  display: inline-block;
  font-variant-numeric: tabular-nums;
}

/* === HORIZONTAL SLIDE === */
[data-anim="slide-x"] {
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity 900ms var(--ease-luxe), transform 1100ms var(--ease-luxe);
}
[data-anim="slide-x"].in { opacity: 1; transform: translateX(0); }

/* === SCALE IN === */
[data-anim="scale-in"] {
  opacity: 0;
  transform: scale(0.94);
  transition: opacity 1100ms var(--ease-luxe), transform 1300ms var(--ease-luxe);
}
[data-anim="scale-in"].in { opacity: 1; transform: scale(1); }

/* === PARALLAX === */
[data-parallax] { will-change: transform; }

/* === LINK UNDERLINE — draw from left === */
.nav a,
.footer a,
.more {
  position: relative;
}
.nav a::after,
.footer a:not(.btn):not(.phone)::after,
.more::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 600ms var(--ease-luxe);
}
.nav a:hover::after,
.footer a:not(.btn):not(.phone):hover::after,
.more:hover::after { transform: scaleX(1); }

/* === IMAGE HOVER === */
.project-img img,
.layout-card-img img {
  transition: transform 1400ms var(--ease-luxe) !important;
}
.project-card:hover .project-img img,
.layout-card:hover .layout-card-img img {
  transform: scale(1.06) !important;
}

/* === PRIMARY BUTTON SHIMMER === */
.btn-primary {
  position: relative;
  overflow: hidden;
}
.btn-primary::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(100deg, transparent 30%, rgba(255,255,255,0.18) 50%, transparent 70%);
  transition: left 900ms var(--ease-luxe);
  pointer-events: none;
}
.btn-primary:hover::before { left: 100%; }

/* === MAGNETIC CTAs === */
[data-magnetic] {
  transition: transform 400ms var(--ease-luxe);
  will-change: transform;
}

/* === HEADER === */
.header {
  transition: padding 500ms var(--ease-luxe), background 500ms var(--ease-luxe),
              border-color 500ms var(--ease-luxe), backdrop-filter 500ms var(--ease-luxe) !important;
}

/* === HERO INITIAL ENTRANCE === */
.hero-content [data-anim="reveal"] {
  transition-duration: 1400ms, 1600ms;
}
