:root{--ocean:#046f82;--lagoon:#34bccc;--sky:#dff7fa;--foam:#f7fbfc;--sand:#f4eee4;--ink:#113239;--muted:#6c7d80;--line:rgba(17,50,57,.14);--serif:"Iowan Old Style","Baskerville",Georgia,serif;--sans:Inter,Avenir,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--foam);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.nav{height:90px;padding:0 clamp(22px,4.7vw,78px);position:absolute;z-index:20;inset:0 0 auto;color:white;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.3)}.logo{display:flex;align-items:center;gap:12px}.logo-sign{font-family:var(--serif);font-size:22px;font-style:italic;border:1px solid currentColor;width:44px;height:44px;border-radius:50%;display:grid;place-items:center}.logo b,.logo small{display:block;line-height:1}.logo b{font-size:13px;letter-spacing:.2em}.logo small{font-size:9px;letter-spacing:.4em;margin-top:7px;opacity:.75}.nav nav{display:flex;gap:36px;font-size:14px}.nav nav a{position:relative}.nav nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:#fff;transition:.35s}.nav nav a:hover:after{right:0}.book-link{border:1px solid rgba(255,255,255,.65);border-radius:100px;padding:12px 18px;display:flex;gap:26px;font-size:14px;transition:.3s}.book-link:hover{background:#fff;color:var(--ink)}.hero{height:max(760px,100svh);position:relative;background:#247a7f;color:white;overflow:hidden}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,48,52,.52) 0%,rgba(8,48,52,.1) 65%),linear-gradient(0deg,rgba(5,44,48,.55),transparent 46%)}.hero-copy{position:absolute;left:clamp(24px,7vw,110px);top:49%;transform:translateY(-50%);z-index:2}.kicker{font-size:12px;font-weight:700;letter-spacing:.26em;color:var(--ocean);margin:0 0 22px}.kicker.light{color:white}.hero h1,.statement h2,.aerial h2,.stories-title h2,.rooms h2,.pool h2,.booking h2,.contact h2{font-family:var(--serif);font-weight:400;letter-spacing:-.055em;line-height:.94;margin:0}.hero h1{font-size:clamp(58px,8.4vw,130px)}h1 i,h2 i{font-weight:400;color:var(--lagoon)}.hero h1 i{color:#bceef1}.hero-copy>p:last-child{font-size:clamp(17px,1.7vw,23px);font-weight:300;margin-top:28px}.sound-control{position:absolute;z-index:3;right:clamp(24px,5vw,78px);bottom:145px;font-size:12px;letter-spacing:.12em;display:flex;align-items:center;gap:12px}.sound-control span{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.65);border-radius:50%;animation:bob 1.8s ease-in-out infinite}@keyframes bob{50%{transform:translateY(6px)}}.quick-book{position:absolute;z-index:3;left:clamp(24px,5vw,78px);right:clamp(24px,5vw,78px);bottom:30px;background:rgba(255,255,255,.97);color:var(--ink);display:grid;grid-template-columns:1fr 1fr .8fr 1.25fr;box-shadow:0 16px 50px rgba(8,48,52,.18)}.quick-book label{padding:18px 24px;border-right:1px solid var(--line)}.quick-book label span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin-bottom:6px}.quick-book input,.quick-book select{width:100%;border:0;background:transparent;color:var(--ink);outline:0;padding:0}.quick-book button{border:0;background:var(--ocean);color:white;padding:0 25px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:.3s}.quick-book button:hover{background:#005868}.pad{padding:clamp(90px,11vw,170px) clamp(24px,7vw,110px)}.statement{text-align:center}.statement h2{font-size:clamp(46px,6.6vw,98px)}.statement h2 i,.aerial h2 i,.stories-title h2 i,.rooms h2 i,.pool h2 i,.booking h2 i,.contact h2 i{color:var(--ocean)}.statement-foot{margin:75px auto 0;max-width:1120px;display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;text-align:left;border-top:1px solid var(--line);padding-top:35px}.statement-foot>p{font-size:20px;margin:0;max-width:480px}.statement-foot>div{display:grid;grid-template-columns:repeat(3,1fr)}.statement-foot span{font-size:12px;color:var(--muted)}.statement-foot b{display:block;font-family:var(--serif);font-size:34px;font-weight:400;color:var(--ocean);line-height:1.2}.aerial{background:var(--sand);display:grid;grid-template-columns:1.35fr .65fr;gap:9vw;align-items:center}.aerial-photo{height:min(73vw,820px);overflow:hidden}.aerial-photo img{width:100%;height:100%;object-fit:cover}.aerial-copy h2,.stories-title h2,.rooms h2,.pool h2,.booking h2,.contact h2{font-size:clamp(45px,5.5vw,82px)}.aerial-copy>p:not(.kicker),.pool-copy>p:not(.kicker){font-size:18px;color:var(--muted);max-width:440px;margin:30px 0}.aerial-copy>a{display:flex;justify-content:space-between;max-width:260px;border-bottom:1px solid var(--ink);padding:12px 0;font-size:14px}.moving-stories{display:grid;grid-template-columns:.95fr .7fr .65fr;gap:24px;align-items:start}.stories-title{grid-column:1/-1;margin-bottom:40px}.story{position:relative;overflow:hidden;background:#d3eaeb}.story video{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}.story:hover video{transform:scale(1.025)}.story>div{position:absolute;inset:auto 0 0;color:white;padding:70px 24px 22px;background:linear-gradient(transparent,rgba(4,42,48,.7))}.story span{font-size:11px;letter-spacing:.15em}.story h3{font-family:var(--serif);font-size:28px;font-weight:400;margin:8px 0 3px}.story p{font-size:13px;margin:0;opacity:.8}.story-main{height:660px}.story-side{height:500px;margin-top:95px}.story-wide{height:570px;margin-top:25px}.rooms{background:white;display:grid;grid-template-columns:.75fr 1.25fr;gap:9vw}.room-list{border-top:1px solid var(--line)}.room-row{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:27px 0;display:grid;grid-template-columns:45px 1fr .6fr 28px;align-items:center;text-align:left;cursor:pointer}.room-row>span{font-size:11px;color:var(--ocean)}.room-row h3{font-family:var(--serif);font-weight:400;font-size:28px;margin:0}.room-row p{font-size:13px;color:var(--muted)}.room-row i{font-style:normal;transition:.25s}.room-row:hover i{transform:translateX(6px)}.pool{background:var(--sky);display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center}.pool-photo{height:760px;overflow:hidden}.pool-photo img{width:100%;height:100%;object-fit:cover}.amenities{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:50px}.amenities span{padding:18px 0;border-bottom:1px solid var(--line);font-size:14px}.panorama{height:min(79vw,890px);position:relative;overflow:hidden;background:var(--ocean)}.panorama img{width:100%;height:100%;object-fit:cover}.panorama p{position:absolute;left:clamp(24px,6vw,90px);bottom:35px;color:white;font-family:var(--serif);font-size:clamp(28px,4vw,60px);margin:0}.panorama p i{font-weight:400;color:#c9f6f7}.booking{background:var(--sand);display:grid;grid-template-columns:.7fr 1.3fr;gap:9vw;align-items:start}.booking-head>p:not(.kicker){font-size:18px;color:var(--muted);max-width:470px;margin:30px 0}.steps{border-top:1px solid var(--line);display:flex;gap:24px;padding-top:22px;margin-top:50px}.steps span{font-size:12px}.steps b{display:grid;place-items:center;border:1px solid var(--ocean);color:var(--ocean);width:27px;height:27px;border-radius:50%;margin-bottom:8px}.booking-card{background:white;padding:clamp(26px,4vw,58px);box-shadow:0 25px 70px rgba(17,50,57,.08)}.form-top{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:25px}.form-top h3{font-family:var(--serif);font-size:29px;font-weight:400;margin:0}.form-top span{font-size:12px;color:var(--ocean)}.fields{display:grid;gap:16px}.fields.two{grid-template-columns:1fr 1fr}.fields.three{grid-template-columns:repeat(3,1fr)}label{display:block;font-size:12px;font-weight:700;letter-spacing:.07em;margin-bottom:17px}label small{font-weight:400}input:not([type=checkbox]),select,textarea{display:block;width:100%;min-height:50px;margin-top:7px;padding:13px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);outline:0}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--ocean)}.consent{display:flex;gap:10px;align-items:flex-start;font-weight:400;letter-spacing:0}.consent input{margin-top:3px}.send{width:100%;min-height:59px;background:var(--ocean);color:white;border:0;padding:0 22px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:.25s}.send:hover{background:#005969}.fineprint{font-size:11px;color:var(--muted);margin-bottom:0}.success{text-align:center;padding:70px 15px}.success>span{margin:auto;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--sky);color:var(--ocean);font-size:27px}.success h3{font-family:var(--serif);font-size:34px;font-weight:400}.success button{border:1px solid var(--ink);background:none;padding:12px 18px;cursor:pointer}.contact{display:grid;grid-template-columns:1fr .6fr;gap:80px;align-items:end}.contact-data{font-size:17px;display:flex;flex-direction:column;gap:8px}.contact-data a{border-bottom:1px solid var(--line);padding:10px 0}footer{background:var(--ocean);color:white;padding:45px clamp(24px,7vw,110px);display:flex;justify-content:space-between;align-items:end;font-size:12px}.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s ease}.reveal.visible{opacity:1;transform:none}.image-reveal{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s cubic-bezier(.65,0,.2,1)}.image-reveal.visible{clip-path:inset(0)}
@media(max-width:920px){.nav{height:76px;padding:0 22px}.nav nav{display:none}.logo-sign{width:38px;height:38px;font-size:19px}.logo b{font-size:11px}.book-link{padding:9px 14px}.hero{min-height:760px}.hero-copy{top:43%;left:24px;right:24px}.quick-book{left:18px;right:18px;grid-template-columns:1fr 1fr;bottom:18px}.quick-book label:nth-child(3){border-top:1px solid var(--line)}.quick-book button{min-height:68px}.sound-control{display:none}.pad{padding:90px 24px}.statement-foot,.aerial,.rooms,.pool,.booking,.contact{grid-template-columns:1fr}.statement-foot{gap:35px;margin-top:50px}.aerial-photo,.pool-photo{height:115vw;max-height:720px}.aerial-copy{padding:25px 0}.moving-stories{grid-template-columns:1fr 1fr}.stories-title{grid-column:1/-1}.story-main{height:600px}.story-side{height:500px;margin-top:80px}.story-wide{height:420px;margin-top:0;grid-column:1/-1}.rooms{gap:55px}.booking{gap:60px}footer{align-items:center}.logo small{display:none}}
@media(max-width:600px){.nav .logo span:last-child{display:none}.hero h1{font-size:55px}.hero-copy>p:last-child{font-size:17px;max-width:300px}.quick-book label{padding:13px}.quick-book button{font-size:13px;padding:0 14px}.statement h2,.aerial h2,.stories-title h2,.rooms h2,.pool h2,.booking h2,.contact h2{font-size:45px}.statement-foot>div{gap:10px}.statement-foot b{font-size:26px}.moving-stories{grid-template-columns:1fr;gap:18px}.story-main,.story-side,.story-wide{grid-column:auto;margin:0;height:125vw;max-height:620px}.room-row{grid-template-columns:32px 1fr 24px}.room-row p{display:none}.room-row h3{font-size:24px}.amenities{grid-template-columns:1fr}.fields.two,.fields.three{grid-template-columns:1fr}.form-top{display:block}.form-top span{display:block;margin-top:8px}.contact{gap:35px}footer{display:grid;gap:28px}footer>a:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sound-control span{animation:none}.reveal{opacity:1;transform:none}.image-reveal{clip-path:none}.story video{transition:none}}
.media-gallery{background:#fff;overflow:hidden}.gallery-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.gallery-head h2{font-family:var(--serif);font-weight:400;letter-spacing:-.055em;line-height:.94;font-size:clamp(45px,5.5vw,82px);margin:0}.gallery-head h2 i{font-weight:400;color:var(--ocean)}.gallery-controls{display:flex;align-items:center;gap:16px}.gallery-controls button{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;font-size:18px;transition:.25s}.gallery-controls button:hover{background:var(--ocean);color:#fff;border-color:var(--ocean)}.gallery-controls span{font-size:12px;color:var(--muted);min-width:52px;text-align:center}.gallery-controls b{color:var(--ink)}.gallery-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-right:8vw;outline:none}.gallery-track::-webkit-scrollbar{display:none}.gallery-item{flex:0 0 min(72vw,760px);height:620px;margin:0;position:relative;overflow:hidden;background:var(--sky);scroll-snap-align:start}.gallery-item.portrait{flex-basis:min(42vw,430px)}.gallery-item img,.gallery-item video{width:100%;height:100%;display:block;object-fit:cover}.gallery-item figcaption{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(255,255,255,.93);padding:12px 15px;font-family:var(--serif);font-size:20px}.gallery-item figcaption span{display:block;font-family:var(--sans);font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--ocean);margin-bottom:3px}@media(max-width:920px){.gallery-item{height:560px;flex-basis:82vw}.gallery-item.portrait{flex-basis:65vw}}@media(max-width:600px){.gallery-head{align-items:flex-end;gap:20px}.gallery-controls{gap:7px}.gallery-controls button{width:40px;height:40px}.gallery-item,.gallery-item.portrait{height:530px;flex-basis:86vw}.gallery-item.landscape img,.gallery-item.landscape video{object-fit:cover}.gallery-item figcaption{font-size:18px}}
.room-gallery{grid-column:1/-1;display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:290px 290px;gap:18px;margin-top:55px}.room-shot{position:relative;margin:0;overflow:hidden;background:var(--sky)}.room-shot-main{grid-row:1/3}.room-shot-wide{grid-column:2}.room-shot img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.room-shot:hover img{transform:scale(1.025)}.room-shot figcaption{position:absolute;left:16px;bottom:14px;background:rgba(255,255,255,.92);padding:7px 11px;font-size:11px;letter-spacing:.08em}@media(max-width:920px){.room-gallery{grid-template-columns:1fr 1fr;grid-template-rows:460px 280px}.room-shot-main{grid-row:auto;grid-column:1/-1}.room-shot-wide{grid-column:auto}}@media(max-width:600px){.room-gallery{grid-template-columns:1fr;grid-template-rows:380px 280px 220px;margin-left:-24px;margin-right:-24px}.room-shot-main,.room-shot-wide{grid-column:auto}}
