/* The real room is the opening scene. Keep the original type and brass/plum palette. */
.hero{height:100svh;min-height:900px;max-height:1080px;isolation:isolate}
.hero .hero-image{object-position:center 54%;animation:roomReveal 1.9s var(--ease) both!important}
.hero .hero-shade{background:linear-gradient(90deg,#130f17e8 0%,#17121abc 32%,#17121a36 71%,#17121a20),linear-gradient(0deg,#151216ee 0%,transparent 37%,#15121688 100%)}
.hero-content{padding-top:clamp(155px,18vh,210px);padding-bottom:195px;max-width:860px}
.hero h1{font-size:clamp(48px,5.5vw,83px);line-height:1.44;letter-spacing:.035em;text-shadow:0 4px 24px #08070ca0}
.hero .hero-line{animation:openingWords 1s var(--ease) both!important}
.hero .hero-line:nth-child(2){animation-delay:.15s!important}.hero .hero-line:nth-child(3){animation-delay:.3s!important}
.hero-copy{font-size:15px;letter-spacing:.08em;margin:23px 0}.hero .hero-content>.btn{box-shadow:0 5px 0 #725333,0 12px 45px #160f1caa}
.hero-invitation{position:absolute;right:6vw;bottom:220px;text-align:right;text-shadow:0 2px 18px #000;max-width:310px}
.hero-invitation p{font:500 30px/1.8 var(--serif);letter-spacing:.08em;margin:16px 0;color:#fff4e0}.hero-invitation>span:last-child{font-size:10px;letter-spacing:.04em;background:#1b161a88;padding:6px 10px}
.invitation-rule{display:inline-block;width:60px;height:1px;background:#ead1ac}
.hero-night-choices{position:absolute;left:8%;right:8%;bottom:70px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #f1d6b577;border-bottom:1px solid #f1d6b544;background:linear-gradient(105deg,#281c23a8,#31222890);backdrop-filter:blur(12px)}
.hero-night-choices a{min-height:76px;display:flex;align-items:center;gap:17px;padding:16px 24px;font:500 18px var(--serif);position:relative}.hero-night-choices a+a{border-left:1px solid #d8b78755}.hero-night-choices a>span{font:italic 15px var(--latin);color:var(--gold)}.hero-night-choices a>svg{margin-left:auto;width:20px}.hero-night-choices a:hover{background:linear-gradient(100deg,#d8b78733,#9a5e4833);box-shadow:inset 0 1px #f1d1a8}
.hero-foot{height:55px;padding:12px 4vw}.hero-foot .scroll-link{display:none}
.page-directory{display:grid;grid-template-columns:repeat(3,1fr);max-width:1360px;margin:0 auto;padding:30px 6vw;gap:24px}.page-directory a{font-size:13px;border-bottom:1px solid #bc97615e;position:relative;padding:8px 0 13px}.page-directory small{display:block;font-size:9px;letter-spacing:.18em;color:var(--gold);margin-bottom:3px}.page-directory a>span{position:absolute;right:0;bottom:13px;color:var(--gold)}.page-directory a:hover{color:#f9d29d}
.footer-directory{background:linear-gradient(125deg,#2b202a,#151216);border-top:1px solid var(--line)}
.story{padding-top:48px}.section-more{margin-top:25px}.faq>.section-more{grid-column:2}.night-strip{flex-wrap:wrap}
.scene-panel{box-shadow:0 24px 65px #0007,0 0 0 5px #b2935c09}
.night-complete-toast{position:fixed;left:50%;top:22%;width:min(88vw,470px);transform:translateX(-50%);padding:24px 26px;border:1px solid #edce95;background:radial-gradient(ellipse at top,#795b3d,#30212d 75%);box-shadow:0 10px 70px #0009,0 0 35px #e5b96c44;color:#ffead0;font:500 20px/1.8 var(--serif);text-align:center;animation:nightToast 2.25s var(--ease) both;z-index:5}
.subpage-hero{min-height:510px;position:relative;isolation:isolate;display:flex;align-items:flex-end;padding:150px max(6.5vw,24px) 60px;overflow:hidden}.subpage-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;animation:roomReveal 1.9s var(--ease)}.subpage-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#151216ed,#15121655),linear-gradient(0deg,#151216,transparent 80%);z-index:-1}.subpage-hero h1{font-size:clamp(31px,4vw,58px);line-height:1.6;margin:16px 0}.subpage-hero p:last-child{font-size:14px;color:#e2d4c9;max-width:45em}.breadcrumb{display:inline-block;font-size:11px;margin-bottom:25px;color:#dec39c}.subpage-hero .eyebrow{margin:0}.subpage .voices,.subpage .faq{padding-top:50px;padding-bottom:60px}.subpage .voice-image{height:235px}.subpage .voice-detail blockquote{font-size:14px}.subpage-cta{text-align:center;padding:55px 24px 75px;background:radial-gradient(ellipse at top,#60453733,transparent 75%),linear-gradient(130deg,#251d25,#171319)}.subpage-cta h2{font-size:34px}.subpage-cta>p:not(.eyebrow){font-size:13px;margin:20px auto;max-width:35em}.subpage-cta>.btn{display:flex;width:max-content;max-width:100%;margin:24px auto}.subpage-cta>.text-link{font-size:13px}
@keyframes roomReveal{from{transform:scale(1.10);filter:brightness(.7)}to{transform:scale(1);filter:brightness(1)}}
@keyframes openingWords{from{opacity:0;transform:translateY(30px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes nightToast{0%{opacity:0;transform:translate(-50%,20px) scale(.94)}18%,78%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-15px)}}
@media(max-width:1050px){.hero-invitation{right:5vw;bottom:205px}.hero-invitation p{font-size:23px}.hero-night-choices{left:5%;right:5%}.hero-night-choices a{font-size:16px;padding:16px}.hero-content{max-width:700px}.hero h1{font-size:60px}}
@media(max-width:850px){.hero-invitation{display:none}.hero{min-height:850px}.hero h1{font-size:54px}.hero-content{padding-top:150px}.hero-night-choices a{font-size:14px;gap:10px}.hero-night-choices a>svg{width:17px}}
@media(max-width:600px){
 .hero{height:auto;min-height:720px;max-height:none;padding-bottom:0;display:flex;flex-direction:column;justify-content:space-between}
 .hero .hero-image{object-position:59% 50%}.hero .hero-shade{background:linear-gradient(90deg,#15121ad9,#15121a55 75%),linear-gradient(0deg,#151216 0%,#15121630 45%,#151216a8 100%)}
 .hero-content{width:100%;max-width:none;padding:124px 24px 25px}.hero h1{font-size:clamp(37px,10.4vw,55px);line-height:1.5;letter-spacing:.01em}.hero-location{font-size:10px;max-width:32em;line-height:1.8;margin-bottom:22px}.hero-copy{font-size:13px;margin:20px 0 24px}.hero-price-link{margin-left:15px;margin-top:0;font-size:11px}.hero-content>.btn{font-size:12px;min-height:52px;padding:14px 18px;gap:18px}
 .hero-night-choices{position:relative;left:auto;right:auto;bottom:auto;margin:0 18px;grid-template-columns:repeat(3,minmax(0,1fr));backdrop-filter:blur(8px)}.hero-night-choices a{font-family:var(--sans);font-size:10px;line-height:1.7;min-height:77px;padding:10px 5px;display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.hero-night-choices a>span{display:block;width:100%;text-align:center;font-size:13px}.hero-night-choices a>svg{display:none}
 .hero-foot{position:static;height:auto;padding:17px 22px;min-height:48px}.hero-note{font-size:8px!important}.hero-note:last-child{font-size:7px!important;letter-spacing:.08em}
 .page-directory{padding:18px 20px;gap:15px}.page-directory a{font-size:10px;padding-bottom:10px}.page-directory small{font-size:8px;margin-bottom:5px}.page-directory a>span{display:none}
 .section{padding-top:44px;padding-bottom:44px}.story{padding-top:24px}.section-top{margin-bottom:25px}.story.section{padding-bottom:32px}.scenes{padding-top:36px}.section-heading{gap:18px;margin-bottom:24px}.scene-tabs{gap:4px;margin-bottom:15px}.scene-tabs>button{min-height:66px;font-size:11px}
 .mood-live{position:relative;top:auto;min-height:86px}.mood-live-copy{min-height:65px}#moodLiveText,.mood-live.complete #moodLiveText{min-height:3.3em}.mood-console .stage{height:100px}.mood-option{min-height:81px}.mood-console{scroll-margin-top:90px}
 .menu-section .section-top{margin-bottom:23px}.menu-image img{height:270px}.menu-grid{gap:28px}.visit-steps{margin-top:25px}.voices{padding-top:28px}.voice-image{height:190px}.gallery{padding-top:24px}.faq{padding-top:24px}.faq>.section-more{grid-column:auto}.access{padding-top:30px}.message.section{margin-bottom:15px}.closing-content{padding-top:65px;padding-bottom:70px}
 .subpage-hero{min-height:410px;padding:125px 24px 40px}.subpage-hero h1{font-size:31px;max-width:11em}.subpage-hero p:last-child{font-size:12px;line-height:1.9}.breadcrumb{margin-bottom:18px}.subpage .voices,.subpage .faq{padding-top:32px;padding-bottom:35px}.subpage .voice-image{height:200px}.subpage-cta{padding:38px 23px 45px}.subpage-cta h2{font-size:28px}.subpage-cta>.btn{font-size:12px;padding:15px 20px}.night-complete-toast{font-size:17px;padding:20px}
}
@media(max-width:370px){.hero-content{padding-left:20px;padding-right:20px}.hero h1{font-size:36px}.hero-price-link{margin-left:9px}.hero-content>.btn{font-size:11px;padding:13px 14px}.hero-night-choices{margin:0 14px}.page-directory{gap:12px}.page-directory a{font-size:9px}}
@media(prefers-reduced-motion:reduce){.hero .hero-image,.hero .hero-line,.subpage-hero>img{animation:none!important;filter:none;transform:none;opacity:1}.night-complete-toast{animation:none}.hero-night-choices{backdrop-filter:none}}

/* Round two: content-driven hero rows prevent short-screen overlap. */
.hero{display:grid;grid-template-rows:1fr auto auto;height:auto;min-height:100svh;max-height:none}
.hero-content{width:min(1060px,100%);max-width:none;padding-right:32px;padding-bottom:52px}
.hero-night-choices{position:relative;left:auto;right:auto;bottom:auto;margin:0 6vw}
.hero-foot{position:relative;inset:auto;height:auto;min-height:60px}
.hero-invitation{bottom:225px;max-width:270px}.hero-invitation p{font-size:26px}
.photo-view-button{display:inline-flex;align-items:center;gap:12px;background:linear-gradient(115deg,#5e493777,#211a2399);border:1px solid #e4c7a160;border-bottom:3px solid #6a4c34;color:#f2d7af;min-height:44px;padding:9px 15px;font:12px/1.5 var(--sans);box-shadow:0 3px 0 #0c080d;backdrop-filter:blur(7px)}
.photo-view-button>span{font-size:21px}.photo-view-button:hover{border-color:#e8c48a;background:linear-gradient(115deg,#8b644b99,#30212ca9)}
.scene-photo-open{position:absolute;right:18px;top:18px;z-index:4}.scene-overlay{pointer-events:none}
img[data-enlarge]{cursor:zoom-in;touch-action:manipulation;transition:transform .3s var(--ease),filter .3s,box-shadow .3s;border-radius:1px}
img[data-enlarge]:hover{filter:brightness(1.08);box-shadow:inset 0 0 0 2px #dec091,0 8px 25px #0005}
img[data-enlarge]:focus-visible{outline:3px solid #f3cf93;outline-offset:4px}
img[data-enlarge].is-held{transform:scale(.97)!important;filter:brightness(.88);animation:none!important}
img[data-enlarge].is-pressed{animation:photoRebound .35s var(--ease)!important}
img[data-enlarge].control-ready{animation:photoReveal .8s var(--ease) backwards}
.gallery-dialog{overflow-x:hidden;max-height:94svh;border:1px solid #d9b77d99;background:radial-gradient(ellipse at top,#63453244,transparent 60%),#18131c}
.gallery-dialog[open]{animation:galleryArrival .45s var(--ease)}
.gallery-dialog[open]::backdrop{background:#0a0711ed;backdrop-filter:blur(12px)}
.gallery-dialog .photo-changing{animation:photoChange .65s var(--ease)}
.gallery-controls{display:grid;grid-template-columns:50px minmax(0,1fr) 50px;min-height:60px}.gallery-controls>p{text-align:center;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.gallery-controls>button{min-width:44px;min-height:44px;background:linear-gradient(120deg,#6c503844,#3d2b3a66);border-bottom:3px solid #765336}
.subpage-photo-open{position:absolute;right:5vw;bottom:35px;font-size:11px}.subpage-hero>div{max-width:76%}
.voice-card{position:relative}.voice-card:before{content:'VOICE';position:absolute;top:14px;left:14px;z-index:2;font-size:9px;letter-spacing:.18em;padding:4px 9px;background:#1b131ee0;color:#f0cfa0;border:1px solid #c6a16a55;pointer-events:none}
.voice-image{filter:brightness(.94)}.voice-excerpt{letter-spacing:.025em}.message-more[open]>div,.voice-detail[open]>blockquote,.faq details[open]>p{animation:answerReveal .35s var(--ease)}
.btn:focus-visible,.photo-view-button:focus-visible{outline:3px solid #fff0c8;outline-offset:5px}
@keyframes photoReveal{from{filter:brightness(.7);clip-path:inset(4% 0 4%);transform:scale(.985)}to{filter:brightness(1);clip-path:inset(0);transform:none}}
@keyframes photoRebound{0%{transform:scale(.97)}55%{transform:scale(1.015)}100%{transform:scale(1)}}
@keyframes photoChange{from{opacity:.35;transform:scale(.97);filter:brightness(.7)}to{opacity:1;transform:scale(1);filter:brightness(1)}}
@keyframes galleryArrival{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}
@keyframes answerReveal{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@media(max-width:1150px){.hero-invitation{display:none}}
@media(max-width:600px){
 .hero{display:grid;min-height:0;grid-template-rows:auto auto auto}.hero-content{width:100%;padding:115px 24px 30px}.hero h1{font-size:clamp(36px,10vw,52px)}.hero-night-choices{margin:0 18px}.hero-foot{min-height:67px;padding:12px 20px;gap:8px}.hero-foot .photo-view-button{font-size:10px;min-height:44px;padding:8px 10px;gap:7px}.hero-note:first-child{max-width:42%;line-height:1.8;white-space:normal}.photo-view-button>span{font-size:17px}
 .mood-live{position:sticky;top:76px;min-height:78px;padding-top:8px;padding-bottom:8px;z-index:7}.mood-live-copy{min-height:58px}.mood-live>img{height:48px}.mood-live-meter{margin-bottom:4px}#moodLiveText,.mood-live.complete #moodLiveText{font-size:11px;line-height:1.6;min-height:3.2em}.mood-option{scroll-margin-top:165px}.mood-result{scroll-margin-top:90px}
 .scene-photo-open{top:12px;right:12px;font-size:10px;padding:8px 10px;min-height:44px}.scene-copy{padding-top:170px}.scene-tabs>button{min-height:68px}.scene-tabs>button>svg{width:16px}
 .subpage-hero>div{max-width:100%}.subpage-hero{padding-bottom:93px}.subpage-photo-open{bottom:28px;right:24px}.gallery-dialog>img{height:min(62svh,580px)}.gallery-controls{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px}.gallery-controls>p{font-size:10px}.gallery-controls>button{width:44px;height:44px}
 .page-directory a{min-height:54px}.section-more{min-height:44px}.copy-address{min-height:44px}.subpage .faq .section-heading{margin-bottom:20px}
 .mobile-dock{padding-bottom:env(safe-area-inset-bottom,0px)}footer{padding-bottom:calc(95px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:370px){.hero-content{padding-left:20px;padding-right:20px}.hero h1{font-size:34px}.hero-foot{padding-left:16px;padding-right:16px}.hero-note:first-child{font-size:8px!important}.hero-foot .photo-view-button{font-size:9px}.scene-copy{padding-top:160px}}
@media(prefers-reduced-motion:reduce){img[data-enlarge],img[data-enlarge].control-ready,img[data-enlarge].is-pressed,.gallery-dialog[open],.gallery-dialog .photo-changing,.message-more[open]>div,.voice-detail[open]>blockquote,.faq details[open]>p{animation:none!important;transition:none!important;transform:none!important;filter:none}.gallery-dialog[open]::backdrop{backdrop-filter:none}}

/* A photographic visit guide, generated from the visitor's own choices. */
.journey-preview{margin-top:22px;padding-top:18px;border-top:1px dashed #c8a76d66}.journey-preview[hidden]{display:none}.journey-heading{font-family:var(--serif);font-size:18px;color:#f0d5a7;margin:0 0 14px}.journey-preview ol{list-style:none;padding:0;margin:0;display:grid;gap:12px}.journey-preview li{display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px;align-items:center}.journey-photo{padding:0;width:84px;height:65px;min-height:44px;border:1px solid #b08a5680;border-radius:3px;overflow:hidden;background:linear-gradient(140deg,#715240,#211922);box-shadow:0 3px 0 #110c13;cursor:zoom-in}.journey-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}.journey-photo:hover img{transform:scale(1.07)}.journey-photo:focus-visible{outline:2px solid #ffe4ad;outline-offset:4px}.journey-preview li>div{min-width:0}.journey-preview li span{font-size:10px;letter-spacing:.1em;color:#c0a072;margin-right:9px}.journey-preview li strong{font-size:14px;font-weight:500}.journey-preview li p{font-size:12px;line-height:1.7;color:#dccdc3;margin:4px 0 0}.journey-price{display:flex;flex-wrap:wrap;gap:6px 14px;padding:14px 0 4px;margin-top:13px;border-top:1px solid #c0a07230;font-size:12px}.journey-price>span:first-child{color:#c8ab88}.journey-price b{font-size:14px;font-weight:500}.journey-note{font-size:11px!important;color:#cbb9ad;line-height:1.8;margin:5px 0 0!important}
.booking-guide{margin:20px 0;padding:19px 20px;background:radial-gradient(ellipse at top left,#97643a28,transparent 80%),linear-gradient(135deg,#372630,#211922);border:1px solid #b18d5f55;border-radius:4px;text-align:left}.booking-guide-label{font-size:11px;letter-spacing:.08em;color:#dcc29a;margin:0 0 10px}.booking-guide blockquote{margin:0;font-family:var(--serif);font-size:17px;line-height:1.9;color:#fff2df}.booking-choices{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.booking-choices:empty{display:none}.booking-choices span{font-size:10px;padding:3px 7px;border:1px solid #b38d5f44;border-radius:20px;color:#dec8af}.booking-price{display:flex;flex-wrap:wrap;gap:5px 12px;align-items:baseline;margin-top:15px;padding-top:12px;border-top:1px solid #b18d5f44}.booking-price>span{font-size:10px;color:#d2b895}.booking-price b{font-size:13px;font-weight:500}.booking-price-note{font-size:11px;line-height:1.8;color:#cbb9ad;margin:7px 0 0}.booking-dialog{overscroll-behavior:contain}.booking-dialog>h2{margin-bottom:12px}.booking-dialog>#bookingContext{font-size:13px;line-height:1.8;margin-bottom:0}.booking-dialog .phone-card{margin-top:18px}
.faq-quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.faq-quick button{min-height:44px;padding:9px 15px;border-radius:24px;border:1px solid #b3936777;border-bottom:3px solid #463029;background:linear-gradient(120deg,#624735,#33252b);color:#ffe6c2;font-size:12px;box-shadow:0 2px 6px #0003;cursor:pointer}.faq-quick button:focus-visible{outline:2px solid #ffe4ad;outline-offset:3px}.faq-list>details{scroll-margin-top:105px}.photo-load-status:empty{display:none}.photo-load-status{padding:12px 20px;margin:0;font-size:13px;line-height:1.8;color:#ffe5bf}
@media(max-width:600px){.journey-preview{margin-top:17px;padding-top:15px}.journey-preview li{grid-template-columns:66px minmax(0,1fr);gap:11px}.journey-photo{width:66px;height:57px}.journey-preview li strong{font-size:13px}.journey-preview li p{font-size:11px}.journey-price{gap:5px 12px}.journey-price>span:first-child{width:100%}.booking-dialog{padding:43px 20px 25px}.booking-guide{padding:16px;margin:16px 0}.booking-guide blockquote{font-size:16px}.booking-dialog .phone-card{padding:16px 12px;gap:10px}.booking-dialog .phone-card strong{font-size:clamp(23px,7.4vw,31px)}.faq-quick{gap:7px}.faq-quick button{padding:8px 12px;font-size:11px}}
@media(max-height:650px) and (min-width:851px){.scene-panel{position:relative;top:auto}}
@media(max-height:500px){.mood-live{position:relative;top:auto}}
@media(prefers-reduced-motion:reduce){.journey-photo img{transition:none!important;transform:none!important}}
