/* Datavendor reference: fixed dot lattice, centred composition, soft focus entrance. */
.halftone-home .site-header:not(.is-scrolled):not(.menu-open){background:rgba(252,251,235,.92);color:var(--ink);border-color:rgba(29,29,27,.12);backdrop-filter:blur(16px)}
.halftone-canvas{display:block;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .5s ease}
.halftone-canvas.halftone-ready{opacity:1}
.hero-halftone{position:relative;isolation:isolate;overflow:hidden;min-height:830px;height:100svh;max-height:1100px;background:var(--cream);color:var(--ink);color-scheme:light}
.hero-dot-scene{position:absolute;inset:0;z-index:-1}
.hero-fallback{position:absolute;inset:0;z-index:-1;opacity:.4;mask-image:radial-gradient(ellipse 23% 38% at 50% 30%,transparent 40%,#000 100%)}
.hero-fallback img{width:100%;height:100%;object-fit:cover;filter:grayscale(.75);mask-image:radial-gradient(circle at center,#000 45%,transparent 50%);mask-size:8px 8px}
.hero-halftone:has(.halftone-ready) .hero-fallback{opacity:0}
.hero-copy{position:relative;padding-top:158px;text-align:center;pointer-events:none;animation:hero-copy-resolve 2s 2s both}
.hero-copy a,.hero-copy button{pointer-events:auto}
.hero-location{display:flex;align-items:center;justify-content:center;gap:11px;font-size:10px;margin:0 0 26px;letter-spacing:.15em}
.hero-copy h1{font-size:clamp(76px,7.3vw,112px);line-height:.94;max-width:1000px;margin:0 auto 26px;letter-spacing:-.01em}
.hero-description{max-width:510px;margin:0 auto 28px;font-size:14px;line-height:1.9;color:#56564d}
.hero-copy .hero-buttons{justify-content:center;gap:27px}
.hero-copy .film-button{font-size:12px}
.hero-copy .play-circle{border-color:rgba(29,29,27,.4)}
.hero-copy .film-button:hover .play-circle{color:var(--cream)}
.hero-controls{position:absolute;bottom:103px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:20px}
.hero-controls .scroll-cue{background:rgba(252,251,235,.82);padding:9px 14px}
.hero-interaction-hint{font-size:9px;letter-spacing:.12em;background:rgba(252,251,235,.82);padding:12px 14px}
.hero-note{position:absolute;bottom:0;left:0;right:0;height:62px;display:flex;align-items:center;justify-content:space-around;gap:20px;padding-inline:40px;background:rgba(252,251,235,.95);border-top:1px solid rgba(29,29,27,.1);font-size:9px;letter-spacing:.12em}
.discover-section{background:var(--cream);color:var(--ink);padding:80px 0 54px;color-scheme:light}
.discover-inner{max-width:1120px}
.discover-section .eyebrow{font-size:10px}
.discover-section h2{font-family:var(--body);font-size:clamp(26px,3vw,42px);font-weight:400;text-transform:none;line-height:1.4;letter-spacing:-.04em;margin-bottom:42px}
.discover-section h2 span{font-weight:700}
.dot-field-wrap{height:235px;position:relative;background:radial-gradient(circle,var(--coral) 3px,transparent 3.5px) 0 0/8px 8px}
.dot-field-wrap:has(.halftone-ready){background:none}
.dot-field-hotspots{position:absolute;inset:0}
.dot-hotspot{position:absolute;width:46px;height:46px;background:none;border:0;border-radius:50%;padding:0;top:45%;left:19%;display:grid;place-items:center}
.dot-hotspot:before{content:'';width:14px;height:14px;background:var(--ink);border:3px solid var(--cream);border-radius:50%;transition:transform .35s ease}
.dot-hotspot:nth-child(2){top:13%;left:53%}
.dot-hotspot:nth-child(3){top:59%;left:81%}
.dot-hotspot span{position:absolute;bottom:47px;left:50%;transform:translate(-50%,6px);background:var(--ink);color:var(--cream);font-size:9px;letter-spacing:.06em;white-space:nowrap;padding:7px 12px;border-radius:4px;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none}
.dot-hotspot:hover span,.dot-hotspot:focus-visible span,.dot-hotspot.is-selected span{opacity:1;transform:translate(-50%,0)}
.dot-hotspot:hover:before,.dot-hotspot.is-selected:before{transform:scale(1.3)}
.dot-field-caption{font-size:12px;color:#64645b;min-height:46px;margin:20px 0 0;max-width:680px;line-height:1.8}
.booking-section{position:relative;isolation:isolate;overflow:hidden;background:var(--cream);color:var(--ink);padding-bottom:360px;color-scheme:light}
.booking-dunes{position:absolute;inset:auto 0 0;height:340px;z-index:-1}
.booking-grid{position:relative}
.booking-section .text-link:hover{color:var(--coral)}
.booking-section h2 .outlined-text{-webkit-text-stroke-color:var(--coral);color:var(--coral)}
.motion-paused .hero-copy{animation:none;opacity:1;filter:none;transform:none}
.motion-paused .halftone-canvas{transition:none}
@keyframes hero-copy-resolve{from{opacity:0;filter:blur(12px);transform:translateY(12px)}to{opacity:1;filter:blur(0);transform:none}}
@media(max-width:900px){.hero-halftone{min-height:810px}.hero-copy{padding-top:150px}.hero-copy h1{font-size:90px}.hero-description{max-width:440px}.hero-interaction-hint{display:none}.hero-controls{justify-content:center}.discover-section{padding-top:65px}.dot-field-wrap{height:205px}.booking-section{padding-bottom:320px}.booking-dunes{height:295px}}
@media(max-width:600px){.hero-halftone{min-height:780px;max-height:980px}.hero-copy{padding-top:142px;width:calc(100% - 32px)}.hero-location{font-size:9px;letter-spacing:.08em;margin-bottom:27px}.hero-copy h1{font-size:clamp(57px,15.4vw,90px);line-height:.98;margin-bottom:27px}.hero-description{font-size:14px;max-width:310px;margin-bottom:27px;padding-inline:7px}.hero-copy .hero-buttons{flex-direction:column;gap:15px}.hero-copy .hero-buttons .button{min-width:212px;justify-content:space-between;font-size:12px;padding:17px 21px}.hero-copy .film-button{font-size:12px}.hero-copy .play-circle{width:32px;height:32px}.hero-controls{bottom:88px;justify-content:center}.hero-controls .scroll-cue{font-size:10px}.hero-note{height:55px;padding-inline:20px;justify-content:center;font-size:8px;gap:18px;letter-spacing:.06em}.hero-note span:last-child{display:none}.discover-section{padding-block:54px 26px}.discover-section h2{font-size:27px;line-height:1.45;letter-spacing:-.04em;margin-bottom:34px}.dot-field-wrap{height:195px}.dot-hotspot:nth-child(1){left:9%}.dot-hotspot:nth-child(2){left:44%}.dot-hotspot:nth-child(3){left:77%}.dot-hotspot span{font-size:8px;padding:7px 9px}.dot-field-caption{font-size:12px;min-height:67px;margin-top:17px}.booking-section{padding-bottom:260px}.booking-dunes{height:245px}}
@media(max-width:350px){.hero-copy{padding-top:135px}.hero-copy h1{font-size:15.6vw}.hero-location{font-size:8px}.hero-description{font-size:13px;max-width:280px}.hero-halftone{min-height:775px}.hero-note{font-size:7px;padding-inline:16px}.discover-section h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.hero-copy{animation:none;opacity:1;filter:none;transform:none}.halftone-canvas{transition:none}}
