.spatial-viewport-container{background-color:#06070a;width:100%;height:450dvh;position:relative}.spatial-fixed-viewport{perspective:1400px;perspective-origin:50%;background:radial-gradient(circle,#0d111a 0%,#050608 100%);justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:sticky;top:0;left:0;overflow:hidden}.spatial-room-world{width:100vw;height:100vh;transform-style:preserve-3d;will-change:transform;pointer-events:none;position:absolute}.spatial-floor{transform-origin:50%;pointer-events:none;background:radial-gradient(circle,#e5484d14 0%,#0000 60%),linear-gradient(#06070aeb 0%,#0c0f1666 50%,#06070af5 100%),repeating-linear-gradient(90deg,#10141c 0,#181e2b 60px,#0d1017 61px,#151a24 120px);border-top:1px solid #ffffff14;width:200vw;height:200vw;position:absolute;bottom:-40vh;left:-50vw;transform:rotateX(90deg)translateZ(0);box-shadow:inset 0 0 150px #000000f2}.spatial-ceiling{transform-origin:50%;pointer-events:none;background:radial-gradient(circle,#ffffff0f 0%,#0000 65%),linear-gradient(#040507,#090b10);width:200vw;height:200vw;position:absolute;top:-40vh;left:-50vw;transform:rotateX(-90deg)translateZ(0);box-shadow:inset 0 0 120px #000000f2}.spatial-wall{width:100vw;height:100dvh;transform-style:preserve-3d;box-sizing:border-box;backface-visibility:hidden;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;justify-content:center;align-items:center;padding:2rem;display:flex;position:absolute;top:0;left:0}.spatial-wall.is-active{pointer-events:auto}.spatial-wall:before{content:"";pointer-events:none;z-index:1;background:radial-gradient(circle,#080b1259 0%,#05070abf 100%),linear-gradient(90deg,#000000b3 0%,#0000 20% 80%,#000000b3 100%),linear-gradient(#00000080 0%,#0000 25% 75%,#000000bf 100%);position:absolute;inset:0}.spatial-wall-1{transform:translateZ(calc(var(--room-radius) * -1));background-image:url(/Petersburg1.png)}.spatial-wall-2{transform:rotateY(-90deg) translateZ(calc(var(--room-radius) * -1));background-image:url(/Istanbul1.png)}.spatial-wall-3{transform:rotateY(-180deg) translateZ(calc(var(--room-radius) * -1));background-image:url(/Petersburg2.png)}.spatial-wall-4{transform:rotateY(-270deg) translateZ(calc(var(--room-radius) * -1));background-image:url(/Istanbul2.png)}.spatial-wall-content{z-index:10;width:100%;position:relative}.spatial-floating-card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);transform-style:preserve-3d;background:#0e121cd1;border:1px solid #ffffff24;border-radius:1.25rem;transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .3s;position:relative;box-shadow:0 30px 60px -15px #000000bf,inset 0 1px 1px #fff3}.spatial-floating-card:hover{border-color:#e5484d80;transform:translateZ(30px)scale(1.02)}.spatial-floating-card-depth-1{transform:translateZ(25px)}.spatial-floating-card-depth-2{transform:translateZ(50px)}.spatial-floating-card-depth-3{transform:translateZ(75px)}.spatial-hud-top{z-index:100;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;top:24px;left:32px;right:32px}.spatial-brand-pill{pointer-events:auto;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#fff;background:#0a0d14d9;border:1px solid #ffffff26;border-radius:9999px;align-items:center;gap:10px;padding:8px 18px;font-size:13px;font-weight:700;display:flex;box-shadow:0 10px 25px #0006}.spatial-compass-pill{pointer-events:auto;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0a0d14e0;border:1px solid #ffffff26;border-radius:9999px;align-items:center;gap:10px;padding:6px 14px;display:flex}.spatial-nav-dot-btn{color:#ffffffa6;cursor:pointer;border-radius:9999px;align-items:center;gap:6px;padding:4px 12px;font-size:11px;font-weight:600;transition:all .25s;display:flex}.spatial-nav-dot-btn.is-active{color:#06070a;background:#fff;box-shadow:0 2px 10px #0006}.spatial-hud-bottom{bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.spatial-scroll-indicator{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#ffffffd9;letter-spacing:.05em;background:#0a0d14e0;border:1px solid #ffffff26;border-radius:9999px;align-items:center;gap:8px;padding:6px 18px;font-size:11px;font-weight:600;display:flex;box-shadow:0 10px 25px #00000080}.spatial-scroll-mouse{border:1.5px solid #ffffffbf;border-radius:8px;justify-content:center;width:14px;height:22px;padding-top:3px;display:flex}.spatial-scroll-wheel{background:var(--accent,#e5484d);border-radius:2px;width:2px;height:5px;animation:1.5s ease-in-out infinite scrollWheel}@keyframes scrollWheel{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@media (max-width:768px){.spatial-hud-top{top:16px;left:16px;right:16px}.spatial-hud-bottom{bottom:calc(16px + env(safe-area-inset-bottom,0px))}.spatial-wall{padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top,0px));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}.spatial-floating-card-depth-1,.spatial-floating-card-depth-2,.spatial-floating-card-depth-3{transform:translateZ(10px)}.spatial-floating-card:hover{border-color:#ffffff24;transform:none}}@media (max-height:560px){.spatial-wall{padding-top:.75rem;padding-bottom:.75rem}.spatial-floating-card-depth-1,.spatial-floating-card-depth-2,.spatial-floating-card-depth-3{transform:translateZ(6px)}}.spatial-wall-content a,.spatial-wall-content button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.theatrical-curtain-container{z-index:60;pointer-events:none;width:100vw;height:100dvh;position:absolute;inset:0;overflow:hidden}.curtain-valance{z-index:65;pointer-events:none;justify-content:space-around;height:90px;animation:1.2s cubic-bezier(.25,1,.5,1) forwards valanceFade;display:flex;position:absolute;top:0;left:0;right:0}.valance-swag{background:radial-gradient(at 50% 0,#b81424 0%,#7a0a14 55%,#3d0208 100%),repeating-linear-gradient(90deg,#0000004d 0,#0000 15px,#ffffff1a 30px,#0006 45px);border-bottom:3px solid #d4af37;border-radius:0 0 50% 50%/0 0 100% 100%;flex:1;height:75px;position:relative;box-shadow:0 15px 25px #000c,inset 0 -4px 10px #0009}.valance-gold-trim{background:repeating-linear-gradient(90deg,#d4af37 0,gold 8px,#aa8010 16px);height:6px;position:absolute;bottom:0;left:0;right:0;box-shadow:0 4px 10px #0009}.curtain-panel{will-change:transform, opacity;background:radial-gradient(circle at 50% 40%,#9e101d 0%,#750a14 45%,#420208 80%,#200004 100%);width:52vw;position:absolute;top:0;bottom:0;overflow:hidden;box-shadow:0 0 60px #000000f2}.curtain-folds{background:repeating-linear-gradient(90deg,#0000008c 0,#ffffff14 18px,#b4142333 36px,#000000b3 54px,#0006 72px);position:absolute;inset:0;box-shadow:inset 0 0 50px #000c}.curtain-gold-trim-edge{background:linear-gradient(90deg,gold,#d4af37,#8a6508);width:8px;position:absolute;top:0;bottom:0;box-shadow:0 0 15px #ffd70080}.curtain-left{transform-origin:0;border-right:2px solid gold;animation:2.2s cubic-bezier(.25,1,.35,1) forwards grandCurtainOpenLeft;left:0}.curtain-left .curtain-gold-trim-edge{right:0}.curtain-right{transform-origin:100%;border-left:2px solid gold;animation:2.2s cubic-bezier(.25,1,.35,1) forwards grandCurtainOpenRight;right:0}.curtain-right .curtain-gold-trim-edge{left:0}@keyframes grandCurtainOpenLeft{0%{opacity:1;transform:scaleX(1)translate(0)}20%{opacity:1;transform:scaleX(.98)translate(1%)}75%{opacity:1;transform:scaleX(.25)translate(-40%)}to{opacity:0;transform:scaleX(.08)translate(-100%)}}@keyframes grandCurtainOpenRight{0%{opacity:1;transform:scaleX(1)translate(0)}20%{opacity:1;transform:scaleX(.98)translate(-1%)}75%{opacity:1;transform:scaleX(.25)translate(40%)}to{opacity:0;transform:scaleX(.08)translate(100%)}}@keyframes valanceFade{0%{opacity:1;transform:translateY(0)}70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}.spatial-wall.is-active .spatial-wall-content{animation:1.8s cubic-bezier(.16,1,.3,1) forwards tableauUnveil}@keyframes tableauUnveil{0%{opacity:.2;filter:blur(4px);transform:scale(.96)}to{opacity:1;filter:blur();transform:scale(1)}}
