/* ==========================================================================
   NovaMaid — intro.css
   Cinématique d'accueil : révélation façon "coup de raclette" sur le logo
   ========================================================================== */

#introOverlay{
  position:fixed;inset:0;z-index:9999;
  background:linear-gradient(135deg,#000b1f,#0b2a63 60%,#0e3a86);
  display:flex;align-items:center;justify-content:center;
  clip-path:inset(0 0 0 0);
  will-change:clip-path, opacity;
}
#introOverlay.wiping{
  animation:introWipe 1.1s cubic-bezier(.65,0,.35,1) forwards;
  animation-delay:.15s;
}
#introOverlay.done{display:none;}

.intro-content{text-align:center;position:relative;z-index:1;}

.intro-monogram{
  width:84px;margin:0 auto 18px;
  opacity:0;transform:scale(.7);
  animation:introPop .6s ease forwards;
  animation-delay:.15s;
}

.intro-wordmark{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:30px;
  opacity:0;transform:translateY(10px);
  animation:introRise .6s ease forwards;
  animation-delay:.55s;
}
.intro-wordmark .iw-nova{color:#ffffff;}
.intro-wordmark .iw-maid{color:#4fc3f7;}

.intro-tagline{
  margin-top:14px;min-height:20px;
  font-size:14px;letter-spacing:.04em;color:#aebfce;
  font-family:var(--body);
}
.intro-tagline .cursor{display:inline-block;width:2px;background:#4fc3f7;margin-left:2px;animation:introBlink .8s steps(2) infinite;}

/* squeegee bar that sweeps across while the overlay clips away */
.intro-sweep{
  position:absolute;top:0;bottom:0;width:60px;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0) 100%);
  left:-80px;
  opacity:0;
}
.intro-sweep.active{
  opacity:1;
  animation:introSweepMove 1.1s cubic-bezier(.65,0,.35,1) forwards;
  animation-delay:.15s;
}

.intro-skip{
  position:absolute;bottom:28px;right:28px;z-index:2;
  background:rgba(255,255,255,0.08);color:#cfe0ee;border:1px solid rgba(255,255,255,0.2);
  font-size:12px;padding:8px 16px;border-radius:30px;cursor:pointer;font-family:var(--body);
  transition:background .2s ease;
}
.intro-skip:hover{background:rgba(255,255,255,0.18);}

@keyframes introPop{
  to{opacity:1;transform:scale(1);}
}
@keyframes introRise{
  to{opacity:1;transform:translateY(0);}
}
@keyframes introBlink{
  50%{opacity:0;}
}
@keyframes introWipe{
  to{clip-path:inset(0 0 100% 0);}
}
@keyframes introSweepMove{
  to{left:calc(100% + 80px);}
}

/* subtle floating dust-mote canvas sits behind the hero content, started after intro */
#heroCanvas{opacity:0;transition:opacity 1s ease;}
#heroCanvas.visible{opacity:1;}

@media (prefers-reduced-motion: reduce){
  #introOverlay,.intro-monogram,.intro-wordmark,.intro-sweep{animation:none !important;}
}
