/* ==========================================
   LUXURY INTRO — IMPROVED SMOOTH BUILD
   ========================================== */

   .fv-intro {
    position: fixed;
    inset: 0;
    background: #000;
    z-index: 99999;
    overflow: hidden;
    pointer-events: none;
    opacity: 1;
  }
  
  /* BG */
  
  .fv-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center,#0d0d0d 0%,#000 82%);
  }
  
  /* UNDERLIGHT */
  
  .fv-underlight {
    position:absolute;
    left:50%;
    bottom:-220px;
    width:900px;
    height:620px;
  
    transform:translateX(-50%) scale(.3);
    opacity:0;
  
    background:radial-gradient(circle,
      rgba(255,255,255,.22) 0%,
      rgba(255,255,255,.05) 35%,
      transparent 72%);
  
    filter:blur(30px);
  
    transition:
      transform 2s cubic-bezier(.16,1,.3,1),
      opacity 1.2s ease;
  }
  
  /* MACHINE */
  
  .fv-machine-wrap {
  
    position:absolute;
    top:50%;
    left:50%;
    width:min(460px,75vw);
  
    opacity:0;
  
    transform:
      translate(-50%,-50%)
      scale(.96)
      translateZ(0);
  
    will-change: transform, opacity;
  
    transition:
      transform 1.6s cubic-bezier(.16,1,.3,1),
      opacity .9s ease;
  }
  
  .fv-machine {
    width:100%;
    display:block;
    filter:drop-shadow(0 0 80px rgba(0,0,0,.95));
  }
  
  /* TEXT */
  
  .fv-text {

    position:absolute;
    top:50%;
    left:calc(60% + 50px);
    max-width:420px;
  
    opacity:0;
  
    transform:
      translateY(-50%)
      translateX(40px)
      translateZ(0);
  
    will-change: transform, opacity;
  
    transition:
      transform 1.4s cubic-bezier(.16,1,.3,1),
      opacity .8s ease;
  }
  
  .fv-text h1 {
    margin:0 0 12px;
    font-family:Inter,sans-serif;
    font-size:clamp(2.2rem,4vw,4.8rem);
    font-weight:800;
    color:#fff;
  }
  
  .fv-text p {
    margin:0;
    font-size:1.1rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:rgba(255,255,255,.82);
  }
  
  /* ==========================================
     INTRO STATES
     ========================================== */
  
  .fv-intro.start-light .fv-underlight {
    opacity:1;
    transform:translateX(-50%) scale(1);
  }
  
  .fv-intro.start-machine .fv-machine-wrap {
    opacity:1;
    transform:
      translate(-50%,-50%)
      scale(1);
  }
  
  .fv-intro.show-text .fv-text {
    opacity:1;
    transform:
      translateY(-50%)
      translateX(0);
  }
  
  /* ==========================================
     FAST CINEMATIC EXIT
     ========================================== */
  
  /* MACHINE EXIT (FAST) */
  
  .fv-intro.slide-border .fv-machine-wrap {
  
    transition:
      transform 900ms linear,
      opacity 300ms ease;
  
    transform:
      translate(calc(-50% - var(--slide-distance, 0px)), -50%);
  }
  
  /* TEXT FOLLOWS (SLIGHT DELAY) */
  
  .fv-intro.slide-border .fv-text {
  
    transition:
      transform 900ms linear,
      opacity 300ms ease;
  
    transition-delay:120ms;
  
    transform:
      translate(calc(-50% - var(--slide-distance, 0px) + 80px), -50%);
  }
  
  /* FADE ELEMENTS */
  
  .fv-intro.fade-items .fv-machine-wrap,
  .fv-intro.fade-items .fv-text {
    opacity:0;
  }
  
  /* ==========================================
     FINAL FADE
     ========================================== */
  
  .fv-intro.fv-exit {
    animation:fvFadeOut .9s ease forwards;
  }
  
  @keyframes fvFadeOut {
    to {
      opacity:0;
      visibility:hidden;
    }
  }
  
  /* ==========================================
     MOBILE
     ========================================== */
  
  @media (max-width:768px){
  
    .fv-machine-wrap {
      width:62vw;
    }
  
    .fv-text{
  
      left:50%;
      top:78%;
  
      text-align:center;
  
      transform:
        translate(-50%,20px)
        translateZ(0);
    }
  
    .fv-intro.show-text .fv-text{
  
      transform:
        translate(-50%,0)
        translateZ(0);
    }
  
    .fv-intro.slide-border .fv-text{
  
      transform:
        translate(calc(-50% - var(--slide-distance,0px) + 70px),0);
    }
  
  }


  /* ==========================================
   SHOWCASE IMAGE SEQUENCE
   ========================================== */

.fv-showcase{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  z-index:2;
}

.fv-show{

  position:absolute;

  width:min(900px,85vw);
  max-height:80vh;

  object-fit:contain;

  opacity:0;

  transform:
    scale(1.06)
    translateZ(0);

  filter:
    brightness(1.55)
    contrast(1.05);

  transition:
    opacity 900ms ease,
    transform 1.6s cubic-bezier(.16,1,.3,1);

}

.fv-show.active{
  opacity:1;
  transform:scale(1);
}

/* subtle cinematic fade */

.fv-intro.hide-showcase .fv-show{
  opacity:0;
  transform:scale(.96);
}






/* ==========================================
   CENTER GLOW FADE-IN (INITIAL 3s BUILD)
   ========================================== */
   .fv-glow-core{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    pointer-events:none;
    z-index:1;
  
    transform:translateY(-80px);
  }
  
  .fv-glow{
    width:420px;
    height:420px;
    border-radius:50%;
  
    background:
      radial-gradient(circle,
        rgba(255,255,255,.9) 0%,
        rgba(255,255,255,.5) 15%,
        rgba(255,255,255,.18) 32%,
        rgba(255,255,255,.06) 48%,
        transparent 65%
      );
  
    opacity:0;
  
    transform:
      scale(.35)
      translateZ(0);
  
    filter:
      blur(10px)
      brightness(1.2);
  
    transition:
      opacity 3s cubic-bezier(.16,1,.3,1),
      transform 3s cubic-bezier(.16,1,.3,1);
  }
  
  /* glow activation */
  
  .fv-intro.start-glow .fv-glow{
    opacity:1;
    transform:scale(1);
  }
  
  /* fade glow once showcase begins */
  
  .fv-intro.glow-complete .fv-glow{
    opacity:0;
    transform:scale(1.2);
    transition:opacity 1s ease, transform 1s ease;
  }










  .fv-show{
    transition:
      opacity 3s ease,
      transform 1.6s cubic-bezier(.16,1,.3,1);
  }





  /* ==========================================
   SHOWCASE → MACHINE CROSSFADE
   ========================================== */

.fv-intro.fade-showcase .fv-show{
  opacity:0;
  transform:scale(.98);
  transition:opacity 700ms ease, transform 700ms ease;
}