/* ============================================================
   INTERCOIL — Premium motion layer
   Luxury easing · restrained movement · hospitality-grade
   ============================================================ */

:root {
  --ease-luxury: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ── Masked image reveal (signature motion) ── */
.reveal-mask {
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 100%;
}

.hero-carousel__img-wrap {
  position: absolute;
  inset: 0;
}

.collection-tile .reveal-mask {
  position: absolute;
  inset: 0;
}

.hospitality__image-wrap.reveal-mask {
  overflow: hidden;
}

.reveal-mask__target,
.reveal-mask > img,
.reveal-mask > .collection-tile__img {
  transform: scale(1.05);
  will-change: clip-path, transform;
}

.motion-ready .reveal-mask:not(.is-revealed) .reveal-mask__target,
.motion-ready .reveal-mask:not(.is-revealed) > img,
.motion-ready .reveal-mask:not(.is-revealed) > .collection-tile__img {
  clip-path: inset(0 0 100% 0);
}

.motion-ready .reveal-mask.is-revealed .reveal-mask__target,
.motion-ready .reveal-mask.is-revealed > img,
.motion-ready .reveal-mask.is-revealed > .collection-tile__img {
  clip-path: inset(0 0 0 0);
  transform: scale(1);
  transition:
    clip-path 1.1s var(--ease-luxury),
    transform 1.1s var(--ease-luxury);
}

/* Premium text reveal (replaces generic fade-up in key areas) */
.reveal-up {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.9s var(--ease-luxury),
    transform 0.9s var(--ease-luxury);
}

.reveal-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-up.delay-1 { transition-delay: 0.08s; }
.reveal-up.delay-2 { transition-delay: 0.16s; }
.reveal-up.delay-3 { transition-delay: 0.24s; }
.reveal-up.delay-4 { transition-delay: 0.32s; }

/* ── Hero: scroll parallax + ambient life ── */
.hero-carousel__slides {
  will-change: transform;
}

.hero__ambient {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 42% 38% at 72% 28%, rgba(255, 210, 140, 0.07) 0%, transparent 70%),
    radial-gradient(ellipse 55% 45% at 18% 82%, rgba(0, 160, 243, 0.05) 0%, transparent 72%);
  animation: heroAmbientGlow 9s var(--ease-luxury) infinite alternate;
}

.hero-carousel__slide.is-active .hero-carousel__img {
  animation: heroImageBreathe 14s var(--ease-luxury) infinite alternate;
}

@keyframes heroAmbientGlow {
  0%   { opacity: 0.55; transform: scale(1); }
  100% { opacity: 0.95; transform: scale(1.02); }
}

@keyframes heroImageBreathe {
  0%   { transform: scale(1); }
  100% { transform: scale(1.025); }
}

/* ── Brand panels — lightweight scroll + hover (GPU-friendly) ── */
.brand-panel__bg {
  transform: scale(1);
  transition: transform 0.85s var(--ease-luxury);
}

.motion-ready .brand-panel:not(.is-revealed) .brand-panel__bg {
  transform: scale(1.05);
}

.motion-ready .brand-panel.is-revealed .brand-panel__bg {
  transform: scale(1);
  transition: transform 1.1s var(--ease-luxury);
}

.brand-panel.is-revealed:hover .brand-panel__bg {
  transform: scale(1.04);
}

.brand-panel__overlay {
  transition: opacity 0.6s var(--ease-luxury), filter 0.6s var(--ease-luxury);
}

.brand-panel:hover .brand-panel__overlay {
  opacity: 1;
  filter: brightness(1);
}

.brand-panel__logo {
  transition: filter 0.6s var(--ease-luxury);
}

.brand-panel:hover .brand-panel__logo {
  filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.4)) brightness(1.06);
}

/* ── Collections ── */
.collection-tile__overlay {
  transition: background 0.65s var(--ease-luxury);
}

.collection-tile:hover .collection-tile__overlay {
  background: linear-gradient(180deg, transparent 28%, rgba(0, 8, 56, 0.62) 100%);
}

.collection-tile__img {
  transition: transform 0.85s var(--ease-luxury);
}

.collection-tile:hover .collection-tile__img {
  transform: scale(1.04);
}

.collection-tile__content {
  transition: transform 0.65s var(--ease-luxury);
}

.collection-tile:hover .collection-tile__content {
  transform: translateY(-8px);
}

.collection-tile__name {
  position: relative;
  display: inline-block;
}

.collection-tile__name::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 1.5px;
  background: var(--color-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.55s var(--ease-luxury);
}

.collection-tile:hover .collection-tile__name::after {
  transform: scaleX(1);
}

/* ── Hospitality ── */
.hospitality__image-wrap img {
  transition: transform 0.9s var(--ease-luxury);
}

.hospitality__image-outer:hover .hospitality__image-wrap img { transform: scale(1.04); }

.hospitality__image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.9s var(--ease-luxury);
}

.hospitality__marquee-logo {
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity 0.7s var(--ease-luxury),
    transform 0.7s var(--ease-luxury);
}

.hospitality__marquee-wrap.is-logos-revealed .hospitality__marquee-logo {
  opacity: 1;
  transform: translateY(0);
  transition-delay: calc(var(--logo-index, 0) * 0.05s);
}

/* ── Stats section stacking ── */
.stats__ambient {
  display: none;
}

.stats__grid {
  position: relative;
  z-index: 1;
}

/* ── Stats — premium hover after count-up completes ── */
.stats__item.is-counted {
  transition: transform 0.65s var(--ease-luxury);
}

.stats__item.is-counted::before {
  content: '';
  position: absolute;
  inset: 8% 4%;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(186, 223, 255, 0.14) 0%, transparent 72%);
  opacity: 0;
  transition: opacity 0.65s var(--ease-luxury);
  pointer-events: none;
}

.stats__item.is-counted:hover {
  transform: translateY(-5px);
}

.stats__item.is-counted:hover::before {
  opacity: 1;
}

.stats__item.is-counted .stats__figure {
  transition:
    transform 0.65s var(--ease-luxury),
    filter 0.65s var(--ease-luxury);
}

.stats__item.is-counted .stats__value,
.stats__item.is-counted .stats__suffix {
  transition: filter 0.65s var(--ease-luxury);
}

.stats__item.is-counted:hover .stats__figure {
  transform: scale(1.03);
}

.stats__item.is-counted:hover .stats__value,
.stats__item.is-counted:hover .stats__suffix {
  filter: brightness(1.14);
}

.stats__item.is-counted .stats__label {
  transition:
    color 0.65s var(--ease-luxury),
    transform 0.65s var(--ease-luxury);
}

.stats__item.is-counted:hover .stats__label {
  color: rgba(255, 255, 255, 0.88);
  transform: translateY(2px);
}

/* ── Manufacturing certs — wall of trust ── */
.manufacturing__cert {
  transition:
    transform 0.6s var(--ease-luxury),
    box-shadow 0.6s var(--ease-luxury),
    border-color 0.6s var(--ease-luxury),
    background 0.6s var(--ease-luxury);
}

.manufacturing__cert:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.045);
  box-shadow:
    0 16px 40px rgba(0, 0, 0, 0.12),
    0 0 32px rgba(79, 123, 217, 0.12);
}

.manufacturing__cert-mark {
  transition:
    box-shadow 0.6s var(--ease-luxury),
    transform 0.6s var(--ease-luxury);
}

.manufacturing__cert:hover .manufacturing__cert-mark {
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.14),
    0 0 24px rgba(79, 123, 217, 0.18),
    inset 0 0 0 1px rgba(0, 8, 56, 0.04);
}

.manufacturing__cert img {
  transition: transform 0.6s var(--ease-luxury);
}

.manufacturing__cert:hover img {
  transform: scale(1.03);
}

@media (prefers-reduced-motion: reduce) {
  .reveal-up,
  .reveal-mask__target,
  .reveal-mask > img,
  .reveal-mask > .collection-tile__img,
  .brand-panel__bg,
  .brand-panel__content > *,
  .hospitality__marquee-logo,
  .hero-carousel__slide.is-active .hero-carousel__img,
  .hero__ambient,
  .stats__ambient,
  .stats__item.is-counted,
  .stats__item.is-counted::before,
  .stats__item.is-counted .stats__number,
  .stats__item.is-counted .stats__suffix,
  .stats__item.is-counted .stats__label,
  .brand-statement__heading {
    animation: none !important;
    transition: none !important;
    clip-path: none !important;
    transform: none !important;
    opacity: 1 !important;
  }

  .brand-panel:hover .brand-panel__bg {
    transform: none;
  }
}
