/* =============================================
   SCROLL-DRIVEN DOOR OPENING ANIMATION — CSS
   Doors open smoothly as user scrolls down
   ============================================= */

/* ── Lock body during door phase ── */
html.door-scroll-active,
html.door-scroll-active body {
  overflow: hidden !important;
  height: 100vh;
}

/* ── Fixed overlay that stays pinned while user scrolls ── */
.door-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  overflow: hidden;
  will-change: opacity;
}

/* ── Backdrop (Frosted Glass Reveal) ── */
.door-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  z-index: 1;
  pointer-events: none;
  will-change: opacity;
}

/* ── 3D Scene ── */
.door-overlay__scene {
  position: absolute;
  inset: 0;
  display: flex;
  perspective: 2200px;
  perspective-origin: 50% 50%;
  transform-style: preserve-3d;
  z-index: 100;
  will-change: transform;
}

/* ── Door Panels ── */
.door-overlay__panel {
  position: relative;
  width: 50%;
  height: 100%;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
}

.door-overlay__panel--left {
  transform-origin: left center;
}

.door-overlay__panel--right {
  transform-origin: right center;
}

/* ── Door Surface — Modern Matte Navy Blue (pure CSS + SVG noise) ── */
.door-overlay__surface {
  position: absolute;
  inset: 0;
  background-color: #03142d;
  background-image: 
    linear-gradient(135deg, rgba(255,255,255,0.03) 0%, rgba(0,0,0,0.4) 100%),
    url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
  box-shadow:
    inset -5px 0 35px rgba(0, 0, 0, 0.7),
    inset 0 0 120px rgba(0, 0, 0, 0.5);
}

.door-overlay__panel--right .door-overlay__surface {
  box-shadow:
    inset 5px 0 35px rgba(0, 0, 0, 0.7),
    inset 0 0 120px rgba(0, 0, 0, 0.5);
}

/* Modern minimalist vertical grooves */
.door-overlay__surface::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 15%; width: 2px;
  background: rgba(0, 0, 0, 0.5);
  box-shadow: 1px 0 1px rgba(255, 255, 255, 0.05);
  border: none;
  border-radius: 0;
}

.door-overlay__surface::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 30%; width: 2px;
  background: rgba(0, 0, 0, 0.5);
  box-shadow: 1px 0 1px rgba(255, 255, 255, 0.05);
  border: none;
  border-radius: 0;
}

/* ── Door Edge (visible during rotation) ── */
.door-overlay__edge {
  position: absolute;
  top: 0;
  width: 18px;
  height: 100%;
  transform-style: preserve-3d;
  backface-visibility: hidden;
}

.door-overlay__panel--left .door-overlay__edge {
  right: 0;
  transform: rotateY(90deg) translateZ(0);
  transform-origin: right center;
  background: linear-gradient(90deg, #00153d 0%, #002c75 35%, #00225e 65%, #000f29 100%);
  box-shadow: inset 0 0 18px rgba(0, 0, 0, 0.6);
}

.door-overlay__panel--right .door-overlay__edge {
  left: 0;
  transform: rotateY(-90deg) translateZ(0);
  transform-origin: left center;
  background: linear-gradient(90deg, #000f29 0%, #00225e 35%, #002c75 65%, #00153d 100%);
  box-shadow: inset 0 0 18px rgba(0, 0, 0, 0.6);
}

/* ── Custom Transparent PNG Handle ── */
.door-overlay__handle-wrap {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  height: 25vh;
  min-height: 180px;
  max-height: 320px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.door-overlay__panel--left .door-overlay__handle-wrap {
  right: 12%;
}

.door-overlay__panel--right .door-overlay__handle-wrap {
  left: 12%;
}

.door-overlay__product-handle {
  height: 100%;
  width: auto;
  object-fit: contain;
  filter: drop-shadow(4px 10px 25px rgba(0, 0, 0, 0.9));
}

/* ── Center Seam ── */
.door-overlay__seam {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  z-index: 101;
  will-change: opacity;
}


/* Inner door edge glow — cool white/blue */
.door-overlay__edge-glow {
  position: absolute;
  top: 0;
  height: 100%;
  width: 50px;
  opacity: 0;
  pointer-events: none;
  z-index: 4;
  will-change: opacity;
}

.door-overlay__panel--left .door-overlay__edge-glow {
  right: 0;
  background: linear-gradient(to left, rgba(220, 235, 255, 0.55) 0%, transparent 100%);
}

.door-overlay__panel--right .door-overlay__edge-glow {
  left: 0;
  background: linear-gradient(to right, rgba(220, 235, 255, 0.55) 0%, transparent 100%);
}

/* ── Brand (centered on closed doors) ── */
.door-overlay__brand {
  position: absolute;
  top: 68%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 200;
  pointer-events: none;
  will-change: opacity, transform;
}

.door-overlay__brand-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
}

.door-overlay__brand-inner::before {
  content: '';
  position: absolute;
  inset: -40px;
  background: radial-gradient(circle, rgba(232, 198, 106, 0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  z-index: -1;
  animation: door-brand-glow 4s ease-in-out infinite alternate;
}

@keyframes door-brand-glow {
  from { opacity: 0.6; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1.1); }
}

.door-overlay__svg-logo {
  width: 100%;
  max-width: 460px;
  height: auto;
  margin-bottom: 16px;
  animation: door-brand-float 6s ease-in-out infinite alternate;
}

@keyframes door-brand-float {
  from { transform: translateY(-4px); }
  to { transform: translateY(4px); }
}

.door-overlay__tagline {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 7px;
  text-transform: uppercase;
  color: rgba(232, 198, 106, 0.9);
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
  margin-top: 8px;
}

/* Scroll hint */
.door-overlay__scroll-hint {
  position: absolute;
  bottom: 6%;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  z-index: 200;
  pointer-events: none;
  will-change: opacity;
}

.door-overlay__scroll-pulse {
  font-family: 'Inter', sans-serif;
  font-size: 24px;
  color: rgba(232, 198, 106, 0.8);
  margin-bottom: 8px;
  animation: door-scroll-pulse-anim 2s ease-in-out infinite;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
}

.door-overlay__scroll-text {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 8px;
  text-transform: uppercase;
  color: rgba(232, 198, 106, 0.6);
  display: block;
}

@keyframes door-scroll-pulse-anim {
  0%, 100% { transform: translateY(0); opacity: 0.8; }
  50%      { transform: translateY(8px); opacity: 0.3; }
}

/* ── Brand entrance animation (on load) ── */
.door-overlay__brand {
  animation: door-brand-entrance 1s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
}

.door-overlay__scroll-hint {
  animation: door-hint-entrance 0.8s cubic-bezier(0.16, 1, 0.3, 1) 1.2s both;
}

@keyframes door-brand-entrance {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.9);
    filter: blur(6px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    filter: blur(0);
  }
}

@keyframes door-hint-entrance {
  from { opacity: 0; transform: translateX(-50%) translateY(15px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .door-overlay__scene { perspective: 1500px; }
  .door-overlay__handle-wrap {
    height: 18vh;
    min-height: 140px;
  }
  .door-overlay__svg-logo {
    max-width: 320px;
  }
  .door-overlay__tagline {
    font-size: 10px;
    letter-spacing: 5px;
  }
}

@media (max-width: 480px) {
  .door-overlay__scene { perspective: 1000px; }
  .door-overlay__handle-wrap {
    height: 15vh;
    min-height: 100px;
  }
  .door-overlay__svg-logo {
    max-width: 240px;
  }
  .door-overlay__tagline {
    font-size: 8px;
    letter-spacing: 3px;
  }

  .door-overlay__scroll-text {
    font-size: 10px;
    letter-spacing: 4px;
  }
}

/* ── Accessibility ── */
@media (prefers-reduced-motion: reduce) {
  .door-overlay,
  .door-scroll-spacer {
    display: none !important;
  }
}
