:root{--ink:#601f2a;--cream:#fff1d6;--ease-out:cubic-bezier(.23,1,.32,1);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#312323}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #24665d;outline-offset:3px}button:disabled{cursor:default}.elevator{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);height:min(100svh,177.873vw);width:min(56.22svh,100vw);container-type:inline-size;isolation:isolate;background:#e6c69f;overflow:hidden;box-shadow:0 0 100px #130b0b80}.frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;clip-path:polygon(evenodd,0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,18.45% 10.8%,18.45% 77.9%,81.5% 77.9%,81.5% 10.8%,18.45% 10.8%)}.window{position:absolute;left:18.45%;top:10.8%;width:63.05%;height:67.1%;overflow:hidden;background:#f2d8b4}.floors{height:300%;width:100%;will-change:transform}.room{height:calc(100% / 3);position:relative;overflow:hidden;text-align:center;display:flex;align-items:center;flex-direction:column;padding:8cqw 3.5cqw 3cqw;background:#f2d8b4}.scene-art{position:absolute;width:158.604%;height:149.03%;left:-29.263%;top:-16.095%;max-width:none;object-fit:fill;z-index:-1}.welcome{isolation:isolate;justify-content:flex-end;padding-bottom:8cqw;background:transparent}.welcome-card{width:100%;background:#fff2daef;padding:5cqw 2cqw;border:1px solid #be8c5a;border-radius:45% 45% 5px 5px;box-shadow:0 6px 20px #5d2e2320}.overline{font-size:1.85cqw;letter-spacing:.3cqw;font-weight:700;margin:0 0 3cqw;line-height:1.5}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.14cqw;line-height:1.08;margin:0 0 3cqw;font-size:7.1cqw}p{font-size:2.65cqw;line-height:1.65;margin:0 0 4cqw}.primary{background:var(--ink);color:var(--cream);border:1px solid var(--ink);border-radius:3px;text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:2cqw;padding:3cqw;font-size:2.45cqw;font-weight:600;line-height:1.4;width:100%;transition:transform 140ms var(--ease-out),background 180ms ease;white-space:nowrap}.primary:active{transform:scale(.98)}.welcome-card small{display:block;font-size:1.95cqw;margin-top:2.5cqw}.packages,.booking{background:radial-gradient(ellipse at 50% 0,#fff4db 0,#f4dabb 60%,#e8c5a1 100%)}.stars{font-size:5.5cqw;color:#97622e;letter-spacing:1cqw;margin-bottom:3cqw}.packages .overline,.booking .overline{font-size:1.75cqw;margin-bottom:2cqw}h2{font-size:6.35cqw}.sample{font-size:1.9cqw;color:#795047;margin:0 0 3cqw}.package-list{width:100%;display:grid;gap:2.5cqw}.package{width:100%;text-align:left;padding:3cqw 3cqw 2.5cqw;background:#fff2dbe6;border:1px solid #b68a65;border-radius:4px;display:flex;flex-direction:column;gap:1.6cqw;box-shadow:0 3px 0 #b68a6533;transition:transform 140ms var(--ease-out)}.package:active{transform:scale(.98)}.package-top{display:flex;justify-content:space-between;align-items:center;gap:1cqw}.package strong{font:4.5cqw Georgia,serif}.package b{font-size:3.4cqw;font-weight:400}.package>span:not(:first-child){font-size:2.1cqw;line-height:1.5}.package-bottom{display:flex;align-items:center;justify-content:space-between}.package i{font:normal 3.5cqw Arial}.signature{background:#691f2b;color:var(--cream);border-color:#691f2b}.floor-note{font-size:2cqw;line-height:1.7;margin:3cqw 0 0}.booking{padding-top:8cqw}.booking-intro{font-size:2.8cqw;margin:0 0 4cqw}.ticket{width:100%;padding:5cqw 2cqw;background:#fff1d8;border:1px dashed #ac8059;border-radius:8px;display:flex;flex-direction:column;gap:2cqw;margin-bottom:4cqw;box-shadow:0 4px 0 #ba91642a}.ticket-label{font-size:1.8cqw;letter-spacing:.2cqw}.ticket strong{font:5.5cqw Georgia,serif}.ticket>span:not(.ticket-label):not(.ticket-price){font-size:2.1cqw}.ticket .ticket-price{font:7cqw Georgia,serif}.ticket small{font-size:1.8cqw;color:#795047}.back-link{background:none;border:0;border-bottom:1px solid currentColor;padding:1cqw 0;margin-top:3cqw;font-size:2.2cqw}.lift-buttons{position:absolute;right:7.1%;top:40.3%;width:4.8%;height:7.9%;display:flex;flex-direction:column;justify-content:space-between;z-index:3}.lift-buttons button{border:1px solid #734329;border-radius:50%;background:#f8e7c8;color:#5a202a;display:grid;place-items:center;width:100%;aspect-ratio:1;padding:0;font-size:3cqw;box-shadow:inset 0 -2px 0 #ba8e61;transition:transform 140ms var(--ease-out),opacity 150ms ease}.lift-buttons button:disabled{opacity:.4}.lift-buttons button:active:not(:disabled){transform:scale(.9)}.lift-buttons button:before{content:'';position:absolute;width:44px;height:44px}.floor-indicator{position:absolute;top:6.1%;left:44%;width:12%;height:3%;z-index:3;display:grid;place-items:center;font:3.8cqw Georgia,serif;background:#f2d9a9;border:1px solid #9a6438;border-radius:40%}.floor-nav{position:absolute;z-index:3;bottom:7.3%;left:13%;width:74%;display:flex;justify-content:center;gap:2cqw;background:#fff0d9ef;border:1px solid #b9865c;padding:2cqw 1cqw;border-radius:5px}.floor-nav button{background:none;border:0;padding:1cqw 1.5cqw;font-size:2cqw;display:flex;align-items:center;gap:1cqw;white-space:nowrap;min-height:36px}.floor-nav button span{display:inline-grid;place-items:center;width:4cqw;height:4cqw;border:1px solid #9b6a50;border-radius:50%;font:2.2cqw Georgia,serif}.floor-nav button[aria-current]{font-weight:700}.floor-nav button[aria-current] span{background:var(--ink);color:var(--cream);border-color:var(--ink)}.scroll-stops{position:relative;pointer-events:none;z-index:-1}.stop{height:100svh}.desktop-note{position:fixed;left:6%;top:22%;color:#ead8c0;pointer-events:none}.desktop-brand{display:inline-flex;align-items:center;flex-direction:column;font:38px/.9 Georgia,serif;letter-spacing:-1.5px}.desktop-brand small{font:9px Arial,sans-serif;letter-spacing:5px;margin:12px 0 75px}.desktop-note p{font:34px/1.2 Georgia,serif;letter-spacing:-1px;margin:0 0 22px}.desktop-note>span:last-child{font-size:11px;color:#c4ad9f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@supports(animation-timeline:scroll()){.floors{animation:ride linear both;animation-timeline:scroll(root block)}@keyframes ride{from{transform:translateY(0)}to{transform:translateY(-66.6666667%)}}}@media(hover:hover) and (pointer:fine){.package:hover{transform:translateY(-2px)}.primary:hover{background:#7d2b39}.lift-buttons button:hover:not(:disabled){background:#fff4de}}@media(max-width:1000px){.desktop-note{display:none}}@media(max-aspect-ratio:9/16){.elevator{height:100svh;width:100vw}.frame{object-fit:fill}.floor-nav{bottom:6.5%}}@media(prefers-reduced-motion:reduce){.floors{animation:none;will-change:auto}.primary,.package,.lift-buttons button{transition:opacity 150ms ease}.primary:active,.package:active{transform:none}}
/* Keep the narrow glass window readable on phones. */
.primary{font-size:clamp(11px,2.45cqw,15px)}.package>span:not(:first-child){font-size:clamp(10px,2.1cqw,13px)}.floor-nav button{font-size:clamp(10px,2cqw,13px)}.welcome-card>p:not(.overline),.booking-intro{font-size:clamp(12px,2.65cqw,16px)}.sample,.floor-note,.welcome-card small,.ticket small{font-size:clamp(9px,1.95cqw,12px)}.ticket>span:not(.ticket-label):not(.ticket-price){font-size:clamp(10px,2.1cqw,13px)}
@media(max-height:760px){.packages,.booking{padding-top:4cqw}.packages .stars,.booking .stars{display:none}.packages h2{font-size:5.8cqw;margin-bottom:2cqw}.package{padding:2.2cqw;gap:1cqw}.package-list{gap:1.8cqw}.packages .floor-note{display:none}.sample{margin-bottom:2cqw}.ticket{padding:3cqw 2cqw;gap:1.6cqw}.booking-intro{margin-bottom:2cqw}.booking .floor-note{font-size:9px}}
/* Controls use the artwork itself. Tap targets are centred on the drawn arrows. */
.lift-buttons{inset:0;width:auto;height:auto;display:block;pointer-events:none}
.lift-buttons button{position:absolute;left:90.8%;width:11cqw;height:4.85%;min-width:44px;min-height:24px;aspect-ratio:auto;transform:translate(-50%,-50%);pointer-events:auto;border:0;border-radius:0;background:transparent;color:transparent;font-size:0;box-shadow:none;opacity:1;transition:none}
.lift-buttons #up{top:41.85%}.lift-buttons #down{top:46.75%}
.lift-buttons button:before{content:none}.lift-buttons button:disabled{opacity:1}
.lift-buttons button:active:not(:disabled){transform:translate(-50%,-50%);background:transparent}
.lift-buttons button:focus-visible{outline:2px solid #1c1d1b;outline-offset:-5px;border-radius:50%}
@media(hover:hover) and (pointer:fine){.lift-buttons button:hover:not(:disabled){background:transparent}}
/* Parapluie brand assets and typography, sourced from the studio brand kit. */
@font-face{font-family:'Barlow Condensed';src:url('assets/barlow-condensed.woff2');font-weight:400;font-display:swap}
@font-face{font-family:Lora;src:url('assets/lora.woff2');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope.woff2');font-weight:400;font-display:swap}
:root{--brand-noir:#1c1d1b;--brand-gold:#c0a16f;--brand-gold-warm:#c8ab6f;--brand-cream:#f0ebe0;font-family:Manrope,Arial,sans-serif;background:var(--brand-noir)}
.primary,.package,.floor-nav button,.back-link{font-family:Manrope,Arial,sans-serif}
h1,h2,.package strong,.ticket strong{font-family:Lora,Georgia,serif}
.desktop-logo{width:190px;height:auto;display:block;margin:0 0 70px}.desktop-note{color:var(--brand-cream)}.desktop-note p{font-family:Lora,Georgia,serif}.desktop-note>span:last-child{color:var(--brand-gold-warm)}
.welcome-card{position:absolute;left:19.8%;top:52.9%;width:53%;height:15.8%;padding:.6cqw .4cqw;background:none;border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1cqw;color:var(--brand-noir);transform:rotate(-.3deg)}
.sign-logo{width:20cqw;height:auto;display:block;flex-shrink:0}
.welcome-card h1{font-family:Lora,Georgia,serif;font-size:4.2cqw;letter-spacing:-.12cqw;line-height:1.1;margin:0}
.welcome-card>p:not(.overline){font-family:Manrope,Arial,sans-serif;font-size:1.72cqw;line-height:1.25;margin:0;white-space:nowrap}
.welcome-action{position:absolute;left:14%;bottom:5.1%;width:72%;transform:perspective(400px) rotateX(22deg);transform-origin:bottom center}
.welcome-action .primary{border:1px solid var(--brand-gold-warm);outline:2px solid #501d25;outline-offset:1px;box-shadow:0 5px 0 #3f2420,0 9px 9px #603c2c35;background:#601f2a;color:var(--brand-cream);padding:3cqw 4cqw;font-size:clamp(10px,2.4cqw,15px);border-radius:1px}
.window:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,transparent 0 4%,#e4f6ff24 4.2% 4.7%,transparent 5% 94%,#e4f6ff20 94.2% 94.7%,transparent 95%);z-index:1}
/* Arrow artwork stays intact; these transparent hit areas are the only controls. */
@media(max-height:760px){.welcome-card{padding:.4cqw;gap:.7cqw}.welcome-card h1{font-size:4cqw}.sign-logo{width:18cqw}.welcome-card>p:not(.overline){font-size:1.65cqw}}
.overline,.ticket-label{font-family:'Barlow Condensed',Arial,sans-serif;font-weight:400}
/* A single pointer travels across the original vintage indicator as the lift rises. */
.floor-indicator{left:36.5%;top:5.15%;width:27%;height:4.45%;display:block;background:#f6ddb6;border:0;border-bottom:1px solid #926638;border-radius:50% 50% 0 0;pointer-events:none;overflow:hidden}
.dial-star{position:absolute;left:50%;top:2%;transform:translateX(-50%);font-size:2.2cqw;line-height:1;color:#805124}
.dial-tick{position:absolute;width:.35cqw;height:1.3cqw;background:#744a2c;top:26%;border-radius:1px}
.tick-left{left:23%;transform:rotate(-32deg)}.tick-right{right:23%;transform:rotate(32deg)}
.tick-outer-left{left:8%;top:57%;transform:rotate(-62deg)}.tick-outer-right{right:8%;top:57%;transform:rotate(62deg)}
.dial-needle{position:absolute;left:47.4%;bottom:10%;width:5.2%;height:74%;background:#651e2a;clip-path:polygon(50% 0,100% 27%,72% 27%,72% 100%,28% 100%,28% 27%,0 27%);transform-origin:50% 100%;transform:rotate(-60deg);will-change:transform}
.dial-hub{position:absolute;left:50%;bottom:10%;transform:translate(-50%,50%);width:1.4cqw;height:1.4cqw;border-radius:50%;background:#c8ab6f;border:1px solid #704727}
@supports(animation-timeline:scroll()){.dial-needle{animation:needle-travel linear both;animation-timeline:scroll(root block)}@keyframes needle-travel{from{transform:rotate(-60deg)}to{transform:rotate(60deg)}}}
@media(prefers-reduced-motion:reduce){.dial-needle{animation:none;will-change:auto}}
/* Fit the dial face to the illustrated semicircular brass housing. */
.floor-indicator{left:35.1%;top:4.2%;width:30%;height:5.55%;border:1px solid #805027;border-bottom:2px solid #82512b;border-radius:50% 50% 0 0 / 100% 100% 0 0;background:linear-gradient(#f0d4a7,#f9e7c5);box-shadow:inset 0 0 0 2px #c8a265,inset 0 0 0 3px #ead2a9}
.dial-star{top:13%;font-size:2cqw}.dial-tick{top:36%}.tick-outer-left,.tick-outer-right{top:64%}.dial-needle{bottom:12%;height:66%}.dial-hub{bottom:12%}
/* Room lighting and pendants remain in the artwork, behind the fixed elevator glass. */
.room-atmosphere{position:absolute;left:-29.263%;top:-16.095%;width:158.604%;height:149.03%;pointer-events:none;z-index:0}
.welcome-card,.welcome-action{z-index:1}
.fairy-glow{position:absolute;width:4cqw;height:4cqw;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#fff9d1 0 6%,#ffe29aaf 10%,#ffd17658 30%,#ffd17600 70%);opacity:.3}
.pendant-layer{position:absolute;inset:0;transform-origin:58.4% 32.4%;clip-path:polygon(50% 32.5%,67.5% 32.5%,67.5% 42.5%,50% 42.5%)}
.pendant-layer>img{display:block;width:100%;height:100%}
.pendant-halo{position:absolute;width:15cqw;height:15cqw;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#fff1b17a,#ffda8542 35%,#ffda8500 70%);opacity:.5}
.window-snow{position:absolute;left:31%;top:20.5%;width:6.2%;height:7%;overflow:hidden;clip-path:polygon(0 0,70% 0,100% 15%,100% 100%,0 100%)}
.snowflake{position:absolute;top:-10%;width:.55cqw;height:.55cqw;border-radius:50%;background:#fff8e9;opacity:0}
.ambience-toggle{position:absolute;z-index:3;left:23%;bottom:2.6%;width:54%;min-height:26px;padding:4px 8px;border:0;background:transparent;color:#5b302b;font-family:Manrope,Arial,sans-serif;font-size:clamp(9px,2.05cqw,12px);text-decoration:underline;text-underline-offset:3px}
.ambience-toggle[hidden]{display:none}.ambience-toggle:disabled{color:#6b5144;text-decoration:none}
@media(prefers-reduced-motion:no-preference){
 .fairy-glow{animation:fairy-twinkle 6s ease-in-out infinite both}
 .pendant-layer{animation:pendant-sway 8s cubic-bezier(.77,0,.175,1) infinite alternate both}
 .pendant-halo{animation:pendant-warmth 7s ease-in-out infinite both}
 .snowflake{animation:window-snowfall 7s linear infinite both}
 @keyframes fairy-twinkle{0%,100%{opacity:.16;transform:translate(-50%,-50%) scale(.8)}45%{opacity:.95;transform:translate(-50%,-50%) scale(1.22)}68%{opacity:.44;transform:translate(-50%,-50%) scale(.95)}}
 @keyframes pendant-sway{from{transform:rotate(-.85deg)}to{transform:rotate(.85deg)}}
 @keyframes pendant-warmth{0%,100%{opacity:.2}50%{opacity:.8}}
 @keyframes window-snowfall{0%{opacity:0;transform:translate(0,0)}12%{opacity:.8}80%{opacity:.65}100%{opacity:0;transform:translate(2cqw,15cqw)}}
}
body:not([data-room-active="true"]) .room-atmosphere *,body.ambience-paused .room-atmosphere *,body.page-hidden .room-atmosphere *{animation-play-state:paused}
body.ambience-paused .fairy-glow,body.ambience-paused .pendant-halo,body.ambience-paused .snowflake{opacity:0}
@media(prefers-reduced-motion:reduce){.room-atmosphere *{animation:none!important}.snowflake{display:none}.pendant-layer{transform:none}}
body.ambience-paused .fairy-glow,body.ambience-paused .pendant-halo,body.ambience-paused .snowflake{visibility:hidden}
/* A hand-lettered storybook face for the physical welcome sign. */
@font-face{font-family:'Berkshire Swash';src:url('assets/berkshire-swash.woff2');font-weight:400;font-style:normal;font-display:swap}
.welcome-card h1{font-family:'Berkshire Swash',Lora,Georgia,serif;font-size:4.65cqw;font-weight:400;letter-spacing:0;line-height:1.13;color:#602831}
@media(max-height:760px){.welcome-card h1{font-size:4.45cqw;line-height:1.1}}
/* Pendants now hang beside the photographer; the portrait remains still. */
.pendant-layer{transform-origin:53.4% 31.5%;clip-path:polygon(50% 33%,56.4% 33%,55.8% 35.9%,53.7% 36.2%,53.7% 39.6%,47.9% 39.6%,47.9% 35.2%,50% 35.2%)}
/* One warm, local camera flash every twelve seconds, beginning after two seconds. */
.camera-flash,.camera-flash-spill{position:absolute;left:60.2%;top:33.7%;transform:translate(-50%,-50%);pointer-events:none;opacity:0}
.camera-flash{width:24cqw;height:24cqw;border-radius:50%;background:radial-gradient(circle,#fffef6 0 3%,#fff5d5c4 7%,#ffdf8e52 23%,#ffdc8500 66%)}
.camera-flash:after{content:'';position:absolute;inset:35%;background:#fffbed;clip-path:polygon(50% 0,58% 37%,84% 16%,63% 43%,100% 50%,63% 57%,84% 84%,58% 63%,50% 100%,42% 63%,16% 84%,37% 57%,0 50%,37% 43%,16% 16%,42% 37%)}
.camera-flash-spill{width:64cqw;height:52cqw;border-radius:50%;background:radial-gradient(ellipse,#fff3cb7a 0,#ffe4b136 35%,#ffe1a900 72%)}
@media(prefers-reduced-motion:no-preference){
 .camera-flash{animation:camera-shutter-flash 12s linear infinite both}
 .camera-flash-spill{animation:camera-light-spill 12s linear infinite both}
 @keyframes camera-shutter-flash{0%,16%{opacity:0;transform:translate(-50%,-50%) scale(.85)}16.7%{opacity:1;transform:translate(-50%,-50%) scale(1)}18%{opacity:.65;transform:translate(-50%,-50%) scale(1.12)}22%{opacity:0;transform:translate(-50%,-50%) scale(1.3)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.3)}}
 @keyframes camera-light-spill{0%,16%{opacity:0}16.7%{opacity:.4}23%{opacity:0}100%{opacity:0}}
}
body.ambience-paused .camera-flash,body.ambience-paused .camera-flash-spill,body.page-hidden .camera-flash,body.page-hidden .camera-flash-spill,body:not([data-room-active="true"]) .camera-flash,body:not([data-room-active="true"]) .camera-flash-spill{visibility:hidden}
@media(prefers-reduced-motion:reduce){.camera-flash,.camera-flash-spill{display:none}}
.camera-trigger{position:absolute;left:60%;top:33%;width:16%;height:9%;min-width:32px;min-height:32px;z-index:1;border:0;background:transparent;padding:0;cursor:pointer;border-radius:6px}
.camera-trigger:disabled{cursor:default}.camera-trigger:focus-visible{outline:2px solid #c8ab6f;outline-offset:1px}
/* All three glass views share one journey; only the cabin hardware stays fixed. */
.side-world{position:absolute;top:0;height:100%;overflow:hidden;pointer-events:none;background:#ecd5b4}
.side-world-left{left:0;width:7%}.side-world-right{right:0;width:5.5%}
.side-track{width:100%;height:300%;will-change:transform}
.side-floor{position:relative;width:100%;height:calc(100% / 3);overflow:hidden}
.side-floor-welcome{background-image:url('assets/welcome-scene.png');background-size:auto 149.03%;background-position:32% 32.83%;background-repeat:no-repeat;background-color:#e6c8a1}
.side-world-right .side-floor-welcome{background-position:72% 32.83%}
.side-floor-packages{background:linear-gradient(90deg,#b5916655,transparent 25%,#fff0d430 60%,#b7956f44),repeating-linear-gradient(0deg,#efd4ae 0 27%,#b89c714d 27% 27.3%,#f8e6c9 27.3% 65%,#b89c7155 65% 65.4%,#f2dbb8 65.4% 100%)}
.side-floor-packages:after{content:'';position:absolute;top:23%;left:-30%;width:170%;height:15%;border-top:2px solid #c8ab6f;border-bottom:2px solid #c8ab6f;background:#6b2637;transform:rotate(-7deg)}
.side-floor-booking{background:repeating-linear-gradient(90deg,#581e2d 0%,#8e3b48 22%,#6d2838 44%,#a65359 60%,#662233 78%,#4d1d2b 100%)}
.side-floor-booking:after{content:'';position:absolute;top:17%;left:35%;width:4px;height:4px;border-radius:50%;background:#ffefb4;box-shadow:0 60px 7px #ffeac6,2px 120px 7px #ffeac6,-2px 180px 7px #ffeac6,0 240px 7px #ffeac6}
.side-world:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,#d8f2ff30,transparent 30%,#eaf7ff55 32%,transparent 35%,transparent 62%,#e5f5ff50 65%,transparent 68%);border-inline:1px solid #c9e7ee80}
.frame{clip-path:polygon(evenodd,0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,18.45% 10.8%,18.45% 77.9%,81.5% 77.9%,81.5% 10.8%,18.45% 10.8%,0% 0%,6.9% 5.2%,6.9% 59%,0% 61.9%,0% 0%,0% 64.6%,6.9% 61.6%,6.9% 79.8%,0% 84%,0% 64.6%,0% 0%,94.6% 6%,100% 0%,100% 61.9%,94.6% 59.5%,94.6% 6%,0% 0%,94.6% 62%,100% 64.6%,100% 84%,94.6% 80.3%,94.6% 62%,0% 0%)}
@supports(animation-timeline:scroll()){.side-track{animation:ride linear both;animation-timeline:scroll(root block)}}
@media(prefers-reduced-motion:reduce){.side-track{animation:none;will-change:auto}}
/* Keep the logo clear of the painted ribbon, with air around every line. */
.welcome-card{top:54.6%;height:13.7%;padding:min(.6cqw,.2svh) 1.6cqw;gap:min(1.35cqw,.45svh);justify-content:center}
.sign-logo{width:min(16cqw,7.6svh)}
.welcome-card h1{font-size:min(4.15cqw,2.18svh);line-height:1.08;margin:0;flex-shrink:0}
.welcome-card>p:not(.overline){font-size:min(1.65cqw,.87svh);line-height:1.25;margin:0;flex-shrink:0}
/* Side glimpses use the upper room, avoiding duplicate signs or tripod legs. */
.side-floor-welcome{background-size:auto 300%;background-position:24% 18%}
.side-world-right .side-floor-welcome{background-position:70% 18%}

/* Close the doors before moving all three glass views together. */
.floors,.side-track,.dial-needle{animation:none!important}
body[data-ride-phase="moving"] .floors,body[data-ride-phase="moving"] .side-track,body[data-ride-phase="moving"] .dial-needle{transition:transform 700ms cubic-bezier(.77,0,.175,1)}
.lift-doors{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}
.door{position:absolute;top:0;bottom:0;width:50%;background-image:url('assets/french-ironwork-doors.png');background-size:200% 100%;background-repeat:no-repeat;transition:transform 400ms cubic-bezier(.77,0,.175,1)}
.door-left{left:0;transform:translateX(-102%);background-position:left top}
.door-right{right:0;transform:translateX(102%);background-position:right top}
.lift-doors.closed .door{transform:translateX(0)}
body:not([data-ride-phase="idle"]) .room-atmosphere{visibility:hidden}
@media(prefers-reduced-motion:reduce){.door,body[data-ride-phase="moving"] .floors,body[data-ride-phase="moving"] .side-track,body[data-ride-phase="moving"] .dial-needle{transition:none}}
/* Approved French cabin: the openings follow the new bronze posts and threshold. */
.window{left:17.5%;top:11%;width:65.3%;height:70.5%}
.frame{clip-path:polygon(evenodd,0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,17.5% 11%,17.5% 81.5%,82.8% 81.5%,82.8% 11%,17.5% 11%,0% 0%,8.5% 5.2%,8.5% 57.8%,0% 60.3%,0% 0%,0% 62.2%,8.5% 59.1%,8.5% 80%,0% 84%,0% 62.2%,0% 0%,91.1% 5.2%,100% 0%,100% 60.3%,91.1% 57.8%,91.1% 52%,95.5% 52%,95.5% 36%,91.1% 36%,91.1% 5.2%,0% 0%,91.1% 59.1%,100% 62.2%,100% 84%,91.1% 80%,91.1% 59.1%,0% 0%)}
.side-world-left{width:8.6%}.side-world-right{width:9%}
.scene-art,.room-atmosphere{left:-26.8%;top:-15.603%;width:153.139%;height:141.844%}
.welcome-card{left:20.57%;top:51.683%;width:51.18%;height:13.04%}
.camera-trigger{left:59.39%;top:31.125%;width:15.45%;height:8.566%}
.lift-buttons button{left:90%}.lift-buttons #up{top:41.8%}.lift-buttons #down{top:46.4%}
.floor-nav{border-color:#967747;background:#f5e7cbee;color:#49352b;box-shadow:0 2px 5px #382b241a}
.floor-nav button[aria-current] span{background:#594131;border-color:#967747;color:#f8e9cc}

/* One continuous room plate is visible through every glass face. The cabin is RGBA. */
.world-view{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.world-track{width:100%;height:300%;will-change:transform}
.world-floor{height:calc(100% / 3);width:100%;position:relative}
.world-welcome{background:url('assets/christmas-room-continuous.png') center/100% 100% no-repeat}
.world-packages{background:radial-gradient(ellipse at 50% 0,#fff4db 0,#f4dabb 60%,#e8c5a1 100%)}
.world-booking{background:radial-gradient(ellipse at 50% 0,#fff4db 0,#f4dabb 60%,#e8c5a1 100%)}
.frame{clip-path:none}
.window,.packages,.booking{background:transparent}
.scene-art{visibility:hidden}
body[data-ride-phase="moving"] .world-track{transition:transform 700ms cubic-bezier(.77,0,.175,1)}
@media(prefers-reduced-motion:reduce){body[data-ride-phase="moving"] .world-track{transition:none}.world-track{will-change:auto}}

/* GF starts below floors 1 and 2. Scenery falls as the cabin ascends. */
.floors,.world-track{display:flex;flex-direction:column-reverse;transform:translateY(-66.6666667%)}
.room,.world-floor{flex-shrink:0}

/* The package stop is the upstairs studio, seen continuously through all glass. */
.world-packages{background:url('assets/christmas-studio-upstairs.png') center/100% 100% no-repeat}
.packages .package{background:#fff2dbed;box-shadow:0 2px 5px #62432825}
.packages .signature{background:#691f2bf5}
.packages h2,.packages>.overline,.packages>.sample,.packages>.floor-note{text-shadow:0 1px 4px #fff2db,0 0 10px #fff2db}
.world-booking{background:url('assets/christmas-studio-keepsake-room.png') center/100% 100% no-repeat}
.booking h2,.booking>.overline,.booking>.booking-intro,.booking>.floor-note,.booking>.back-link{text-shadow:0 1px 4px #fff2db,0 0 10px #fff2db}
.booking .ticket{background:#fff1d8f2}
.packages>.floor-note,.booking>.floor-note{background:#fff1d8ed;padding:1cqw 2cqw;border-radius:2px;text-shadow:none}
.booking>.back-link{background:#fff1d8ed;padding:1cqw 2cqw;border-radius:2px;text-shadow:none}

/* Confirmed offers fit inside the mobile lift; longer terms live in a native dialog. */
.packages .package{min-height:15cqw;gap:2.2cqw}
.package strong{font-family:Lora,Georgia,serif;font-size:4.35cqw}
.details-link{display:block;border:0;border-bottom:1px solid #805437;background:#fff1d8ee;color:#602831;padding:1cqw 2cqw;margin:2.2cqw auto 0;border-radius:2px;font:2.3cqw/1.5 Manrope,Arial,sans-serif;min-height:28px;text-underline-offset:3px;flex-shrink:0}
.packages>.floor-note{font-size:2.1cqw;line-height:1.5;margin-top:2.4cqw;max-width:90%}
.booking .ticket small{font-size:2.05cqw;line-height:1.5}
.booking .ticket{gap:1.8cqw;margin-bottom:3cqw}
.booking>.back-link{margin-top:2cqw}
.booking>.details-link{margin-top:1.5cqw}
.booking>.floor-note{font-size:1.95cqw;margin-top:2cqw}
.session-dialog{color:#493128;background:#fff3dd;border:1px solid #aa8655;border-radius:10px;padding:0;width:min(92vw,480px);max-height:85svh;box-shadow:0 20px 80px #1c161b70;overflow:hidden;font-family:Manrope,Arial,sans-serif}
.session-dialog::backdrop{background:#20171ac4;backdrop-filter:blur(3px)}
.session-dialog[open]{display:flex;flex-direction:column}
.dialog-header{display:flex;gap:12px;align-items:center;padding:20px 18px 16px;border-bottom:1px solid #d5b78a;flex-shrink:0}
.dialog-header h2{font:24px/1.2 Lora,Georgia,serif;letter-spacing:-.4px;margin:0;flex:1}
.dialog-close{width:40px;height:40px;flex-shrink:0;border:1px solid #bba079;border-radius:50%;background:#f5e4c5;font:28px/1 Arial;color:#602831}
.dialog-content{overflow-y:auto;overscroll-behavior:contain;padding:4px 20px 22px;touch-action:pan-y}
.dialog-content section{padding:18px 0;border-bottom:1px solid #ddc5a1}
.dialog-content section:last-child{border:0;padding-bottom:0}
.dialog-content h3{font:20px/1.3 Lora,Georgia,serif;color:#602831;margin:0 0 12px}
.dialog-content p{font:13px/1.7 Manrope,Arial,sans-serif;margin:0 0 10px}
.dialog-content p:last-child{margin-bottom:0}
.dialog-content dl{margin:0;font:13px/1.6 Manrope,Arial,sans-serif}
.terms-list>div{margin-bottom:10px}.terms-list>div:last-child{margin-bottom:0}
.terms-list dt{font-weight:700}.terms-list dd{margin:2px 0 0}
.extras-list>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #e3cba7}
.extras-list>div:first-child{padding-top:0}.extras-list>div:last-child{border:0;padding-bottom:0}
.extras-list dt{flex:1;font-weight:700}.extras-list dt span{display:block;font-size:12px;font-weight:400;margin-top:4px;color:#765747}
.extras-list dd{margin:0;text-align:right;font-weight:700;white-space:nowrap}.extras-list dd span{display:block;font-size:10px;font-weight:400}
@media(max-height:760px){.packages .package{min-height:13cqw;padding:2.2cqw;gap:1.5cqw}.packages>.details-link{margin-top:1.8cqw}.booking .booking-intro{font-size:2.55cqw;margin-bottom:2cqw}.booking .ticket{padding:2.5cqw 2cqw;gap:1.3cqw;margin-bottom:2.5cqw}.booking .ticket small{font-size:1.85cqw}.booking .ticket-price{font-size:6cqw}.booking>.back-link,.booking>.details-link{margin-top:1.3cqw;font-size:2.15cqw}.booking>.floor-note{display:none}}

.fineart-package{border-color:#a58043!important;background:#f7e8ccee!important}
.fineart-package strong{font-size:3.55cqw}
.packages .package-list{gap:1.7cqw}
.packages .package{min-height:12.5cqw;padding:2.2cqw;gap:1.4cqw}
.packages .stars{margin-bottom:2cqw}
.packages>.details-link{margin-top:1.8cqw}
.packages>.floor-note{font-size:1.9cqw;margin-top:1.7cqw}
.dialog-content ul{font:13px/1.7 Manrope,Arial,sans-serif;margin:10px 0 14px;padding-left:20px}
.dialog-content li+li{margin-top:5px}
@media(max-height:760px){.packages .package{min-height:11.5cqw;padding:1.8cqw;gap:1cqw}.packages h2{font-size:5.4cqw}.packages .sample{font-size:1.85cqw}.packages>.floor-note{font-size:1.85cqw;margin-top:1.5cqw}}
/* Prevent focus or click scrolling from shifting content inside the fixed lift. */
.elevator,.window,.room{overflow:clip}
/* A portrait journey: the room leads, one story at a time. */
.floors,.world-track{height:500%;animation:none;transform:translateY(-80%)}
.room,.world-floor{height:20%;flex:0 0 20%}
.room.offer,.room.gallery,.room.packages{padding:0;background:transparent;display:block}
.world-offer,.world-gallery{background:url('assets/christmas-studio-upstairs.png') center/100% 100% no-repeat}
.world-packages{background:url('assets/christmas-studio-keepsake-room.png') center/100% 100% no-repeat}
.wall-lettering{position:absolute;left:14%;top:11%;width:76%;color:#5a3024;text-align:center}
.wall-lettering h2{font-family:'Berkshire Swash',Lora,serif;font-size:5.3cqw;line-height:1.18;letter-spacing:0;margin-bottom:4cqw;text-wrap:balance}
.wall-lettering p{font-size:2.95cqw;line-height:1.65;margin:0 0 4cqw;text-wrap:pretty}
.wall-lettering ul{list-style:none;padding:0;margin:0;font:2.7cqw/1.7 Manrope,sans-serif}
.wall-lettering li{padding:1.2cqw 0;border-bottom:1px solid #9a70494d}
.wall-lettering li:last-child{border:0}
.scene-cta{position:absolute;left:10%;bottom:9%;width:80%;min-height:36px;padding:2.5cqw;background:#f9e7c7;color:#643124;border:1px solid #9a7049;border-radius:2px;box-shadow:0 3px 8px #43281d30;font:2.75cqw/1.4 Manrope,sans-serif;display:flex;align-items:center;justify-content:space-between;gap:2cqw}
.scene-cta:hover{background:#ffefd1}
.scene-heading{position:absolute;top:6%;left:5%;width:90%;font:5.2cqw/1.15 'Berkshire Swash',Lora,serif;letter-spacing:0;color:#602831;text-shadow:none!important;margin:0;text-wrap:balance}
.gallery-rail{position:absolute;left:6%;top:20%;width:88%;height:57%;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x}
.gallery-rail::-webkit-scrollbar,.package-carousel::-webkit-scrollbar{display:none}
.gallery-photo{flex:0 0 100%;width:100%;height:100%;margin:0;padding:2.8cqw 2.8cqw 0;background:#fff2dc;display:flex;flex-direction:column;box-shadow:0 6px 14px #38251a40;scroll-snap-align:start;scroll-snap-stop:always}
.gallery-photo img{display:block;width:100%;height:calc(100% - 11cqw);object-fit:contain;background:#35241c}
.gallery-photo figcaption{font:2.6cqw/1.4 Lora,serif;padding:2.3cqw 0;margin:auto 0;text-align:center;color:#5d3528}
.gallery-controls,.package-controls{position:absolute;left:8%;width:84%;display:flex;align-items:center;justify-content:space-between;color:#65362a}
.gallery-controls{top:78%}
.gallery-controls button,.package-controls>button{width:36px;height:36px;display:grid;place-items:center;font:26px/1 Lora,serif;background:#fbeaca;border:1px solid #b58c59;border-radius:50%;padding:0;box-shadow:0 2px 5px #593b2520}
.gallery-controls span{font:2.6cqw Manrope,sans-serif;background:#fff0d9;padding:1cqw 2cqw}
.gallery>.scene-cta{bottom:3%;min-height:32px}
.packages>.scene-heading{top:5%;font-size:5.4cqw}
.package-carousel{position:absolute;left:6%;top:17%;width:88%;height:69%;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x}
.package-page{flex:0 0 100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always;padding:0 1px 5px;min-width:0}
.package-paper{height:100%;padding:3cqw 3.5cqw;background:#fff1d9;box-shadow:0 4px 12px #422a1d40;display:flex;flex-direction:column;text-align:left;position:relative;border-top:3px solid #a98143;border-bottom:3px solid #a98143}
.collection-position{font:2.15cqw/1.4 Manrope,sans-serif;color:#79543f;display:block;margin-bottom:1.5cqw}
.package-paper h3{font:5.6cqw/1.12 Lora,serif;color:#642a32;letter-spacing:-.02em;margin:0 0 1.8cqw;text-wrap:balance}
.package-paper .collection-description{font:2.65cqw/1.5 Manrope,sans-serif;color:#684c37;margin:0 0 1.7cqw}
.photo-quantity{display:flex;align-items:center;gap:2.2cqw;padding:1.5cqw 0 2.3cqw;border-bottom:1px solid #bc9a694d}
.photo-quantity strong{font:9cqw/1 Lora,serif;color:#6c2631}
.photo-quantity span{font:2.9cqw/1.4 Manrope,sans-serif;max-width:15ch}
.collection-inclusions{list-style:none;padding:2cqw 0;margin:0;font:2.6cqw/1.5 Manrope,sans-serif;color:#5a3d2c}
.collection-inclusions li{padding:.65cqw 0}
.collection-bottom{margin-top:auto}
.package-paper .collection-price{font:6cqw/1.2 Lora,serif;margin:0 0 2cqw;color:#642a32;display:flex;gap:2cqw;align-items:center}
.collection-price span{font:2.1cqw/1.4 Manrope,sans-serif;max-width:10ch;color:#79543f}
.collection-select{background:#6b2430;border:0;border-radius:2px;color:#fff1d9;padding:2.6cqw 2.5cqw;min-height:34px;width:100%;display:flex;justify-content:space-between;align-items:center;font:2.65cqw/1.4 Manrope,sans-serif}
.collection-select:hover{background:#7f3240}
.package-controls{top:87%;height:36px}
.package-dots{display:flex;gap:2px;align-items:center;justify-content:center}
.package-dots button{background:none;border:0;width:28px;height:34px;padding:0;display:grid;place-items:center}
.package-dots button:before{content:'';width:6px;height:6px;border:1px solid #683d29;border-radius:50%;background:#fff2d8}
.package-dots button[aria-current]:before{background:#6b2430;border-color:#6b2430;width:8px;height:8px}
.swipe-hint{position:absolute;left:0;width:100%;bottom:1%;font:2.1cqw/1.4 Manrope,sans-serif;color:#603728}
.floor-nav{left:13%;width:74%;bottom:6.8%;display:flex;flex-direction:column;gap:0;align-items:center;padding:1.2cqw 0 0}
#floor-caption{font:2.5cqw/1.4 Lora,serif}
.floor-stations{display:flex;justify-content:center;gap:1.7cqw;width:100%}
.floor-nav button{padding:0;width:12%;min-height:30px;display:grid;place-items:center}
.floor-nav button span{font:2.4cqw/1 Lora,serif;width:4.6cqw;height:4.6cqw}
::selection{background:#6b2430;color:#fff1d9}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #1f5e52;outline-offset:2px}
*{scrollbar-color:#a98253 #f4e2c4;scrollbar-width:thin}
@media(max-height:710px){.wall-lettering{top:8%}.wall-lettering h2{font-size:5cqw;margin-bottom:2.5cqw}.wall-lettering p{font-size:2.8cqw;margin-bottom:2.5cqw}.wall-lettering ul{font-size:2.5cqw}.package-carousel{top:15%;height:71%}.package-paper{padding:2.2cqw 3cqw}.package-paper h3{font-size:5cqw;margin-bottom:1.3cqw}.package-paper .collection-description{font-size:2.5cqw;line-height:1.35;margin-bottom:1cqw}.photo-quantity{padding:1cqw 0 1.5cqw}.photo-quantity strong{font-size:8cqw}.collection-inclusions{padding:1.4cqw 0;font-size:2.4cqw;line-height:1.4}.collection-inclusions li{padding:.45cqw 0}.collection-position{font-size:2cqw;margin-bottom:1cqw}.package-paper .collection-price{font-size:5.5cqw;margin-bottom:1.5cqw}.collection-select{font-size:2.5cqw;padding:1.7cqw 2cqw;min-height:30px}.package-controls{top:86%}.swipe-hint{bottom:1%}}
@media(prefers-reduced-motion:reduce){.gallery-rail,.package-carousel{scroll-behavior:auto}}
/* Readable collection typography inside the portrait cabin. */
.collection-position{font-size:clamp(9px,2.15cqw,11px)}
.package-paper .collection-description{font-size:clamp(11px,2.65cqw,13px);line-height:1.4}
.collection-inclusions{font-size:clamp(10.5px,2.6cqw,13px);line-height:1.5}
.photo-quantity span{font-size:clamp(11px,2.9cqw,14px)}
.collection-select{font-size:clamp(11px,2.65cqw,13px)}
.collection-price span{font-size:clamp(9px,2.1cqw,11px)}
.wall-lettering{left:31%;top:8%;width:60%}
.wall-lettering h2{font-size:4.5cqw;margin-bottom:3cqw}
.wall-lettering p{font-size:2.8cqw;margin-bottom:2cqw}
.wall-lettering ul{font-size:2.55cqw;line-height:1.55}
@media(max-height:710px){.package-carousel{top:15%;height:71%}.package-paper{padding:2.1cqw 2.7cqw}.collection-inclusions{padding:1.1cqw 0;line-height:1.4}.package-paper .collection-description{margin-bottom:.8cqw}.photo-quantity strong{font-size:8cqw}.wall-lettering h2{font-size:4.3cqw}.wall-lettering p{font-size:2.7cqw}.wall-lettering ul{font-size:2.4cqw}}
/* Approved illustrated rooms. Live type is fitted to the painted paper and plaques. */
.world-welcome{background-image:url('assets/lounge-welcome.webp')}
.world-offer{background-image:url('assets/lounge-experience-v2.webp')}
.world-gallery{background-image:url('assets/lounge-gallery.webp')}
.world-packages{background-image:url('assets/lounge-packages.webp')}
.world-booking{background-image:url('assets/lounge-booking.webp')}
.world-floor{background-size:100% 100%;background-position:center;background-repeat:no-repeat}
.room.welcome,.room.offer,.room.gallery,.room.packages,.room.booking{padding:0;background:transparent;display:block}
.window:after{display:none}
.scene-hotspot{position:absolute;display:block;border:0;background:transparent;padding:0;margin:0;color:transparent;text-decoration:none;box-shadow:none;border-radius:2px;min-height:0;z-index:2;cursor:pointer;touch-action:manipulation}
.scene-hotspot:hover,.scene-hotspot:active{background:transparent;transform:none}
.scene-hotspot:focus-visible{outline:2px solid #1a554b;outline-offset:2px;background:#fff8dc12}
.welcome-step{left:30%;top:66.9%;width:31%;height:5.9%}
.offer-step{left:71%;top:55.4%;width:25%;height:6.4%}
.gallery-step{left:65.5%;top:63.4%;width:26.5%;height:6.6%}
.camera-trigger{left:51%;top:30%;width:19%;height:10%}
.room-atmosphere{left:-26.8%;top:-15.603%;width:153.139%;height:141.844%}
.camera-flash,.camera-flash-spill{left:55%;top:34%}
.gallery-rail{left:19.1%;top:38.6%;width:61.3%;height:20.4%;border-radius:10% / 15%;background:#251810;box-shadow:inset 0 0 8px #100a06;scroll-snap-type:x mandatory;outline-offset:4px}
.gallery-photo{height:100%;width:100%;padding:0;margin:0;background:#251810;box-shadow:none;border:0;display:block;scroll-snap-align:start}
.gallery-photo img{width:100%;height:100%;object-fit:contain;background:#251810;filter:sepia(.08) saturate(.9)}


.package-carousel{left:29%;top:31.2%;width:46.3%;height:42%;overflow-y:hidden;scrollbar-width:none}
.package-page{width:100%;height:100%;padding:0;scroll-snap-align:start;scroll-snap-stop:always}
.package-paper{height:100%;padding:0 1cqw;display:flex;flex-direction:column;justify-content:space-between;text-align:center;background:transparent;border:0;box-shadow:none;color:#4d291e}
.package-paper h3{font-family:'Berkshire Swash',Lora,serif;font-size:5.2cqw;line-height:1.05;letter-spacing:0;color:#762b30;margin:0 0 1cqw;text-wrap:balance}
.package-paper .collection-description{font:2.55cqw/1.25 Lora,serif;color:#4d291e;margin:0 0 1cqw;text-wrap:balance}
.photo-quantity{border:0;display:flex;align-items:center;justify-content:center;gap:1.2cqw;padding:.7cqw 0 1cqw}
.photo-quantity strong{font:9.2cqw/1 Lora,serif;color:#762b30}
.photo-quantity span{font:2.9cqw/1.15 Lora,serif;color:#762b30}
.collection-inclusions{list-style:none;padding:.4cqw 0;margin:0;font:2.5cqw/1.25 Lora,serif;color:#4d291e}
.collection-inclusions li{padding:1cqw 0;border-bottom:1px solid #a4763c44}
.collection-inclusions li:last-child{border:0}
.package-paper .collection-price{font:7.2cqw/1.1 Lora,serif;display:block;color:#762b30;margin:1.3cqw 0 0;padding:0}
.package-paper.fineart h3{font-size:4.5cqw;line-height:1.06}
.package-paper.fineart .collection-description{font-size:2.45cqw}
.package-paper.fineart .collection-inclusions{font-size:2.35cqw}
.package-paper.fineart .collection-inclusions li{padding:.65cqw 0}
.package-prev{left:11%;top:46%;width:15%;height:8%;border-radius:50%}
.package-next{left:76.5%;top:46%;width:15%;height:8%;border-radius:50%}
.choose-plaque{position:absolute;left:33.2%;top:76.5%;width:36.5%;height:5.6%;border:0;background:transparent;box-shadow:none;color:#3b220c;text-align:center;display:grid;place-items:center;padding:0 1cqw;font:2.6cqw/1.2 Lora,serif;cursor:pointer}
.choose-plaque:hover{background:#fff5c31a}.choose-plaque:active{transform:translateY(1px)}
.booking-poster{position:absolute;left:31.7%;top:15.8%;width:42.7%;height:34.1%;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center;color:#4d291e;text-align:center}
.booking-poster h2{font:4.6cqw/1.05 'Berkshire Swash',Lora,serif;letter-spacing:0;margin:0;color:#762b30;text-shadow:none}
#chosen-name{font:3.4cqw/1.15 Lora,serif;color:#365440;text-wrap:balance}
#chosen-details{font:2.4cqw/1.3 Lora,serif}
#chosen-price{font:6.6cqw/1.1 Lora,serif;color:#762b30}
.booking-poster .deposit-line{font:2.65cqw/1.25 Lora,serif;color:#762b30;margin:0}
.deposit-line small{font:2cqw/1.25 Lora,serif;color:#4d291e;display:block;margin-top:.5cqw}
#chosen-dates{font:2.2cqw/1.25 Lora,serif;color:#4d291e;margin:0}
.booking-whatsapp{left:33.5%;top:60.7%;width:48%;height:5.8%}
.booking-info{left:82%;top:18%;width:17%;height:13%}
.floor-nav{background:#f7e5c7dd}
@media(max-height:710px){.package-paper h3{font-size:5cqw}.package-paper .collection-description{font-size:2.45cqw}.photo-quantity strong{font-size:8.5cqw}.collection-inclusions{font-size:2.4cqw;line-height:1.2}.collection-inclusions li{padding:.7cqw 0}.package-paper .collection-price{font-size:6.8cqw}.package-paper.fineart .collection-inclusions{font-size:2.2cqw}.booking-poster h2{font-size:4.25cqw}.booking-poster{justify-content:space-between}.deposit-line small{font-size:1.85cqw}#chosen-dates{font-size:2.05cqw}}
/* Keep every selected collection inside the reception poster on short phones. */
.booking-poster{top:15.1%;height:34.9%;justify-content:space-between}
.booking-poster h2{font-size:3.85cqw;line-height:1.04}
#chosen-name{font-size:3.1cqw;line-height:1.06}
#chosen-details{font-size:2.3cqw;line-height:1.2}
#chosen-price{font-size:6cqw;line-height:1.05}
.booking-poster .deposit-line{font-size:2.35cqw;line-height:1.2}
.deposit-line small{font-size:1.85cqw;line-height:1.2}
#chosen-dates{font-size:2.05cqw;line-height:1.2}
.package-carousel{height:42.7%}
.choose-plaque{font-size:2.45cqw;white-space:nowrap;padding:0}
@media(max-height:710px){.booking-poster h2{font-size:3.85cqw}.booking-poster .deposit-line{font-size:2.25cqw}.deposit-line small{font-size:1.8cqw}#chosen-dates{font-size:1.95cqw}}

/* The dial pointer follows the measured marks, including their elliptical radius. */
body[data-ride-phase="moving"] .dial-needle{transition:transform 700ms cubic-bezier(.77,0,.175,1),height 700ms cubic-bezier(.77,0,.175,1)}
@media(prefers-reduced-motion:reduce){body[data-ride-phase="moving"] .dial-needle{transition:none}}

/* Selected indicator 3: a brass plate with five illuminated floor buttons. */
.floor-indicator.floor-lights{left:30.5%;top:3.95%;width:39%;height:5.9%;display:flex;align-items:center;padding:.85cqw;border:1px solid #815422;border-radius:2.4cqw;background:linear-gradient(135deg,#f4d68c 0%,#be8839 24%,#f2d49a 49%,#aa742e 74%,#ddbb78 100%);box-shadow:inset 0 1px 1px #fff0bd,inset 0 -1px 1px #74502c,0 2px 3px #3f281e55;pointer-events:auto;overflow:hidden}
.floor-lamps{width:100%;height:100%;display:flex;align-items:center;justify-content:space-evenly;gap:.5cqw;padding:0 .4cqw;border:1px solid #e6c381;border-radius:1.8cqw;background:#65422d;box-shadow:inset 0 1px 3px #38231880}
.floor-lamp{width:17.3%;aspect-ratio:1;border:1px solid #a57334;border-radius:50%;display:grid;place-items:center;padding:.4cqw;background:linear-gradient(140deg,#f4dca1,#b98339 57%,#ebcb82);color:#64432c;box-shadow:0 1px 2px #32201455;cursor:pointer;flex-shrink:0;transition:filter 180ms ease}
.floor-lamp span{width:100%;height:100%;display:grid;place-items:center;background:#f3deb1;border:1px solid #c19a5c;border-radius:50%;font:2.5cqw/1 Lora,Georgia,serif;transition:background 220ms ease,color 220ms ease,box-shadow 220ms ease}
.floor-lamp[aria-current] span{background:#812d39;color:#fff1cd;border-color:#c59150;box-shadow:inset 0 0 5px #cc744f66}
.floor-lamp:hover{filter:brightness(1.08)}.floor-lamp:focus-visible{outline:2px solid #fff3ce;outline-offset:1px}.floor-lamp:active{filter:brightness(.94)}
@media(prefers-reduced-motion:reduce){.floor-lamp,.floor-lamp span{transition:none}}


/* Media extends under the original illustrated bezel; its opening hides every edge. */
.gallery-rail{left:18.44%;top:37.84%;width:63.47%;height:21.63%;border-radius:0;background:#17110d;box-shadow:none;z-index:0;isolation:isolate}
.gallery-photo{position:relative;background:#17110d}
.gallery-photo img,.gallery-photo video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:none;background:#17110d}
.tv-bezel{position:absolute;left:-26.8%;top:-15.603%;width:153.139%;height:141.844%;z-index:1;pointer-events:none}


/* Faded analogue footage, under the painted TV glass. Original video stays silent. */
.gallery-film{overflow:hidden;isolation:isolate}
.gallery-photo.gallery-film video{filter:sepia(.32) saturate(.64) contrast(.88) brightness(1.06) blur(.18px)}
.gallery-film:before,.gallery-film:after{content:'';position:absolute;pointer-events:none;z-index:1}
.gallery-film:before{inset:0;background:repeating-linear-gradient(0deg,#291b1200 0px,#291b1200 2px,#291b122e 3px,#f8dfb10a 4px),radial-gradient(ellipse at 50% 48%,transparent 40%,#25130966 100%);box-shadow:inset 0 0 12px #291b1244}
.gallery-film:after{inset:-10%;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%3E%3Cfilter%20id%3D%22n%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%22.8%22%20numOctaves%3D%223%22%20stitchTiles%3D%22stitch%22%2F%3E%3CfeColorMatrix%20type%3D%22saturate%22%20values%3D%220%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20opacity%3D%22.65%22%20filter%3D%22url(%23n)%22%2F%3E%3C%2Fsvg%3E");background-repeat:repeat;opacity:.11;mix-blend-mode:soft-light;animation:tv-grain 1s steps(1,end) infinite,tv-flicker 4s linear infinite;animation-play-state:paused}
body[data-floor="2"][data-ride-phase="idle"]:not(.page-hidden) .gallery-film:after{animation-play-state:running}
@keyframes tv-grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}}
@keyframes tv-flicker{0%,100%{opacity:.1}20%{opacity:.14}21%{opacity:.09}48%{opacity:.12}49%{opacity:.16}50%{opacity:.1}78%{opacity:.13}}
@media(prefers-reduced-motion:reduce){body .gallery-film:after{animation:none!important;opacity:.1;transform:none}}

/* One silent film fills the television; it is no longer a photo carousel. */
.gallery-rail{overflow:hidden;scroll-snap-type:none;touch-action:auto}

/* Light and snow stay attached to the illustrated TV room. */
.scene-ambience{position:absolute;left:-26.8%;top:-15.603%;width:153.139%;height:141.844%;pointer-events:none;z-index:1;visibility:hidden}
body[data-floor="1"][data-ride-phase="idle"] .offer .scene-ambience,body[data-floor="2"][data-ride-phase="idle"] .gallery .scene-ambience{visibility:visible}
.lounge-light{position:absolute;width:3.3%;height:1.85%;border-radius:50%;background:radial-gradient(circle,#fffbe3 0 5%,#ffebae9c 12%,#ffc66850 30%,#ffc66800 70%);opacity:.25;transform:translate(-50%,-50%);animation:lounge-twinkle 4s ease-in-out infinite both}
.lounge-candle{position:absolute;width:3.8%;height:2.6%;border-radius:50%;background:radial-gradient(ellipse,#fff5ca 0 4%,#ffdc909c 12%,#ffb8434a 32%,#ffb84300 70%);transform:translate(-50%,-50%);transform-origin:50% 75%;animation:lounge-flame 2s linear infinite both}
.lounge-candle:after{content:'';position:absolute;left:46%;top:36%;width:9%;height:25%;border-radius:70% 30% 55% 50%;background:#fff6c1;box-shadow:0 0 4px #ffce71}
.lounge-snow{container-type:size;position:absolute;left:17.65%;top:13.55%;width:8.9%;height:23.2%;overflow:hidden;clip-path:polygon(0 0,45% 4%,85% 12%,98% 23%,100% 100%,0 100%)}
.lounge-snow i{position:absolute;top:-5%;width:3%;height:.65%;border-radius:50%;background:#fff9ee;opacity:0;animation:lounge-snowfall 8s linear infinite both}
.scene-ambience *{animation-play-state:paused}
body[data-floor="1"][data-ride-phase="idle"]:not(.page-hidden) .offer .scene-ambience *,body[data-floor="2"][data-ride-phase="idle"]:not(.page-hidden) .gallery .scene-ambience *{animation-play-state:running}
@keyframes lounge-twinkle{0%,100%{opacity:.2;transform:translate(-50%,-50%) scale(.85)}48%{opacity:.75;transform:translate(-50%,-50%) scale(1.12)}72%{opacity:.4}}
@keyframes lounge-flame{0%,100%{opacity:.45;transform:translate(-50%,-50%) scale(.95,1)}20%{opacity:.64;transform:translate(-50%,-50%) scale(1.05,.92)}48%{opacity:.38;transform:translate(-50%,-50%) scale(.92,1.08)}72%{opacity:.61;transform:translate(-50%,-50%) scale(1.04,1.03)}}
@keyframes lounge-snowfall{0%{opacity:0;transform:translate(0,0)}12%{opacity:.75}85%{opacity:.6}100%{opacity:0;transform:translate(8px,105cqh)}}
@media(prefers-reduced-motion:reduce){.scene-ambience *{animation:none!important}.lounge-snow{display:none}.lounge-light{opacity:.3}.lounge-candle{opacity:.45}}


/* Welcome snow now fills the current arched window; glows follow the new garlands. */
.welcome .window-snow{left:25.7%;top:16%;width:13.9%;height:23.4%;container-type:size;clip-path:polygon(0 0,45% 0,72% 6%,95% 17%,100% 28%,100% 100%,0 100%)}
.welcome .snowflake{width:.35cqw;height:.35cqw;animation-name:welcome-snowfall}
@keyframes welcome-snowfall{0%{opacity:0;transform:translate(0,0)}12%{opacity:.7}85%{opacity:.55}100%{opacity:0;transform:translate(6px,110cqh)}}
.camera-flash,.camera-flash-spill{left:55%;top:32.9%}

/* Keep approved inclusions and prices inside the illustrated package sign. */
.package-paper .collection-description{display:none}.package-paper:not(.fineart) .collection-inclusions li{padding:.65cqw 0}
