/* ───────────────────── IntroTunnel ─────────────────────
   Cinematic 3D fly-through intro for Radhe Property.
   Deep blue room with massive navy display type,
   dissolves into the dark site behind it.
*/

.intro-tunnel {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: #0d3b7a;          /* deep blue — Radhe Property brand */
  overflow: hidden;
  transition:
    opacity 0.95s cubic-bezier(0.7, 0, 0.2, 1),
    transform 0.95s cubic-bezier(0.7, 0, 0.2, 1),
    filter 0.95s cubic-bezier(0.7, 0, 0.2, 1);
}

/* dissolve-out state */
.intro-tunnel.intro-fade {
  opacity: 0;
  transform: scale(1.22);
  filter: blur(6px);
}

.intro-stage {
  position: absolute;
  inset: 0;
  perspective: 900px;
  perspective-origin: 50% 50%;
}

.intro-room {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  will-change: transform;
}

/* ── Walls (warm cream) ── */
.face {
  position: absolute;
  top: 50%;
  left: 50%;
  background: #0d3b7a;
  overflow: hidden;
  display: flex;
}
.face-bottom {
  width: 100vw;
  height: var(--d);
  transform: translate(-50%, -50%) translateY(50vh) rotateX(90deg);
}
.face-top {
  width: 100vw;
  height: var(--d);
  transform: translate(-50%, -50%) translateY(-50vh) rotateX(-90deg);
}
.face-left {
  width: var(--d);
  height: 100vh;
  transform: translate(-50%, -50%) translateX(-50vw) rotateY(90deg);
}
.face-right {
  width: var(--d);
  height: 100vh;
  transform: translate(-50%, -50%) translateX(50vw) rotateY(-90deg);
}
.face-top .t-rows {
  transform: rotate(180deg);   /* ceiling mirrors the floor */
}

.t-rows {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  height: 100%;
}
/* ── Display type — matches reference (native Clash bold, no fake stroke) ── */
.t-row {
  font-family: 'Clash Display', 'Satoshi', sans-serif;
  font-weight: 700;
  font-size: clamp(180px, 24vmin, 400px);
  line-height: 0.86;
  letter-spacing: -0.04em;
  white-space: nowrap;
  color: #061a3d;                  /* deep navy, Radhe Property brand */
  opacity: 1;
  text-transform: uppercase;
}
.t-row:first-child,
.t-row:last-child {
  color: #061a3d;
}

/* Mobile: scale type for portrait, keep mass */
@media (max-width: 768px) {
  .t-row { font-size: clamp(130px, 32vmin, 260px); }
}

/* ── Glow at the vanishing point (warm, subtle) ── */
.intro-core {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 60vmin;
  height: 60vmin;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(6, 26, 61, 0.18) 0%, rgba(6, 26, 61, 0) 70%);
  filter: blur(12px);
  z-index: 5;
  pointer-events: none;
  animation: intro-core 3.4s ease-in-out forwards;
}
@keyframes intro-core {
  0%   { transform: translate(-50%, -50%) scale(0.3); opacity: 0.25; }
  60%  { opacity: 0.85; }
  100% { transform: translate(-50%, -50%) scale(2.4); opacity: 0; }
}

/* ── Edge vignette (warm dark fade on cream) ── */
.intro-vignette {
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 60%, rgba(6, 26, 61, 0.28) 100%);
}

/* ── Centre lockup (revealed AFTER the tunnel) ── */
.intro-center {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  opacity: 0;
  pointer-events: none;
}
.intro-tunnel.intro-reveal .intro-center,
.intro-tunnel.intro-out .intro-center {
  opacity: 1;
}
.intro-tunnel.intro-reveal .intro-center {
  animation: intro-logo-in 650ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
@keyframes intro-logo-in {
  from { opacity: 0; transform: scale(0.94); }
  to   { opacity: 1; transform: scale(1); }
}
.intro-logo {
  font-family: 'Clash Display', 'Satoshi', sans-serif;
  font-weight: 700;
  font-size: clamp(36px, 8.5vw, 120px);
  line-height: 0.92;
  letter-spacing: -0.04em;
  color: #ffffff;
  -webkit-text-stroke: 1.2px #ffffff;
  text-transform: uppercase;
  white-space: normal;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.04em;
  padding: 0 20px;
}

/* Mobile — guarantee "Radhe Property" + lockup fits one frame at any width */
@media (max-width: 768px) {
  .intro-logo {
    font-size: clamp(28px, 11vw, 72px);
    letter-spacing: -0.03em;
    -webkit-text-stroke: 0.8px #ffffff;
    padding: 0 16px;
  }
  .intro-center { gap: 14px; padding: 0 16px; }
  .intro-rule { width: 140px !important; }
}
@media (max-width: 480px) {
  .intro-logo {
    font-size: clamp(24px, 10.5vw, 52px);
    letter-spacing: -0.025em;
  }
  .intro-sub { font-size: 10px; letter-spacing: 0.32em; padding-left: 0.32em; }
}
@media (max-width: 360px) {
  .intro-logo { font-size: 22px; -webkit-text-stroke: 0.6px #ffffff; }
  .intro-sub { font-size: 9px; letter-spacing: 0.24em; }
}
.intro-rule {
  height: 2px;
  width: 0;
  background: linear-gradient(90deg, transparent, #ffffff, transparent);
}
.intro-tunnel.intro-reveal .intro-rule,
.intro-tunnel.intro-out .intro-rule {
  animation: intro-rule 700ms ease-out 200ms both;
}
@keyframes intro-rule {
  from { width: 0; }
  to   { width: 300px; }
}
.intro-sub {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.55em;
  text-transform: uppercase;
  color: #ffffff;
  font-family: 'Satoshi', ui-sans-serif, system-ui, sans-serif;
  padding-left: 0.55em;
}
