:root{
  color-scheme:dark;
  --stage-ratio:2;
  --page-bg:#080603;
  --cream:#f4ead4;
  --gold:#d9b35d;
  --gold-bright:#f5db94;
  --green:#143e2c;
  --blue:#4baed7;
  --violet:#ba73e7;
  --red:#e06a68;
  --cyan:#54d7e6;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--page-bg)}
body{position:fixed;inset:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--cream);overscroll-behavior:none}
a,button,input{font:inherit}
button{color:inherit}
img{display:block}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;left:1rem;top:1rem;z-index:1000;padding:.72rem 1rem;border-radius:.3rem;background:#fff;color:#111;transform:translateY(-180%);transition:transform .18s}
.skip-link:focus{transform:none}

/* Entrance portal retained from the original homepage. */
.gate{position:fixed;inset:0;z-index:500;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(127,196,223,.16),transparent 19rem),linear-gradient(180deg,#07141d,#020405 78%);transition:opacity .9s ease,visibility .9s ease}
body.entered .gate{opacity:0;visibility:hidden;pointer-events:none}
.stars,.stars::before,.stars::after{position:absolute;content:"";inset:0;background-image:radial-gradient(circle,#e8f5ff 0 1px,transparent 1.5px),radial-gradient(circle,#a9cedd 0 1px,transparent 1.5px);background-position:0 0,45px 55px;background-size:105px 105px,145px 145px;opacity:.28}
.stars::before{transform:scale(1.3) rotate(6deg);opacity:.2}.stars::after{transform:scale(.8) rotate(-4deg);opacity:.25}
.moon{position:absolute;border-radius:50%;box-shadow:0 0 35px rgba(200,230,240,.22)}
.moon.large{width:170px;height:170px;left:10%;top:12%;background:radial-gradient(circle at 35% 30%,#e7e5dc,#818d91 70%,#354047)}
.moon.small{width:63px;height:63px;right:18%;top:21%;background:radial-gradient(circle at 38% 32%,#dfe7e9,#607077)}
.portal-ring{position:absolute;width:min(56vw,520px);aspect-ratio:1;border-radius:50%;border:2px solid rgba(192,226,237,.8);box-shadow:0 0 20px rgba(127,196,223,.8),0 0 80px rgba(127,196,223,.42),inset 0 0 45px rgba(127,196,223,.32);animation:gateBreathe 3.8s ease-in-out infinite}
.portal-ring::before,.portal-ring::after{content:"";position:absolute;inset:7%;border-radius:50%;border:1px dashed rgba(239,211,141,.52);animation:gateSpin 24s linear infinite}
.portal-ring::after{inset:17%;border-color:rgba(127,196,223,.55);animation-direction:reverse;animation-duration:17s}
@keyframes gateBreathe{50%{transform:scale(1.035);filter:brightness(1.18)}}
@keyframes gateSpin{to{transform:rotate(360deg)}}
.gate-copy{position:relative;z-index:2;width:min(92vw,900px);padding:2rem;text-align:center}
.gate-overline{font-size:.69rem;font-weight:900;color:#c0e2ed;text-transform:uppercase;letter-spacing:.25em}
.gate h1{margin:.9rem 0;font-family:Georgia,serif;text-transform:uppercase;font-size:clamp(3rem,9vw,8rem);line-height:.83;letter-spacing:-.065em;text-shadow:0 18px 60px #000}
.gate h1 span{display:block;color:#efd38d}
.gate p{max-width:650px;margin:1.3rem auto 1.8rem;color:#c0cccf;line-height:1.7}
.enter-button{padding:1rem 1.75rem;border:1px solid rgba(192,226,237,.72);color:#eaf8ff;background:rgba(7,24,34,.72);backdrop-filter:blur(12px);font-weight:950;letter-spacing:.16em;text-transform:uppercase;box-shadow:0 15px 60px rgba(127,196,223,.16)}
.enter-button:hover,.enter-button:focus-visible{border-color:#efd38d;color:#fff7dc;box-shadow:0 15px 60px rgba(127,196,223,.2),0 0 24px rgba(239,211,141,.22)}

/* Full-viewport room: blurred cover behind the complete, untouched 2:1 image. */
.room-experience{position:fixed;inset:0;z-index:1;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 1s ease;background:var(--page-bg)}
body.entered .room-experience{opacity:1;visibility:visible}
.scene-backdrop{position:absolute;inset:-56px;z-index:0;overflow:hidden;pointer-events:none;background:url("../../images/house/chase-bedroom-hub-v62.webp") center/cover no-repeat;filter:blur(31px) brightness(.69) saturate(.95);transform:scale(1.045) scaleX(-1);transform-origin:center;opacity:.99}
.backdrop-wash{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to bottom,rgba(5,3,2,.18),transparent 19%,transparent 81%,rgba(5,3,2,.22)),radial-gradient(ellipse at center,transparent 57%,rgba(0,0,0,.16) 100%)}
.scene-shell{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;overflow:hidden}
.scene-stage{position:relative;flex:0 0 auto;width:min(100vw,calc(100vh * var(--stage-ratio)));height:min(100vh,calc(100vw / var(--stage-ratio)));max-width:100vw;max-height:100vh;aspect-ratio:2/1;container-type:size;isolation:isolate;overflow:hidden;background:transparent}
@supports(height:100dvh){.scene-stage{width:min(100vw,calc(100dvh * var(--stage-ratio)));height:min(100dvh,calc(100vw / var(--stage-ratio)));max-height:100dvh}}
.room-image{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center;user-select:none;-webkit-user-drag:none;pointer-events:none;filter:saturate(1.01) contrast(1.005);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 1.05cqw,#000 calc(100% - 1.05cqw),transparent 100%),linear-gradient(to bottom,transparent 0,#000 1.7cqh,#000 calc(100% - 1.7cqh),transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 1.05cqw,#000 calc(100% - 1.05cqw),transparent 100%),linear-gradient(to bottom,transparent 0,#000 1.7cqh,#000 calc(100% - 1.7cqh),transparent 100%);mask-composite:intersect}
.room-edge-light{position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 1.35cqw rgba(0,0,0,.16),inset 0 0 .55cqw rgba(211,168,80,.06)}

/* Only the baked category plaques are interactive. Associated room details glow softly. */
/* v49d: Reserve glow follows the full bottle and its supporting stand while excluding the jersey above. */
.glow-layer{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.object-glow{position:absolute;display:block;opacity:0;pointer-events:none;user-select:none;-webkit-user-drag:none;transition:opacity .34s cubic-bezier(.2,.72,.2,1),filter .34s ease;will-change:opacity,filter;filter:brightness(.98) saturate(1.01)}
.scene-stage[data-active="crash"] .glow-crash,
.scene-stage[data-active="dossier"] .glow-dossier,
.scene-stage[data-active="house"] .glow-house,
.scene-stage[data-active="form"] .glow-form,
.scene-stage[data-active="gabrielle"] .glow-gabrielle,
.scene-stage[data-active="bond"] .glow-bond,
.scene-stage[data-active="off"] .glow-off,
.scene-stage[data-active="reserve"] .glow-reserve{opacity:1;filter:brightness(1.045) saturate(1.04)}
.hotspot-layer{position:absolute;inset:0;z-index:10;pointer-events:none}
.hotspot{position:absolute;display:block;border:0;background:transparent;cursor:pointer;text-decoration:none;pointer-events:auto;-webkit-tap-highlight-color:transparent;outline:none}
.hotspot::before{content:"";position:absolute;inset:-7%;border-radius:1.15cqw;background:transparent;opacity:0;pointer-events:none}
.hotspot:focus-visible::before{opacity:1;box-shadow:0 0 .55cqw rgba(255,244,205,.22)}
/* Sign-only hitboxes. Nothing elsewhere in the room activates a destination. */
.hotspot-crash{left:4.1016%;top:2.7344%;width:15.625%;height:9.375%}
.hotspot-dossier{left:45.5078%;top:12.8906%;width:10.5859%;height:9.7656%}
.hotspot-house{left:66.7969%;top:23.8281%;width:14.375%;height:8.9844%}
.hotspot-form{left:86.5234%;top:30.4688%;width:13.2813%;height:10.5469%}
.hotspot-gabrielle{left:46.4844%;top:49.6094%;width:11.9141%;height:12.1094%}
.hotspot-bond{left:77.9297%;top:62.8906%;width:12.5%;height:10.1563%}
.hotspot-off{left:31.0547%;top:85.1563%;width:13.2813%;height:10.9375%}
.hotspot-reserve{left:.7813%;top:82.0313%;width:12.1094%;height:14.4531%}

/* Separate decorative music-player asset with real controls over its blank areas. */
.music-player{--player-width:clamp(255px,16vw,360px);position:fixed;z-index:30;left:50%;top:max(2px,env(safe-area-inset-top));width:var(--player-width);aspect-ratio:1983/793;transform:translateX(-50%);filter:drop-shadow(0 .35rem .7rem rgba(0,0,0,.72));container-type:inline-size;transition:filter .25s ease,transform .25s ease,opacity .55s ease}
body:not(.entered) .music-player{opacity:0;pointer-events:none}
.music-player.is-playing{filter:drop-shadow(0 .42rem .8rem rgba(0,0,0,.78)) drop-shadow(0 0 .42rem rgba(220,170,70,.28))}
.music-player:hover{filter:drop-shadow(0 .48rem .9rem rgba(0,0,0,.78)) drop-shadow(0 0 .52rem rgba(220,170,70,.31))}
.music-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
.track-copy{position:absolute;left:40%;top:32.6%;width:49%;height:18.5%;display:grid;align-content:center;justify-items:center;overflow:hidden;padding:0 4%;color:#f3d78b;text-align:center;line-height:1.03;text-shadow:0 1px 1px #000,0 0 .45rem rgba(220,169,67,.34);pointer-events:none}
.track-title{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:700 clamp(7px,3.45cqw,12px)/1.05 Georgia,serif;letter-spacing:.035em}
.track-artist{max-width:100%;margin-top:.25em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#d7bb77;font:italic clamp(5px,2.3cqw,8px)/1 Georgia,serif}
.player-control{position:absolute;margin:0;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;color:transparent;-webkit-tap-highlight-color:transparent}
.player-control::after{content:"";position:absolute;inset:7%;border-radius:50%;background:radial-gradient(circle,rgba(255,222,143,.22),transparent 66%);box-shadow:0 0 0 1px rgba(255,224,151,.0),0 0 .55cqw rgba(233,184,80,.0);opacity:0;transition:opacity .2s ease,box-shadow .2s ease}
.player-control:hover::after,.player-control:focus-visible::after{opacity:1;box-shadow:0 0 0 1px rgba(255,224,151,.52),0 0 .6cqw rgba(233,184,80,.48)}
.player-control:focus-visible{outline:1px solid #fff0a8;outline-offset:1px}
.player-back{left:44.2%;top:54%;width:6.2%;height:14%}
.player-toggle{left:51.3%;top:50.6%;width:8%;height:20%}
.player-forward{left:60.3%;top:54%;width:6.2%;height:14%}
.player-mute{left:67.3%;top:54%;width:6.2%;height:14%}
.player-toggle[data-state="resume"]::after{opacity:.72;box-shadow:0 0 0 1px rgba(108,215,239,.66),0 0 .8cqw rgba(72,183,220,.55)}
.volume-control{--volume:18%;position:absolute;left:74.4%;top:57.1%;width:16.2%;height:8.5%;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;accent-color:#d5a84d}
.volume-control::-webkit-slider-runnable-track{height:22%;border-radius:999px;background:linear-gradient(to right,#d6a64b 0 var(--volume),rgba(76,57,22,.72) var(--volume) 100%);box-shadow:0 0 2px rgba(240,196,96,.42)}
.volume-control::-webkit-slider-thumb{-webkit-appearance:none;width:clamp(6px,3.2cqw,11px);height:clamp(6px,3.2cqw,11px);margin-top:calc((clamp(6px,3.2cqw,11px) - 22%)/-2);border:1px solid #8d6428;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe2a1 0 14%,#d9a74d 44%,#8c5f23 100%);box-shadow:0 0 4px rgba(246,196,91,.48)}
.volume-control::-moz-range-track{height:22%;border-radius:999px;background:rgba(76,57,22,.72)}
.volume-control::-moz-range-progress{height:22%;border-radius:999px;background:#d6a64b}
.volume-control::-moz-range-thumb{width:clamp(6px,3.2cqw,11px);height:clamp(6px,3.2cqw,11px);border:1px solid #8d6428;border-radius:50%;background:#d9a74d;box-shadow:0 0 4px rgba(246,196,91,.48)}
.volume-control:focus-visible{outline:1px solid #f1d589;outline-offset:2px;border-radius:999px}
.music-status{position:absolute;left:39.5%;right:9%;top:71%;margin:0;color:#f0dca7;font-size:clamp(6px,2.1cqw,8px);text-align:center;opacity:0;pointer-events:none;text-shadow:0 1px 2px #000;transition:opacity .2s ease}
.music-player.needs-resume .music-status,.music-player.media-error .music-status{opacity:1}

body.leaving .room-experience{opacity:.12;transition-duration:.24s}
body.leaving .music-player{opacity:0;transform:translateX(-50%) translateY(-.5rem);transition-duration:.2s}

@media(max-width:760px){
  .music-player{--player-width:clamp(230px,56vw,310px)}
  .hotspot::after{display:none}
}
@media(max-width:700px) and (orientation:portrait){
  .rotate-note{display:block}
}
.rotate-note{display:none;position:fixed;z-index:25;left:50%;bottom:max(.7rem,env(safe-area-inset-bottom));transform:translateX(-50%);padding:.52rem .72rem;border:1px solid rgba(239,211,141,.28);border-radius:999px;background:rgba(6,8,7,.76);backdrop-filter:blur(8px);color:#eed9a4;font-size:.66rem;letter-spacing:.06em;white-space:nowrap;pointer-events:none}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
}



/* ============================================================================
   v52 living entrance
   - real star masks brighten existing stars only
   - real light masks sit on painted lanterns/candles/windows/reflections
   - stronger stationary title glow, never a travelling sweep
   - full-viewport camera travels into the manor doors without exposing an edge
   ============================================================================ */
.cinematic-gate{position:fixed;inset:0;z-index:500;display:block;overflow:hidden;background:#020712;opacity:1;visibility:visible;pointer-events:auto}
body.entered .cinematic-gate{opacity:0;visibility:hidden;pointer-events:none}
body.transitioning .cinematic-gate{background:transparent}
body.transitioning .intro-backdrop{animation:introBackdropOutV52 3.2s linear forwards}
body.transitioning .intro-backdrop-shade{animation:introShadeOutV52 3.2s linear forwards}
@keyframes introBackdropOutV52{0%,62%{opacity:1}82%{opacity:.42}100%{opacity:0}}
@keyframes introShadeOutV52{0%,58%{opacity:1}82%{opacity:.28}100%{opacity:0}}
.intro-backdrop{position:absolute;inset:-7%;z-index:0;pointer-events:none;background-image:var(--intro-image);background-size:cover;background-position:center;filter:blur(30px) saturate(.93) brightness(.54);transform:scale(1.08)}
.intro-backdrop-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(1,5,12,.15),rgba(1,5,12,.02) 44%,rgba(0,0,0,.18)),radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.21) 100%)}
.intro-shell{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;overflow:hidden}
.intro-stage{position:relative;flex:0 0 auto;width:min(100vw,calc(100vh * 2));height:min(100vh,calc(100vw / 2));max-width:100vw;max-height:100vh;aspect-ratio:2/1;container-type:size;isolation:isolate;overflow:hidden;will-change:opacity,filter}
@supports(height:100dvh){.intro-stage{width:min(100vw,calc(100dvh * 2));height:min(100dvh,calc(100vw / 2));max-height:100dvh}}
.intro-stage::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:var(--intro-image);background-size:100% 100%;background-position:center;background-repeat:no-repeat;filter:saturate(1.015) contrast(1.008);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 1.05cqw,#000 calc(100% - 1.05cqw),transparent 100%),linear-gradient(to bottom,transparent 0,#000 1.7cqh,#000 calc(100% - 1.7cqh),transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 1.05cqw,#000 calc(100% - 1.05cqw),transparent 100%),linear-gradient(to bottom,transparent 0,#000 1.7cqh,#000 calc(100% - 1.7cqh),transparent 100%);mask-composite:intersect}
.intro-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 1.35cqw rgba(0,0,0,.18),inset 0 0 .55cqw rgba(211,168,80,.045)}
.star-mask,.light-mask,.title-glow,.title-glints,.enter-glints,.water-shimmer{position:absolute;inset:0;pointer-events:none;background-size:100% 100%;background-position:center;background-repeat:no-repeat;mix-blend-mode:screen}
.star-mask{z-index:3;opacity:.08;filter:brightness(1.02);will-change:opacity,filter}
.star-mask-a{background-image:var(--star-a);animation:realStarA 5.1s ease-in-out -1.3s infinite}
.star-mask-b{background-image:var(--star-b);animation:realStarB 6.7s ease-in-out -3.9s infinite}
.star-mask-c{background-image:var(--star-c);animation:realStarC 7.9s ease-in-out -5.4s infinite}
.star-mask-d{background-image:var(--star-d);animation:realStarD 9.2s ease-in-out -2.1s infinite}
@keyframes realStarA{0%,100%{opacity:.05;filter:brightness(1)}31%{opacity:.48;filter:brightness(1.22)}57%{opacity:.13}73%{opacity:.64;filter:brightness(1.34)}}
@keyframes realStarB{0%,100%{opacity:.08}24%{opacity:.55;filter:brightness(1.28)}45%{opacity:.12}81%{opacity:.39;filter:brightness(1.18)}}
@keyframes realStarC{0%,100%{opacity:.04}38%{opacity:.46;filter:brightness(1.23)}62%{opacity:.16}87%{opacity:.69;filter:brightness(1.37)}}
@keyframes realStarD{0%,100%{opacity:.07}19%{opacity:.36}51%{opacity:.62;filter:brightness(1.31)}74%{opacity:.11}}
.moon-halo{position:absolute;z-index:3;border-radius:50%;pointer-events:none;mix-blend-mode:screen;opacity:.22;animation:moonBreathe 9.5s ease-in-out infinite}
.moon-halo-large{left:4.9%;top:.1%;width:14.8%;aspect-ratio:1;background:radial-gradient(circle,rgba(224,238,255,.16) 0 34%,rgba(177,208,235,.09) 48%,transparent 72%)}
.moon-halo-small{left:17.3%;top:5.7%;width:7.1%;aspect-ratio:1;background:radial-gradient(circle,rgba(224,238,255,.14) 0 30%,rgba(177,208,235,.08) 48%,transparent 72%);animation-delay:-3.2s}
@keyframes moonBreathe{0%,100%{opacity:.13;filter:blur(.12cqw)}50%{opacity:.31;filter:blur(.22cqw)}}
.title-glow{z-index:5;background-image:var(--intro-title-glow);opacity:.36;filter:brightness(1.03) drop-shadow(0 0 .15cqw rgba(246,210,126,.18));animation:titleBreathe 7.6s ease-in-out infinite}
@keyframes titleBreathe{0%,100%{opacity:.29;filter:brightness(1.01) drop-shadow(0 0 .12cqw rgba(246,210,126,.15))}50%{opacity:.52;filter:brightness(1.09) drop-shadow(0 0 .26cqw rgba(246,210,126,.30))}}
.title-glints,.enter-glints{z-index:7;overflow:hidden}.title-glint,.enter-glint{position:absolute;display:block;width:var(--size);height:var(--size);border-radius:0;opacity:0;animation:fixedGlint var(--dur) ease-in-out var(--delay) infinite}
.title-glint::before,.title-glint::after,.enter-glint::before,.enter-glint::after{content:"";position:absolute;left:50%;top:50%;background:rgba(255,247,209,.95);filter:drop-shadow(0 0 .20cqw rgba(255,214,110,.72));transform:translate(-50%,-50%)}
.title-glint::before,.enter-glint::before{width:100%;height:10%;border-radius:50%}.title-glint::after,.enter-glint::after{width:10%;height:100%;border-radius:50%}
@keyframes fixedGlint{0%,76%,100%{opacity:0;transform:scale(.32) rotate(0deg)}82%{opacity:.92;transform:scale(1) rotate(10deg)}88%{opacity:.17;transform:scale(.58) rotate(18deg)}}
.light-mask{z-index:4;opacity:.18;will-change:opacity,filter}
.light-city{background-image:var(--lights-city);animation:cityLightLife 6.4s ease-in-out -2.2s infinite}
.light-garden{background-image:var(--lights-garden);animation:gardenLightLife 4.8s ease-in-out -1.1s infinite}
.light-path{background-image:var(--lights-path);animation:pathLightLife 5.6s ease-in-out -3.4s infinite}
.light-manor{background-image:var(--lights-manor);animation:manorLightLife 4.25s ease-in-out -.6s infinite}
@keyframes cityLightLife{0%,100%{opacity:.10;filter:brightness(1)}27%{opacity:.31;filter:brightness(1.10)}53%{opacity:.16}79%{opacity:.38;filter:brightness(1.16)}}
@keyframes gardenLightLife{0%,100%{opacity:.15;filter:brightness(1)}35%{opacity:.46;filter:brightness(1.14)}58%{opacity:.25}81%{opacity:.55;filter:brightness(1.20)}}
@keyframes pathLightLife{0%,100%{opacity:.18;filter:brightness(1.02)}24%{opacity:.52;filter:brightness(1.18)}51%{opacity:.29}74%{opacity:.60;filter:brightness(1.22)}}
@keyframes manorLightLife{0%,100%{opacity:.22;filter:brightness(1.03)}31%{opacity:.61;filter:brightness(1.21)}49%{opacity:.37}73%{opacity:.68;filter:brightness(1.25)}}
.water-shimmer{z-index:4;left:24.5%;top:63.4%;width:34.5%;height:9.5%;inset:auto;opacity:.12;background:repeating-linear-gradient(178deg,transparent 0 10%,rgba(163,215,246,.13) 12%,transparent 15% 23%);filter:blur(.16cqw);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);animation:waterDrift 10s ease-in-out infinite alternate}
@keyframes waterDrift{from{transform:translateX(-.22cqw);opacity:.08}to{transform:translateX(.24cqw);opacity:.18}}
.enter-fog,.enter-highlight{position:absolute;inset:auto;left:33.4765625%;top:52.734375%;width:32.8125%;height:29.921875%;pointer-events:none;background-size:100% 100%;background-position:center;background-repeat:no-repeat;mix-blend-mode:screen;opacity:0;will-change:opacity,filter}
.enter-fog{z-index:7;background-image:var(--intro-button-fog)}
.enter-highlight{z-index:8;background-image:var(--intro-button-bright)}
.enter-hotspot{position:absolute;z-index:20;left:35.5078125%;top:56.796875%;width:28.75%;height:21.796875%;margin:0;padding:0;border:0;background:transparent;color:transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;clip-path:polygon(4% 20%,10% 10%,39% 10%,44% 0,56% 0,61% 10%,90% 10%,96% 20%,100% 37%,100% 76%,96% 88%,58% 88%,55% 100%,45% 100%,42% 88%,4% 88%,0 76%,0 37%)}
.enter-hotspot:focus,.enter-hotspot:focus-visible{outline:none}
@keyframes enterFogBreathV56{0%,100%{opacity:.78;filter:brightness(1.52) saturate(1.42) blur(.035cqw) drop-shadow(0 0 .10cqw rgba(59,193,119,.20))}50%{opacity:1;filter:brightness(1.78) saturate(1.62) blur(.055cqw) drop-shadow(0 0 .20cqw rgba(246,198,93,.36))}}
@keyframes enterPlaqueBreathV56{0%,100%{opacity:.64;filter:brightness(1.01) saturate(1.05) drop-shadow(0 0 .08cqw rgba(255,224,143,.24))}50%{opacity:.84;filter:brightness(1.09) saturate(1.11) drop-shadow(0 0 .17cqw rgba(255,224,143,.44))}}
.intro-stage:not(.button-active) .enter-glint{animation-play-state:paused;opacity:0}.intro-stage.button-active .enter-glint{animation-play-state:running}

/* Full-viewport camera. The sharp scene starts in the exact same rectangle as
   the intro artwork, then travels toward the real doors while a blurred full-
   screen copy guarantees that no black or empty side can ever be exposed. */
.transition-camera{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:0;visibility:visible;overflow:hidden;background:transparent;isolation:isolate}
body.transitioning .transition-camera{opacity:1}
.transition-camera-backdrop{position:absolute;inset:-8%;z-index:0;background-image:var(--intro-image);background-size:cover;background-position:center;filter:blur(34px) brightness(.60) saturate(.96);transform:scale(1.12);will-change:transform,filter,opacity}
.transition-camera-scene{position:absolute;z-index:2;transform-origin:0 0;will-change:transform,filter,opacity;overflow:visible}
.transition-camera-image{position:absolute;inset:0;background-image:var(--intro-image);background-size:100% 100%;background-position:center;background-repeat:no-repeat;box-shadow:0 0 2vw rgba(0,0,0,.14)}
.transition-door-bloom{position:absolute;left:84.2%;top:38%;width:15.5%;height:43%;opacity:0;background:radial-gradient(ellipse at 72% 53%,rgba(255,243,211,.94) 0 4%,rgba(255,209,124,.58) 14%,rgba(255,162,54,.23) 35%,transparent 72%);filter:blur(.72cqw);mix-blend-mode:screen;will-change:opacity,transform}
.transition-scene-particles{position:absolute;inset:0;overflow:visible}.transition-speck{position:absolute;display:block;border-radius:50%;background:rgba(255,226,151,.94);box-shadow:0 0 .26cqw rgba(244,190,79,.78);opacity:0}
.transition-veil{position:absolute;inset:-10%;z-index:4;opacity:0;background:radial-gradient(circle at 73% 55%,rgba(255,235,193,.48),rgba(180,129,63,.22) 26%,rgba(43,64,48,.14) 48%,transparent 72%),repeating-radial-gradient(circle at 60% 50%,rgba(248,211,128,.035) 0 1px,transparent 1px 5px);mix-blend-mode:screen;filter:blur(5px);will-change:opacity,transform}
body.transitioning .transition-door-bloom{animation:doorBloomV52 3.2s cubic-bezier(.18,.72,.16,1) forwards}
body.transitioning .transition-veil{animation:veilV52 3.2s cubic-bezier(.2,.68,.17,1) forwards}
body.transitioning .transition-speck{animation:transitionSpeckV52 var(--dur) ease-out var(--delay) forwards}
@keyframes doorBloomV52{0%,33%{opacity:0;transform:scale(.58)}58%{opacity:.30}78%{opacity:.73;transform:scale(1.12)}100%{opacity:.18;transform:scale(1.65)}}
@keyframes veilV52{0%,42%{opacity:0;transform:scale(.82)}67%{opacity:.18}84%{opacity:.54;transform:scale(1.15)}100%{opacity:.08;transform:scale(1.42)}}
@keyframes transitionSpeckV52{0%,30%{opacity:0;transform:translate3d(0,0,0) scale(.35)}48%{opacity:.82}100%{opacity:0;transform:translate3d(var(--dx),var(--dy),0) scale(1.25)}}
body.room-revealing .room-experience{visibility:visible!important;pointer-events:none}
body.room-revealing .music-player{opacity:0!important;pointer-events:none!important}
@media(max-aspect-ratio:4/5){.enter-hotspot{left:35.1%;width:29.8%}}
@media(prefers-reduced-motion:reduce){.star-mask,.moon-halo,.title-glow,.title-glint,.light-mask,.water-shimmer,.enter-glint{animation:none!important}.star-mask{opacity:.24}.title-glow{opacity:.44}.light-city{opacity:.22}.light-garden{opacity:.34}.light-path{opacity:.38}.light-manor{opacity:.45}.intro-stage.button-active .enter-fog{animation:none!important;opacity:.92}.intro-stage.button-active .enter-highlight{animation:none!important;opacity:.76}.transition-speck{display:none}}



/* v58: approved magical plaque hover, enlarged player, strong full-door camera travel, and flash-free doorway dissolve. */
.music-player{--player-width:clamp(285px,18vw,405px)}
@media(max-width:760px){.music-player{--player-width:clamp(245px,60vw,340px)}}
.enter-hotspot{left:35.5078125%;top:56.796875%;width:28.75%;height:21.796875%;border-radius:0}
.enter-fog,.enter-highlight{opacity:0;animation:none;transition:opacity 115ms ease-out,filter 150ms ease-out;will-change:opacity,filter}
.enter-fog{filter:brightness(1.58) saturate(1.48) blur(.035cqw) drop-shadow(0 0 .12cqw rgba(59,193,119,.24))}
.enter-highlight{filter:brightness(1.03) saturate(1.06) drop-shadow(0 0 .10cqw rgba(255,224,143,.30))}
.intro-stage.button-active .enter-fog{opacity:1;animation:enterFogBreathV56 2.9s ease-in-out infinite}
.intro-stage.button-active .enter-highlight{opacity:.82;animation:enterPlaqueBreathV56 2.9s ease-in-out infinite}
.intro-stage:not(.button-active) .enter-fog,.intro-stage:not(.button-active) .enter-highlight{opacity:0!important;animation:none!important}
body.transitioning .intro-backdrop,body.transitioning .intro-backdrop-shade,body.transitioning .transition-door-bloom,body.transitioning .transition-veil,body.transitioning .transition-speck{animation:none!important}
body.transitioning .star-mask,body.transitioning .moon-halo,body.transitioning .title-glow,body.transitioning .title-glint,body.transitioning .light-mask,body.transitioning .water-shimmer,body.transitioning .enter-glint{animation-play-state:paused!important}
.transition-camera{background:#02060c;contain:strict}
.transition-camera-backdrop{inset:-5%;transform:scale(1.08) translateZ(0);filter:blur(24px) brightness(.60) saturate(.95);backface-visibility:hidden;will-change:opacity}
.transition-camera-scene{transform-origin:0 0;overflow:visible;filter:none!important;backface-visibility:hidden;transform:translate3d(0,0,0);will-change:transform,opacity;contain:layout paint style}
.transition-camera-image{backface-visibility:hidden;transform:translateZ(0);image-rendering:auto}
.transition-door-bloom{left:84.4%;top:34.5%;width:14.4%;height:48%;filter:blur(.32cqw);will-change:opacity,transform}
.transition-veil{filter:none;background:radial-gradient(circle at 50% 50%,rgba(255,241,210,.68),rgba(214,159,78,.29) 24%,rgba(74,72,49,.11) 48%,transparent 72%);will-change:opacity}
body.room-revealing .room-experience{visibility:visible!important;pointer-events:none;backface-visibility:hidden;will-change:opacity,transform}
body.transitioning .intro-stage{pointer-events:none}



/* v58 transition handoff: keep the stronger final doorway frame stable until the bedroom
   has completely materialized. The base entrance artwork is never re-exposed. */
body.transitioning .intro-backdrop,
body.transitioning .intro-backdrop-shade,
body.transitioning .intro-shell{pointer-events:none}
body.transitioning .cinematic-gate{transition:none!important}
.transition-camera{background:#02060c}
.transition-camera-scene{transform-origin:0 0}


/* V59 direct-room first paint. */
html.direct-room .cinematic-gate{display:none!important}
html.direct-room .room-experience{opacity:1!important;visibility:visible!important}
html.direct-room .music-player{opacity:1!important}
