/* Elvyn Drops Atelier V14 — lightweight premium motion layer.
   Loaded only when animations are enabled. No layout dimensions are changed here. */

/* Reveal system is only activated after JS confirms IntersectionObserver support. */
html.elvyn-anim-ready .elvyn-reveal{
  opacity:0;
  transform:translate3d(0,24px,0);
  transition:
    opacity .72s cubic-bezier(.22,.61,.36,1) var(--elvyn-delay,0ms),
    transform .72s cubic-bezier(.22,.61,.36,1) var(--elvyn-delay,0ms);
  will-change:opacity,transform;
}
html.elvyn-anim-ready .elvyn-reveal.elvyn-reveal-left{transform:translate3d(-26px,0,0)}
html.elvyn-anim-ready .elvyn-reveal.elvyn-reveal-right{transform:translate3d(26px,0,0)}
html.elvyn-anim-ready .elvyn-reveal.elvyn-reveal-scale{transform:scale(.965)}
html.elvyn-anim-ready .elvyn-reveal.is-visible{
  opacity:1;
  transform:none;
  will-change:auto;
}

/* Hero entrance */
html.elvyn-anim-ready .elvyn-hero-copy .elvyn-eyebrow{transition-delay:40ms}
html.elvyn-anim-ready .elvyn-hero-copy .elvyn-hero-title{transition-delay:110ms}
html.elvyn-anim-ready .elvyn-hero-copy .elvyn-hero-subtitle{transition-delay:180ms}
html.elvyn-anim-ready .elvyn-hero-copy .elvyn-hero-description{transition-delay:240ms}
html.elvyn-anim-ready .elvyn-hero-copy .elvyn-features{transition-delay:300ms}
html.elvyn-anim-ready .elvyn-hero-copy .elvyn-hero-buttons{transition-delay:360ms}

/* Real bottle motion — subtle, deliberately slow. */
html.elvyn-anim-ready .elvyn-bottle-stage img{
  animation:elvynBottleFloat 6.4s ease-in-out infinite;
  transform-origin:50% 100%;
  will-change:transform;
}
html.elvyn-anim-ready .elvyn-bottle-stage .bottle-250{animation-delay:-1.1s;animation-duration:6.8s}
html.elvyn-anim-ready .elvyn-bottle-stage .bottle-500{animation-delay:-2.4s;animation-duration:7.4s}
html.elvyn-anim-ready .elvyn-bottle-stage .bottle-1l{animation-delay:-3.5s;animation-duration:7.0s}
@keyframes elvynBottleFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-8px,0) rotate(.25deg)}
}

/* Soft hero glow movement. */
html.elvyn-anim-ready .elvyn-hero::before{animation:elvynSparkDrift 18s linear infinite}
@keyframes elvynSparkDrift{to{background-position:42px 24px}}

/* Premium button sheen. */
html.elvyn-anim-ready .elvyn-btn{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
html.elvyn-anim-ready .elvyn-btn::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-40%;
  left:-60%;
  width:34%;
  height:180%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);
  transform:skewX(-22deg);
  transition:left .65s ease;
  pointer-events:none;
}
html.elvyn-anim-ready .elvyn-btn:hover::after{left:130%}

/* Card hover polish — no structural movement on touch screens. */
@media (hover:hover) and (pointer:fine){
  html.elvyn-anim-ready .elvyn-service-card,
  html.elvyn-anim-ready .elvyn-product-card,
  html.elvyn-anim-ready .elvyn-client-card,
  html.elvyn-anim-ready .elvyn-social-card{
    transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease;
  }
  html.elvyn-anim-ready .elvyn-product-card:hover{transform:translateY(-7px);border-color:rgba(242,204,120,.82);box-shadow:0 32px 72px rgba(0,0,0,.42)}
  html.elvyn-anim-ready .elvyn-client-card:hover{transform:translateY(-4px) scale(1.015)}
}

/* Product bottle becomes slightly clearer on hover. */
@media (hover:hover) and (pointer:fine){
  html.elvyn-anim-ready .elvyn-product-media img{transition:transform .38s ease,filter .38s ease}
  html.elvyn-anim-ready .elvyn-product-card:hover .elvyn-product-media img{transform:scale(1.045);filter:drop-shadow(0 26px 28px rgba(0,0,0,.78)) brightness(1.06)}
}

/* Plant video play pulse */
html.elvyn-anim-ready .elvyn-play{animation:elvynPlayPulse 2.5s ease-in-out infinite}
@keyframes elvynPlayPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(201,149,47,.24)}
  50%{box-shadow:0 0 0 12px rgba(201,149,47,0)}
}

/* Live custom bottle spotlight */
html.elvyn-anim-ready .elvyn-customizer-stage::after{
  content:"";
  position:absolute;
  inset:15% 18% 12%;
  z-index:0;
  border-radius:50%;
  background:radial-gradient(circle,rgba(242,204,120,.11),transparent 68%);
  animation:elvynGlowBreath 4.8s ease-in-out infinite;
  pointer-events:none;
}
html.elvyn-anim-ready .elvyn-custom-bottle{z-index:1}
@keyframes elvynGlowBreath{0%,100%{opacity:.52;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}

/* Uploaded logo appears gracefully without changing safe-area geometry. */
html.elvyn-anim-ready .elvyn-customer-logo.elvyn-logo-enter{animation:elvynLogoEnter .42s cubic-bezier(.22,.61,.36,1) both}
@keyframes elvynLogoEnter{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}

/* Sticky header becomes visually tighter without changing its measured height. */
html.elvyn-anim-ready .elvyn-header{transition:background-color .28s ease,box-shadow .28s ease,border-color .28s ease}
html.elvyn-anim-ready body.elvyn-page-scrolled .elvyn-header{
  background:rgba(3,3,3,.985)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.28);
  border-bottom-color:rgba(201,149,47,.46);
}

/* WhatsApp: one restrained attention pulse, not continuous bouncing. */
html.elvyn-anim-ready .elvyn-whatsapp-float{animation:elvynWhatsAppAttention 1.5s ease 1.2s 1 both}
@keyframes elvynWhatsAppAttention{0%,100%{transform:scale(1)}45%{transform:scale(1.08)}70%{transform:scale(.98)}}

/* Smaller screens: keep movement lighter for stability and battery. */
@media screen and (max-width:620px){
  html.elvyn-anim-ready .elvyn-reveal{transform:translate3d(0,16px,0);transition-duration:.58s}
  html.elvyn-anim-ready .elvyn-bottle-stage img{animation-name:elvynBottleFloatMobile;animation-duration:7s}
  @keyframes elvynBottleFloatMobile{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-4px,0)}}
  html.elvyn-anim-ready .elvyn-customizer-stage::after{animation-duration:6s}
}

/* Accessibility and stability: no motion when the device/user requests it. */
@media (prefers-reduced-motion:reduce){
  html.elvyn-anim-ready .elvyn-reveal,
  html.elvyn-anim-ready .elvyn-reveal.is-visible{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  html.elvyn-anim-ready .elvyn-bottle-stage img,
  html.elvyn-anim-ready .elvyn-hero::before,
  html.elvyn-anim-ready .elvyn-play,
  html.elvyn-anim-ready .elvyn-customizer-stage::after,
  html.elvyn-anim-ready .elvyn-whatsapp-float{
    animation:none!important;
    transform:none!important;
  }
  html{scroll-behavior:auto!important}
}
