/* Poolside welcome. Scoped to the current homepage presentation. */
.bluffs-home {
    --bh-salt:#f6f2ea;
    --bh-oyster:#ede6da;
    --bh-hero-height:clamp(690px,49vw,810px);
    --bh-ease-photo:cubic-bezier(.22,.61,.36,1);
    background:#fff;
    color:var(--bluffs-laguna);
}
.bluffs-home .bh-container { width:min(1560px,calc(100% - clamp(40px,8vw,160px))); margin-inline:auto; }
.bluffs-home .bh-section { padding-block:clamp(3.5rem,6vw,6.25rem); }
.bluffs-home :is(h1,h2,h3) { color:inherit; font-weight:500; line-height:1.05; letter-spacing:-.025em; margin:0; }
.bluffs-home :is(h1,h2) { font-size:clamp(2.6rem,4vw,4.25rem); }
.bluffs-home p { margin:0 0 1.5rem; }
.bluffs-home .bh-eyebrow { margin-bottom:1.4rem; font-size:.69rem; line-height:1.65; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.bluffs-home .bh-actions { display:flex; flex-wrap:wrap; gap:1rem 1.75rem; align-items:center; }
.bluffs-home .bh-text-link { display:inline-flex; align-items:center; gap:1.25rem; min-height:48px; padding-block:.5rem; border-bottom:1px solid currentColor; color:inherit; font-size:.81rem; line-height:1.5; font-weight:600; text-decoration:none; }
.bluffs-home .bh-text-link span { font-size:1.25rem; }
.bluffs-home .bh-text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.bluffs-home .bluffs-btn { min-height:50px; font-size:.72rem; letter-spacing:.1em; padding:1rem 1.6rem; }
.bluffs-home :is(button,a):focus-visible { outline:3px solid var(--bluffs-marina-teal-deep); outline-offset:6px; }
.bluffs-home :is(.bh-hero,.bh-gather,.bh-closing) :is(button,a):focus-visible { outline-color:#fff; }
.bluffs-home :is(.bh-slide,.bh-hero__controls)[hidden] { display:none!important; }
.bluffs-home [data-home-status] { position:absolute!important; margin:0!important; }

/* Each story is readable HTML. Only the first photograph loads on arrival. */
.bh-hero { position:relative; background:var(--bluffs-laguna-deep); color:#fff; }
.bh-slide { position:relative; isolation:isolate; display:flex; align-items:center; min-height:var(--bh-story-height,var(--bh-hero-height)); padding-block:4rem 9.5rem; }
.bh-hero__image { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.bluffs-home .bh-hero__image picture,.bluffs-home .bh-hero__image img { display:block; width:100%; height:100%; }
.bluffs-home .bh-hero__image img { object-fit:cover; object-position:center 76%; }
.bh-slide::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,rgba(11,32,48,.87),rgba(11,32,48,.55) 48%,rgba(11,32,48,.10) 82%),linear-gradient(0deg,rgba(11,32,48,.88),transparent 35%); }
.bluffs-home .bh-hero__copy { padding-inline:clamp(0px,1vw,20px); }
.bluffs-home .bh-hero__location { margin-bottom:2.3rem; }
.bluffs-home .bh-hero__kicker { margin-bottom:1.25rem; color:#e4ded1; font-size:.65rem; line-height:1.6; letter-spacing:.14em; text-transform:uppercase; }
.bluffs-home .bh-hero h2 { font-size:clamp(3.15rem,5.2vw,5.5rem); line-height:1; max-width:20ch; text-wrap:balance; }
.bluffs-home .bh-hero__lede { max-width:43ch; font-size:1.0625rem; line-height:1.8; margin:1.7rem 0 1.9rem; }
.bluffs-home .bh-hero .bluffs-btn { color:var(--bluffs-laguna-deep); background:var(--bh-salt); border-color:var(--bh-salt); }
.bluffs-home .bh-hero .bluffs-btn:hover { background:#fff; border-color:#fff; }
.bh-hero__controls { position:absolute; left:0; right:0; bottom:1.75rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.bh-slide-nav { display:flex; gap:clamp(1rem,2.2vw,2.5rem); }
.bh-slide-nav button { min-width:110px; min-height:54px; padding:.9rem 0 .3rem; border:0; border-top:1px solid #a5b3ba; background:transparent; color:#fff; text-align:left; font-size:.75rem; line-height:1.5; }
.bh-slide-nav button span { margin-right:.8rem; font-size:.65rem; }
.bh-slide-nav button[aria-current] { border-top:3px solid var(--bluffs-oyster); padding-top:calc(.9rem - 2px); }
.bh-arrows { display:flex; gap:.5rem; flex-shrink:0; }
.bh-arrows button { display:grid; place-items:center; min-width:46px; min-height:46px; padding:.5rem; border:1px solid #a5b3ba; background:transparent; color:#fff; font-size:1.2rem; line-height:1; }
.bh-arrows .bh-play { min-width:66px; font-size:.72rem; }
.bh-arrows button:disabled { opacity:.65; cursor:default; }
.bh-arrows button:not(:disabled):hover { background:rgba(255,255,255,.15); }
.bluffs-home .bh-slide--measure { position:absolute; inset:0 0 auto; visibility:hidden; pointer-events:none; min-height:var(--bh-hero-height); }
.bluffs-home .bh-hero__outgoing { position:absolute; inset:0; pointer-events:none; }
.bluffs-home .bh-slide.is-current:not(.is-instant) .bh-hero__image:not(.bh-hero__outgoing) img { animation:bh-hero-drift 12s linear both; animation-play-state:paused; }
.bluffs-home .bh-hero.is-motion-running .bh-slide.is-current:not(.is-instant) .bh-hero__image:not(.bh-hero__outgoing) img { animation-play-state:running; }
@keyframes bh-hero-drift { from { transform:scale(1.035); } to { transform:scale(1); } }
.bh-facts { background:var(--bluffs-sea-glass-soft); border-bottom:1px solid var(--bluffs-sea-glass-deep); }
.bluffs-home .bh-facts ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; list-style:none; padding:1.6rem 0; margin-block:0; }
.bh-facts li { margin:0; font-size:.78rem; line-height:1.65; }
.bh-facts li+li { padding-left:1.5rem; border-left:1px solid var(--bluffs-sea-glass-deep); }

/* The aerial remains visible at the edges of a light, readable welcome. */
.bh-welcome,.bh-gather,.bh-closing { position:relative; isolation:isolate; overflow:hidden; }
.bluffs-home .bh-background { position:absolute; z-index:-2; inset:0; pointer-events:none; }
.bluffs-home .bh-background picture,.bluffs-home .bh-background img { display:block; width:100%; height:100%; }
.bluffs-home .bh-background img { object-fit:cover; }
.bh-welcome { background:var(--bh-salt); text-align:center; }
.bh-welcome .bh-background img { object-position:center 62%; }
.bh-welcome::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(246,242,234,.72),rgba(246,242,234,.90) 27%,rgba(246,242,234,.91) 73%,rgba(246,242,234,.72)); }
.bluffs-home .bh-welcome__copy { max-width:780px; }
.bluffs-home .bh-welcome h1 { font-size:clamp(2.8rem,4.5vw,4.6rem); }
.bluffs-home .bh-welcome__copy>p:last-child { max-width:66ch; margin:1.7rem auto 0; font-size:1.0625rem; line-height:1.85; }

.bh-pool__grid { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(3rem,7vw,7rem); align-items:center; }
.bluffs-home figure { margin:0; min-width:0; }
.bluffs-home figure picture { display:block; }
.bluffs-home figure img { display:block; width:100%; height:auto; object-fit:cover; }
.bluffs-home figcaption { color:var(--bluffs-driftwood-dark); font-size:.72rem; line-height:1.65; margin-top:.85rem; }
.bh-pool__portrait>a { display:block; }
.bluffs-home .bh-pool__portrait img { aspect-ratio:4/4.2; object-position:65% 76%; }
.bluffs-home .bh-pool__copy>p:not(.bh-eyebrow) { max-width:43ch; margin:1.5rem 0; font-size:1.0625rem; }
.bluffs-home .bh-pool__detail { max-width:380px; margin-top:2rem; }
.bluffs-home .bh-pool__detail img { aspect-ratio:1.8; }
.bh-rooms { background:var(--bh-salt); }
.bh-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:2.5rem; margin-bottom:2.75rem; }
.bh-section-heading>.bh-text-link { flex-shrink:0; }
.bluffs-home .bh-section-heading>div>p:last-child:not(.bh-eyebrow) { margin:1.3rem 0 0; font-size:1.0625rem; }
.bh-room-grid,.bh-event-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.5rem,2.2vw,2.5rem); }
.bh-room,.bh-event { min-width:0; }
.bh-room__photo,.bh-event__photo { display:block; }
.bluffs-home :is(.bh-room,.bh-event) picture { display:block; }
.bluffs-home :is(.bh-room,.bh-event) img { display:block; width:100%; height:auto; aspect-ratio:1.45; object-fit:cover; }
.bluffs-home :is(.bh-room,.bh-event) .bh-eyebrow { margin:1.5rem 0 .75rem; }
.bluffs-home :is(.bh-room,.bh-event) h3 { font-size:clamp(1.8rem,2.3vw,2.5rem); line-height:1.12; }
.bluffs-home :is(.bh-room,.bh-event) h3 a { color:inherit; font:inherit; text-decoration:none; }
.bluffs-home :is(.bh-room,.bh-event) h3 a:hover { text-decoration:underline; text-underline-offset:6px; }
.bh-room h3 a { display:flex; align-items:baseline; justify-content:space-between; gap:.8rem; }
.bh-room h3 span { font-family:var(--font-sans); font-size:1.3rem; }
.bluffs-home :is(.bh-room,.bh-event)>p:not(.bh-eyebrow) { font-size:.95rem; line-height:1.8; margin:1rem 0 0; }
.bh-gather { display:flex; align-items:center; min-height:640px; padding-block:5rem; background:var(--bluffs-laguna-deep); color:#fff; }
.bh-gather .bh-background img { object-position:center 57%; }
.bh-gather::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(11,32,48,.94),rgba(11,32,48,.68) 48%,rgba(11,32,48,.08)); }
.bh-gather__copy { max-width:650px; }
.bluffs-home .bh-gather h2 { font-size:clamp(3rem,4.4vw,4.9rem); }
.bluffs-home .bh-gather__copy>p:not(.bh-eyebrow) { max-width:37ch; margin:1.8rem 0 2rem; font-size:1.0625rem; }
.bluffs-home :is(.bh-gather,.bh-closing) .bluffs-btn--inverse { background:var(--bh-salt); border-color:var(--bh-salt); color:var(--bluffs-laguna-deep); }
.bluffs-home :is(.bh-gather,.bh-closing) .bluffs-btn--inverse:hover { background:#fff; border-color:#fff; }
.bh-explore__grid { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(3rem,7vw,7rem); align-items:center; }
.bluffs-home .bh-explore__grid img { aspect-ratio:1.5; }
.bluffs-home .bh-explore__grid h3 { font-size:clamp(2.2rem,2.9vw,3rem); }
.bluffs-home .bh-explore__grid>div>p:not(.bh-eyebrow) { margin:1.6rem 0; font-size:1.0625rem; }
.bh-events { background:var(--bh-oyster); }
.bluffs-home .bh-event img { aspect-ratio:1.6; }
.bluffs-home .bh-event .bh-event__date { margin:0 0 .85rem; font-size:.83rem; font-weight:600; }
.bluffs-home .bh-event .bh-event__venue { font-size:.83rem; font-weight:600; }
.bh-event>.bh-text-link { margin-top:.75rem; }
.bh-closing { min-height:530px; display:flex; align-items:center; background:var(--bluffs-laguna-deep); color:#fff; text-align:center; }
.bh-closing .bh-background img { object-position:center 57%; }
.bh-closing::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(11,32,48,.86),rgba(11,32,48,.76) 50%,rgba(11,32,48,.80)); }
.bluffs-home .bh-closing h2 { font-size:clamp(3.1rem,5vw,5.25rem); margin-bottom:2.2rem; }
.bh-closing .bh-actions { justify-content:center; }

/* Photographs settle into their frames once. Text stays available throughout. */
.bluffs-home .bh-motion-frame { display:block; overflow:hidden; }
.bluffs-home .bh-motion-frame img { transition:transform 700ms var(--bh-ease-photo),opacity 450ms var(--bh-ease-photo); }
.bluffs-home .bh-motion-frame.is-awaiting img { opacity:.72; transform:scale(1.045); }
.bluffs-home .bh-background.is-awaiting img { opacity:1; transform:scale(1.035); }
.bluffs-home .bh-motion-frame.is-revealing img { transition-duration:1100ms,700ms; transition-delay:var(--bh-reveal-delay,0ms); will-change:transform,opacity; }
.bluffs-home .bh-background.is-revealing img { transition-duration:1600ms,700ms; }
.bluffs-home .bh-motion-frame.is-instant img { transition:none!important; }
@media (hover:hover) and (pointer:fine) {
    .bluffs-home .bh-room:hover .bh-room__photo:not(.is-awaiting):not(.is-instant) img,
    .bluffs-home .bh-event:hover .bh-event__photo:not(.is-awaiting):not(.is-instant) img,
    .bluffs-home .bh-pool__portrait>a:not(.is-awaiting):not(.is-instant):hover img { transform:scale(1.025); }
}

@media (max-width:1100px) {
    .bh-slide-nav { gap:1rem; }
    .bh-slide-nav button { min-width:87px; font-size:.7rem; }
    .bh-slide-nav button span { margin-right:.5rem; }
    .bh-hero__controls { gap:1.25rem; }
    .bh-section-heading { display:block; }
    .bh-section-heading>.bh-text-link { margin-top:1.5rem; }
    .bh-pool__grid,.bh-explore__grid { gap:3rem; }
    .bluffs-home :is(.bh-room,.bh-event) h3 { font-size:1.9rem; }
}
@media (max-width:760px) {
    .bluffs-home .bh-container { width:calc(100% - 40px); }
    .bluffs-home .bh-section { padding-block:3.5rem; }
    .bh-slide { display:block; min-height:var(--bh-story-height,0px); padding:0; }
    .bluffs-home .bh-slide--measure { min-height:0; }
    .bh-hero__image { position:relative; inset:auto; height:285px; z-index:0; }
    .bluffs-home .bh-hero__image img { object-position:65% 78%; }
    .bluffs-home .bh-hero__outgoing { height:285px; z-index:1; }
    .bluffs-home .bh-slide.is-current .bh-hero__image img { animation:none!important; }
    .bh-slide::after { display:none; }
    .bluffs-home .bh-hero__copy { min-height:400px; padding:2rem 0 1.5rem; }
    .bluffs-home .bh-hero__location { font-size:.62rem; margin-bottom:1.5rem; }
    .bluffs-home .bh-hero__kicker { font-size:.62rem; margin-bottom:1rem; }
    .bluffs-home .bh-hero h2 { font-size:clamp(2.8rem,10.9vw,4rem); max-width:none; text-wrap:initial; }
    .bluffs-home .bh-hero__lede { max-width:42ch; font-size:1rem; line-height:1.8; margin:1.4rem 0 1.6rem; }
    .bluffs-home .bh-hero .bluffs-btn { min-height:48px; padding:.9rem 1.1rem; font-size:.68rem; }
    .bluffs-home .bh-hero .bh-text-link { font-size:.75rem; }
    .bh-hero__controls { position:relative; bottom:auto; display:flex; flex-wrap:wrap; gap:1rem; padding-bottom:1.5rem; }
    .bh-slide-nav { width:100%; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.6rem; }
    .bh-slide-nav button { min-width:0; text-align:center; min-height:54px; font-size:.64rem; padding-top:.7rem; }
    .bh-slide-nav button[aria-current] { padding-top:calc(.7rem - 2px); }
    .bh-slide-nav button span { display:block; margin:0 0 .3rem; font-size:.6rem; }
    .bh-arrows { margin-left:auto; }
    .bluffs-home .bh-facts ul { grid-template-columns:1fr 1fr; gap:1rem; padding-block:1.4rem; }
    .bh-facts li { font-size:.72rem; }
    .bh-facts li+li { padding:0; border:0; }
    .bh-welcome::after { background:rgba(246,242,234,.89); }
    .bh-welcome .bh-background img { object-position:62% center; }
    .bluffs-home .bh-welcome h1 { font-size:clamp(2.5rem,10vw,3.5rem); }
    .bluffs-home .bh-welcome__copy>p:last-child { font-size:1rem; line-height:1.9; }
    .bluffs-home .bh-eyebrow { font-size:.65rem; }
    .bh-pool__grid,.bh-explore__grid { display:flex; flex-direction:column; gap:2.25rem; }
    .bh-pool__portrait,.bh-pool__copy,.bh-explore__grid>figure,.bh-explore__grid>div { width:100%; }
    .bluffs-home .bh-pool__portrait img { aspect-ratio:1.13; }
    .bluffs-home .bh-pool__copy>p:not(.bh-eyebrow),.bluffs-home .bh-explore__grid>div>p:not(.bh-eyebrow) { font-size:1rem; }
    .bluffs-home .bh-pool__detail { max-width:none; }
    .bluffs-home .bh-pool__detail img { aspect-ratio:1.7; }
    .bluffs-home :is(h1,h2) { font-size:clamp(2.5rem,9.5vw,3.5rem); }
    .bh-section-heading { margin-bottom:2rem; }
    .bh-room-grid,.bh-event-grid { grid-template-columns:1fr; gap:2.7rem; }
    .bluffs-home :is(.bh-room,.bh-event) h3 { font-size:2rem; }
    .bluffs-home :is(.bh-room,.bh-event)>p:not(.bh-eyebrow) { font-size:1rem; }
    .bh-gather { min-height:600px; align-items:flex-end; padding:3rem 0; }
    .bh-gather .bh-background img { object-position:56% center; }
    .bh-gather::after { background:linear-gradient(0deg,rgba(11,32,48,.97),rgba(11,32,48,.72) 58%,rgba(11,32,48,.17)); }
    .bluffs-home .bh-gather h2 { font-size:clamp(2.6rem,10vw,3.5rem); }
    .bluffs-home .bh-gather__copy>p:not(.bh-eyebrow) { font-size:1rem; }
    .bluffs-home .bh-explore__grid h3 { font-size:2.15rem; }
    .bh-closing { min-height:520px; }
    .bh-closing .bh-background img { object-position:40% center; }
    .bh-closing::after { background:rgba(11,32,48,.79); }
    .bluffs-home .bh-closing h2 { font-size:clamp(2.8rem,10.5vw,3.8rem); }
    .bh-closing .bh-actions { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
    .bluffs-home .bh-motion-frame img,
    .bluffs-home .bh-slide .bh-hero__image img { opacity:1!important; transform:none!important; animation:none!important; transition:none!important; }
}
