@charset "utf-8";
/* CSS Document */

/* ==========================================================
   NM ANIMATIONS
   ========================================================== */

.fade-up,
.reveal-up,
.reveal-left,
.reveal-right{

 opacity:0;

 transition:
 opacity .8s ease,
 transform .8s ease;

 will-change:transform,opacity;

}

.fade-up,
.reveal-up{

 transform:translateY(36px);

}

.reveal-left{

 transform:translateX(-40px);

}

.reveal-right{

 transform:translateX(40px);

}

.is-visible{

 opacity:1;
 transform:none;

}


/* ---------- Hero Animation Fix ---------- */

.nm-editorial .nm-hero__content {
  animation: nmHeroFade 1s ease both;
}

@keyframes nmHeroFade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nm-editorial .nm-hero__content {
    animation: none;
    opacity: 1;
    visibility: visible;
  }
}

/* ---------- Button ---------- */

.nm-btn{

 position:relative;

 overflow:hidden;

}

.nm-btn::before{

 content:"";

 position:absolute;

 inset:0;

 background:rgba(255,255,255,.08);

 transform:translateX(-100%);

 transition:transform .45s ease;

}

.nm-btn:hover::before{

 transform:translateX(0);

}

/* ---------- Gallery ---------- */

.nm-gallery__item{

 overflow:hidden;

}

.nm-gallery__item img{

 transition:
 transform .8s ease,
 filter .8s ease;

}

/* ---------- Timeline Dot ---------- */

.nm-point__dot{

 transition:
 transform .45s ease,
 box-shadow .45s ease;

}

.nm-point:hover .nm-point__dot{

 transform:scale(1.12);

 box-shadow:
 0 0 0 2px #CBB28B,
 0 0 0 8px rgba(203,178,139,.18);

}

/* ---------- Model Card ---------- */

.nm-model{

 transition:transform .45s ease;

}

.nm-model:hover{

 transform:translateY(-4px);

}

/* ---------- CTA ---------- */

.nm-cta__content{

 animation:nmFadeUp 1s ease forwards;

}

@keyframes nmFadeUp{

 from{

  opacity:0;
  transform:translateY(20px);

 }

 to{

  opacity:1;
  transform:translateY(0);

 }

}

/* ---------- Reduced Motion ---------- */

@media (prefers-reduced-motion:reduce){

 .fade-up,
 .reveal-up,
 .reveal-left,
 .reveal-right{

  opacity:1;
  transform:none;
  transition:none;

 }

 .nm-hero__content,
 .nm-cta__content{

  animation:none;

 }

}

/* ---------- Ripple ---------- */

.nm-btn{

 position:relative;
 overflow:hidden;

}

.nm-ripple{

 position:absolute;

 border-radius:50%;

 background:rgba(255,255,255,.25);

 transform:scale(0);

 animation:nmRipple .7s ease-out forwards;

 pointer-events:none;

}

@keyframes nmRipple{

 to{

  transform:scale(2.8);

  opacity:0;

 }

}