/* Fixed cinematic stage. Native document scrolling controls the camera only. */
#experience-root { display:none; }
html.exp-ready { scrollbar-width:none; scroll-behavior:auto; }
html.exp-ready::-webkit-scrollbar { display:none; }
html.exp-ready body { overflow-x:hidden; }
.exp-ready #site-content { min-height:1350svh; isolation:auto; }
.exp-ready #site-content > .header,.exp-ready #site-content > .cinematic-backdrop,.exp-ready #site-content > .footer,.exp-ready #site-content > .mobile-booking { display:none; }
.exp-ready #experience-root { display:block; position:fixed; inset:0; height:100dvh; overflow:hidden; background:#10170d; z-index:5; }
.exp-world,.world-camera,.world-vignette,.world-fog,.world-branches,.world-grain,.exp-panels { position:absolute; inset:0; pointer-events:none; }
.exp-world { perspective:1100px; }
.world-camera { inset:-5%; transform-style:preserve-3d; }
.world-photo { position:absolute; width:100%; height:100%; object-fit:cover; max-width:none; object-position:72% center; opacity:0; will-change:transform,opacity; filter:saturate(.8) contrast(1.07); }
.world-photo:first-child { opacity:1; }
.world-vignette { z-index:3; background:linear-gradient(90deg,#091109e8 0%,#10170aa8 32%,#08100720 80%),linear-gradient(0deg,#081008db 0%,transparent 35%,#07100740 78%,#070e08ab 100%); }
.world-fog { z-index:4; opacity:.35; background:radial-gradient(ellipse at 65% 90%,#adb59e5c,transparent 56%); mix-blend-mode:screen; will-change:transform; }
.fog-near { inset:25% -30% -15%; opacity:.32; filter:blur(20px); background:radial-gradient(ellipse at 50% 90%,#e4e8ca6b,transparent 60%); }
.world-branches { z-index:4; inset:-5%; opacity:.75; will-change:transform; }
.world-branches svg { width:100%;height:100%; }
.world-grain { z-index:5; opacity:.11; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.8' d='M0 0h180v180H0z'/%3E%3C/svg%3E"); }
.exp-header { position:absolute; inset:0 0 auto; z-index:30; display:flex; align-items:center; justify-content:space-between; gap:32px; padding:30px 5vw; border-bottom:1px solid #d0dcb322; }
.exp-header button { cursor:pointer; }
.exp-brand { border:0; background:none; padding:0; text-align:left; font:800 35px/.85 var(--heading); letter-spacing:-1px; color:var(--ink); }
.exp-brand span { color:#dce88d; }
.exp-brand small { display:block; font:600 8px/1 var(--body); letter-spacing:3.1px; margin-top:12px; color:#d5dbc4; }
.exp-header nav { display:flex; gap:32px; }
.exp-header nav button,.exp-header-cta { border:0; background:none; color:#f0f2e7; font:600 14px var(--body); }
.exp-header nav button:hover { color:#dce88d; }
.exp-header-cta { border:1px solid #dbe4b875; border-radius:2px; padding:13px 21px; }
.exp-header-cta:hover { background:#dce88d;color:#111a0e; }
.exp-panels { z-index:8; perspective:1300px; transform-style:preserve-3d; }
.exp-panel { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; padding:145px 9vw 130px; opacity:0; pointer-events:none; transform-origin:35% 50%; will-change:transform,opacity; }
.exp-panel[data-chapter="0"] { opacity:1; }
.exp-panel.is-active { pointer-events:auto; }
.exp-panel h1,.exp-panel h2 { font:800 clamp(58px,7.3vw,118px)/.88 var(--heading); letter-spacing:-1.6px; text-transform:uppercase; margin:22px 0; max-width:1150px; }
.exp-panel h1 { font-size:clamp(65px,8.3vw,140px); }
.exp-panel em { font-style:normal; color:#dce88d; }
.exp-kicker { font:600 11px var(--body); letter-spacing:3.2px; color:#d6dfbe; }
.exp-description { font:400 18px/1.55 var(--body); max-width:520px; margin:0 0 26px; color:#d2d8c8; }
.exp-actions { display:flex; gap:25px; align-items:center; flex-wrap:wrap; }
.exp-btn { display:inline-flex; gap:34px; align-items:center; justify-content:space-between; min-height:54px; border:1px solid #dce88d; background:#dce88d; color:#15200e; padding:15px 22px; border-radius:2px; font:600 16px var(--body); text-decoration:none; cursor:pointer; transition:background .2s,transform .2s; }
.exp-btn:hover { background:#edf6aa;transform:translateY(-2px); }
.exp-btn span { font-size:21px; }
.exp-link { border:0; background:none; padding:8px 0; color:#f1f3e4; font:600 15px var(--body); cursor:pointer; text-decoration:none; }
.exp-link:hover { color:#dce88d; }
.exp-stats { display:flex; gap:40px; margin-top:43px; max-width:850px; }
.exp-stats>span { font-size:12px; color:#b5c1a3; border-left:1px solid #a5b68575; padding-left:17px; }
.exp-stats b { display:block; margin-bottom:4px; color:#ecefe1; font-size:19px; font-weight:600; }
.exp-choices { display:flex; gap:12px; margin-top:34px; max-width:910px; }
.exp-choices button { flex:1; text-align:left; background:#15210ea8; backdrop-filter:blur(12px); color:#f2f1e4; border:1px solid #baca9b55; padding:20px; cursor:pointer; transition:background .2s,transform .2s; }
.exp-choices button:hover { transform:translateY(-4px);background:#304421d9; }
.exp-choices small { display:block; font-size:10px; letter-spacing:1px; color:#c1ccaa; }
.exp-choices b { display:block; font:700 29px var(--heading); margin:6px 0; }
.exp-choices span { display:block; font-size:12px; color:#bdcaa6; }
.exp-dot { display:inline-block; width:6px;height:6px;background:#dce88d;border-radius:50%;box-shadow:0 0 12px #dce88d55; }
.exp-reservation-note { margin-top:32px; font-size:14px;color:#d4ddc1; }
.exp-reservation-note .exp-dot { margin-right:9px; }
.exp-reservation-note small { display:block; font-size:11px; color:#b2bda3; margin-top:8px; }
.exp-questions { max-width:600px; margin-top:25px; }
.exp-questions button { display:flex; justify-content:space-between; gap:35px; width:100%; padding:13px 0; border:0; border-bottom:1px solid #b9c5a555; background:transparent; color:#e1e7d2; text-align:left; cursor:pointer; }
.exp-contact { display:flex;gap:32px;flex-wrap:wrap;margin-top:32px;font-size:20px; }
.exp-contact a { color:#e1e8cc;text-decoration:none; }
.exp-docs { display:flex;gap:22px;font-size:13px;margin-top:20px;color:#b9caa2; }
.exp-disclaimer { font-size:11px;color:#a0b08c;margin:18px 0 0; }
.chapter-rail { position:absolute;right:4vw;top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;gap:0; }
.chapter-rail button { display:grid;place-items:center;width:30px;height:27px;background:none;border:0;cursor:pointer; }
.chapter-rail button span { display:block;width:4px;height:4px;border:1px solid #e0e7d2;border-radius:100%;transition:transform .25s; }
.chapter-rail button[aria-current="step"] span { background:#e1ebad;transform:scale(2);box-shadow:0 0 0 3px #e1ebad25; }
.exp-hud { position:absolute;z-index:20;bottom:28px;left:5vw;right:5vw;display:flex;justify-content:space-between;align-items:center;gap:20px; }
.exp-location { color:#c1cba9;font-size:9px;letter-spacing:1.6px; }
.exp-location .exp-dot { margin-right:9px; }
.exp-next { background:none;border:0;color:#e8eedb;font-size:11px;letter-spacing:1px;cursor:pointer; }
.exp-next span { display:inline-block;margin-left:12px; }
.exp-counter { display:flex;align-items:baseline;gap:7px; }
.exp-counter b { font:700 35px var(--heading);color:#e2ecc4; }
.exp-counter span { font-size:12px;color:#b0bc9b; }
.exp-progress { position:absolute;bottom:0;left:0;right:0;height:2px;background:#c3d29222;z-index:20; }
.exp-progress span { display:block;width:100%;height:100%;transform-origin:left;background:#dbe98a;transform:scaleX(0); }
#experience-root button:focus-visible,#experience-root a:focus-visible { outline:2px solid #fff;outline-offset:5px; }
/* Long forms and full information have their own native, scrollable dialog. */
.info-dialog { padding:0;width:min(1280px,96vw);max-width:none;max-height:92dvh;margin:auto;border:1px solid #81925c;background:#141d10;color:var(--ink);border-radius:5px;box-shadow:0 30px 100px #0009; }
.info-dialog::backdrop { background:#060d09d9;backdrop-filter:blur(10px); }
.info-toolbar { display:flex;justify-content:space-between;align-items:center;padding:22px 30px;border-bottom:1px solid #3c4a2e;position:sticky;top:0;z-index:20;background:#1d2917; }
.info-toolbar span { display:block;font-size:9px;letter-spacing:2px;color:#c4d0a8; }
.info-toolbar h2 { font:700 31px var(--heading);margin:3px 0 0; }
.info-toolbar>button { color:#edf0e2;border:1px solid #7f8e60;background:none;width:44px;height:44px;font:30px Arial;cursor:pointer; }
.info-tabs { display:flex;gap:8px;padding:15px 26px;overflow-x:auto;border-bottom:1px solid #3c4a2e; }
.info-tabs button { flex-shrink:0;background:none;color:#c8d3b5;border:1px solid #50623c;padding:9px 13px;font:600 13px var(--body);border-radius:3px;cursor:pointer; }
.info-tabs button[aria-current="page"] { background:#dce88d;color:#192011; }
.info-dialog main>section { display:none; }
.info-dialog main>section.info-selected { display:block; }
.info-dialog .scene-window,.info-dialog .hero { display:none!important; }
.info-dialog .section,.info-dialog .contact { padding:35px 0;background:transparent; }
.info-dialog .wrap { width:calc(100% - 60px); }
.info-dialog .reveal { opacity:1!important;transform:none!important; }
.info-dialog .section h2 { font-size:clamp(35px,4vw,58px); }
.info-dialog .section-head { margin-bottom:28px; }
.info-dialog .booking-grid { align-items:start; }
.info-dialog .booking-form { position:static; }
@media(max-width:900px){.exp-header nav{display:none}.exp-panel{padding:120px 7vw 110px}.exp-stats{gap:25px}.exp-panel h1,.exp-panel h2{font-size:clamp(60px,9.6vw,94px)}.exp-header{padding:26px 6vw}.world-vignette{background:linear-gradient(90deg,#0c150bc9,#0c13084d),linear-gradient(0deg,#0a100dd9,transparent 55%,#08110763)}.chapter-rail{right:2vw}.exp-description{font-size:17px}.exp-choices b{font-size:24px}.exp-choices button{padding:15px}}
@media(max-width:600px){.exp-header{padding:23px 6vw}.exp-brand{font-size:30px}.exp-brand small{font-size:7px;letter-spacing:2.5px}.exp-header-cta{font-size:12px;padding:11px 14px}.exp-panel{padding:115px 9vw 112px 7vw;justify-content:center}.exp-panel h1{font-size:clamp(56px,14.1vw,78px);line-height:.91;letter-spacing:-1px;margin:18px 0}.exp-panel h2{font-size:clamp(45px,11.7vw,66px);line-height:.94;letter-spacing:-.7px;margin:17px 0}.exp-kicker{font-size:9px;letter-spacing:1.8px}.exp-description{font-size:15px;line-height:1.55;margin-bottom:20px;max-width:340px}.exp-actions{gap:15px}.exp-btn{font-size:14px;padding:12px 16px;min-height:48px;gap:18px}.exp-link{font-size:13px}.exp-stats{gap:14px;margin-top:30px}.exp-stats>span{padding-left:10px;font-size:10px;flex:1}.exp-stats b{font-size:13px}.exp-choices{gap:8px;margin-top:22px;flex-wrap:wrap}.exp-choices button{padding:12px 10px;min-width:90px}.exp-choices small{font-size:8px;letter-spacing:.3px}.exp-choices b{font-size:20px;line-height:1.05}.exp-choices span{font-size:10px}.exp-location{display:none}.exp-hud{bottom:23px;left:7vw;right:7vw}.exp-next{font-size:10px;letter-spacing:.4px;padding:0}.exp-counter b{font-size:30px}.exp-contact{gap:8px;flex-direction:column;font-size:18px;margin-top:22px}.exp-docs{gap:16px;font-size:12px}.exp-disclaimer{font-size:10px;max-width:300px}.exp-questions{margin-top:15px}.exp-questions button{font-size:13px;padding:10px 0}.world-photo{object-position:68% center}.world-branches{opacity:.45}.info-dialog{width:100vw;max-height:100dvh;height:100dvh;border:0;border-radius:0}.info-toolbar{padding:16px 20px}.info-toolbar h2{font-size:26px}.info-tabs{padding:12px 20px}.info-dialog .wrap{width:calc(100% - 32px)}.info-dialog .section,.info-dialog .contact{padding:24px 0}.exp-panel[data-chapter="2"] .exp-description,.exp-panel[data-chapter="3"] .exp-description{display:none}}
@media(max-height:660px){.exp-header{padding-top:16px;padding-bottom:16px}.exp-panel{padding-top:100px;padding-bottom:85px}.exp-panel h1,.exp-panel h2{font-size:clamp(40px,7vw,70px);margin:12px 0}.exp-description{font-size:14px;margin-bottom:14px}.exp-stats,.exp-choices{margin-top:20px}.exp-stats b{font-size:13px}.exp-choices button{padding:10px}.exp-choices b{font-size:22px}.exp-hud{bottom:15px}.exp-contact{margin-top:16px}.exp-questions{margin-top:10px}.exp-kicker{font-size:9px}}
@media(prefers-reduced-motion:reduce){.world-photo,.world-branches,.world-fog,.exp-panel{will-change:auto}.exp-btn,.exp-choices button{transition:none}.exp-btn:hover,.exp-choices button:hover{transform:none}.world-grain{display:none}}

.info-dialog main > :not(section) { display:none; }
@media(max-width:600px){ .world-photo:first-child { object-position:85% center; } }
