/* Bahundu Safari Lodge — quiet luxury design system */

/* Self-hosted webfonts. Latin and latin-ext only — the site is English, so the
   cyrillic, greek and vietnamese subsets Google serves are never needed. Kept
   in this file rather than a separate request: site.css already blocks render, so the faces are discovered without a second round trip to a third party. */
@font-face{
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/inter-300-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/inter-300-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/manrope-300-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/manrope-300-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --ink:#17363b;
  --ink-deep:#0e292d;
  --paper:#f3efe6;
  --paper-soft:#faf7f0;
  --sand:#d6c4a5;
  --gold:#d5b26b;
  --rust:#b66b37;
  --sage:#78877d;
  --line:rgba(23,54,59,.16);
  --white:#fffdf8;
  --display:'Cormorant Garamond',Georgia,serif;
  --sans:'Manrope','Helvetica Neue',Arial,sans-serif;
  --pad:clamp(1.35rem,4vw,5rem);
  --section:clamp(5.5rem,10vw,10rem);
  --ease:cubic-bezier(.22,1,.36,1);
  /* Darker rust and sage for small text on the pale paper backgrounds, where the
     display tints fall below the 4.5:1 contrast minimum. */
  --rust-text:#9c5526;
  --sage-text:#5f6f65;
}
/* Present for assistive technology and search engines, absent visually. Never
   use display:none for text that still needs to be announced. */
.u-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
*{box-sizing:border-box}
html{scroll-behavior:auto;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;font-weight:300;line-height:1.75;overflow-x:hidden}
body.menu-open, body.booking-open, body.stay-lightbox-open{overflow:hidden}
::selection{background:var(--gold);color:var(--ink-deep)}
img{display:block;width:100%;height:auto}
a{color:inherit;text-decoration:none}
button, input, select, textarea{font:inherit}
button{color:inherit}
p{margin:0 0 1.4rem}
h1, h2, h3, h4, h5, h6{font-family:var(--display);font-weight:400;line-height:.96;letter-spacing:-.035em;margin:0}
main{position:relative;z-index:1;background:var(--paper)}
.skip-link{position:fixed;top:.7rem;left:.7rem;z-index:9999;padding:.7rem 1rem;background:var(--white);transform:translateY(-160%);transition:transform .2s}
.skip-link:focus{transform:none}
.container{width:min(100%,1600px);margin:auto;padding-inline:var(--pad)}
.section{position:relative;padding-block:var(--section)}
.eyebrow{display:flex;align-items:center;gap:.9rem;margin:0 0 1.6rem;font-size:.68rem;font-weight:600;line-height:1.2;letter-spacing:.25em;text-transform:uppercase}
.display-lg{font-size:clamp(3.45rem,7.1vw,7.7rem)}
.home-h3{font-size:clamp(2.25rem,4.15vw,4.55rem);line-height:1}
.title-balance{text-wrap:balance}
.copy{max-width:39rem;font-size:clamp(.95rem,1.05vw,1.08rem);line-height:1.85;color:color-mix(in srgb,currentColor 76%,transparent)}
.copy--large{font-size:clamp(1.05rem,1.35vw,1.3rem);line-height:1.8}
.meta{font-size:.69rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase}
.number{font-family:var(--display);font-size:1.4rem;font-variant-numeric:tabular-nums}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.1rem;min-height:3.6rem;padding:.9rem 1.7rem;border:1px solid currentColor;border-radius:999px;background:transparent;font-size:.68rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;cursor:pointer;transition:background .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease),transform .45s var(--ease)}
.button:hover{background:var(--ink);border-color:var(--ink);color:var(--white);transform:translateY(-2px)}
.text-link{display:inline-flex;align-items:center;gap:1rem;padding:0 0 .35rem;border:0;border-bottom:1px solid currentColor;background:none;font-size:.69rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;cursor:pointer}
.action-arrow{display:block;width:.95rem;height:.95rem;flex:0 0 .95rem;object-fit:contain;filter:var(--action-arrow-filter,none);transition:filter .35s,transform .45s var(--ease)}
.button .action-arrow{width:1rem;height:1rem;flex-basis:1rem}
.button:hover .action-arrow, .text-link:hover .action-arrow{transform:translate(3px,-3px)}
.button:hover .action-arrow{filter:brightness(0) invert(1)}
.hero-home__content, .closing{--action-arrow-filter:brightness(0) invert(1)}
/* Navigation */
.nav{position:fixed;top:0;left:0;right:0;z-index:800;height:6.5rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);color:var(--white);transition:height .5s var(--ease),background .5s,color .5s,border .5s,transform .5s var(--ease)}
.nav.is-scrolled{height:5.1rem;color:var(--ink);background:rgba(243,239,230,.88);border-bottom:1px solid var(--line);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%)}
.nav.is-hidden{transform:translateY(-110%)}
.nav-menu{justify-self:start;display:inline-flex;align-items:center;gap:1rem;padding:0;border:0;background:none;cursor:pointer;text-transform:uppercase;font-size:.65rem;font-weight:600;letter-spacing:.28em}
.nav-bars{width:1.75rem;display:grid;gap:5px}
.nav-bars i{display:block;height:1px;background:currentColor;transition:transform .4s var(--ease),opacity .3s}
.nav-brand{position:relative;width:clamp(82px,6.9vw,114px);aspect-ratio:1.9/1}
.nav-brand__logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 10px rgba(0,0,0,.12));transition:opacity .45s var(--ease)}
.nav-brand__logo--light{opacity:1}
.nav-brand__logo--dark{opacity:0}
.nav.is-scrolled .nav-brand__logo--light{opacity:0}
.nav.is-scrolled .nav-brand__logo--dark{opacity:1}
.nav-book{justify-self:end;min-width:9.5rem;min-height:3rem;border-radius:999px;background:var(--white);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:.61rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;transition:background .4s,color .4s,transform .4s var(--ease)}
.nav-book:hover{background:var(--gold);transform:translateY(-2px)}
.nav.is-scrolled .nav-book{background:var(--ink);color:var(--white)}
.menu-open .nav{color:var(--white);background:transparent;background-image:none;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transform:none}
.menu-open .nav .nav-brand__logo--light{opacity:1}
.menu-open .nav .nav-brand__logo--dark{opacity:0}
.menu-open .nav-book{background:var(--paper);color:var(--ink)}
.menu-open .nav-bars i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-open .nav-bars i:nth-child(2){opacity:0}
.menu-open .nav-bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.menu-panel{position:fixed;inset:0;z-index:700;background:var(--ink-deep);color:var(--white);display:grid;grid-template-columns:58% 42%;clip-path:inset(0 0 100% 0);pointer-events:none;transition:clip-path .85s var(--ease)}
.menu-open .menu-panel{clip-path:inset(0);pointer-events:auto}
.menu-main{padding:clamp(8.5rem,12vh,11rem) var(--pad) 3rem;display:flex;flex-direction:column;justify-content:space-between}
.menu-links{display:grid}
.menu-links a{position:relative;width:max-content;font-family:var(--display);font-size:clamp(3rem,5.7vw,6.4rem);line-height:.92;letter-spacing:-.035em;color:rgba(255,255,255,.5);transition:color .35s,transform .5s var(--ease)}
.menu-links a:hover, .menu-links a:focus-visible, .menu-links a.is-active{color:var(--white);transform:translateX(.35rem)}
.menu-links a:focus-visible{outline:none}
.menu-links a small{font-family:var(--sans);font-size:.58rem;letter-spacing:.18em;margin-right:1rem;vertical-align:middle}
.menu-social{display:flex;align-items:center;gap:1.15rem}
.menu-social a{display:grid;width:2.35rem;height:2.35rem;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:rgba(255,255,255,.76);transition:color .35s,border-color .35s,transform .35s var(--ease)}
.menu-social a:hover, .menu-social a:focus-visible{border-color:var(--gold);color:var(--gold);outline:none;transform:translateY(-2px)}
.menu-social svg{width:1.15rem;height:1.15rem;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.menu-social .menu-social__fill{fill:currentColor;stroke:none}
.menu-visual{position:relative;overflow:hidden;border-left:1px solid rgba(255,255,255,.18);background:#102b2f}
.menu-visual figure{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.06);transition:opacity .7s,transform 1.1s var(--ease)}
.menu-visual figure.is-active{opacity:1;transform:scale(1)}
.menu-visual img{height:100%;object-fit:cover}
.menu-visual::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,41,45,.35),transparent 35%)}
/* Signature home hero */
.hero-home-shell{position:relative;background:var(--ink-deep)}
.hero-home{--hero-glass-edge:100%;--hero-glass-progress:0;position:relative;height:100svh;min-height:720px;overflow:hidden;background:var(--ink-deep);color:var(--white)}
.hero-home__media{position:absolute;inset:0;background:#17363b}
.hero-slide{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.035);transition:opacity 2.4s ease,transform 8s ease}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero-slide img{height:100%;object-fit:cover}
.hero-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,22,24,.12),rgba(5,22,24,.34))}
.hero-home__glass{position:absolute;z-index:1;top:0;right:0;bottom:0;left:var(--hero-glass-edge);overflow:hidden;background:linear-gradient(135deg,rgba(255,253,248,.36),rgba(255,253,248,.13));border-left:1px solid rgba(255,255,255,calc(.58 * var(--hero-glass-progress)));backdrop-filter:blur(calc(30px * var(--hero-glass-progress))) saturate(125%);-webkit-backdrop-filter:blur(calc(30px * var(--hero-glass-progress))) saturate(125%);box-shadow:inset 1px 0 rgba(255,255,255,.34),-1.5rem 0 4rem rgba(7,30,33,.08);will-change:left,backdrop-filter}
.hero-home__glass::before{content:'';position:absolute;width:34rem;height:34rem;border-radius:50%;top:-14rem;right:-12rem;background:rgba(255,255,255,.17);filter:blur(3rem);opacity:var(--hero-glass-progress)}
/* The real heading text for search engines and screen readers. The visual title
   beside it is decorative (aria-hidden) because the glass effect must duplicate
   every letter once per hero slide, which would otherwise garble the heading. */
.hero-home__title-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.hero-home__title{position:absolute;z-index:2;top:50%;left:0;width:100%;transform:translateY(-48%);display:grid;grid-template-columns:60% 40%;font-family:var(--display);font-size:clamp(6rem,11.3vw,12.5rem);font-weight:500;line-height:.68;letter-spacing:-.065em;pointer-events:none}
/* overflow stays visible: the .82em line box is shorter than the glyphs, so
   hiding it decapitates the descenders in "Sleep", "Say" and "Quiet". Keeping
   the height fixed means nothing reflows — the tails simply paint outside it. */
.hero-home__title>span{display:flex;align-items:center;height:.82em;overflow:visible;white-space:nowrap}
.hero-home__title .on-image{justify-content:flex-end;color:var(--white);padding-right:.04em}
.hero-home__title .on-glass{justify-content:flex-start;color:var(--white);padding-left:.04em;overflow:visible}
.hero-glass-char{position:relative;display:inline-grid;height:.82em;place-items:center;overflow:visible}
.hero-glass-char--space{width:.22em}
.hero-glass-char__white, .hero-glass-char__holes, .hero-glass-char__hole{grid-area:1/1;display:block;line-height:.82;will-change:opacity}
.hero-glass-char__white{color:var(--white);opacity:calc(1 - var(--char-reveal,0))}
.hero-glass-char__holes{display:grid;opacity:var(--char-reveal,0)}
/* background-clip:text can only paint inside this element's own box, so any ink
   outside it comes out blank — which read as a cut-off tail on y/q/g/p and a
   sheared right edge on every letter, since the -.065em tracking pulls each box
   in narrower than the glyph. The padding enlarges the paint area; the matching
   negative margins cancel it out of layout, so the grid still measures the same
   box and not a single letter moves. syncCharacterImages measures this padded
   box directly, keeping the photo aligned to the hero behind it. */
.hero-glass-char__hole{background-repeat:no-repeat;color:transparent;opacity:0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:saturate(1.08) contrast(1.04);transition:opacity 2.4s ease;padding:.3em .15em;margin:-.3em -.15em}
.hero-glass-char__hole.is-active{opacity:1}
.hero-home__content{position:absolute;z-index:3;right:var(--pad);bottom:clamp(3.5rem,7vh,6rem);width:min(31vw,26rem);color:var(--white)}
.hero-home__content p{font-size:clamp(.84rem,.95vw,1rem);line-height:1.75;text-shadow:0 1px 15px rgba(0,0,0,.24)}
.hero-home__content .text-link{color:#fff2cf}
.hero-home__scroll{position:absolute;z-index:3;right:clamp(.65rem,1.2vw,1.35rem);bottom:3rem;display:flex;align-items:center;gap:.8rem;font-size:.58rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.88);writing-mode:vertical-rl}
.hero-home__scroll::after{content:'';width:1px;height:3rem;background:currentColor;transform-origin:top;animation:scrollPulse 2.2s ease-in-out infinite}
.hero-control{position:absolute;z-index:3;left:var(--pad);bottom:2.7rem;width:2.8rem;height:2.8rem;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(13,36,40,.2);color:white;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px)}
@keyframes scrollPulse{0%,100%{transform:scaleY(.25);opacity:.3}50%{transform:scaleY(1);opacity:1}}

@media (min-width:901px){.hero-home-shell{height:190vh;height:190dvh}
.hero-home-shell>.hero-home{position:sticky;top:0;height:100vh;height:100dvh;min-height:0}
.hero-home__content{right:clamp(4.5rem,7vw,8rem)}

}
.hero-page__media{position:absolute;inset:0}
.hero-page__media img{height:100%;object-fit:cover;transform:scale(1.04)}
.hero-page__media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,27,30,.76) 0%,rgba(5,27,30,.28) 58%,rgba(5,27,30,.12)),linear-gradient(0deg,rgba(5,27,30,.4),transparent 45%)}
/* Editorial building blocks */
.intro-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(18rem,.65fr);gap:clamp(3rem,9vw,11rem);align-items:start}
.intro-aside{padding-top:.7rem}
.intro-aside .meta{display:block;margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.section--intro{padding-bottom:clamp(2rem,4vw,4rem);background:var(--paper)}
.section--intro+.editorial-sequence{padding-top:0}
.editorial-sequence{display:grid;gap:clamp(2.333rem,4vw,3.667rem);padding:clamp(1.833rem,3.333vw,3.333rem) 0;overflow:hidden;background:var(--paper)}
.editorial-split{--editorial-bleed:var(--pad);display:grid;grid-template-columns:40% 60%;width:calc(100% - 2*var(--pad));min-height:0;margin:var(--section) auto;border:1px solid var(--line);background:var(--paper-soft)}
.editorial-sequence>.editorial-split{min-height:clamp(34rem,44vw,42rem);margin:0 auto;border-color:transparent;background:transparent}
.editorial-split--reverse{grid-template-columns:60% 40%}
.editorial-split__copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,8vw,8.5rem) var(--pad)}
.editorial-split__copy h2, .editorial-split__copy h3{margin-bottom:2rem}
.editorial-split__media{position:relative;align-self:center;width:calc(100% + var(--editorial-bleed));min-height:0;aspect-ratio:4/3;overflow:hidden;margin:0 calc(-1*var(--editorial-bleed)) 0 0}
.editorial-split__media img{height:115%;object-fit:cover;will-change:transform}
.editorial-split--reverse .editorial-split__copy{grid-column:2;grid-row:1}
.editorial-split--reverse .editorial-split__media{grid-column:1;grid-row:1;margin:0 0 0 calc(-1*var(--editorial-bleed))}
.media-caption{position:absolute;left:1.3rem;right:1.3rem;bottom:1.3rem;display:flex;justify-content:space-between;color:white;font-size:.6rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.editorial-media-slider{--editorial-slide-duration:6.2s;isolation:isolate;background:var(--ink-deep)}
.editorial-media-slide{position:absolute;z-index:0;inset:0;overflow:hidden;opacity:0;transform:scale(1.035);transition:opacity 2.2s ease,transform 7.2s linear;will-change:opacity,transform}
.editorial-media-slide.is-active{z-index:1;opacity:1;transform:scale(1)}
.editorial-media-slide.is-leaving{z-index:2;opacity:0;transform:scale(1.018)}
.editorial-media-slide img{width:100%;height:100%;object-fit:cover}
.editorial-media-slider .media-caption{z-index:4;bottom:2.75rem}
.editorial-media-progress{position:absolute;z-index:5;right:1.3rem;bottom:1.2rem;left:1.3rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;height:3px;pointer-events:none}
.editorial-media-progress span{position:relative;overflow:hidden;background:rgba(255,255,255,.3)}
.editorial-media-progress i{position:absolute;inset:0;display:block;background:var(--gold);transform:scaleX(0);transform-origin:left center}
.editorial-media-progress span.is-active i{animation:editorial-media-progress var(--editorial-slide-duration) linear forwards}
/* Opens the viewer on whichever slide is showing. Sits above the caption and
   progress bar so the whole panel is clickable, matching the filmstrip. */
.editorial-media__open{position:absolute;z-index:6;inset:0;padding:0;border:0;background:none;color:var(--white);cursor:zoom-in}
.editorial-media__open::after{content:'View';position:absolute;right:1.3rem;top:1.3rem;padding:.45rem .7rem;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(5,27,30,.28);color:var(--white);font-size:.52rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translateY(-.35rem);transition:opacity .35s,transform .45s var(--ease);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.editorial-media__open:hover::after, .editorial-media__open:focus-visible::after{opacity:1;transform:none}
.editorial-media__open:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--gold)}
@keyframes editorial-media-progress{to{transform:scaleX(1)}}
/* Imported highlights composition */
.slab{padding:clamp(72px,9.5vw,158px) 0;position:relative;z-index:2;background:var(--paper)}
.hold{max-width:1420px;margin:0 auto;padding:0 var(--pad)}
.high{--bone:#fbf9f5;--serif:var(--display);--highlight-sans:'Inter',sans-serif;background:#182b3a;color:var(--bone)}
.high .kicker{text-align:center;font-family:var(--serif);font-style:italic;font-size:15px;color:rgba(251,249,245,.62);margin-bottom:14px}
.high-title{text-align:center;font-family:var(--serif);font-weight:400;letter-spacing:.1em;font-size:clamp(26px,3.6vw,52px);text-transform:uppercase;margin-bottom:clamp(48px,6vw,88px)}
.high-title i{font-style:italic;text-transform:lowercase;letter-spacing:.02em}
.high-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(46px,5vw,78px) clamp(26px,3vw,52px)}
.high-grid>*{min-width:0}
.hc{border-top:1px solid rgba(251,249,245,.26);position:relative;padding-top:22px;display:flex;flex-direction:column}
.hc::after{content:'';position:absolute;top:-2px;right:0;width:26px;height:3px;background:var(--bone)}
.hc .no{font-family:var(--serif);font-weight:400;font-size:clamp(30px,2.9vw,46px);line-height:1;margin-top:8px}
.hc .no span{font-family:var(--highlight-sans);font-size:.28em;font-weight:500;text-transform:uppercase;letter-spacing:.2em;vertical-align:.55em;margin-left:.5em;color:rgba(251,249,245,.55)}
.hc .no.no--icon{height:clamp(38px,3.4vw,50px);display:flex;align-items:center}
.hc .no.no--icon img{width:clamp(34px,3vw,44px);height:clamp(34px,3vw,44px);object-fit:contain}
.hc .kick{font-family:var(--highlight-sans);font-size:12px;line-height:1.65;color:rgba(251,249,245,.6);margin-top:8px;min-height:3.3em}
.hc .stat{min-height:0;padding:0;border:0;display:block;font-family:var(--serif);font-weight:500;font-size:clamp(20px,1.9vw,27px);line-height:1.2;margin-top:8px}
.high .rise{opacity:0;transform:translateY(34px)}

@media(max-width:980px){.high-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){.high-grid{grid-template-columns:1fr;gap:38px}
}
.stat{min-height:15rem;padding:2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}
.stat strong{font-family:var(--display);font-size:clamp(3.3rem,5vw,6rem);font-weight:400;line-height:1}
.stat span{font-size:.68rem;line-height:1.6;letter-spacing:.16em;text-transform:uppercase}
.section--dark .stat{border-color:rgba(255,255,255,.18)}
.ritual-grid .stat strong{font-size:clamp(2.8rem,4.3vw,5rem);font-style:italic}
.ritual-grid .stat span{font-size:.74rem;line-height:1.65;letter-spacing:.07em;text-transform:none;color:var(--sage)}
/* Stay page */
.stay-showcase{display:grid;grid-template-columns:34% 66%;align-items:start}
.stay-preview__stage{display:contents}
.stay-preview__intro{background:var(--ink-deep);color:var(--white)}
.stay-preview__intro .intro-aside .meta{border-top-color:rgba(255,255,255,.2)}
.stay-nav{position:sticky;top:0;padding:clamp(2.25rem,6vh,4.5rem) clamp(1.5rem,3vw,3.5rem);min-height:100svh;display:flex;flex-direction:column;justify-content:center;background:var(--ink-deep);color:var(--white)}
.stay-nav .eyebrow{margin-bottom:clamp(.8rem,1.8vh,1.2rem)}
.stay-nav h2, .stay-nav h3{margin-bottom:clamp(1.25rem,3vh,2rem);font-size:clamp(3rem,min(3.75vw,7vh),4.35rem);line-height:.94}
.stay-tabs{display:grid;border-top:1px solid rgba(255,255,255,.2)}
.stay-tab{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;padding:clamp(.68rem,1.55vh,.9rem) 0;border:0;border-bottom:1px solid rgba(255,255,255,.2);background:none;color:rgba(255,255,255,.5);line-height:1.15;text-align:left;cursor:pointer;transition:color .35s,padding .4s var(--ease)}
.stay-tab>.stay-tab__label{font-family:var(--display);font-size:clamp(1.4rem,min(1.55vw,3vh),1.65rem);line-height:1.08}
.stay-tab__label-mobile{display:none}
.stay-tab.is-active, .stay-tab:hover{color:white;padding-left:.35rem}
.stay-tab-detail{display:none}
.stay-chapters{background:var(--paper-soft)}
.stay-chapter{position:relative;height:min(78vh,47.5rem);min-height:38rem;display:flex;align-items:flex-end;padding:var(--pad);overflow:hidden;color:white}
.stay-chapter__media{position:absolute;z-index:0;inset:0;overflow:hidden;background:var(--ink-deep)}
/* Opacity is deliberately not transitioned on these slides. Any fade between two
   photographs means both are on screen at once, which reads as a double
   exposure rather than a transition; fading one out before the other arrives
   instead exposes the --ink-deep backing. So the change is a clean swap, and the
   life comes from the slow scale drift, which never reveals anything beneath. */
.stay-showcase .stay-chapter__slide{position:absolute;z-index:0;inset:0;width:100%;height:100%;padding:0;border:0;background:var(--ink-deep);opacity:0;visibility:hidden;transform:scale(1.025);pointer-events:none;cursor:zoom-in;transition:transform 5.7s var(--ease);will-change:transform}
.stay-showcase .stay-chapter__slide.is-active{z-index:2;visibility:visible;opacity:1;transform:scale(1);pointer-events:auto;transition:transform 5.7s var(--ease)}
/* The outgoing slide leaves at once rather than lingering underneath, so two
   photographs are never on screen together. The class stays on it briefly for
   stacking order only. */
.stay-showcase .stay-chapter__slide.is-leaving{z-index:1;visibility:hidden;opacity:0;transform:scale(1.015);transition:transform 5.7s var(--ease)}
.stay-chapter__slide img{width:100%;height:100%;object-fit:cover}
.stay-chapter__progress{position:absolute;z-index:4;right:0;bottom:0;left:0;height:3px;background:rgba(255,255,255,.34);box-shadow:0 -1px 8px rgba(5,27,30,.18);pointer-events:none}
.stay-chapter__progress span{display:block;width:100%;height:100%;background:var(--gold);transform:scaleX(.08);transform-origin:left center}
.stay-chapter__progress span.is-running{animation:stay-gallery-progress 5.7s linear forwards}
@keyframes stay-gallery-progress{to{transform:scaleX(1)}}
.stay-chapter::after{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(0deg,rgba(4,20,22,.44) 0%,rgba(4,20,22,.2) 36%,rgba(4,20,22,.06) 76%);pointer-events:none}
.stay-chapter__card{position:relative;z-index:2;width:min(100%,56rem);padding:clamp(1.5rem,3vw,3rem);text-shadow:0 2px 14px rgba(2,14,16,.5)}
.stay-chapter__card .eyebrow{margin-bottom:1rem}
.stay-chapter__card h3, .stay-chapter__card h4{font-size:clamp(2.45rem,min(4vw,7vh),4.5rem);line-height:.98;margin-bottom:.85rem}
.stay-showcase[data-stay-preview] .stay-chapter__card h3, .stay-showcase[data-stay-preview] .stay-chapter__card h4{font-size:clamp(2.1rem,min(3.2vw,6.2vh),3.6rem);line-height:1}
.stay-chapter__card>p:not(.eyebrow){max-width:47rem;margin-bottom:0;font-size:clamp(.88rem,min(1.05vw,2.2vh),1rem);line-height:1.65;color:rgba(255,255,255,.82)}
.stay-chapter__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:.3rem 1.25rem;width:100%;margin-top:.7rem;padding-top:0;border-top:0;font-size:.6rem;font-weight:500;line-height:1.5;letter-spacing:.14em;text-transform:uppercase}
.stay-chapter__facts span{display:grid;grid-template-columns:1.2rem minmax(0,1fr);align-items:center;gap:.55rem;min-width:0;min-height:1.7rem;padding:0;white-space:normal}
.stay-chapter__facts img{width:1.2rem;height:1.2rem;flex:0 0 1.2rem;object-fit:contain}
.stay-chapter__card .text-link{align-self:flex-start;margin-top:.7rem}
/* Accommodation image viewer */
.stay-lightbox{position:fixed;z-index:1300;inset:0;display:grid;place-items:center;padding:clamp(1rem,4vw,3rem);background:rgba(3,16,18,.95);color:var(--white);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility .45s}
.stay-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.stay-lightbox__figure{display:grid;place-items:center;gap:.75rem;margin:0;max-width:min(92vw,92rem)}
.stay-lightbox__figure img{width:auto;max-width:92vw;height:auto;max-height:84vh;object-fit:contain}
.stay-lightbox__caption{margin:0;color:rgba(255,255,255,.7);font-size:.62rem;font-weight:500;letter-spacing:.14em;text-align:center;text-transform:uppercase}
.stay-lightbox__close, .stay-lightbox__arrow{position:absolute;z-index:2;display:grid;place-items:center;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:rgba(5,27,30,.32);color:var(--white);cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .3s,border-color .3s,transform .3s var(--ease)}
.stay-lightbox__close:hover, .stay-lightbox__arrow:hover{border-color:var(--gold);background:rgba(5,27,30,.72)}
.stay-lightbox__close{top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);width:3rem;height:3rem;font-size:1.25rem}
.stay-lightbox__arrow{top:50%;width:3.4rem;height:3.4rem;font-size:1.25rem;transform:translateY(-50%)}
.stay-lightbox__arrow:hover{transform:translateY(-50%) scale(1.06)}
.stay-lightbox__arrow--prev{left:clamp(.75rem,2.4vw,2rem)}
.stay-lightbox__arrow--next{right:clamp(.75rem,2.4vw,2rem)}
.stay-lightbox__arrow-icon{display:block;width:1.15rem;height:1.15rem;filter:brightness(0) invert(1)}
.stay-lightbox__arrow--prev .stay-lightbox__arrow-icon{transform:rotate(-135deg)}
.stay-lightbox__arrow--next .stay-lightbox__arrow-icon{transform:rotate(45deg)}
/* Held stories and journeys */
.held-story{position:relative;height:300vh;background:var(--ink-deep);color:var(--white)}
.held-story__stage{position:sticky;top:0;height:100vh;overflow:hidden}
.held-story__media, .held-story__media figure{position:absolute;inset:0;margin:0}
.held-story__media figure{opacity:0;transform:scale(1.05);will-change:opacity,transform}
.held-story__media figure:first-child{opacity:1}
.held-story__media img{height:100%;object-fit:cover}
.held-story__veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,27,30,.9) 0%,rgba(5,27,30,.5) 38%,transparent 72%),linear-gradient(90deg,rgba(5,27,30,.3),transparent 58%)}
.held-story__copy{position:absolute;z-index:2;inset:0}
.held-beat{position:absolute;left:var(--pad);bottom:clamp(3rem,7vh,6rem);width:min(38rem,calc(100% - 2*var(--pad)));opacity:0;transform:translateY(2rem);will-change:opacity,transform}
.held-beat:first-child{opacity:1;transform:none}
.held-beat h2{font-size:clamp(2.8rem,5.2vw,5.8rem);margin-bottom:1.2rem}
.held-beat h3{margin-bottom:1.2rem}
.held-beat p{max-width:32rem;color:rgba(255,255,255,.78)}
/* Original held water chapter — imported from the previous Bahundu site */
.held.section{position:relative;padding:0}
.held .pin{position:sticky;top:0;height:100svh;overflow:hidden}
.held .pin img{width:100%;height:100%;object-fit:cover}
.held .pin::after{content:'';position:absolute;inset:0;background:rgba(14,26,26,.38)}
.page-home #water .pin::after{background:linear-gradient(0deg,rgba(5,27,30,.9) 0%,rgba(5,27,30,.5) 38%,transparent 72%),linear-gradient(90deg,rgba(5,27,30,.3),transparent 58%)}
.held .beat{position:relative;min-height:100svh;display:flex;align-items:center;padding:0 var(--pad);color:#fbf9f5}
.held .beat:first-of-type{margin-top:-100svh}
.held .beat p{max-width:26ch;margin:0;font-family:var(--display);font-weight:300;font-size:clamp(19px,2.1vw,31px);line-height:1.42;opacity:0;transform:translateY(26px);transition:opacity 1s cubic-bezier(.22,.61,.36,1),transform 1.1s cubic-bezier(.16,1,.3,1)}
.held .beat.lit p{opacity:1;transform:none}
.held .beat:nth-child(even) p{margin-left:auto;text-align:right}
.page-home #water .beat{z-index:2}
.page-home #lake-story.is-lake-entering .held-story__stage{position:fixed;z-index:1;inset:0;width:100%}
.page-home #lake-story .held-story__copy{opacity:1;visibility:visible;transition:opacity .95s var(--ease) .08s}
.page-home #lake-story.is-lake-entering .held-story__copy{opacity:0;visibility:hidden;transition:none}
/* Gallery */
.filmstrip{overflow:hidden;background:var(--ink-deep);color:var(--white)}
.filmstrip-head{display:flex;justify-content:space-between;align-items:end;padding:var(--section) var(--pad) 3rem}
.filmstrip-track{display:flex;gap:1rem;width:max-content;padding:0 var(--pad) var(--section);will-change:transform}
.filmstrip figure{position:relative;margin:0;width:clamp(18rem,31vw,35rem);height:clamp(24rem,48vw,40rem);overflow:hidden}
.filmstrip figure:nth-child(even){margin-top:clamp(2rem,6vw,5rem);height:clamp(21rem,40vw,34rem)}
.filmstrip__open{position:absolute;z-index:2;inset:0;padding:0;border:0;background:none;color:var(--white);cursor:zoom-in}
.filmstrip__open::after{content:'View';position:absolute;right:1rem;top:1rem;padding:.45rem .7rem;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(5,27,30,.28);color:var(--white);font-size:.52rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translateY(-.35rem);transition:opacity .35s,transform .45s var(--ease);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.filmstrip__open:hover::after, .filmstrip__open:focus-visible::after{opacity:1;transform:none}
.filmstrip__open:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--gold)}
.filmstrip img{height:110%;object-fit:cover}
.filmstrip figcaption{position:absolute;left:1rem;bottom:1rem;font-size:.58rem;letter-spacing:.17em;text-transform:uppercase;text-shadow:0 1px 6px #000}
/* Gallery archive */
body.page-gallery:not(.menu-open) .nav:not(.is-scrolled){color:var(--ink);background:var(--paper-soft)}
body.page-gallery:not(.menu-open) .nav:not(.is-scrolled) .nav-brand__logo--light{opacity:0}
body.page-gallery:not(.menu-open) .nav:not(.is-scrolled) .nav-brand__logo--dark{opacity:1}
body.page-gallery:not(.menu-open) .nav:not(.is-scrolled) .nav-book{background:var(--ink);color:var(--white)}
.gallery-intro{padding-top:clamp(11rem,15vw,15rem);padding-bottom:clamp(4.75rem,8vw,7.5rem);background:var(--paper-soft)}
.gallery-intro__inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(20rem,.62fr);gap:clamp(2.5rem,8vw,10rem);align-items:end}
.gallery-intro__inner>.eyebrow{grid-column:1/-1;margin-bottom:clamp(-1rem,-1vw,-.4rem);color:var(--rust-text)}
.gallery-intro h1{max-width:10ch;color:var(--ink)}
.gallery-intro__aside{max-width:34rem;padding-bottom:.55rem}
.gallery-intro__aside .copy{margin-bottom:1.8rem}
.gallery-intro__aside .meta{display:block;padding-top:1.15rem;border-top:1px solid var(--line);color:var(--sage-text)}
.gallery-archive{position:relative;background:var(--paper-soft)}
.gallery-filter-shell{position:sticky;z-index:120;top:5.1rem;padding:.95rem var(--pad);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(250,247,240,.9);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);transition:top .5s var(--ease),background .35s}
body:has(.nav.is-hidden) .gallery-filter-shell{top:0}
.gallery-filter{display:flex;width:max-content;max-width:100%;margin:auto;align-items:center;justify-content:center;gap:.55rem}
.gallery-filter button{min-height:2.55rem;padding:.65rem 1.15rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);font-size:.59rem;font-weight:600;line-height:1;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .35s,color .35s,border-color .35s,transform .35s var(--ease)}
.gallery-filter button:hover, .gallery-filter button:focus-visible{border-color:var(--ink);outline:none;transform:translateY(-1px)}
.gallery-filter button.is-active{border-color:var(--ink);background:var(--ink);color:var(--white)}
/* position:relative so a departing card can be pinned to the exact spot it
   already occupies while it dissolves — see .gallery-card--departing. */
.gallery-grid{position:relative;width:min(100%,1920px);margin:auto;padding:clamp(1rem,1.5vw,1.45rem) var(--pad) var(--section);column-count:4;column-gap:clamp(.65rem,1vw,1rem)}
/* Filtering used to fade the whole grid to opacity .3, which let the cream page
   colour wash through every card and read as a white flash. The cards now
   dissolve individually (site.js); this only stops a click landing on one while
   it is still moving. */
.gallery-grid.is-filtering{pointer-events:none}
/* A card on its way out is lifted out of the column flow so the photographs
   that are staying reflow into place immediately, underneath it, instead of
   waiting for it to disappear. Without this every departing card holds its
   space until it is fully transparent, and the page empties to bare background
   before it refills — which is the white flash.
   Compound selector on purpose: .gallery-card sets position:relative below, and
   at equal specificity that later rule would otherwise win. */
.gallery-card.gallery-card--departing{position:absolute;z-index:2;margin:0;pointer-events:none}
.gallery-card{position:relative;width:100%;aspect-ratio:4/3;margin:0 0 clamp(.65rem,1vw,1rem);overflow:hidden;break-inside:avoid;background:#dcd6c9;cursor:zoom-in;outline:0}
.gallery-card--wide{aspect-ratio:16/10}
.gallery-card--portrait{aspect-ratio:4/5}
.gallery-card--tall{aspect-ratio:3/4}
.gallery-card[hidden]{display:none!important}
.gallery-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter .8s var(--ease)}
.gallery-card::before{content:'View';position:absolute;z-index:2;top:.8rem;right:.8rem;padding:.42rem .67rem;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(5,27,30,.24);color:var(--white);font-size:.49rem;font-weight:600;line-height:1;letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translateY(-.35rem);transition:opacity .4s,transform .5s var(--ease);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.gallery-card:hover img, .gallery-card:has(:focus-visible) img{transform:scale(1.035);filter:saturate(1.04)}
.gallery-card:hover::before, .gallery-card:has(:focus-visible)::before{opacity:1;transform:none}
.gallery-card:has(:focus-visible){box-shadow:inset 0 0 0 2px var(--gold)}
.gallery-card__open{position:absolute;z-index:3;inset:0;padding:0;border:0;background:none;cursor:zoom-in}
.gallery-card__open:focus-visible{outline:none}
.closing{position:relative;max-height:90vh;display:flex;align-items:end;overflow:hidden;color:var(--white)}
.closing>img{position:absolute;inset:0;height:110%;object-fit:cover}
.closing::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,27,30,.86),rgba(5,27,30,.12) 68%)}
.closing__copy{position:relative;z-index:1;width:min(100%,1600px);margin:auto;padding:var(--section) var(--pad)}
.closing h2, .closing h3{max-width:11ch;margin-bottom:2rem}
.closing#plan{height:min(550px,75vh);min-height:0;max-height:75vh;align-items:center;text-align:center}
.closing#plan::after{background:linear-gradient(0deg,rgba(5,27,30,.82),rgba(5,27,30,.5))}
.closing#plan .closing__copy{padding-block:3rem}
.closing#plan .eyebrow{justify-content:center}
.closing#plan h2, .closing#plan h3{width:min(100%,22ch);max-width:none;margin-right:auto;margin-left:auto}
#main-content:focus{outline:none}
.editorial-sequence .contact-form-wrap{display:flex;align-items:center;padding:clamp(2.5rem,4vw,4.25rem) var(--pad);background:transparent}
.page-contact #enquiry .contact-form-panel{width:min(100%,43rem);margin:auto;padding:clamp(1.5rem,2.8vw,2.5rem);border:1px solid rgba(23,54,59,.16);background:rgba(250,247,240,.58);box-shadow:0 1.8rem 4.5rem rgba(23,54,59,.065)}
.page-contact #enquiry .contact-form-panel__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.8rem;padding-bottom:1rem;border-bottom:1px solid rgba(23,54,59,.16)}
.page-contact #enquiry .contact-form-panel__head p{margin:0;color:var(--rust);font-size:.64rem;font-weight:650;letter-spacing:.19em;text-transform:uppercase}
.page-contact #enquiry .contact-form-panel__head span{color:var(--sage);font-size:.58rem;letter-spacing:.08em}
.page-contact #enquiry .field label{color:var(--ink)}
.page-contact #enquiry .field label:has(+ :required)::after{content:' *';color:var(--rust)}
.page-contact #enquiry .field input, .page-contact #enquiry .field select, .page-contact #enquiry .field textarea{border-bottom-color:rgba(23,54,59,.43);padding:.7rem 0 .85rem;transition:border-color .25s,box-shadow .25s}
.page-contact #enquiry .field input::placeholder, .page-contact #enquiry .field textarea::placeholder{color:rgba(23,54,59,.28);opacity:1}
.page-contact #enquiry .field input:hover, .page-contact #enquiry .field select:hover, .page-contact #enquiry .field textarea:hover{border-bottom-color:rgba(23,54,59,.7)}
.page-contact #enquiry .field input:focus, .page-contact #enquiry .field select:focus, .page-contact #enquiry .field textarea:focus{border-color:var(--rust);box-shadow:0 1px 0 var(--rust)}
.page-contact #enquiry .field textarea{min-height:7.2rem}
.page-contact #enquiry .contact-form .button{min-height:3.15rem;padding:.8rem 1.7rem;border-color:var(--ink);background:var(--ink);color:var(--white)}
.page-contact #enquiry .contact-form .button:hover{border-color:var(--rust);background:var(--rust)}
/* Booking and contact */
.booking-overlay{position:fixed;inset:0;z-index:950;background:rgba(5,27,30,.56);opacity:0;pointer-events:none;transition:opacity .55s;backdrop-filter:blur(8px)}
.booking-drawer{position:absolute;top:0;right:0;width:min(100%,700px);height:100dvh;max-height:100dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;background:var(--paper-soft);color:var(--ink);padding:clamp(5.5rem,9vw,8rem) clamp(1.5rem,5vw,5rem) 3rem;transform:translateX(102%);transition:transform .75s var(--ease)}
.booking-open .booking-overlay{opacity:1;pointer-events:auto}
.booking-open .booking-drawer{transform:none}
.booking-close{position:absolute;top:1.7rem;right:1.7rem;width:3rem;height:3rem;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer;font-size:1.4rem}
.booking-head{margin-bottom:3rem}
.booking-head h2{font-size:clamp(3.5rem,6vw,6rem);margin-bottom:1.2rem}
.booking-head p{max-width:32rem;color:var(--sage)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 1.2rem}
.field{display:grid;gap:.55rem}
.field--full{grid-column:1/-1}
.field label{font-size:.61rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.field input, .field select, .field textarea{width:100%;border:0;border-bottom:1px solid rgba(23,54,59,.3);border-radius:0;background:transparent;color:var(--ink);padding:.55rem 0 .8rem;outline:none;transition:border-color .25s}
.field textarea{min-height:6.2rem;resize:vertical}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--rust)}
.form-note{margin:.7rem 0 1.7rem;font-size:.76rem;color:var(--sage)}
.form-status{display:none;margin-top:1.2rem;padding:1rem;border-left:2px solid var(--rust);font-size:.84rem}
.form-status.is-visible{display:block}
.form-status.is-error{border-left-color:#a3311c;background:rgba(163,49,28,.06);color:#7d2515}
.form-status.is-success{border-left-color:#3f6f5c;background:rgba(63,111,92,.07)}
.page-contact #enquiry .contact-form{--action-arrow-filter:brightness(0) invert(1)}
/* Honeypot: out of sight, out of the tab order, hidden from screen readers.
   Deliberately not display:none, which some automated fillers skip. */
.form-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
.mail-form button[type="submit"][disabled]{opacity:.55;cursor:progress}
/* The reCAPTCHA badge is hidden; the required attribution sits in .form-legal. */
.grecaptcha-badge{visibility:hidden}
.form-legal{margin:.9rem 0 0;font-size:.66rem;line-height:1.6;color:var(--sage-text)}
.form-legal a{text-decoration:underline;text-underline-offset:.18em}
.contact-form-wrap{padding:clamp(7rem,12vw,12rem) var(--pad);background:var(--paper-soft)}
.contact-form-wrap h2{margin-bottom:1.5rem}
.email-link-button{display:inline;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.email-link-button:hover{text-decoration:underline;text-underline-offset:.25em}
.page-contact #find-us .contact-phone-links a, .page-contact #find-us .email-link-button{color:var(--rust);font-weight:600}
.page-contact #find-us .email-link-button{font-size:.78rem;letter-spacing:.04em;text-transform:none}
/* Footer */
.footer{--footer-feature-size:clamp(1.35rem,2vw,2rem);--footer-contact-size:clamp(.82rem,1vw,1rem);position:relative;z-index:2;padding:clamp(5.5rem,9vw,8.5rem) var(--pad) 0;background:#102a2d;color:rgba(255,255,255,.68);font-family:var(--sans);text-align:center}
.footer__inner{width:min(100%,72rem);margin:auto;display:flex;flex-direction:column;align-items:center}
.footer__logo{display:block;width:clamp(7rem,8vw,9rem);margin-bottom:2.2rem}
.footer__logo img{width:100%;filter:drop-shadow(0 .35rem 1rem rgba(0,0,0,.18))}
.footer__kicker{margin:0 0 1.25rem;color:var(--gold);font-size:.63rem;font-weight:600;line-height:1.4;letter-spacing:.27em;text-transform:uppercase}
.footer__tag{max-width:42rem;margin:0;font-family:var(--sans);font-size:var(--footer-contact-size);font-weight:400;line-height:1.45;color:rgba(255,255,255,.9)}
.footer__rule{width:min(26rem,72vw);height:1px;margin:2.45rem auto;background:rgba(255,255,255,.16)}
.footer__actions{width:min(36rem,100%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center}
.footer__action{min-height:2.65rem;display:flex;align-items:center;justify-content:center;gap:.6rem;padding:0 .7rem;border:0;background:none;color:rgba(255,255,255,.88);font-family:var(--sans);font-size:var(--footer-contact-size);font-weight:500;line-height:1;letter-spacing:.035em;text-transform:uppercase;transition:color .3s}
.footer__action+.footer__action{border-left:1px solid rgba(255,255,255,.14)}
.footer__action:hover{color:var(--gold);text-decoration:none}
.footer__action-icon{width:1.15rem;height:1.15rem;display:grid;place-items:center;flex:none}
.footer__action-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.footer__social{display:flex;align-items:center;justify-content:center;gap:1.55rem;margin:-.15rem 0 2.1rem}
.footer__social-link{width:2rem;height:2rem;display:grid;place-items:center;color:rgba(255,255,255,.8);transition:color .3s,transform .3s var(--ease)}
.footer__social-link:hover{color:var(--gold);transform:translateY(-2px);text-decoration:none}
.footer__social-link svg{width:1.5rem;height:1.5rem;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.footer__social-link .footer__social-fill, .footer__social-link .footer__social-dot{fill:currentColor;stroke:none}
.footer__contact{font-family:var(--sans);font-size:var(--footer-contact-size);line-height:1.55;letter-spacing:0}
.footer__contact address{margin:0 0 .5rem;font-style:normal;color:rgba(255,255,255,.76)}
.footer__contact-line{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.4rem .7rem}
.footer__contact-line i{font-style:normal;color:rgba(255,255,255,.32)}
.footer__contact a, .footer__contact button{transition:color .3s}
.footer__contact a:hover, .footer__contact button:hover{color:var(--white);text-decoration:none}
.footer__nav{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem 2.25rem;margin-top:3.25rem}
.footer__nav a{color:rgba(255,255,255,.76);font-size:var(--footer-contact-size);font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:color .3s}
.footer__nav a:hover{color:var(--gold)}
.footer-base{display:flex;align-items:center;justify-content:center;gap:.65rem 1.1rem;margin:clamp(4rem,6vw,5.5rem) calc(-1 * var(--pad)) 0;padding:1.35rem var(--pad);border-top:1px solid rgba(255,255,255,.12);background:rgba(2,16,18,.22);font-size:.53rem;line-height:1.5;letter-spacing:.14em;text-transform:uppercase}
.footer-base span+span::before{content:'·';margin-right:1.1rem;color:rgba(255,255,255,.34)}
/* Motion states */
.reveal{opacity:0;transform:translateY(3rem)}
.reveal--left{opacity:0;transform:translateX(-3rem)}
.reveal--right{opacity:0;transform:translateX(3rem)}
.word-reveal .word{display:inline-block;overflow:hidden;vertical-align:bottom}
.word-reveal .word>span{display:inline-block;transform:translateY(110%)}
html::before{content:'';position:fixed;z-index:1200;inset:0;background:var(--ink-deep);transform:scaleY(0);transform-origin:bottom;pointer-events:none;transition:transform .7s var(--ease)}
html.is-leaving::before{transform:scaleY(1)}

@media (max-width:900px){:root{--pad:1.35rem;--section:5.5rem}
body{font-size:15px}
.nav{height:5.4rem}
.nav.is-scrolled{height:4.8rem}
/* Hidden visually but kept in the DOM so the button retains an accessible name. */
  .nav-menu .label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.nav-book{min-width:auto;min-height:2.55rem;padding:0 .9rem;font-size:.54rem}
.menu-panel{right:auto;bottom:auto;width:100%;height:60svh;grid-template-columns:1fr}
.menu-visual{display:none}
.menu-links{justify-items:center;gap:.42rem}
.menu-links a{width:max-content;max-width:100%;font-size:clamp(2rem,9.8vw,3.55rem);line-height:.95;text-align:center;white-space:nowrap}
.menu-main{padding:clamp(5.7rem,14svh,7rem) var(--pad) 1.25rem}
.menu-social{width:100%;justify-content:center}
.hero-home-shell{height:auto}
.hero-home{min-height:680px}
.hero-home__media{inset:0}
.hero-home__glass{display:none}
.hero-home__title{top:auto;bottom:9.3rem;transform:none;display:block;width:auto;left:var(--pad);font-size:clamp(5rem,22vw,8rem);line-height:.72}
.hero-home__title>span{display:block;height:auto;justify-content:flex-start!important;padding:0!important;color:white!important;overflow:visible}
.hero-home__title .on-glass{display:flex;height:auto}
.hero-glass-char{height:auto}
.hero-glass-char__white{opacity:1!important}
.hero-glass-char__holes{display:none}
.hero-home__content{left:var(--pad);right:auto;bottom:3.2rem;width:min(82vw,28rem)}
.hero-home__content p{display:none}
.hero-home__scroll{display:none}
.hero-control{left:auto;right:var(--pad);bottom:2.5rem}
.intro-grid{grid-template-columns:1fr;gap:2.5rem}
.editorial-sequence{gap:1.5rem;padding:1.5rem 0}
.editorial-split, .editorial-split--reverse{display:flex;flex-direction:column;width:calc(100% - 2*var(--pad));min-height:0;margin:4.5rem auto}
.editorial-sequence>.editorial-split{margin:0 auto}
.editorial-split__media, .editorial-split--reverse .editorial-split__media{order:1;height:auto;min-height:0;aspect-ratio:4/3}
.editorial-split__copy, .editorial-split--reverse .editorial-split__copy{order:2;padding:4.5rem var(--pad)}
.page-contact #enquiry .editorial-split__copy, .page-contact #find-us .editorial-split__media{display:none}
.stat{min-height:12rem}
.stay-showcase{--stay-mobile-nav:3.65rem;--site-nav-offset:0rem;display:block;position:relative}
body.has-visible-nav .stay-showcase{--site-nav-offset:4.8rem}
.stay-nav{position:sticky;z-index:40;top:var(--site-nav-offset);min-height:var(--stay-mobile-nav);padding:0 .65rem;justify-content:center;transition:top .5s var(--ease)}
.stay-nav>.eyebrow, .stay-nav>h2, .stay-nav>h3{display:none}
.stay-tabs{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;border-top:0}
.stay-showcase[data-stay-preview] .stay-tab-item{min-width:0}
.stay-showcase[data-stay-preview] .stay-tab-item>.stay-tab{width:100%}
.featured-meals .stay-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.stay-tab{display:flex;min-width:0;min-height:var(--stay-mobile-nav);align-items:center;justify-content:center;padding:0 .15rem;border-bottom:2px solid rgba(255,255,255,.16);font-family:var(--sans);white-space:nowrap}
.stay-tab__label-full{display:none}
.stay-tab>.stay-tab__label{font-family:var(--sans);font-size:.64rem;font-weight:600;line-height:1;letter-spacing:.12em;text-transform:uppercase}
.stay-tab__label-mobile{display:inline}
.stay-tab.is-active, .stay-tab:hover{padding-left:.15rem;border-bottom-color:var(--gold);color:var(--white)}
.stay-chapter{height:72svh;min-height:34rem;padding:0}
.stay-chapter__card{width:100%;max-width:none;margin:0 0 1.5rem;border:1px solid rgba(255,255,255,.24);border-right:0;border-left:0;background:rgba(8,31,34,.5);box-shadow:0 1.25rem 3rem rgba(3,18,20,.22);backdrop-filter:blur(16px) saturate(125%);-webkit-backdrop-filter:blur(16px) saturate(125%)}
.stay-showcase.is-mobile-slider{height:400svh}
.stay-showcase[data-stay-preview].is-mobile-slider{height:auto!important}
.stay-showcase[data-stay-preview].is-mobile-slider .stay-preview__slider{position:relative;height:400svh}
.stay-showcase.is-mobile-slider .stay-chapters{position:sticky;top:var(--stay-mobile-nav);height:calc(100svh - var(--stay-mobile-nav));overflow:hidden;isolation:isolate}
.stay-showcase.is-mobile-slider .stay-chapter{position:absolute;inset:0;width:100%;height:100%;min-height:0;transform:translate3d(100%,0,0);transform-origin:center;backface-visibility:hidden;contain:layout paint;transition:none!important;will-change:transform}
.stay-showcase[data-stay-preview] .stay-chapter__card h3, .stay-showcase[data-stay-preview] .stay-chapter__card h4{font-size:clamp(1.9rem,8vw,2.8rem)}
.held-story{height:260vh}
.held-story__veil{background:linear-gradient(0deg,rgba(5,27,30,.92) 0%,rgba(5,27,30,.48) 42%,transparent 76%)}
.held-beat{bottom:3.25rem;width:calc(100% - 2*var(--pad))}
.held-beat h2{font-size:clamp(2.45rem,11vw,4.1rem);margin-bottom:.9rem}
.filmstrip-track{overflow-x:auto;width:100%;scroll-snap-type:x mandatory;padding-right:var(--pad);transform:none!important;will-change:auto}
.filmstrip figure{width:78vw;flex:none;scroll-snap-align:center}
.filmstrip figure:nth-child(even){margin-top:0;height:clamp(26rem,56vw,46rem)}
.contact-form-wrap{padding-block:5.5rem}
.page-contact #enquiry .contact-form-panel{padding:1.35rem}
.page-contact #enquiry .contact-form-panel__head{align-items:flex-start;flex-direction:column;gap:.45rem;margin-bottom:1.45rem}
.footer{padding-top:4.75rem}
.footer__logo{margin-bottom:1.75rem}
.footer__tag{max-width:31rem}
.footer__rule{margin:2rem auto}
.footer__nav{gap:.9rem 1.5rem;margin-top:2.75rem}

}

@media (min-width:901px){.nav{height:6rem;background-image:none}
.nav.is-scrolled{height:4.75rem}
.nav-book{min-width:7.6rem;min-height:2.45rem;padding:0 1rem;font-size:.57rem}
.gallery-intro{padding-top:clamp(8.75rem,11vw,11.25rem)}
.menu-links{justify-items:center;transform:translateY(clamp(-5.25rem,-5vw,-2.6rem))}
.menu-links a{font-size:clamp(2.8rem,5vw,5.7rem)}
.menu-links a:hover, .menu-links a:focus-visible, .menu-links a.is-active{transform:none}
.menu-social{width:100%;justify-content:center;transform:translateY(-8px)}
.menu-visual::after{display:none}
.editorial-sequence .editorial-split__copy{justify-content:flex-end;padding:clamp(2.5rem,4vw,4.25rem) var(--pad)}
.page-contact #enquiry .editorial-split__copy{justify-content:center}
.stay-chapter{padding:var(--pad);padding-bottom:clamp(1.6rem,3vh,2.35rem)}
.stay-chapter__card{width:min(86%,50rem);padding:0;border:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.stay-chapter__card .eyebrow{margin-bottom:.48rem}
.stay-chapter__card h3, .stay-chapter__card h4{margin-bottom:.5rem;font-size:clamp(2.15rem,min(3.15vw,5.4vh),3.55rem)}
.stay-showcase[data-stay-preview] .stay-chapter__card h3, .stay-showcase[data-stay-preview] .stay-chapter__card h4{font-size:clamp(1.95rem,min(2.7vw,5vh),3.1rem)}
.stay-chapter__card>p:not(.eyebrow){line-height:1.48}
.stay-chapter__facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem 1.1rem;margin-top:.55rem;padding-top:0}
.stay-showcase[data-stay-preview]{--stay-image-inset:clamp(.5rem,1.7dvh,.9rem);position:relative;display:block;height:auto;background:var(--ink-deep)}
.stay-showcase[data-stay-preview] .stay-preview__slider{position:relative;height:400dvh}
.stay-showcase[data-stay-preview] .stay-preview__stage{position:sticky;top:0;display:grid;grid-template-columns:36% 64%;width:100%;height:100dvh;min-height:0;overflow:hidden}
.stay-showcase[data-stay-preview] .stay-nav{position:relative;top:auto;height:100%;min-height:0}
.stay-showcase[data-stay-preview] .stay-chapters{position:relative;height:100%;min-height:0;overflow:hidden;background:var(--ink-deep)}
.stay-showcase[data-stay-preview] .stay-tabs{display:block}
.stay-showcase[data-stay-preview] .stay-tab-item{position:relative;border-bottom:1px solid rgba(255,255,255,.2);transition:background-color .9s var(--ease),border-color .9s ease}
.stay-showcase[data-stay-preview] .stay-tab-item.is-active{background:rgba(255,255,255,.025);border-bottom-color:rgba(213,178,107,.42)}
.stay-showcase[data-stay-preview] .stay-tab-item::before{content:'';position:absolute;top:0;bottom:0;left:calc(-1 * clamp(1.5rem,3vw,3.5rem));width:3px;background:var(--gold);opacity:0;transform:scaleY(.65);transform-origin:center;transition:opacity .45s,transform .65s var(--ease)}
.stay-showcase[data-stay-preview] .stay-tab-item.is-active::before{opacity:1;transform:scaleY(1)}
.stay-showcase[data-stay-preview] .stay-tab{width:100%;border-bottom:0;transform:translateX(0);transition:color .75s ease,transform .95s var(--ease),opacity .75s ease}
.stay-showcase[data-stay-preview] .stay-tab.is-active, .stay-showcase[data-stay-preview] .stay-tab:hover{padding-left:0;transform:translateX(.35rem)}
.stay-showcase[data-stay-preview] .stay-tab:focus{outline:none}
.stay-showcase[data-stay-preview] .stay-tab:focus-visible .stay-tab__label-full{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:1px;text-underline-offset:.35rem}
.stay-showcase[data-stay-preview] .stay-tab-detail{display:block;max-height:0;margin-left:2.4rem;padding-right:.5rem;overflow:hidden;opacity:0;filter:blur(4px);transform:translateY(.85rem);transition:max-height 1.15s var(--ease),opacity .8s ease,filter .9s ease,transform 1.05s var(--ease),padding-bottom 1s var(--ease);will-change:max-height,opacity,transform}
.stay-showcase[data-stay-preview] .stay-tab-item.is-active .stay-tab-detail{max-height:19rem;padding-bottom:clamp(.45rem,1vh,.55rem);opacity:1;filter:blur(0);transform:none}
.stay-showcase[data-stay-preview] .stay-tab-detail h4{margin:.05rem 0 .5rem;font-family:var(--display);font-size:clamp(1.75rem,min(2.35vw,4vh),2.35rem);font-weight:400;line-height:.98;letter-spacing:-.025em}
.stay-showcase[data-stay-preview] .stay-tab-detail>p{max-width:34rem;margin:0;padding-top:.22rem;color:rgba(255,255,255,.7);font-size:clamp(.68rem,min(.78vw,1.55vh),.78rem);line-height:1.62}
.stay-showcase[data-stay-preview] .stay-tab-detail .stay-chapter__facts{gap:.1rem 1rem;margin-top:.75rem;padding-top:.45rem;border-top:1px solid rgba(255,255,255,.16);font-size:clamp(.46rem,min(.52vw,1vh),.54rem);letter-spacing:.1em}
.stay-showcase[data-stay-preview] .stay-tab-detail .stay-chapter__facts span{min-height:1.15rem;gap:.42rem}
.stay-showcase[data-stay-preview] .stay-tab-detail .stay-chapter__facts img{width:.95rem;height:.95rem;flex-basis:.95rem}
.stay-showcase[data-stay-preview] .stay-chapter{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;opacity:0;visibility:hidden;transform:translateX(1.4%);pointer-events:none;will-change:opacity,transform}
.stay-showcase[data-stay-preview] .stay-chapter.is-active{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.stay-showcase[data-stay-preview] .stay-chapter__media{inset:var(--stay-image-inset) 0}
.stay-showcase[data-stay-preview] .stay-chapter::after{inset:var(--stay-image-inset) 0;background:linear-gradient(90deg,rgba(4,20,22,.08),transparent 24%)}
.stay-showcase[data-stay-preview] .stay-chapter__card{display:none}
.featured-meals .stay-chapter__slide{cursor:default}

}

@media (max-width:1180px){.gallery-grid{column-count:3}

}

@media (max-width:900px){.gallery-intro{padding-top:9rem;padding-bottom:4rem}
.gallery-intro__inner{grid-template-columns:1fr;gap:2.25rem}
.gallery-intro__inner>.eyebrow{grid-column:auto;margin-bottom:-.65rem}
.gallery-intro h1{max-width:8ch}
.gallery-intro__aside{max-width:31rem;padding:0}
.gallery-filter-shell{top:5rem;padding:.72rem 0;background:rgba(250,247,240,.94)}
.gallery-filter{display:flex;flex-wrap:wrap;width:min(100%,39rem);justify-content:center;gap:.4rem;padding:0 var(--pad);overflow:visible}
.gallery-filter button{flex:0 1 calc((100% - .8rem)/3);width:auto;min-width:0;min-height:2.15rem;padding:.48rem .55rem;font-size:.53rem}
.gallery-grid{column-count:2;column-gap:.65rem;padding-top:.72rem}
.gallery-card{margin-bottom:.65rem}
.gallery-card::before{display:none}

}

@media (max-width:560px){.display-lg{font-size:clamp(3.45rem,16vw,5.4rem)}
.home-h3{font-size:clamp(2.15rem,10vw,3.45rem)}
.closing#plan h2, .closing#plan h3{width:100%;max-width:none;font-size:clamp(2rem,8.75vw,2.2rem);line-height:1.04}
.closing#plan .closing__copy{padding:2.25rem var(--pad)}
.hero-home__title{font-size:clamp(4.7rem,24vw,7rem)}
.hero-home__content .text-link{font-size:.59rem}
.ritual-grid .stat{min-height:10.5rem;padding:1.15rem}
.ritual-grid .stat strong{font-size:clamp(1.9rem,9vw,2.8rem)}
.ritual-grid .stat span{font-size:.65rem;line-height:1.5;letter-spacing:.025em}
.stat{min-height:10rem}
.form-grid{grid-template-columns:1fr}
.field--full{grid-column:auto}
.footer{padding-right:1rem;padding-left:1rem}
.footer__logo{width:6.8rem}
.footer__kicker{font-size:.55rem;letter-spacing:.2em}
.footer{--footer-feature-size:1.3rem;--footer-contact-size:.8rem}
.footer__tag{line-height:1.42}
.footer__actions{width:100%}
.footer__action{gap:.35rem;padding:0 .25rem;letter-spacing:0}
.footer__action-icon{width:.9rem;height:.9rem}
.footer__social{gap:1.35rem;margin-bottom:1.8rem}
.footer__contact-line{gap:.25rem .5rem}
.footer__nav{gap:.8rem 1.1rem}
.footer__nav a{letter-spacing:.1em}
.footer-base{flex-direction:column;gap:.35rem;margin-right:-1rem;margin-left:-1rem;padding:1.15rem 1rem}
.footer-base span+span::before{display:none}
.booking-drawer{padding-top:5.3rem}
.held .beat p{max-width:none;font-size:21px}
.stay-nav{padding:0 .35rem}
.stay-tab{padding:0 .08rem}
.stay-tab>.stay-tab__label{font-size:clamp(.54rem,2.8vw,.64rem);letter-spacing:.08em}
.stay-tab.is-active, .stay-tab:hover{padding-left:.08rem}
.stay-chapter{height:100svh;min-height:32rem;padding:0}
.stay-chapter__card{width:100%;padding:1.15rem}
.stay-chapter__card .eyebrow{margin-bottom:.72rem;font-size:.54rem}
.stay-chapter__card h3, .stay-chapter__card h4, .stay-showcase[data-stay-preview] .stay-chapter__card h3, .stay-showcase[data-stay-preview] .stay-chapter__card h4{margin-bottom:.62rem;font-size:clamp(1.9rem,8.5vw,2.75rem);line-height:.98}
.stay-chapter__card>p:not(.eyebrow){font-size:.76rem;line-height:1.55}
.stay-chapter__facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.18rem .7rem;margin-top:.4rem;padding-top:.3rem;font-size:.52rem;line-height:1.4;letter-spacing:.1em}
.stay-chapter__facts span{grid-template-columns:1rem minmax(0,1fr);min-height:1.35rem;gap:.4rem;padding:0}
.stay-chapter__card .text-link{margin-top:.55rem;font-size:.55rem}
.stay-lightbox{padding:4.75rem .75rem 1.25rem}
.stay-lightbox__figure img{max-width:calc(100vw - 1.5rem);max-height:76vh}
.stay-lightbox__arrow{top:auto;bottom:1.15rem;width:2.8rem;height:2.8rem;transform:none}
.stay-lightbox__arrow:hover{transform:scale(1.04)}
.stay-lightbox__arrow--prev{left:calc(50% - 3.25rem)}
.stay-lightbox__arrow--next{right:calc(50% - 3.25rem)}
.gallery-intro{padding-top:7.75rem;padding-bottom:3.25rem}
.gallery-intro h1{font-size:clamp(3.3rem,15vw,4.8rem)}
.gallery-intro__aside .copy{font-size:.88rem;line-height:1.72}
.gallery-filter-shell{top:4.7rem}
.gallery-filter{padding-inline:1rem}
.gallery-grid{padding-right:1rem;padding-left:1rem;column-gap:.52rem}
.gallery-card{margin-bottom:.52rem}

}

@media (prefers-reduced-motion:reduce){*, *::before, *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
.reveal, .reveal--left, .reveal--right, .high .rise{opacity:1!important;transform:none!important}
.word-reveal .word>span{transform:none!important}
.hero-slide{transform:none!important}
.editorial-media-slide{transition:none!important}
.editorial-media-progress i{animation:none!important}

}
