:root{--cream:#fff8e9;--paper:#fff2d6;--ink:#053c54;--teal:#007c8b;--yellow:#ffce32;--blue:#1745a1;--line:#b8d3cf}
body{background:#043e54}
.site-header{background:#043c54;box-shadow:0 2px 16px #001f3b22;height:90px}
.site-header .brand{mix-blend-mode:normal;background:#fff8e9;border-radius:3px;padding:0}
.site-header nav{color:white;font-weight:600}
.site-header nav a:hover{color:var(--yellow)}
.header-cta{color:#07374a;background:var(--yellow);padding:13px 18px;min-height:48px;border:0;border-radius:5px;font-weight:800;font-size:15px;gap:13px;box-shadow:0 4px 14px #001c3230}
.header-cta:hover{background:#ffdf62}
.hero,.intro,.journey,.island,.immersive,.booking{position:relative;isolation:isolate;overflow:hidden;background:#03465d;color:#fff}
.scene-media{position:absolute;inset:0;overflow:hidden;z-index:-2;pointer-events:none;background:#036582}
.scene-poster,.scene-canvas{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 55%;filter:saturate(1.25) contrast(1.065);pointer-events:none}
.scene-canvas{opacity:0;transition:opacity .35s}
.scene-media.is-ready .scene-canvas{opacity:1}
.scene-media.is-ready .scene-poster{opacity:0}
.scene-shade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(120deg,#002b49ed,#003f60a8)}
.hero-shade,.intro-shade,.journey-shade,.island-shade{z-index:-1;pointer-events:none}
.hero{height:min(980px,calc(100svh - 90px));min-height:760px}
.hero-shade{background:linear-gradient(0deg,#002d48f5 0%,#002d48c7 26%,#002d4810 64%),linear-gradient(90deg,#002d4866,#002d4800 70%)}
.hero-top{top:25px;left:48px;right:48px;z-index:3;font-size:14px;letter-spacing:.7px}
.hero-top .route-badge{padding:12px 16px;border:1px solid #ffffff45;border-radius:5px;background:#003a54ed;box-shadow:0 4px 18px #001c3033;color:#fff;font-weight:700;display:inline-flex;gap:10px;line-height:1.5}
.route-badge .icon{width:19px;height:19px;color:var(--yellow)}


.hero-tagline{position:absolute;left:max(48px,calc((100% - 1104px)/2));top:115px;color:var(--yellow);font-size:38px;font-weight:600;text-shadow:0 2px 8px #002339;line-height:1.15;padding:9px 15px 12px;background:#003149ba;border-left:3px solid var(--yellow);border-radius:0 4px 4px 0;z-index:2;transform:rotate(-2deg)}
.hero-content{bottom:100px;z-index:2}
.hero h1{font-size:clamp(65px,6.4vw,90px);text-shadow:0 3px 14px #00243b66}
.hero-description{font-size:18px;font-weight:500;text-shadow:0 2px 5px #001b36}
.hero-bottom{bottom:22px;color:#fff;font-size:12px;font-weight:500}
.hero-bottom a{background:#00455a70;border-color:#fff8}
.intro{min-height:470px}
.intro-inner{min-height:470px;padding-top:65px;padding-bottom:65px;gap:65px;align-items:center}
.intro-shade{background:linear-gradient(90deg,#00324ce8,#00324ca6 62%,#00324c52)}
.intro .eyebrow{color:#ffe47b}.intro-text p{font-weight:500}
.journey{min-height:710px}
.journey-shade{background:linear-gradient(90deg,#002e48f2 0%,#002e48d8 35%,#002e481f 85%),linear-gradient(0deg,#002e488a,transparent)}
.journey-content{padding-top:70px;padding-bottom:60px}
.journey-content>.eyebrow{color:#ffe47b}
.route-list{margin-top:45px}
.route-list li p:last-child{color:white}
.route-number{background:#003f58a6;border-color:var(--yellow);color:var(--yellow)}
.island{height:560px}.island-content{padding-top:140px}.island-shade{background:linear-gradient(0deg,#002f48ef 0%,#002f489c 30%,#002f4800 85%)}
.gallery-section{padding-top:65px;padding-bottom:45px}
.gallery-section .scene-shade{background:linear-gradient(0deg,#003b58ed,#003b58b8)}
.gallery-heading .eyebrow{color:#ffe47b}.gallery-controls button{color:white;border-color:#fff7;background:#00445e99}
.gallery-controls button:hover{color:var(--ink)}
.gallery-image{box-shadow:0 12px 30px #001c342b;border:1px solid #ffffff20}
.gallery-image img{filter:saturate(1.16) contrast(1.035)}
.gallery figcaption{color:#fff}.gallery figcaption span{color:#ffde69}.gallery-hint{color:#fff}
.planning-scene .scene-shade{background:linear-gradient(90deg,#003a57df,#003a5780)}
.planning{padding-top:75px;padding-bottom:75px;gap:70px;align-items:center}
.planning .eyebrow{color:#ffe47b}.planning-intro>p:not(.eyebrow){max-width:410px;font-weight:500}
.planning-intro .text-link{color:#ffdc5c}
.schedule{background:#003348e8;border:1px solid #ffffff40;border-radius:8px;padding:27px 30px;box-shadow:0 12px 36px #00283e33;backdrop-filter:blur(10px)}
.time-option{border-color:#ffffff55}.time-option b{color:white}.time-option small{color:#e2f6f8}.time-arrow{color:#ffdb5b}.choose-time{color:var(--yellow)}
.schedule .small{color:#e1f1f4}.weekend-note{background:var(--yellow);color:#062e43;border-radius:5px;padding:18px}
.weekend-note .icon{color:#005766}.weekend-note strong{font-weight:800}.weekend-note small{color:#163c48}
.checkin .scene-shade{background:linear-gradient(100deg,#003651ed,#003651c4 65%,#00365194)}
.checkin-inner{padding-top:75px;padding-bottom:75px;gap:75px}
.checkin-callout{border-color:#ffffff55}.address-block>p{color:white}.address-block strong{color:#ffe47b}
.location-mark{border-color:#ffdb5b}.address-block address{font-weight:500}
.essentials-scene .scene-shade{background:linear-gradient(110deg,#00354ee6,#00354ecc)}
.essentials{padding-top:70px;padding-bottom:70px;gap:65px;grid-template-columns:.9fr 1.2fr}
.essentials .eyebrow{color:#ffe47b}.faq-list{background:#003348df;border:1px solid #ffffff40;border-radius:7px;padding:0 24px;box-shadow:0 12px 36px #00283e26}
.faq-list details,.faq-list details:first-child{border-color:#ffffff3b}.faq-list details:first-child{border-top:0}.faq-list details:last-child{border-bottom:0}
.faq-list summary{color:white}.faq-list summary .icon{color:var(--yellow)}.faq-body{color:#e8f6f8}.faq-body strong{color:#ffdf6e}
.booking{background:#00415c}.booking .scene-shade{background:linear-gradient(90deg,#003b55e3,#003b558a)}
.booking-inner{padding-top:70px;padding-bottom:70px;gap:70px}
.booking-intro>p{font-weight:500}.booking-form{background:#fffbf2f5;color:#063b50;box-shadow:0 20px 65px #00213945;border:1px solid #ffffff99}
.button-teal{background:#006f82}.button-teal:hover{background:#005c71}.button-yellow{background:var(--yellow);box-shadow:0 5px 20px #0025381f}.button-yellow:hover{background:#ffdf5e}
.form-note,.party-total,.field-hint{color:#456574}.form-note{font-size:14px}.field input,.field select,.counter{border-color:#a4c2c6}
footer .scene-shade{background:linear-gradient(0deg,#002b47f5,#003b55d6)}
.footer-inner{padding-top:45px;padding-bottom:35px}.footer-brand{background:#fff8e9;mix-blend-mode:normal;border-radius:3px}
.footer-contact .eyebrow{color:#ffe47b}.footer-contact>a{color:white;font-weight:600}.footer-contact>span{color:#e6f5f8}.footer-bottom{color:#fff;border-color:#ffffff50}
.mobile-dock{background:#00384df5;border-top-color:#ffffff30;box-shadow:0 -5px 22px #0020392b}.dock-help{border-color:#ffffff60;color:white}.mobile-dock .button{color:#05364c}
@media(min-width:1700px){.hero-content{bottom:120px}.hero-tagline{top:145px}}
@media(max-width:1000px) and (min-width:641px){
 .site-header{padding:0 25px}.header-cta{font-size:14px;padding:12px}.site-header nav{gap:17px}
 .hero-top{left:30px;right:30px;font-size:12px}.hero-tagline{left:40px;top:110px}
 .hero h1{font-size:68px}.intro-inner{gap:35px}.planning,.checkin-inner,.booking-inner{gap:30px}.schedule{padding:22px}.essentials{gap:30px}.faq-list{padding:0 18px}
}
@media(max-width:640px){
 .site-header{height:82px;padding:0 16px;gap:12px}.site-header .brand{width:144px;height:57px}.site-header .brand img{width:180px;left:-20px;top:-44px}
 .header-cta{font-size:14px;line-height:1.35;padding:12px 13px;min-height:48px;gap:8px;white-space:nowrap}.header-cta .icon{width:18px}
 .hero{height:calc(100svh - 82px);min-height:740px;max-height:930px}
 .hero-top{top:18px;left:20px;right:20px;font-size:12px;letter-spacing:.35px;display:block}
 .hero-top .route-badge{padding:10px 11px;gap:8px;background:#003b53f5;border-color:#ffffff70;box-shadow:0 3px 14px #00233944;min-height:42px}
 .route-badge .icon{width:17px;height:17px}

 .hero-tagline{top:131px;left:20px;font-size:31px;line-height:1.2;padding:8px 12px 11px;background:#00334bd6;border-left-width:3px;font-weight:600}
 .hero-content{left:24px;right:24px;bottom:75px}
 .hero h1{font-size:clamp(37px,10.6vw,61px);line-height:1.18;text-shadow:0 3px 12px #001d36a8}
 .hero-description{font-size:16px;line-height:1.75;margin:20px 0 22px;font-weight:500}
 .hero-content .button{font-size:16px;min-height:57px;padding:16px 19px}
 .hero-bottom{left:24px;right:24px;bottom:15px;min-height:36px;font-size:11px;letter-spacing:.7px;color:#fff}
 .hero-bottom>span:first-child{max-width:250px;padding-right:25px}.hero-bottom>a{width:34px;height:34px;top:0}
 .hero-shade{background:linear-gradient(0deg,#002c46fc 0%,#002c46ed 20%,#002c4678 43%,#002c4600 68%)}
 .intro,.intro-inner{min-height:440px}
 .intro-inner{padding-top:47px;padding-bottom:47px;gap:22px;justify-content:center;align-items:flex-start}
 .intro-shade{background:linear-gradient(100deg,#00334ae8,#00334ab2 75%,#00334a85)}
 .intro h2{font-size:37px;line-height:1.25}.intro-heading .eyebrow{margin-bottom:17px;font-size:13px;letter-spacing:1px}
 .intro-text p,.intro-text p:first-child{font-size:16px;line-height:1.8;font-weight:500;margin-bottom:20px}
 .intro .text-link{font-size:16px}
 .journey{min-height:0}.journey-content{padding-top:50px;padding-bottom:50px}.journey-content>h2{font-size:35px}
 .journey-shade{background:linear-gradient(0deg,#002c46ed,#002c46d4 53%,#002c468a)}
 .route-list{margin-top:65px}.route-list li{gap:16px;padding-bottom:28px}.route-list h3{font-size:21px}.route-list li p:last-child{font-size:16px;line-height:1.7}
 .island{height:510px}.island-content{padding:180px 24px 50px}.island h2{font-size:clamp(30px,8.8vw,46px)}.island .handwritten{font-size:32px;font-weight:600;text-shadow:0 2px 7px #002c46}
 .gallery-section{padding-top:50px;padding-bottom:35px}.gallery-heading h2{font-size:34px}.gallery-image{height:300px}.gallery-hint{margin-top:23px}
 .planning{padding-top:50px;padding-bottom:50px;gap:28px}.planning h2{font-size:37px}.planning-intro>p:not(.eyebrow){font-size:16px;line-height:1.8;margin:20px 0 15px}
 .planning .eyebrow{font-size:13px;letter-spacing:1px}.planning-intro .text-link{font-size:15px}
 .schedule{padding:24px 20px}.schedule-label{font-size:12px!important;letter-spacing:.6px!important}.time-option{gap:17px;padding:18px 0}
 .time-option b{font-size:37px}.time-option small{font-size:12px;letter-spacing:.6px}.time-arrow{width:18px}.choose-time{font-size:13px;gap:6px}.choose-time .icon{width:14px}
 .schedule .small{font-size:14px}.weekend-note{padding:18px 14px;gap:10px}.weekend-note strong{font-size:16px}.weekend-note p{font-size:15px}.weekend-note small{font-size:13px}
 .checkin-inner{padding-top:50px;padding-bottom:50px;gap:28px}.checkin h2{font-size:37px}.checkin .eyebrow{font-size:13px;letter-spacing:1px}
 .checkin-callout{margin-top:25px;padding-top:22px}.address-block{padding-top:28px;border-color:#ffffff55}.address-block .button{font-size:15px}
 .essentials{padding-top:50px;padding-bottom:50px;gap:27px;grid-template-columns:1fr}.essentials h2{font-size:35px}.essentials .eyebrow{font-size:13px;letter-spacing:1px}
 .faq-list{padding:0 18px}.faq-list summary{font-size:16px;padding:22px 0;gap:12px}.faq-body{font-size:15px;line-height:1.8;padding-right:0}
 .booking-inner{padding-top:50px;padding-bottom:45px;gap:28px}.booking-intro h2{font-size:clamp(32px,9.4vw,52px)}
 .booking .scene-shade{background:linear-gradient(180deg,#00364bc9,#00364b8f 70%,#00364bc4)}
 .booking-form{padding:25px 20px;background:#fffaf1f5}.booking-form h3{font-size:25px}.booking-form .button{background:#006f82;font-size:16px}
 .form-note{font-size:14px;line-height:1.7;color:#3c5c6b}.footer-inner{padding-top:38px;padding-bottom:30px}.footer-contact{margin-top:27px}.footer-contact>a{font-size:17px}
 .footer-contact .eyebrow{font-size:13px}.footer-bottom{padding-top:22px;padding-bottom:105px}
 .mobile-dock .button{min-height:50px;font-size:15px}.dock-help{height:48px}
}
@media(max-width:360px){
 .site-header{padding:0 13px;gap:10px}.site-header .brand{width:130px;height:52px}.site-header .brand img{width:162px;left:-18px;top:-40px}
 .header-cta{font-size:12px;padding:12px 10px;gap:6px}.header-cta .icon{width:15px}
 .hero-top{left:17px;right:17px;font-size:11px}.hero-tagline{left:17px;font-size:28px}
 .hero-content{left:20px;right:20px}.hero-description{font-size:15px}.hero-content .button{font-size:15px}
 .intro h2,.planning h2,.checkin h2{font-size:33px}.journey-content>h2{font-size:31px}.essentials h2{font-size:31px}.gallery-heading h2{font-size:30px}
 .schedule{padding:22px 14px}.time-option{gap:12px}.time-option small{font-size:11px}.choose-time{font-size:12px;gap:4px}.time-option b{font-size:34px}
 .booking-form{padding:24px 16px}.booking-form h3{font-size:23px}.booking-form .button{font-size:15px;padding:15px 12px}
}
@media(prefers-reduced-motion:reduce){.scene-canvas{transition:none}}

/* v4: preserve the approved opening and cream brand identity. */
.site-header{background:var(--cream);box-shadow:none;height:86px}
.site-header nav{color:var(--ink)}.site-header nav a:hover{color:var(--teal)}
.header-cta{background:#007782;color:white;box-shadow:none}.header-cta:hover{background:#005d6b}
.hero{height:min(900px,calc(100svh - 86px));min-height:740px}
.hero-content{bottom:100px}
.hero-content .handwritten{display:table;background:#04364de6;color:#ffdc60;border-left:3px solid var(--yellow);padding:7px 13px 10px;font-size:38px;font-weight:600;text-shadow:0 1px 2px #002536;transform:rotate(-2deg);margin-bottom:23px}
.hero-shade{background:linear-gradient(90deg,#06354d80,#06354d00 85%),linear-gradient(0deg,#042c41f2,#042c4100 75%)}
.intro,.intro-inner{min-height:450px}.intro-inner{padding-top:55px;padding-bottom:55px}
.gallery-section{background:var(--cream);color:var(--ink)}
.gallery-section .scene-shade{background:linear-gradient(180deg,#fffaf0f2,#fffaf0bd 45%,#fffaf0e8)}
.gallery-heading .eyebrow,.gallery figcaption,.gallery-hint{color:var(--ink)}.gallery figcaption span{color:#456772}
.gallery-controls button{color:var(--ink);border-color:#0b667866;background:#fffaf0c9}
.schedule{background:#fffaf0f5;color:var(--ink);border:1px solid #ffffff88;backdrop-filter:none}
.time-option{border-color:#b2cccd}.time-option b{color:var(--ink)}.time-option small{color:#345c68}
.time-arrow,.choose-time{color:#006d7d}.schedule .small{color:#41616c}.weekend-note{background:#ffe59b;color:var(--ink)}
.faq-list{background:#fffaf0f5;color:var(--ink);border-color:#ffffff88}
.faq-list summary{color:var(--ink)}.faq-list summary .icon{color:#007782}
.faq-list details,.faq-list details:first-child{border-color:#c5d7d4}.faq-body{color:#345b68}.faq-body strong{color:#104353}
.mobile-dock{background:#fffaf0f5;border-top-color:#0a506222}.dock-help{border-color:#87aeb5;color:#006879}
@media(max-width:1000px) and (min-width:641px){.hero h1{font-size:68px}.hero-content .handwritten{font-size:35px}}
@media(max-width:640px){
 .site-header{height:80px;padding:0 18px;gap:12px}.site-header .brand{width:140px;height:55px}.site-header .brand img{width:174px;left:-19px;top:-43px}
 .header-cta{font-size:14px;gap:8px;padding:12px 13px;line-height:1.35}
 .hero{height:calc(100svh - 80px);min-height:730px;max-height:900px}.hero-content{left:24px;right:24px;bottom:87px}
 .hero-content .handwritten{font-size:32px;padding:7px 11px 10px;margin-bottom:23px}
 .hero-shade{background:linear-gradient(0deg,#042d42fa 0%,#042d42d9 22%,#042d4268 52%,#042d4200 80%)}
 .hero-description{margin:22px 0;line-height:1.75}.hero-bottom{bottom:20px;font-size:11px;letter-spacing:.6px}
 .intro,.intro-inner{min-height:440px}.intro-inner{padding-top:48px;padding-bottom:48px;gap:23px}
 .intro-shade{background:linear-gradient(100deg,#06354de0,#06354da3)}
 .journey .route-list{margin-top:75px}.island{height:540px}.island-content{padding:150px 24px 55px}
 .planning-scene .scene-shade{background:linear-gradient(180deg,#063a50cd,#063a5066)}
 .essentials-scene .scene-shade{background:linear-gradient(100deg,#063a50d9,#063a5080)}
 .booking .scene-shade{background:linear-gradient(180deg,#043b50c9,#043b5070)}
}
@media(max-width:360px){
 .site-header{padding:0 14px;gap:9px}.site-header .brand{width:130px;height:51px}.site-header .brand img{width:161px;left:-18px;top:-40px}
 .header-cta{font-size:12px;padding:11px;gap:6px}.hero-content{left:20px;right:20px}.hero-content .handwritten{font-size:29px}
}

/* Compact contact and a portrait opening for mobile. */
.footer-contact>a{display:inline-flex;justify-content:flex-start;gap:8px;max-width:none}
.footer-contact>a .icon{width:21px;height:21px}
.footer-contact>span{display:block;margin-top:2px}
.footer-management{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 13px;border:1px solid #ffffff77;border-radius:6px;color:#fff;flex-shrink:0;font-family:inherit;font-size:14px;font-weight:600;line-height:1.4}
.footer-management:hover{background:#ffffff18;color:var(--yellow)}
.footer-management .icon{width:21px;height:21px}
.footer-management:disabled{opacity:.9;cursor:default;background:#073b4b40;color:#fff}
.hero #hero-title{font-size:clamp(52px,5.7vw,80px);line-height:1.14}
.hero .scene-poster,.hero .scene-canvas{filter:none}
.hero-shade{background:linear-gradient(90deg,#06354d50,#06354d00 80%),linear-gradient(0deg,#042c41ef,#042c4100 72%)}
@media(max-width:640px){
 .hero{aspect-ratio:9/16;height:auto;min-height:0;max-height:none}
 .hero-shade{background:linear-gradient(0deg,#032a40f5 0%,#032a40c9 22%,#032a404a 49%,#032a4000 76%)}
 .hero-top{top:18px}.hero-content{bottom:76px}
 .hero #hero-title{font-size:clamp(27px,8.1vw,48px);line-height:1.18}
 .hero-content .handwritten{font-size:30px;margin-bottom:18px}
 .hero-description{margin:18px 0}.hero-content .button{min-height:54px;padding:14px 18px}
 .hero-bottom{bottom:16px}.footer-bottom{flex-wrap:wrap;gap:12px}
 .footer-bottom .footer-management{margin-left:auto}
}
@media(max-width:360px){
 .hero-content{bottom:66px}.hero-content .handwritten{font-size:26px;margin-bottom:13px}
 .hero h1{font-size:34px}.hero-description{font-size:15px;margin:14px 0;line-height:1.65}
 .hero-content .button{font-size:15px;min-height:50px;padding:12px 16px}
 .hero-bottom{font-size:10px;bottom:12px}
}

/* Compact reservation: readable fields, fewer repeated headings and gaps. */
.booking-inner{padding-top:40px;padding-bottom:40px;gap:40px;align-items:start}
.booking-intro h2{margin-bottom:12px}
.booking-intro>p{margin-bottom:0;line-height:1.5}
.booking-intro .limited{margin-top:10px}
.booking-form{padding:26px}
.booking-form>.field:first-child{margin-top:0}
.booking-form .field{margin-top:12px}
.booking-form .field label{margin-bottom:5px}
.booking-form .party-total{margin:8px 0 0;line-height:1.4}
.booking-form .button{margin-top:18px;min-height:54px}
@media(max-width:1000px){.booking-inner{gap:20px}}
@media(max-width:640px){
 .booking-inner{padding-top:28px;padding-bottom:28px;gap:18px}
 .booking-intro h2{font-size:clamp(28px,7.5vw,42px);line-height:1.2;margin:0 0 10px}
 .booking-intro h2 br{display:none}
 .booking-intro h2 span:before{content:' '}
 .booking-intro>p{font-size:16px;line-height:1.5;margin:0}
 .booking-intro .limited{margin-top:8px}
 .booking-form{padding:20px 18px}
 .booking-form .field{margin-top:12px}
 .booking-form>.field:first-child{margin-top:0}
 .booking-form .button{margin-top:16px}
}

/* Compact schedule while retaining clear times and touch targets. */
.planning{padding-top:36px;padding-bottom:36px;gap:32px}
.planning-intro .eyebrow{margin-bottom:10px}
.planning h2{margin:0;font-size:42px}
.planning-intro>p:not(.eyebrow){margin:12px 0;line-height:1.5}
.planning-intro .text-link{padding-bottom:8px}
.schedule{padding:20px 24px}
.schedule-label{margin:0 0 8px}
.schedule .time-option{padding:12px 0}
.schedule .small{margin:10px 0;line-height:1.45}
.schedule .weekend-note{margin-top:12px;padding:14px;gap:10px}
.weekend-note p{margin:6px 0 0;line-height:1.5}
@media(max-width:640px){
 .planning{padding-top:28px;padding-bottom:28px;gap:18px}
 .planning h2{font-size:32px;line-height:1.2}
 .planning-intro>p:not(.eyebrow){margin:10px 0;line-height:1.5}
 .schedule{padding:18px 16px}
 .schedule .time-option{padding:12px 0}
 .schedule .weekend-note{padding:12px}
}
.schedule .eyebrow{color:#075369}
