/* =========================================================
   LYFT — Virtual Navigation (3D teleport)
   Layers on top of style.css tokens (--bg, --accent, --font-display)
   ========================================================= */

.nav-stage{position:fixed;inset:0;overflow:hidden;background:
  radial-gradient(120% 90% at 70% 15%, #1c1712 0%, var(--ink) 55%, #0c0a08 100%);}
#tower-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;
  cursor:grab;touch-action:none}
#tower-canvas.grabbing{cursor:grabbing}
#tower-canvas.hot{cursor:pointer}

/* ---- Intro copy overlay (top-left) ---- */
.nav-intro{position:fixed;left:clamp(20px,4vw,64px);top:clamp(20px,4vw,54px);
  z-index:6;max-width:420px;pointer-events:none}
.nav-intro .eyebrow{color:var(--cafe);opacity:0;transform:translateY(10px);
  animation:navUp .9s .3s var(--ease,cubic-bezier(.2,.7,.2,1)) forwards}
.nav-intro h1{font-family:var(--font-display);font-weight:900;line-height:.94;
  text-transform:uppercase;font-size:clamp(2.2rem,5.4vw,4.4rem);margin:.18em 0 .3em;
  opacity:0;transform:translateY(14px);animation:navUp 1s .42s var(--ease,cubic-bezier(.2,.7,.2,1)) forwards}
.nav-intro h1 i{color:var(--cafe);font-style:normal}
.nav-intro p{color:var(--muted,#9a9aa4);font-size:.98rem;line-height:1.5;
  opacity:0;transform:translateY(14px);animation:navUp 1s .54s var(--ease,cubic-bezier(.2,.7,.2,1)) forwards}
@keyframes navUp{to{opacity:1;transform:none}}

/* ---- Floating floor label (follows a floor on hover) ---- */
.floor-label{position:fixed;z-index:7;pointer-events:none;left:0;top:0;
  transform:translate(-50%,-140%);opacity:0;transition:opacity .28s ease;
  will-change:transform,opacity}
.floor-label .fl-card{display:flex;align-items:center;gap:12px;
  background:rgba(14,15,20,.72);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:10px 14px;
  box-shadow:0 18px 50px -18px rgba(0,0,0,.8)}
.floor-label .fl-num{font-family:var(--font-display);font-weight:800;font-size:1.5rem;
  color:var(--fl,var(--accent));line-height:1;min-width:1.6em;text-align:center}
.floor-label .fl-txt b{font-family:var(--font-display);text-transform:uppercase;
  letter-spacing:.06em;font-size:.92rem;display:block}
.floor-label .fl-txt span{font-size:.72rem;color:var(--muted,#9a9aa4);
  text-transform:uppercase;letter-spacing:.18em}
.floor-label .fl-go{margin-left:6px;width:26px;height:26px;border-radius:50%;
  display:grid;place-items:center;background:var(--fl,var(--accent));color:#241708}
.floor-label .fl-go svg{width:14px;height:14px}
.floor-label.show{opacity:1}

/* ---- Bottom hint ---- */
.nav-hint{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:6;
  font-family:var(--font-display);letter-spacing:.28em;text-transform:uppercase;
  font-size:.68rem;color:var(--muted,#9a9aa4);display:flex;align-items:center;gap:12px;
  opacity:0;animation:navUp 1s 1s var(--ease,cubic-bezier(.2,.7,.2,1)) forwards}
.nav-hint .dot{width:6px;height:6px;border-radius:50%;background:var(--cafe);
  box-shadow:0 0 12px var(--cafe);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}

/* ---- Back-to-site link ---- */
.nav-back{position:fixed;right:clamp(20px,4vw,54px);top:clamp(20px,4vw,54px);z-index:6;
  font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;
  font-size:.74rem;color:#fff;opacity:.75;text-decoration:none;transition:opacity .2s}
.nav-back:hover{opacity:1;color:var(--cafe)}

/* ---- The glass-glare wipe (bridge element) ---- */
#glare{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:0;
  background:
    radial-gradient(60% 55% at 62% 46%, rgba(255,246,232,1) 0%, rgba(255,228,190,.86) 26%, rgba(226,164,92,.42) 55%, rgba(226,164,92,0) 78%),
    linear-gradient(180deg, rgba(255,240,220,.10), rgba(255,240,220,.10));
  mix-blend-mode:screen;will-change:opacity}

/* ---- Preloader progress hook (reuse .preloader from style.css) ---- */

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce){
  .nav-intro .eyebrow,.nav-intro h1,.nav-intro p,.nav-hint{animation:none;opacity:1;transform:none}
}
