/* ============================================================
   VRCC IMMERSIVE — "The app becomes a building"
   Guided spatial navigation · 2.5D place-based interface
   ============================================================ */
:root{
  --dusk-1:#0d1026; --dusk-2:#1a1f45; --dusk-3:#3a2f5c; --dusk-4:#7a4a6b;
  --horizon:#d97c5a; --horizon-glow:#f4a24a;
  --brick-1:#4a3540; --brick-2:#5c4350; --brick-3:#6e5160;
  --warm-1:#ffd9a0; --warm-2:#f4b86a; --warm-3:#e89b4a;
  --interior-wall:#f2e8dc; --interior-wall-2:#e6d8c6; --interior-floor:#8a6650;
  --ink:#241b2f; --ink-soft:#4a3f57; --paper:#faf4ea; --paper-2:#f0e6d6;
  --sage:#7a9471; --sage-deep:#4d6647; --sky-day-1:#a8cfe0; --sky-day-2:#e8f2e4;
  --accent-teal:#3f7d78; --accent-rose:#b85c6e; --accent-gold:#c99145;
  --accent-plum:#6b4f8a; --accent-sky:#4d7fa8; --accent-clay:#b06a45;
  --accent-moss:#6a8a4f; --accent-slate:#5c6b7a;
  --shadow-deep:0 30px 80px rgba(13,16,38,.55);
  --ease-place:cubic-bezier(.22,.9,.28,1);
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Albert Sans",-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden}
body{
  font-family:var(--font-body);color:var(--ink);
  background:var(--dusk-1);
  -webkit-font-smoothing:antialiased;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--warm-1);outline-offset:3px;border-radius:6px}
#grain{position:fixed;inset:-100%;width:300%;height:300%;pointer-events:none;z-index:9000;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  animation:grainShift 1.2s steps(4) infinite;}
@keyframes grainShift{0%{transform:translate(0,0)}25%{transform:translate(-2%,1%)}50%{transform:translate(1%,-2%)}75%{transform:translate(-1%,2%)}100%{transform:translate(0,0)}}
#vignette{position:fixed;inset:0;pointer-events:none;z-index:8990;
  background:radial-gradient(ellipse at 50% 45%,transparent 55%,rgba(13,16,38,.42) 100%);}
.scene{position:fixed;inset:0;visibility:hidden;opacity:0;overflow:hidden;
  transition:opacity .9s var(--ease-place),transform .9s var(--ease-place),filter .9s var(--ease-place),visibility 0s .9s;}
.scene.active{visibility:visible;opacity:1;transform:none;filter:none;transition-delay:0s}
.scene.exit-forward{transform:scale(1.18);filter:blur(10px)}
.scene.enter-forward{transform:scale(.94);filter:blur(6px)}
.scene.exit-back{transform:scale(.92);filter:blur(8px)}
.scene.enter-back{transform:scale(1.12);filter:blur(6px)}
.layer{position:absolute;inset:-4%;will-change:transform}
#hud{position:fixed;top:0;left:0;right:0;z-index:8998;display:flex;align-items:center;gap:14px;padding:16px 20px;pointer-events:none}
#hud>*{pointer-events:auto}
.hud-chip{display:flex;align-items:center;gap:9px;background:rgba(13,16,38,.55);backdrop-filter:blur(12px);
  border:1px solid rgba(255,217,160,.22);border-radius:999px;padding:9px 16px;color:var(--warm-1);
  font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;transition:all .3s}
.hud-chip:hover{background:rgba(255,217,160,.16);border-color:rgba(255,217,160,.5)}
#whereami{font-family:var(--font-display);font-weight:500;text-transform:none;letter-spacing:.01em;font-size:14.5px;font-style:italic}
#whereami .dot{width:7px;height:7px;border-radius:50%;background:var(--horizon-glow);box-shadow:0 0 10px var(--horizon-glow);animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
.hud-spacer{flex:1}
#safeExit{background:rgba(184,92,110,.85);border-color:rgba(255,255,255,.35);color:#fff;font-weight:700}
#safeExit:hover{background:#c9576c;transform:scale(1.04)}
#backBtn{display:none}
#backBtn.show{display:flex}
#minimap{position:fixed;left:20px;bottom:20px;z-index:8998;background:rgba(13,16,38,.6);backdrop-filter:blur(14px);
  border:1px solid rgba(255,217,160,.2);border-radius:16px;padding:14px 16px;min-width:150px;transition:opacity .5s}
#minimap h4{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,217,160,.55);margin-bottom:9px;font-weight:700}
#minimap ol{list-style:none;display:flex;flex-direction:column;gap:5px}
#minimap li{font-size:12px;color:rgba(250,244,234,.42);display:flex;align-items:center;gap:8px;transition:color .3s}
#minimap li::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
#minimap li.here{color:var(--warm-1);font-weight:700}
#minimap li.here::before{box-shadow:0 0 8px var(--warm-1)}
#hint{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:8998;
  background:rgba(13,16,38,.55);backdrop-filter:blur(12px);border:1px solid rgba(255,217,160,.18);
  border-radius:999px;padding:9px 22px;color:rgba(250,244,234,.75);font-size:13px;letter-spacing:.02em;
  opacity:0;transition:opacity .8s;white-space:nowrap}
#hint.show{opacity:1}
#hint kbd{font-family:inherit;background:rgba(255,217,160,.15);border:1px solid rgba(255,217,160,.3);border-radius:5px;padding:1px 7px;font-size:11px;color:var(--warm-1)}

/* ===== SCENE 1 · ARRIVAL ===== */
#scene-arrival{background:linear-gradient(180deg,var(--dusk-1) 0%,var(--dusk-2) 34%,var(--dusk-3) 58%,var(--dusk-4) 74%,var(--horizon) 88%,var(--horizon-glow) 100%)}
.stars{position:absolute;inset:0 0 40% 0}
.star{position:absolute;background:#fff;border-radius:50%;animation:twinkle var(--tw,3s) ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:var(--o,.7)}50%{opacity:.12}}
.moon{position:absolute;top:9%;right:14%;width:74px;height:74px;border-radius:50%;
  background:radial-gradient(circle at 36% 34%,#fff8ea,#f0e0c0 55%,#d8c49a);
  box-shadow:0 0 60px rgba(255,240,210,.4),0 0 140px rgba(255,240,210,.18)}
.clouds{position:absolute;top:6%;left:0;right:0;height:36%;pointer-events:none}
.cloud{position:absolute;height:26px;border-radius:30px;background:rgba(122,74,107,.35);filter:blur(9px);animation:drift var(--d,90s) linear infinite}
@keyframes drift{from{transform:translateX(-30vw)}to{transform:translateX(130vw)}}
.skyline{position:absolute;bottom:24%;left:0;right:0;height:34%;display:flex;align-items:flex-end;gap:0;opacity:.92}
.bldg{background:linear-gradient(180deg,#221a3a,#171230);position:relative;flex-shrink:0}
.bldg .win{position:absolute;width:4px;height:5px;background:var(--warm-2);opacity:.65;box-shadow:0 0 6px rgba(244,184,106,.7)}
.principal{clip-path:polygon(0 100%,0 34%,12% 34%,12% 20%,26% 20%,32% 6%,38% 0,44% 6%,50% 20%,64% 20%,64% 34%,100% 34%,100% 100%)}
.dome{border-radius:50% 50% 0 0/70% 70% 0 0;background:linear-gradient(180deg,#8a6f3a,#5c4a28)!important;box-shadow:0 0 30px rgba(201,145,69,.35)}
.ground-ext{position:absolute;bottom:0;left:0;right:0;height:26%;background:linear-gradient(180deg,#241b36 0%,#1a1428 100%)}
.street{position:absolute;bottom:0;left:0;right:0;height:12%;background:linear-gradient(180deg,#2e2440,#1e1830)}
.street::before{content:"";position:absolute;top:46%;left:0;right:0;height:2px;
  background:repeating-linear-gradient(90deg,rgba(255,217,160,.35) 0 34px,transparent 34px 78px)}
.lamp{position:absolute;bottom:11.5%;width:6px;height:120px;background:linear-gradient(180deg,#3a3050,#241b36)}
.lamp::before{content:"";position:absolute;top:-14px;left:50%;transform:translateX(-50%);width:22px;height:22px;border-radius:50%;
  background:radial-gradient(circle,var(--warm-1),var(--warm-3));box-shadow:0 0 34px 10px rgba(255,217,160,.4);animation:lampFlicker 6s infinite}
@keyframes lampFlicker{0%,92%,100%{opacity:1}94%{opacity:.75}96%{opacity:.95}}
.fireflies{position:absolute;inset:30% 0 10% 0;pointer-events:none}
.ff{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--warm-1);
  box-shadow:0 0 8px 2px rgba(255,217,160,.6);animation:ffFloat var(--fd,11s) ease-in-out infinite}
@keyframes ffFloat{0%,100%{transform:translate(0,0);opacity:0}12%{opacity:.9}50%{transform:translate(var(--fx,40px),var(--fy,-60px));opacity:.55}88%{opacity:.8}}
.vrcc-building{position:absolute;bottom:11.5%;left:50%;transform:translateX(-50%);width:min(680px,82vw);height:56%;filter:drop-shadow(0 24px 60px rgba(13,16,38,.7))}
.vb-body{position:absolute;inset:12% 0 0 0;background:linear-gradient(180deg,var(--brick-3),var(--brick-1));border-radius:8px 8px 0 0;
  background-image:linear-gradient(180deg,rgba(255,255,255,.05),transparent 30%),
    repeating-linear-gradient(0deg,transparent 0 17px,rgba(0,0,0,.13) 17px 18px),
    repeating-linear-gradient(90deg,transparent 0 44px,rgba(0,0,0,.09) 44px 45px)}
.vb-roof{position:absolute;top:6.5%;left:-3%;right:-3%;height:7%;background:linear-gradient(180deg,#3a2b36,#2c2029);border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.4)}
.vb-sign{position:absolute;top:15%;left:50%;transform:translateX(-50%);text-align:center;z-index:3}
.vb-sign .letters{font-family:var(--font-display);font-weight:800;font-size:clamp(30px,5.2vw,52px);letter-spacing:.34em;padding-left:.34em;
  color:var(--warm-1);text-shadow:0 0 24px rgba(255,217,160,.85),0 0 70px rgba(244,162,74,.55);animation:signHum 5s ease-in-out infinite}
@keyframes signHum{0%,100%{text-shadow:0 0 24px rgba(255,217,160,.85),0 0 70px rgba(244,162,74,.55)}50%{text-shadow:0 0 30px rgba(255,217,160,1),0 0 90px rgba(244,162,74,.7)}}
.vb-sign .sub{font-size:clamp(9px,1.1vw,12px);letter-spacing:.42em;text-transform:uppercase;color:rgba(255,217,160,.72);margin-top:6px;padding-left:.42em}
.vb-windows{position:absolute;top:32%;left:7%;right:7%;height:26%;display:grid;grid-template-columns:repeat(6,1fr);gap:5.5%}
.vb-win{background:linear-gradient(180deg,rgba(255,217,160,.92),rgba(232,155,74,.85));border-radius:5px 5px 0 0;position:relative;
  box-shadow:0 0 26px rgba(255,200,120,.45),inset 0 0 14px rgba(255,255,255,.35);animation:winGlow 7s ease-in-out infinite;animation-delay:var(--wd,0s)}
.vb-win::before{content:"";position:absolute;inset:0;border:3px solid rgba(44,32,41,.85);border-radius:5px 5px 0 0}
.vb-win::after{content:"";position:absolute;top:0;bottom:0;left:calc(50% - 1.5px);width:3px;background:rgba(44,32,41,.85)}
.vb-win .sil{position:absolute;bottom:0;border-radius:50% 50% 0 0;background:rgba(44,32,41,.55)}
@keyframes winGlow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.14)}}
.vb-awning{position:absolute;bottom:23.5%;left:50%;transform:translateX(-50%);width:34%;height:6%;
  background:repeating-linear-gradient(90deg,var(--accent-teal) 0 26px,#2f5f5b 26px 52px);border-radius:0 0 14px 14px;box-shadow:0 10px 24px rgba(0,0,0,.35);z-index:4}
.vb-door-wrap{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:24%;height:25%;z-index:5;perspective:700px}
.vb-door{position:absolute;inset:0;background:linear-gradient(180deg,#3a2b36,#241b26);border-radius:10px 10px 0 0;
  border:3px solid rgba(255,217,160,.3);display:flex;align-items:center;justify-content:center;
  transition:all .45s var(--ease-place);transform-origin:left center;cursor:pointer}
.vb-door .pane{width:74%;height:78%;border-radius:8px 8px 0 0;background:linear-gradient(180deg,rgba(255,217,160,.5),rgba(232,155,74,.65));
  box-shadow:inset 0 0 24px rgba(255,240,200,.5),0 0 30px rgba(255,200,120,.35);position:relative;overflow:hidden}
.vb-door .pane::after{content:"";position:absolute;top:-60%;left:-30%;width:55%;height:220%;transform:rotate(24deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);animation:paneSheen 6s ease-in-out infinite}
@keyframes paneSheen{0%,60%,100%{left:-40%}30%{left:110%}}
.vb-door-wrap:hover .vb-door,.vb-door-wrap:focus-within .vb-door{border-color:var(--warm-1);box-shadow:0 0 44px rgba(255,217,160,.55)}
.vb-door-wrap.opening .vb-door{transform:rotateY(-72deg)}
.vb-steps{position:absolute;bottom:-4%;left:50%;transform:translateX(-50%);width:34%;height:5%;z-index:4}
.vb-steps i{position:absolute;left:0;right:0;background:#332a3e;border-radius:3px}
.door-label{position:absolute;bottom:27%;left:50%;transform:translateX(-50%) translateY(8px);z-index:6;pointer-events:none;
  background:rgba(13,16,38,.75);backdrop-filter:blur(8px);border:1px solid rgba(255,217,160,.4);border-radius:999px;
  padding:8px 20px;color:var(--warm-1);font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:0;transition:all .4s;white-space:nowrap}
.vb-door-wrap:hover~.door-label,.vb-door-wrap:focus-within~.door-label{opacity:1;transform:translateX(-50%) translateY(0)}
.arrival-title{position:absolute;top:8%;left:50%;transform:translateX(-50%);text-align:center;z-index:6;width:min(760px,92vw)}
.arrival-title .eyebrow{font-size:12px;letter-spacing:.5em;text-transform:uppercase;color:rgba(255,217,160,.65);padding-left:.5em;opacity:0;animation:riseIn 1.4s .5s var(--ease-place) forwards}
.arrival-title h1{font-family:var(--font-display);font-weight:340;font-size:clamp(30px,4.6vw,56px);line-height:1.14;color:var(--paper);
  margin-top:16px;text-shadow:0 4px 40px rgba(13,16,38,.8);opacity:0;animation:riseIn 1.6s .9s var(--ease-place) forwards}
.arrival-title h1 em{font-style:italic;color:var(--warm-1)}
.arrival-title p{margin-top:14px;color:rgba(250,244,234,.72);font-size:15.5px;font-weight:300;letter-spacing:.02em;opacity:0;animation:riseIn 1.6s 1.4s var(--ease-place) forwards}
@keyframes riseIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.arrival-actions{position:absolute;bottom:4.2%;left:50%;transform:translateX(-50%);display:flex;gap:12px;z-index:7;opacity:0;animation:riseIn 1.4s 2s var(--ease-place) forwards}
.ghost-btn{border:1px solid rgba(255,217,160,.35);border-radius:999px;padding:11px 22px;color:rgba(250,244,234,.85);
  font-size:13px;letter-spacing:.08em;background:rgba(13,16,38,.4);backdrop-filter:blur(10px);transition:all .3s;font-weight:600}
.ghost-btn:hover{border-color:var(--warm-1);color:var(--warm-1);background:rgba(255,217,160,.1);transform:translateY(-2px)}
.ghost-btn.primary{background:linear-gradient(135deg,var(--warm-2),var(--horizon-glow));color:var(--ink);border-color:transparent;font-weight:700}
.ghost-btn.primary:hover{box-shadow:0 10px 34px rgba(244,162,74,.45);color:var(--ink)}

/* ===== SCENE 2 · LOBBY ===== */
#scene-lobby{background:linear-gradient(180deg,#efe3d2 0%,var(--interior-wall) 46%,var(--interior-wall-2) 66%)}
.lobby-floor{position:absolute;bottom:0;left:0;right:0;height:38%;background:linear-gradient(180deg,#9a7458,#7a5844);transform-origin:top;
  background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.07) 0 2px,transparent 2px 90px),linear-gradient(180deg,rgba(255,240,210,.25),transparent 40%)}
.lobby-floor::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(255,220,170,.35),transparent 60%)}
.lobby-rug{position:absolute;bottom:6%;left:50%;transform:translateX(-50%) perspective(600px) rotateX(48deg);width:44%;height:30%;
  background:radial-gradient(ellipse at center,var(--accent-teal) 0%,#2f5f5b 70%);border-radius:50%;border:6px solid rgba(255,217,160,.35);opacity:.85;box-shadow:0 10px 40px rgba(0,0,0,.2)}
.lobby-window{position:absolute;top:9%;width:15%;height:36%;border-radius:120px 120px 8px 8px;overflow:hidden;
  border:9px solid #c9b090;box-shadow:0 14px 40px rgba(0,0,0,.16),inset 0 0 30px rgba(255,255,255,.3);
  background:linear-gradient(180deg,var(--dusk-2) 0%,var(--dusk-3) 45%,var(--dusk-4) 68%,var(--horizon) 100%)}
.lobby-window::after{content:"";position:absolute;top:0;bottom:0;left:calc(50% - 3px);width:6px;background:#c9b090}
.lobby-window .sunray{position:absolute;inset:0;background:radial-gradient(circle at 50% 90%,rgba(244,162,74,.5),transparent 60%)}
.light-shaft{position:absolute;top:12%;width:26%;height:70%;pointer-events:none;background:linear-gradient(195deg,rgba(255,220,170,.22),transparent 65%);filter:blur(6px)}
.dust{position:absolute;inset:0;pointer-events:none}
.mote{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(255,235,200,.7);animation:moteFloat var(--md,14s) linear infinite}
@keyframes moteFloat{0%{transform:translate(0,0);opacity:0}15%{opacity:.7}85%{opacity:.4}100%{transform:translate(var(--mx,30px),var(--my,80px));opacity:0}}
.plant{position:absolute;bottom:32%;width:90px;height:150px}
.plant .pot{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:56px;height:44px;border-radius:6px 6px 14px 14px;background:linear-gradient(180deg,var(--accent-clay),#8a4f34)}
.plant .leaf{position:absolute;bottom:38px;left:50%;width:12px;height:90px;border-radius:50% 50% 0 0;background:linear-gradient(180deg,var(--sage),var(--sage-deep));transform-origin:bottom center;animation:leafSway 6s ease-in-out infinite}
@keyframes leafSway{0%,100%{transform:translateX(-50%) rotate(var(--lr,0deg))}50%{transform:translateX(-50%) rotate(calc(var(--lr,0deg) + 4deg))}}
.lobby-title{position:absolute;top:5.5%;left:50%;transform:translateX(-50%);text-align:center;z-index:5}
.lobby-title h2{font-family:var(--font-display);font-weight:380;font-size:clamp(24px,3vw,36px);color:var(--ink)}
.lobby-title p{color:var(--ink-soft);font-size:14px;margin-top:6px;font-weight:300;font-style:italic;font-family:var(--font-display)}
.directory-wall{position:absolute;top:22%;left:3.5%;width:15%;min-width:170px;background:#3a2f45;border-radius:12px;padding:18px 16px;box-shadow:var(--shadow-deep);border:5px solid #c9b090;z-index:4;transform:rotate(-1deg)}
.directory-wall h5{color:var(--warm-1);font-size:10px;letter-spacing:.24em;text-transform:uppercase;margin-bottom:12px;text-align:center;font-weight:700}
.directory-wall ul{list-style:none;display:flex;flex-direction:column;gap:7px}
.directory-wall li{color:rgba(250,244,234,.75);font-size:11.5px;display:flex;align-items:center;gap:8px;letter-spacing:.03em}
.directory-wall li i{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.hotspot{cursor:pointer;transition:transform .35s var(--ease-place),filter .35s}
.hotspot:hover,.hotspot:focus-visible{transform:translateY(-6px);filter:drop-shadow(0 16px 34px rgba(244,162,74,.35))}
.front-desk{position:absolute;bottom:24%;left:16%;width:26%;height:30%;z-index:6}
.fd-body{position:absolute;bottom:0;left:0;right:0;height:62%;border-radius:14px 14px 6px 6px;background:linear-gradient(180deg,#8a6244,#6e4c34);box-shadow:0 16px 40px rgba(0,0,0,.25);
  background-image:linear-gradient(180deg,rgba(255,240,210,.25),transparent 30%),repeating-linear-gradient(90deg,transparent 0 34px,rgba(0,0,0,.08) 34px 36px)}
.fd-top{position:absolute;bottom:60%;left:-3%;right:-3%;height:8%;background:#c9b090;border-radius:8px;box-shadow:0 6px 16px rgba(0,0,0,.2)}
.fd-lamp{position:absolute;bottom:68%;right:10%;width:40px;height:52px}
.fd-lamp::before{content:"";position:absolute;bottom:0;left:calc(50% - 3px);width:6px;height:30px;background:#4a3a2c}
.fd-lamp::after{content:"";position:absolute;top:0;left:0;width:40px;height:26px;border-radius:20px 20px 4px 4px;background:linear-gradient(180deg,var(--warm-2),var(--warm-3));box-shadow:0 12px 30px rgba(244,184,106,.55)}
.fd-person{position:absolute;bottom:66%;left:26%;width:64px;height:82px}
.fd-person .head{position:absolute;top:0;left:calc(50% - 15px);width:30px;height:30px;border-radius:50%;background:#5c4350}
.fd-person .torso{position:absolute;top:30px;left:calc(50% - 24px);width:48px;height:52px;border-radius:20px 20px 0 0;background:var(--accent-teal)}
.fd-bell{position:absolute;bottom:70%;left:58%;width:22px;height:16px;border-radius:11px 11px 0 0;background:linear-gradient(180deg,#ffd98a,#c99145);box-shadow:0 4px 10px rgba(0,0,0,.25);animation:bellShine 4s ease-in-out infinite}
@keyframes bellShine{0%,100%{filter:brightness(1)}50%{filter:brightness(1.3)}}
.hs-label{position:absolute;left:50%;transform:translateX(-50%);bottom:104%;white-space:nowrap;background:rgba(36,27,47,.85);backdrop-filter:blur(8px);color:var(--warm-1);border:1px solid rgba(255,217,160,.35);
  border-radius:12px;padding:9px 16px;font-size:12.5px;font-weight:700;letter-spacing:.05em;opacity:0;transition:all .35s;pointer-events:none;text-align:center;line-height:1.5;z-index:20}
.hs-label small{display:block;font-weight:400;color:rgba(250,244,234,.7);font-size:11px;font-style:italic;font-family:var(--font-display)}
.hotspot:hover .hs-label,.hotspot:focus-visible .hs-label{opacity:1;transform:translateX(-50%) translateY(-4px)}
.kiosk{position:absolute;bottom:24%;right:17%;width:12%;min-width:120px;height:34%;z-index:6}
.kiosk-stand{position:absolute;bottom:0;left:calc(50% - 9px);width:18px;height:36%;background:linear-gradient(180deg,#55495f,#3a3145)}
.kiosk-base{position:absolute;bottom:-1%;left:calc(50% - 34px);width:68px;height:12px;border-radius:8px;background:#3a3145}
.kiosk-screen{position:absolute;top:0;left:0;right:0;height:64%;border-radius:14px;background:#241b2f;border:5px solid #55495f;box-shadow:0 16px 44px rgba(0,0,0,.35),0 0 40px rgba(63,125,120,.3);overflow:hidden}
.kiosk-screen .glow{position:absolute;inset:6%;border-radius:8px;background:linear-gradient(160deg,#2f6a66,var(--accent-teal) 60%,#5aa39d);animation:kioskCycle 8s ease-in-out infinite}
@keyframes kioskCycle{0%,100%{filter:hue-rotate(0deg) brightness(1)}50%{filter:hue-rotate(-14deg) brightness(1.18)}}
.kiosk-screen .row{position:absolute;left:16%;right:16%;height:7%;border-radius:4px;background:rgba(250,244,234,.75)}
.kiosk-screen .sheen{position:absolute;top:-40%;left:-40%;width:60%;height:200%;transform:rotate(22deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:paneSheen 7s ease-in-out infinite}
.hall-entrance{position:absolute;bottom:24%;left:50%;transform:translateX(-50%);width:17%;min-width:160px;height:44%;z-index:5}
.he-arch{position:absolute;inset:0;border-radius:120px 120px 0 0;overflow:hidden;border:10px solid #c9b090;border-bottom:none;background:linear-gradient(180deg,#2c2438 0%,#453a52 55%,#5c4c66 100%);box-shadow:inset 0 0 60px rgba(0,0,0,.6)}
.he-arch .glow-end{position:absolute;bottom:0;left:20%;right:20%;height:46%;background:radial-gradient(ellipse at 50% 100%,rgba(255,200,130,.55),transparent 70%);filter:blur(4px)}
.he-arch .persp{position:absolute;inset:0;background:linear-gradient(to bottom right,transparent 48%,rgba(0,0,0,.28) 49%,transparent 51%),linear-gradient(to bottom left,transparent 48%,rgba(0,0,0,.28) 49%,transparent 51%)}
.he-doors{position:absolute;bottom:8%;width:14%;height:30%;border-radius:4px 4px 0 0;background:#241b26;border:2px solid rgba(255,217,160,.3)}
.exit-door-lobby{position:absolute;bottom:26%;left:4%;width:9%;min-width:90px;height:30%;z-index:5}
.exit-door-lobby .frame{position:absolute;inset:0;border-radius:10px 10px 0 0;background:linear-gradient(180deg,#3a2b36,#241b26);border:3px solid rgba(201,176,144,.7);display:flex;align-items:center;justify-content:center}
.exit-door-lobby .frame span{writing-mode:vertical-rl;color:rgba(255,217,160,.6);letter-spacing:.4em;font-size:10px;text-transform:uppercase;font-weight:700}

/* ===== SCENE 3 · HALLWAY ===== */
#scene-hallway{background:#2c2438;perspective:900px}
.hall-world{position:absolute;inset:0;transform-style:preserve-3d}
.hall-ceiling{position:absolute;top:0;left:-14%;right:-14%;height:52%;transform-origin:top;transform:rotateX(62deg);background:linear-gradient(180deg,#efe3d2 0%,#e0d0ba 100%);background-image:repeating-linear-gradient(90deg,transparent 0 130px,rgba(0,0,0,.05) 130px 133px)}
.hall-lightfix{position:absolute;left:calc(50% - 30px);width:60px;height:14px;border-radius:10px;background:linear-gradient(180deg,#fff2d8,var(--warm-2));box-shadow:0 0 40px 14px rgba(255,220,170,.5)}
.hall-floor{position:absolute;bottom:0;left:-14%;right:-14%;height:52%;transform-origin:bottom;transform:rotateX(-62deg);background:linear-gradient(0deg,#9a7458 0%,#7a5844 100%);
  background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.08) 0 2px,transparent 2px 110px),repeating-linear-gradient(0deg,rgba(0,0,0,.05) 0 2px,transparent 2px 90px)}
.hall-runner{position:absolute;bottom:0;left:calc(50% - 11%);width:22%;height:52%;transform-origin:bottom;transform:rotateX(-62deg);background:linear-gradient(0deg,var(--accent-teal),#2f5f5b);opacity:.8;border-left:5px solid rgba(255,217,160,.4);border-right:5px solid rgba(255,217,160,.4)}
.hall-wall{position:absolute;top:11%;bottom:11%;width:34%;background:linear-gradient(180deg,var(--interior-wall) 0%,var(--interior-wall-2) 78%,#c9b090 78.5%,var(--interior-wall-2) 80%,#d6c4ac 100%)}
.hall-wall.left{left:0;transform-origin:left;transform:rotateY(58deg)}
.hall-wall.right{right:0;transform-origin:right;transform:rotateY(-58deg)}
.hall-end{position:absolute;top:11%;bottom:11%;left:33.5%;right:33.5%;background:linear-gradient(180deg,var(--interior-wall),var(--interior-wall-2));display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4%}
.hall-doors{position:absolute;inset:0;display:flex;justify-content:space-evenly;align-items:flex-end;padding-bottom:9%}
.hdoor{position:relative;width:19%;height:66%;perspective:500px;cursor:pointer;transition:filter .3s}
.hdoor .slab{position:absolute;inset:0;border-radius:8px 8px 0 0;transform-origin:left center;transition:transform .5s var(--ease-place);background:linear-gradient(180deg,#6e5140,#543d30);border:3px solid #c9b090;box-shadow:0 10px 30px rgba(0,0,0,.3);overflow:hidden}
.hdoor .slab::after{content:"";position:absolute;right:9%;top:48%;width:9px;height:9px;border-radius:50%;background:var(--accent-gold);box-shadow:0 0 8px rgba(201,145,69,.8)}
.hdoor .window{position:absolute;top:9%;left:16%;right:16%;height:34%;border-radius:50px 50px 6px 6px;overflow:hidden;border:3px solid #c9b090;background:linear-gradient(180deg,var(--rc,#3f7d78) 0%,color-mix(in srgb,var(--rc,#3f7d78) 55%,#0d1026) 100%);box-shadow:inset 0 0 20px rgba(0,0,0,.35)}
.hdoor .window .warm{position:absolute;inset:0;background:radial-gradient(circle at 50% 78%,rgba(255,217,160,.55),transparent 68%);opacity:.7;animation:winGlow 6s ease-in-out infinite}
.hdoor .window .obj{position:absolute;background:rgba(13,16,38,.5);border-radius:4px}
.hdoor .plaque{position:absolute;top:47%;left:8%;right:8%;text-align:center;background:rgba(36,27,47,.28);border-radius:6px;padding:6% 4%;border:1px solid rgba(255,217,160,.35)}
.hdoor .plaque b{display:block;color:var(--warm-1);font-size:clamp(9px,.85vw,13px);letter-spacing:.05em;line-height:1.3;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.hdoor .plaque .ico{font-size:clamp(13px,1.3vw,20px);display:block;margin-bottom:4%}
.hdoor:hover,.hdoor:focus-visible{filter:drop-shadow(0 0 24px rgba(255,217,160,.35))}
.hdoor:hover .slab,.hdoor:focus-visible .slab{transform:rotateY(-16deg)}
.hdoor.locked .slab{background:linear-gradient(180deg,#55495f,#3a3145)}
.hdoor.locked .slab::before{content:"🔒";position:absolute;top:4%;left:50%;transform:translateX(-50%);font-size:14px;opacity:.85}
#peek{position:fixed;z-index:8997;width:284px;background:rgba(20,15,32,.9);backdrop-filter:blur(16px);border:1px solid rgba(255,217,160,.35);border-radius:18px;padding:18px;opacity:0;pointer-events:none;transform:translateY(10px) scale(.96);transition:opacity .3s,transform .3s var(--ease-place);box-shadow:var(--shadow-deep)}
#peek.show{opacity:1;transform:none}
#peek .p-eyebrow{font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,217,160,.6);font-weight:700}
#peek h4{font-family:var(--font-display);color:var(--paper);font-size:19px;font-weight:500;margin:5px 0 7px}
#peek p{color:rgba(250,244,234,.72);font-size:12.5px;line-height:1.55}
#peek .p-inside{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}
#peek .p-inside span{font-size:10.5px;background:rgba(255,217,160,.12);border:1px solid rgba(255,217,160,.22);color:rgba(255,217,160,.85);border-radius:999px;padding:4px 10px}
#peek .p-cta{margin-top:13px;font-size:11.5px;color:var(--warm-1);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.hall-far{display:flex;flex-direction:column;align-items:center;gap:12px;transform:translateY(-4%)}
.hall-far .far-btn{border:2px solid rgba(90,70,60,.4);background:linear-gradient(180deg,#6e5140,#543d30);color:var(--warm-1);border-radius:10px;padding:10px 14px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;transition:all .3s;box-shadow:0 8px 24px rgba(0,0,0,.3);width:82%}
.hall-far .far-btn:hover{transform:scale(1.05);box-shadow:0 0 30px rgba(255,217,160,.35)}
.hall-far .far-btn small{display:block;font-weight:400;text-transform:none;letter-spacing:.02em;opacity:.75;font-size:10px;margin-top:3px;font-style:italic;font-family:var(--font-display)}
.hall-far .garden-glimpse{width:70%;height:60px;border-radius:60px 60px 6px 6px;border:5px solid #c9b090;overflow:hidden;background:linear-gradient(180deg,var(--sky-day-1),var(--sky-day-2) 60%,var(--sage) 62%)}

/* ===== SCENE 4 · ROOM ===== */
#scene-room{background:linear-gradient(180deg,color-mix(in srgb,var(--room-accent,#3f7d78) 12%,#f6ecdd) 0%,var(--interior-wall) 44%,var(--interior-wall-2) 66%)}
.room-floor{position:absolute;bottom:0;left:0;right:0;height:34%;background:linear-gradient(180deg,#9a7458,#7a5844);background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.07) 0 2px,transparent 2px 100px)}
.room-rug{position:absolute;bottom:4%;left:50%;transform:translateX(-50%) perspective(600px) rotateX(50deg);width:52%;height:26%;border-radius:24px;background:color-mix(in srgb,var(--room-accent,#3f7d78) 78%,#1a1428);opacity:.85;border:5px solid rgba(255,217,160,.3);box-shadow:0 10px 40px rgba(0,0,0,.2)}
.room-window-big{position:absolute;top:10%;right:7%;width:19%;height:40%;border-radius:130px 130px 10px 10px;overflow:hidden;border:9px solid #c9b090;box-shadow:inset 0 0 30px rgba(255,255,255,.3),0 14px 40px rgba(0,0,0,.14);background:linear-gradient(180deg,var(--dusk-2),var(--dusk-4) 62%,var(--horizon) 100%)}
.room-window-big::after{content:"";position:absolute;top:0;bottom:0;left:calc(50% - 3px);width:6px;background:#c9b090}
.room-accent-band{position:absolute;top:0;left:0;right:0;height:9px;background:linear-gradient(90deg,transparent,var(--room-accent,#3f7d78),transparent)}
.room-head{position:absolute;top:6%;left:7%;max-width:44%;z-index:5}
.room-head .r-eyebrow{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:color-mix(in srgb,var(--room-accent,#3f7d78) 80%,#241b2f);font-weight:800}
.room-head h2{font-family:var(--font-display);font-weight:380;font-size:clamp(28px,3.6vw,46px);color:var(--ink);margin-top:8px;line-height:1.08}
.room-head p{margin-top:12px;color:var(--ink-soft);font-size:15px;line-height:1.6;font-weight:300;max-width:42ch}
.room-cards{position:absolute;bottom:9%;left:7%;right:7%;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;z-index:6}
.rcard{background:rgba(250,244,234,.86);backdrop-filter:blur(10px);border-radius:18px;padding:20px 18px;text-align:left;border:1px solid rgba(122,88,68,.18);box-shadow:0 14px 34px rgba(60,40,30,.14);transition:all .35s var(--ease-place);position:relative;overflow:hidden;cursor:pointer}
.rcard::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--room-accent,#3f7d78);opacity:.7}
.rcard:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(60,40,30,.22)}
.rcard .r-ico{font-size:24px;margin-bottom:10px;display:block}
.rcard b{font-family:var(--font-display);font-weight:600;font-size:16.5px;color:var(--ink);display:block;margin-bottom:6px}
.rcard span{font-size:12.5px;color:var(--ink-soft);line-height:1.5;display:block}
.room-furniture{position:absolute;bottom:30%;left:0;right:0;height:26%;pointer-events:none;z-index:2}
.chair{position:absolute;bottom:0;width:74px;height:88px}
.chair .back{position:absolute;bottom:34px;left:6px;width:62px;height:54px;border-radius:16px 16px 4px 4px;background:var(--room-accent,#3f7d78);opacity:.8}
.chair .seat{position:absolute;bottom:16px;left:0;width:74px;height:22px;border-radius:8px;background:color-mix(in srgb,var(--room-accent,#3f7d78) 70%,#241b2f)}
.chair .legs{position:absolute;bottom:0;left:8px;right:8px;height:16px;background:linear-gradient(90deg,#543d30 0 6px,transparent 6px calc(100% - 6px),#543d30 calc(100% - 6px))}
.lamp-floor{position:absolute;bottom:0;width:50px;height:170px}
.lamp-floor::before{content:"";position:absolute;bottom:0;left:calc(50% - 3px);width:6px;height:120px;background:#4a3a2c}
.lamp-floor::after{content:"";position:absolute;top:0;left:0;width:50px;height:38px;border-radius:25px 25px 6px 6px;background:linear-gradient(180deg,var(--warm-1),var(--warm-3));box-shadow:0 20px 50px rgba(244,184,106,.5)}
.room-quote{position:absolute;top:14%;left:56%;width:26%;background:rgba(36,27,47,.06);border-left:4px solid var(--room-accent,#3f7d78);padding:16px 20px;border-radius:0 14px 14px 0;z-index:4}
.room-quote p{font-family:var(--font-display);font-style:italic;font-size:15.5px;color:var(--ink-soft);line-height:1.6}

/* ===== SCENE 5 · BASEMENT ===== */
#scene-basement{background:radial-gradient(ellipse at 50% 80%,#2c2136 0%,#1a1426 55%,#100c1c 100%)}
.stone-wall{position:absolute;inset:0 0 26% 0;opacity:.5;background-image:repeating-linear-gradient(0deg,transparent 0 44px,rgba(0,0,0,.4) 44px 47px),repeating-linear-gradient(90deg,transparent 0 88px,rgba(0,0,0,.3) 88px 91px)}
.basement-floor{position:absolute;bottom:0;left:0;right:0;height:28%;background:linear-gradient(180deg,#241b30,#171225)}
.candle{position:absolute;width:26px;z-index:3}
.candle .wax{width:100%;height:44px;border-radius:5px 5px 8px 8px;background:linear-gradient(180deg,#f2e4c8,#d8c4a0)}
.candle .flame{position:absolute;top:-22px;left:calc(50% - 7px);width:14px;height:22px;border-radius:50% 50% 50% 50%/62% 62% 38% 38%;background:radial-gradient(circle at 50% 74%,#fff6dd 0%,var(--warm-2) 45%,var(--horizon) 90%);box-shadow:0 0 30px 10px rgba(255,200,120,.4),0 0 90px 30px rgba(255,180,100,.14);transform-origin:bottom center;animation:flame 2.6s ease-in-out infinite}
@keyframes flame{0%,100%{transform:scaleY(1) rotate(-2deg)}30%{transform:scaleY(1.12) rotate(2deg)}60%{transform:scaleY(.94) rotate(-1deg)}}
.basement-head{position:absolute;top:9%;left:50%;transform:translateX(-50%);text-align:center;z-index:5;width:min(680px,90vw)}
.basement-head .b-eyebrow{font-size:11px;letter-spacing:.44em;text-transform:uppercase;color:rgba(255,217,160,.55);font-weight:700;padding-left:.44em}
.basement-head h2{font-family:var(--font-display);font-weight:340;font-size:clamp(26px,3.4vw,42px);color:var(--paper);margin-top:12px}
.basement-head h2 em{color:var(--warm-1)}
.basement-head p{margin-top:12px;color:rgba(250,244,234,.62);font-size:14.5px;font-weight:300;line-height:1.6}
.slogan-stage{position:absolute;top:38%;left:50%;transform:translateX(-50%);width:min(460px,88vw);height:290px;perspective:1200px;z-index:6}
.slogan-card{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .8s var(--ease-place);cursor:pointer}
.slogan-card.flipped{transform:rotateY(180deg)}
.sc-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px;text-align:center;box-shadow:0 30px 70px rgba(0,0,0,.5)}
.sc-front{background:linear-gradient(160deg,#3a2f50,#241b3a);border:1px solid rgba(255,217,160,.3)}
.sc-front .sc-mark{font-family:var(--font-display);font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,217,160,.5);margin-bottom:20px}
.sc-front h3{font-family:var(--font-display);font-weight:420;font-style:italic;font-size:clamp(24px,3vw,34px);color:var(--paper);line-height:1.3}
.sc-front .sc-tap{margin-top:24px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,217,160,.55)}
.sc-back{background:linear-gradient(160deg,#2c3a3a,#1a2626);border:1px solid rgba(122,148,113,.4);transform:rotateY(180deg)}
.sc-back h5{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--sage);margin-bottom:16px;font-weight:700}
.sc-back p{color:rgba(250,244,234,.82);font-size:15.5px;line-height:1.7;font-weight:300;max-width:40ch}
.slogan-controls{position:absolute;top:calc(38% + 320px);left:50%;transform:translateX(-50%);display:flex;gap:12px;z-index:6}
.breath{position:absolute;bottom:7%;right:6%;width:120px;height:120px;z-index:5;display:flex;align-items:center;justify-content:center}
.breath .ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,217,160,.35);animation:breathe 8s ease-in-out infinite}
.breath .core{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle,rgba(255,217,160,.8),rgba(244,162,74,.3));animation:breathe 8s ease-in-out infinite}
.breath span{position:absolute;bottom:-24px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,217,160,.5);white-space:nowrap}
@keyframes breathe{0%,100%{transform:scale(.7)}45%,55%{transform:scale(1.15)}}

/* ===== SCENE 6 · GARDEN ===== */
#scene-garden{background:linear-gradient(180deg,var(--sky-day-1) 0%,#cfe4dd 42%,var(--sky-day-2) 58%)}
.sun{position:absolute;top:8%;left:12%;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 40% 36%,#fffbe8,#ffe9ad 60%,#ffd97a);box-shadow:0 0 80px 24px rgba(255,230,160,.55),0 0 200px 70px rgba(255,230,160,.22)}
.garden-ground{position:absolute;bottom:0;left:0;right:0;height:44%;background:linear-gradient(180deg,var(--sage) 0%,var(--sage-deep) 100%)}
.garden-path{position:absolute;bottom:0;left:calc(50% - 9%);width:18%;height:44%;background:linear-gradient(0deg,#c9b090,#e0d0ba);clip-path:polygon(30% 0,70% 0,100% 100%,0 100%);opacity:.9}
.gplant{position:absolute;transform-origin:bottom center;animation:leafSway 5s ease-in-out infinite}
.gplant .stem{position:absolute;bottom:0;left:calc(50% - 3px);width:6px;background:var(--sage-deep);border-radius:3px}
.gplant .bloom{position:absolute;left:calc(50% - 14px);width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 40% 36%,#fff,var(--bl,#e8a4b8) 55%)}
.bfly{position:absolute;font-size:20px;animation:bflyPath var(--bd,16s) ease-in-out infinite;z-index:4;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}
@keyframes bflyPath{0%,100%{transform:translate(0,0) rotate(-8deg)}25%{transform:translate(60px,-50px) rotate(8deg)}50%{transform:translate(140px,-14px) rotate(-6deg)}75%{transform:translate(60px,40px) rotate(10deg)}}
.garden-head{position:absolute;top:7%;left:50%;transform:translateX(-50%);text-align:center;z-index:6;width:min(720px,92vw)}
.garden-head .g-eyebrow{font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--sage-deep);font-weight:800;padding-left:.42em}
.garden-head h2{font-family:var(--font-display);font-weight:360;font-size:clamp(26px,3.6vw,44px);color:#2c3a2c;margin-top:10px}
.garden-head p{margin-top:10px;color:#4d6647;font-size:14.5px;font-weight:400;line-height:1.6}
.garden-beds{position:absolute;bottom:12%;left:6%;right:6%;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;z-index:6}
.gbed{background:rgba(255,255,255,.72);backdrop-filter:blur(8px);border-radius:20px;padding:20px;text-align:left;cursor:pointer;border:2px solid rgba(77,102,71,.22);box-shadow:0 16px 36px rgba(45,70,45,.16);transition:all .35s var(--ease-place);position:relative;overflow:hidden}
.gbed::before{content:"";position:absolute;bottom:0;left:0;right:0;height:8px;background:linear-gradient(90deg,var(--sage),#a8c49a)}
.gbed:hover{transform:translateY(-8px) rotate(-.5deg);box-shadow:0 26px 52px rgba(45,70,45,.24)}
.gbed .g-ico{font-size:26px;display:block;margin-bottom:10px}
.gbed b{font-family:var(--font-display);font-weight:600;font-size:16.5px;color:#2c3a2c;display:block;margin-bottom:6px}
.gbed span{font-size:12.5px;color:#4d6647;line-height:1.5;display:block}
.garden-gate{position:absolute;bottom:34%;right:6%;width:13%;min-width:140px;height:30%;z-index:6}
.garden-gate .arch{position:absolute;inset:0;border-radius:100px 100px 0 0;border:7px solid #8a6f52;border-bottom:none;background:linear-gradient(180deg,rgba(26,31,69,.9),rgba(58,47,92,.85) 60%,rgba(217,124,90,.7));overflow:hidden;box-shadow:0 20px 44px rgba(45,70,45,.3)}
.garden-gate .cityhint{position:absolute;bottom:0;left:8%;right:8%;height:44%;display:flex;align-items:flex-end;gap:5%;opacity:.9}
.garden-gate .cityhint i{flex:1;background:#241b3a;position:relative}
.garden-gate .cityhint i::after{content:"";position:absolute;inset:20% 25%;background:repeating-linear-gradient(0deg,rgba(255,217,160,.6) 0 3px,transparent 3px 9px)}
.garden-gate .vine{position:absolute;top:-6%;width:14px;height:70%;border-radius:8px;background:var(--sage-deep)}
.garden-gate .vine::before,.garden-gate .vine::after{content:"";position:absolute;width:16px;height:16px;border-radius:50% 0;background:var(--sage)}

/* ===== SCENE 7 · CITY ===== */
#scene-city{background:radial-gradient(ellipse at 50% 30%,#1e2450 0%,var(--dusk-1) 70%)}
.city-map{position:absolute;top:14%;bottom:6%;left:4%;right:36%;border-radius:26px;overflow:hidden;border:1px solid rgba(255,217,160,.22);background:#141833;box-shadow:var(--shadow-deep)}
.city-grid{position:absolute;inset:0;opacity:.9;background-image:repeating-linear-gradient(0deg,transparent 0 54px,rgba(93,108,175,.24) 54px 56px),repeating-linear-gradient(90deg,transparent 0 62px,rgba(93,108,175,.24) 62px 64px)}
.river{position:absolute;top:-6%;bottom:-6%;left:52%;width:9%;background:linear-gradient(180deg,#26407a,#1b2f5e);border-radius:60px;transform:rotate(16deg);box-shadow:0 0 40px rgba(60,110,200,.3);overflow:hidden}
.river::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 18px,rgba(140,180,255,.14) 18px 22px);animation:riverFlow 5s linear infinite}
@keyframes riverFlow{from{background-position:0 0}to{background-position:0 120px}}
.river.raccoon{top:auto;bottom:-14%;left:-8%;width:120%;height:8%;transform:rotate(-9deg)}
.city-glow{position:absolute;border-radius:50%;filter:blur(30px);opacity:.3;background:var(--warm-3)}
.marker{position:absolute;transform:translate(-50%,-100%);cursor:pointer;z-index:5;transition:transform .3s var(--ease-place)}
.marker .pin{width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--mc,#f4a24a);border:2px solid rgba(255,255,255,.75);box-shadow:0 0 20px color-mix(in srgb,var(--mc,#f4a24a) 75%,transparent);display:flex;align-items:center;justify-content:center}
.marker .pin i{transform:rotate(45deg);font-style:normal;font-size:11px}
.marker::after{content:"";position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);width:26px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--mc,#f4a24a) 45%,transparent);animation:pinPulse 2.6s ease-out infinite}
@keyframes pinPulse{0%{transform:translateX(-50%) scale(.6);opacity:.9}100%{transform:translateX(-50%) scale(2.4);opacity:0}}
.marker:hover,.marker.sel{transform:translate(-50%,-100%) scale(1.35);z-index:7}
.marker.home .pin{width:34px;height:34px;background:var(--warm-1);box-shadow:0 0 34px rgba(255,217,160,.85)}
.city-panel{position:absolute;top:14%;bottom:6%;right:4%;width:29%;min-width:300px;border-radius:26px;overflow:hidden;display:flex;flex-direction:column;background:rgba(20,15,32,.78);backdrop-filter:blur(18px);border:1px solid rgba(255,217,160,.22);box-shadow:var(--shadow-deep)}
.city-panel header{padding:22px 22px 14px}
.city-panel header .c-eyebrow{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,217,160,.55);font-weight:700}
.city-panel header h3{font-family:var(--font-display);font-weight:420;color:var(--paper);font-size:22px;margin-top:6px}
.city-panel header p{color:rgba(250,244,234,.6);font-size:12px;margin-top:6px;line-height:1.5}
.res-list{flex:1;overflow-y:auto;padding:6px 14px 18px;display:flex;flex-direction:column;gap:9px;scrollbar-width:thin}
.res{background:rgba(255,255,255,.05);border:1px solid rgba(255,217,160,.14);border-radius:14px;padding:13px 14px;cursor:pointer;transition:all .3s;text-align:left;display:flex;gap:12px;align-items:flex-start}
.res:hover,.res.sel{background:rgba(255,217,160,.1);border-color:rgba(255,217,160,.4);transform:translateX(4px)}
.res .r-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:4px;background:var(--mc,#f4a24a);box-shadow:0 0 10px var(--mc,#f4a24a)}
.res b{display:block;color:var(--paper);font-size:13.5px;margin-bottom:3px}
.res span{display:block;color:rgba(250,244,234,.58);font-size:11.5px;line-height:1.45}
.res .cat{display:inline-block;margin-top:6px;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mc,#f4a24a);font-weight:700}
.city-title{position:absolute;top:4%;left:4%;z-index:6}
.city-title h2{font-family:var(--font-display);color:var(--paper);font-weight:360;font-size:clamp(22px,2.6vw,32px)}
.city-title p{color:rgba(250,244,234,.55);font-size:12.5px;margin-top:4px;font-style:italic;font-family:var(--font-display)}

/* ===== PANELS / OVERLAYS ===== */
#scrim{position:fixed;inset:0;z-index:9100;background:rgba(13,16,38,.55);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .45s}
#scrim.show{opacity:1;pointer-events:auto}
.panel{position:fixed;z-index:9110;top:50%;left:50%;transform:translate(-50%,-46%) scale(.96);width:min(620px,93vw);max-height:84vh;overflow-y:auto;border-radius:26px;opacity:0;pointer-events:none;transition:all .5s var(--ease-place);box-shadow:var(--shadow-deep);scrollbar-width:thin}
.panel.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.panel.warm{background:linear-gradient(170deg,#fdf7ec,#f4e8d4);border:1px solid rgba(122,88,68,.2)}
.panel.dark{background:linear-gradient(170deg,#241b3a,#181228);border:1px solid rgba(255,217,160,.25);color:var(--paper)}
.panel-inner{padding:34px 36px 30px}
.panel .p-eyebrow2{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;font-weight:800;opacity:.65}
.panel h3{font-family:var(--font-display);font-weight:420;font-size:27px;margin:8px 0 8px;line-height:1.15}
.panel>.panel-inner>p,.panel .lead{font-size:14.5px;line-height:1.65;opacity:.8;font-weight:300}
.panel .close-x{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;font-size:17px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.08);transition:all .3s}
.panel.dark .close-x{background:rgba(255,255,255,.1)}
.panel .close-x:hover{transform:rotate(90deg);background:rgba(184,92,110,.25)}
.opt-list{display:flex;flex-direction:column;gap:11px;margin-top:22px}
.opt{display:flex;gap:15px;align-items:flex-start;border-radius:16px;padding:16px 18px;text-align:left;transition:all .3s var(--ease-place);border:1px solid rgba(122,88,68,.18);background:rgba(255,255,255,.55)}
.panel.dark .opt{border-color:rgba(255,217,160,.18);background:rgba(255,255,255,.05)}
.opt:hover{transform:translateX(6px);border-color:var(--accent-gold);box-shadow:0 10px 26px rgba(60,40,30,.12)}
.opt .o-ico{font-size:22px;flex-shrink:0;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(201,145,69,.14)}
.opt b{display:block;font-size:14.5px;margin-bottom:3px}
.opt span{display:block;font-size:12.5px;opacity:.72;line-height:1.5}
.kiosk-tabs{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}
.ktab{border-radius:999px;padding:8px 16px;font-size:12px;font-weight:700;letter-spacing:.04em;border:1px solid rgba(255,217,160,.25);color:rgba(250,244,234,.7);transition:all .3s}
.ktab.on{background:var(--accent-teal);color:#fff;border-color:transparent}
.ktab:hover{border-color:var(--warm-1);color:var(--warm-1)}
.ktab.on:hover{color:#fff}
.kiosk-body{margin-top:18px;min-height:220px}
.kline{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid rgba(255,217,160,.12)}
.kline b{font-size:13.5px;font-weight:600}
.kline span{font-size:11.5px;opacity:.6}
.kline .go{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--warm-1);font-weight:700;white-space:nowrap}
.kline:hover .go{text-decoration:underline}
.privacy-note{margin-top:20px;font-size:11px;line-height:1.6;opacity:.55;border-top:1px dashed rgba(128,110,90,.4);padding-top:14px}
.panel.dark .privacy-note{border-color:rgba(255,217,160,.2)}
#toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);z-index:9200;background:rgba(36,27,47,.92);backdrop-filter:blur(12px);color:var(--paper);border:1px solid rgba(255,217,160,.35);border-radius:16px;padding:14px 24px;font-size:13.5px;opacity:0;transition:all .45s var(--ease-place);pointer-events:none;max-width:min(480px,90vw);text-align:center;line-height:1.5}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast em{color:var(--warm-1);font-style:normal;font-weight:700}
@media (max-width:900px){
  .room-cards,.garden-beds{grid-template-columns:repeat(2,1fr);gap:11px}
  .room-head{max-width:86%}
  .room-quote{display:none}
  .directory-wall{display:none}
  .city-map{right:4%;bottom:46%}
  .city-panel{top:auto;height:38%;bottom:4%;left:4%;width:auto;min-width:0}
  .hdoor .plaque b{font-size:8.5px}
  #minimap{display:none}
  .front-desk{left:6%;width:38%}
  .kiosk{right:8%;width:20%}
  .arrival-title h1{font-size:26px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.2s!important}
  #grain{display:none}
}
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.2s!important}
body.reduce-motion #grain{display:none}

/* ===== MODE · COSMIC GRACE ===== */
body.cosmic{
  --font-display:"Cinzel","Fraunces",serif;
  --interior-wall:#161632; --interior-wall-2:#101026; --interior-floor:#1a1a36;
  --paper:#f2ecff; --paper-2:#d8d0f0; --ink:#ece6fb; --ink-soft:#b4a8d8;
  --warm-1:#f0c56a; --warm-2:#e0b258; --warm-3:#c99a45;
  --brick-1:#1c1840; --brick-2:#282058; --brick-3:#342a70;
  --sage:#4ee1d6; --sage-deep:#2a8f88;
  --sky-day-1:#1a1444; --sky-day-2:#2c1a5c;
  --accent-teal:#3fbdb2; --accent-gold:#f0c56a;
  --horizon:#4a2f8a; --horizon-glow:#7b5ee6;
  --dusk-1:#050510; --dusk-2:#0c0c22; --dusk-3:#1c1442; --dusk-4:#33246a;
}
body.cosmic .scene::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.55;
  background-image:radial-gradient(1.6px 1.6px at 22% 28%, #fff 50%, transparent 51%),radial-gradient(1.2px 1.2px at 68% 12%, #cfe4ff 50%, transparent 51%),radial-gradient(2px 2px at 84% 62%, #ffe9b8 50%, transparent 51%),radial-gradient(1.2px 1.2px at 40% 76%, #fff 50%, transparent 51%),radial-gradient(1.5px 1.5px at 8% 58%, #cdb8ff 50%, transparent 51%),radial-gradient(1px 1px at 55% 45%, #fff 50%, transparent 51%);
  background-size:340px 300px,260px 240px,420px 380px,300px 320px,380px 340px,220px 200px;}
body.cosmic .scene::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;background:radial-gradient(ellipse 60% 40% at 78% 18%,rgba(123,94,230,.22),transparent 70%),radial-gradient(ellipse 50% 36% at 14% 72%,rgba(78,225,214,.12),transparent 70%);}
body.cosmic #scene-arrival{background:radial-gradient(ellipse at 30% 18%,#241a52 0%,#101026 46%,#050510 82%)}
body.cosmic .ground-ext{background:linear-gradient(180deg,#0c0c1e,#07070f)}
body.cosmic .street{background:linear-gradient(180deg,#141430,#0c0c1e)}
body.cosmic .cloud{background:rgba(123,94,230,.28)}
body.cosmic .moon{background:radial-gradient(circle at 36% 34%,#e8f2ff,#a8c4f0 55%,#6a7fc0);box-shadow:0 0 60px rgba(150,180,255,.5),0 0 140px rgba(150,180,255,.22)}
body.cosmic .vb-roof{background:linear-gradient(180deg,#282058,#1c1840)}
body.cosmic .vb-awning{background:repeating-linear-gradient(90deg,var(--accent-teal) 0 26px,#123a3a 26px 52px)}
body.cosmic .vb-sign .letters{color:#f0c56a;text-shadow:0 0 24px rgba(240,197,106,.9),0 0 80px rgba(123,94,230,.7)}
body.cosmic #scene-lobby{background:linear-gradient(180deg,#101026 0%,#161632 46%,#101026)}
body.cosmic .lobby-floor{background:linear-gradient(180deg,#1e1a44,#12102a);background-image:repeating-linear-gradient(90deg,rgba(78,225,214,.06) 0 2px,transparent 2px 90px),linear-gradient(180deg,rgba(123,94,230,.18),transparent 40%)}
body.cosmic .lobby-rug{background:radial-gradient(ellipse at center,#5a3fb8 0%,#33246a 70%);border-color:rgba(240,197,106,.4)}
body.cosmic .lobby-window,body.cosmic .room-window-big{border-color:#3a3078;background:radial-gradient(1.5px 1.5px at 30% 30%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 70% 55%,#fff 50%,transparent 51%),radial-gradient(1.4px 1.4px at 45% 80%,#ffe9b8 50%,transparent 51%),linear-gradient(180deg,#050510,#1c1442)}
body.cosmic .lobby-window::after,body.cosmic .room-window-big::after{background:#3a3078}
body.cosmic .lobby-window .sunray{background:radial-gradient(circle at 50% 90%,rgba(123,94,230,.45),transparent 60%)}
body.cosmic .light-shaft{background:linear-gradient(195deg,rgba(123,94,230,.2),transparent 65%)}
body.cosmic .fd-body{background:linear-gradient(180deg,#2c2462,#1c1840);background-image:linear-gradient(180deg,rgba(123,94,230,.3),transparent 30%)}
body.cosmic .fd-top{background:#3a3078}
body.cosmic .fd-person .torso{background:var(--accent-teal)}
body.cosmic .he-arch{border-color:#3a3078;background:linear-gradient(180deg,#0c0c22 0%,#1c1442 55%,#33246a 100%)}
body.cosmic .exit-door-lobby .frame{border-color:#3a3078;background:linear-gradient(180deg,#1c1840,#12102a)}
body.cosmic .directory-wall{border-color:#3a3078;background:#12102a}
body.cosmic .hall-ceiling{background:linear-gradient(180deg,#161632,#101026)}
body.cosmic .hall-floor{background:linear-gradient(0deg,#1e1a44,#12102a)}
body.cosmic .hall-runner{background:linear-gradient(0deg,var(--sage-deep),#123a3a);border-color:rgba(240,197,106,.4)}
body.cosmic .hall-wall{background:linear-gradient(180deg,#161632 0%,#12102a 78%,#3a3078 78.5%,#12102a 80%,#101026 100%)}
body.cosmic .hall-end{background:linear-gradient(180deg,#161632,#101026)}
body.cosmic .hdoor .slab{background:linear-gradient(180deg,#282058,#1c1840);border-color:#4a3f8a}
body.cosmic .hdoor .window{border-color:#4a3f8a}
body.cosmic .hall-far .far-btn{background:linear-gradient(180deg,#282058,#1c1840);border-color:rgba(123,94,230,.4)}
body.cosmic .garden-glimpse{border-color:#4a3f8a}
body.cosmic #scene-room{background:linear-gradient(180deg,color-mix(in srgb,var(--room-accent,#3f7d78) 22%,#0c0c22) 0%,#161632 44%,#101026 66%)}
body.cosmic .room-floor{background:linear-gradient(180deg,#1e1a44,#12102a)}
body.cosmic .rcard{background:rgba(18,16,44,.86);border-color:rgba(123,94,230,.28);box-shadow:0 14px 34px rgba(0,0,0,.45)}
body.cosmic .rcard:hover{box-shadow:0 24px 50px rgba(0,0,0,.6),0 0 30px color-mix(in srgb,var(--room-accent,#3f7d78) 40%,transparent)}
body.cosmic .room-quote{background:rgba(255,255,255,.045)}
body.cosmic .chair .back{opacity:.95}
body.cosmic #scene-basement{background:radial-gradient(ellipse at 50% 80%,#241a52 0%,#12102a 55%,#050510 100%)}
body.cosmic .sc-front{background:linear-gradient(160deg,#2c2462,#16123a);border-color:rgba(240,197,106,.35)}
body.cosmic .sc-back{background:linear-gradient(160deg,#123a3a,#0c2626);border-color:rgba(78,225,214,.4)}
body.cosmic #scene-garden{background:radial-gradient(ellipse at 70% 16%,#2c1a5c 0%,#12102a 58%,#050510 90%)}
body.cosmic .sun{width:48px;height:48px;background:radial-gradient(circle at 44% 40%,#fff,#bfe9ff 60%,#7ba8e0);box-shadow:0 0 70px 24px rgba(160,220,255,.5),0 0 200px 70px rgba(123,94,230,.25)}
body.cosmic .garden-ground{background:linear-gradient(180deg,#134441 0%,#0b2a27 100%)}
body.cosmic .garden-path{background:linear-gradient(0deg,#2c2462,#3a3078)}
body.cosmic .garden-head h2{color:#dcf6f1}
body.cosmic .garden-head p{color:#8fd4ca}
body.cosmic .garden-head .g-eyebrow{color:#4ee1d6}
body.cosmic .gbed{background:rgba(12,20,40,.82);border-color:rgba(78,225,214,.28)}
body.cosmic .gbed b{color:#dcf6f1}
body.cosmic .gbed span{color:#9ec4bc}
body.cosmic .gbed::before{background:linear-gradient(90deg,#4ee1d6,#7b5ee6)}
body.cosmic .gplant .stem{background:#2a8f88}
body.cosmic .garden-gate .arch{border-color:#3a3078;background:linear-gradient(180deg,#050510,#241a52 60%,#4a2f8a)}
body.cosmic .garden-gate .vine{background:#2a8f88}
body.cosmic .garden-gate .vine::before,body.cosmic .garden-gate .vine::after{background:#4ee1d6}
body.cosmic #scene-city{background:radial-gradient(ellipse at 50% 30%,#1c1442 0%,#050510 70%)}
body.cosmic .panel.warm{background:linear-gradient(170deg,#1c1840,#12102a);border:1px solid rgba(123,94,230,.35);color:var(--paper)}
body.cosmic .panel.warm .opt{background:rgba(255,255,255,.05);border-color:rgba(123,94,230,.25)}
body.cosmic .panel.warm .close-x{background:rgba(255,255,255,.1)}
body.cosmic .panel.warm .privacy-note{border-color:rgba(123,94,230,.3)}
body.cosmic .hud-chip{border-color:rgba(123,94,230,.4)}
body.cosmic #minimap{border-color:rgba(123,94,230,.35)}

/* ===== MODE · RENEWING THE MIND ===== */
#sloganRef{display:none;margin-top:16px;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#8fd4ca;font-weight:700}
body.renew #sloganRef{display:block}
body.renew .sc-front{border-color:rgba(240,197,106,.5)}
body.renew .sc-front .sc-mark::after{content:" · Romans 12:2";opacity:.8}
.renew-verse{display:none;position:absolute;bottom:7%;left:6%;max-width:300px;z-index:5;font-family:var(--font-display);font-style:italic;font-size:14px;line-height:1.65;color:rgba(255,217,160,.66)}
body.renew .renew-verse{display:block}
body.renew.cosmic .renew-verse{color:rgba(240,197,106,.7)}

/* ===== RTM basement layout & controls ===== */
.basement-head{top:6%;left:4.5%;transform:none;text-align:left;width:42%}
.basement-head p{max-width:52ch}
.slogan-stage{top:32%;left:4.5%;transform:none;width:42%;height:310px}
.slogan-controls{top:auto;bottom:9%;left:4.5%;transform:none}
.breath{right:auto;left:34%;bottom:8%;transform:scale(.8)}
.renew-verse{bottom:1.8%;left:4.5%;max-width:44%;font-size:12.5px}
.sc-num{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,217,160,.7);font-weight:800;margin-bottom:12px}
.sc-front .sc-mark{margin-bottom:14px}
.sc-front h3{font-size:clamp(17px,1.8vw,24px);line-height:1.4}
.sc-back p{font-size:14.5px;max-width:46ch}
.sc-practice{margin-top:16px;padding-top:13px;border-top:1px dashed rgba(122,148,113,.4);font-size:12px;line-height:1.55;color:rgba(250,244,234,.68);max-width:48ch}
.sc-practice b{color:var(--sage);letter-spacing:.08em;text-transform:uppercase;font-size:10px}
.rtm-panel{position:absolute;top:5%;bottom:4%;right:3.5%;width:44%;z-index:7;overflow-y:auto;background:rgba(16,12,28,.72);backdrop-filter:blur(18px);border:1px solid rgba(255,217,160,.2);border-radius:24px;padding:22px 24px;box-shadow:var(--shadow-deep);scrollbar-width:thin}
.rtm-block{margin-bottom:20px}
.rtm-label{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,217,160,.6);font-weight:800;margin-bottom:10px}
.rtm-label small{color:rgba(250,244,234,.4);letter-spacing:.1em;font-weight:600;text-transform:none;font-style:italic}
.today-card{border:1px solid rgba(255,217,160,.35);border-radius:16px;padding:15px 16px;background:linear-gradient(150deg,rgba(255,217,160,.1),rgba(255,217,160,.03))}
.today-card b{display:block;font-family:var(--font-display);font-weight:500;font-size:16.5px;color:var(--paper);line-height:1.4;margin-bottom:10px}
.today-why{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.today-go{padding:8px 16px;font-size:12px}
.mv-chips,.mode-chips{display:flex;flex-wrap:wrap;gap:7px}
.mv-chip,.mode-chip{border:1px solid rgba(255,217,160,.25);border-radius:999px;padding:7px 13px;font-size:11.5px;color:rgba(250,244,234,.72);font-weight:700;letter-spacing:.04em;transition:all .3s}
.mv-chip:hover,.mode-chip:hover{border-color:var(--warm-1);color:var(--warm-1)}
.mv-chip.on{background:var(--accent-gold);color:#241b2f;border-color:transparent}
.mode-chip.on{background:var(--accent-teal);color:#fff;border-color:transparent}
.mode-chip.on:hover{color:#fff}
.pt-meaning{margin-top:11px;font-family:var(--font-display);font-style:italic;font-size:13.5px;color:rgba(250,244,234,.62);line-height:1.55}
.meta-chips{display:flex;flex-wrap:wrap;gap:6px}
.mc{font-size:10.5px;background:rgba(255,255,255,.06);border:1px solid rgba(255,217,160,.18);color:rgba(250,244,234,.78);border-radius:999px;padding:5px 11px;letter-spacing:.03em}
.mc.gold{background:rgba(255,217,160,.12);border-color:rgba(255,217,160,.35);color:var(--warm-1);font-weight:700}
.mc.dim{opacity:.6;font-style:italic}
.rhythm{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rhythm button{border:1px solid rgba(255,217,160,.25);border-radius:14px;padding:12px 10px;text-align:center;color:rgba(250,244,234,.82);font-size:12.5px;font-weight:700;transition:all .3s;background:rgba(255,255,255,.04)}
.rhythm button small{display:block;font-weight:400;font-size:10.5px;opacity:.6;margin-top:4px;font-style:italic;font-family:var(--font-display)}
.rhythm button:hover{border-color:var(--warm-1);transform:translateY(-2px)}
.rhythm button.now{border-color:var(--accent-gold);background:rgba(255,217,160,.1);box-shadow:0 0 24px rgba(255,217,160,.18)}
.rtm-safety{font-size:10.5px;line-height:1.6;color:rgba(250,244,234,.45);border-top:1px dashed rgba(255,217,160,.2);padding-top:13px}
body.cosmic .rtm-panel{border-color:rgba(123,94,230,.35)}
body.cosmic .mode-chip.on{background:var(--sage-deep)}
@media (max-width:900px){
  .basement-head{width:90%;top:4%}
  .basement-head p{display:none}
  .slogan-stage{width:90%;top:20%;height:250px}
  .slogan-controls{bottom:auto;top:calc(20% + 262px)}
  .rtm-panel{top:auto;bottom:0;left:0;right:0;width:auto;height:38%;border-radius:22px 22px 0 0}
  .breath,.renew-verse{display:none}
}

/* ===== React-room mount (rooms host live React pages) ===== */
#react-room{position:absolute;inset:0;z-index:8;display:none}
body.react-room #scene-room .room-cards,
body.react-room #scene-room .room-head,
body.react-room #scene-room .room-quote,
body.react-room #scene-room .room-furniture{display:none!important}
body.react-room #react-room{display:block}
.rr-frame{position:absolute;inset:2.5% 3% 3% 3%;display:flex;flex-direction:column;border-radius:22px;overflow:hidden;
  background:var(--paper);border:1px solid rgba(122,88,68,.22);box-shadow:var(--shadow-deep)}
body.cosmic .rr-frame{background:#0f0e22;border-color:rgba(123,94,230,.3)}
.rr-bar{display:flex;align-items:center;gap:14px;padding:12px 18px;color:#fff;
  background:linear-gradient(90deg,var(--room-accent,#3f7d78),color-mix(in srgb,var(--room-accent,#3f7d78) 62%,#241b2f));
  box-shadow:0 6px 18px rgba(0,0,0,.18);position:relative;z-index:2}
.rr-back{display:inline-flex;align-items:center;gap:7px;background:rgba(0,0,0,.22);color:#fff;border-radius:999px;
  padding:8px 16px;font-size:12.5px;font-weight:700;letter-spacing:.04em;transition:all .25s}
.rr-back:hover{background:rgba(0,0,0,.36);transform:translateX(-2px)}
.rr-title{font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:.01em}
.rr-tag{margin-left:auto;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  background:rgba(255,255,255,.2);border-radius:999px;padding:5px 12px}
.rr-scroll{flex:1;overflow:auto;background:#f6f4f0;position:relative}
body.cosmic .rr-scroll{background:#0d0c1e}
.rr-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ink-soft);
  font-family:var(--font-display);font-style:italic;font-size:15px}
@media (max-width:900px){.rr-frame{inset:0}.rr-tag{display:none}}
