@font-face{font-family:'Karla';font-style:italic;font-weight:300;font-display:swap;src:url('/assets/fonts/karla-300i.woff2') format('woff2')}
@font-face{font-family:'Karla';font-style:normal;font-weight:300 500;font-display:swap;src:url('/assets/fonts/karla-400.woff2') format('woff2')}
@font-face{font-family:'Marcellus';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/marcellus-400.woff2') format('woff2')}
@font-face{font-family:'Marcellus Fallback';src:local('Georgia');ascent-override:95%;descent-override:25%;size-adjust:104%}
@font-face{font-family:'Karla Fallback';src:local('Helvetica Neue'),local('Arial');ascent-override:97%;descent-override:26%;size-adjust:99%}
/* Soma Bloom · full-site prototype · shared system
   Fusion: Tides (breath), Hearth (warm photo hours), Monolith (one thought per screen) */
:root{
  color-scheme:dark;
  --pine:oklch(24.5% 0.035 168);
  --pine-deep:oklch(19.5% 0.03 166);
  --pine-panel:oklch(27.5% 0.038 167);
  --candle:oklch(90% 0.045 85);
  --candle-deep:oklch(80% 0.08 78);
  --seaglass:oklch(78% 0.05 165);
  --linen:oklch(94% 0.012 90);
  --dim:oklch(76% 0.02 130);
  --line:oklch(100% 0 0 / .16);
  --button-ink:#122019;
  --scroll-track:oklch(14% 0.025 166);
  --scroll-thumb:oklch(32% 0.03 166);
  --paper-bg:oklch(94% 0.015 85);
  --paper-over:oklch(45% 0.04 80);
  --paper-ink:oklch(22% 0.035 166);
  --paper-body:oklch(34% 0.02 166);
  --paper-line:oklch(85% 0.02 85);
  --paper-muted:oklch(38% 0.02 166);
  --paper-link:oklch(40% 0.06 60);
  --mobile-bar:oklch(16% 0.028 166/.92);
  --mobile-bar-line:oklch(35% 0.03 166);
  --affirm-bg:oklch(17% 0.028 166);
  --overlay-bg:#0D261D;
  --overlay-ink:#F4F0E7;
  --overlay-dim:#B7BEB4;
  --overlay-accent:#ECDCBD;
  --overlay-sea:#A8D1BE;
  --booking-line:oklch(45% 0.05 80/.5);
}
:root[data-theme="light"]{
  color-scheme:light;
  --pine:#F7F2E9;
  --pine-deep:#E9E1D4;
  --pine-panel:#F0E8DC;
  --candle:#75572E;
  --candle-deep:#62441F;
  --seaglass:#3D715E;
  --linen:#173128;
  --dim:#53655D;
  --line:rgba(23,49,40,.16);
  --button-ink:#FFF9EF;
  --scroll-track:#E4DACC;
  --scroll-thumb:#7D8D84;
  --paper-bg:#EAE2D5;
  --paper-over:#6D5637;
  --paper-ink:#173128;
  --paper-body:#344A41;
  --paper-line:#C8BCAB;
  --paper-muted:#53655D;
  --paper-link:#674622;
  --mobile-bar:rgba(247,242,233,.94);
  --mobile-bar-line:rgba(23,49,40,.18);
  --affirm-bg:#ECE4D7;
  --booking-line:rgba(117,87,46,.45);
}
@media(prefers-color-scheme:light){
  :root:not([data-theme]){
    color-scheme:light;
    --pine:#F7F2E9;--pine-deep:#E9E1D4;--pine-panel:#F0E8DC;
    --candle:#75572E;--candle-deep:#62441F;--seaglass:#3D715E;
    --linen:#173128;--dim:#53655D;--line:rgba(23,49,40,.16);
    --button-ink:#FFF9EF;--scroll-track:#E4DACC;--scroll-thumb:#7D8D84;
    --paper-bg:#EAE2D5;--paper-over:#6D5637;--paper-ink:#173128;
    --paper-body:#344A41;--paper-line:#C8BCAB;--paper-muted:#53655D;--paper-link:#674622;
    --mobile-bar:rgba(247,242,233,.94);--mobile-bar-line:rgba(23,49,40,.18);
    --affirm-bg:#ECE4D7;--booking-line:rgba(117,87,46,.45);
  }
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Karla',system-ui,sans-serif;
  background:var(--pine);color:var(--linen);
  font-size:17px;line-height:1.7;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:'Marcellus','Marcellus Fallback',serif;font-weight:400;line-height:1.12}
.wrap{max-width:1140px;margin:0 auto;padding:0 clamp(20px,4vw,46px)}
.wrap.narrow{max-width:900px}
.over{font:300 .78rem/1.75 'Karla','Karla Fallback',sans-serif;letter-spacing:.3em;text-transform:uppercase;color:var(--candle)}
.over.sea{color:var(--seaglass)}

/* buttons */
.btn{display:inline-block;border:1px solid var(--candle);color:var(--candle);padding:13px 30px;text-decoration:none;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;transition:background .3s,color .3s,transform .35s cubic-bezier(.16,1,.3,1)}
.btn:hover{background:var(--candle);color:var(--button-ink)}
.btn.fill{background:var(--candle);color:var(--button-ink)}
.btn.fill:hover{background:var(--linen);transform:translateY(-2px)}
.btn.sea{border-color:var(--seaglass);color:var(--seaglass)}
.btn.sea:hover{background:var(--seaglass);color:var(--button-ink)}

/* nav */
.site-head{position:sticky;top:0;z-index:60;background:color-mix(in oklab,var(--pine) 90%,transparent);backdrop-filter:blur(11px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;gap:16px}
.brand{font-family:'Marcellus','Marcellus Fallback',serif;letter-spacing:.22em;text-transform:uppercase;font-size:1.02rem;text-decoration:none;white-space:nowrap}
.brand span{color:var(--candle)}
.nav-links{display:flex;gap:clamp(14px,2.4vw,30px);align-items:center;font-size:.9rem;letter-spacing:.04em}
.nav-links a{text-decoration:none;opacity:.82;padding:6px 0;border-bottom:1px solid transparent}
.nav-links a:hover{opacity:1}
.nav-links a.active{opacity:1;border-bottom-color:var(--candle)}
.nav-links .btn{opacity:1;padding:11px 24px}
.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--linen);padding:10px 14px;font:inherit;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.theme-toggle{margin-left:auto;min-width:76px;height:40px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:transparent;color:var(--linen);font:500 .72rem/1 'Karla','Karla Fallback',sans-serif;letter-spacing:.11em;text-transform:uppercase;cursor:pointer}
.theme-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle:hover{border-color:var(--candle);color:var(--candle)}
@media(max-width:520px){.theme-toggle{min-width:40px;width:40px;padding:0}.theme-toggle-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
@media(max-width:1080px){
  .nav-links{display:none}
  .menu-btn{display:block}
  .nav-links.open{display:flex;position:absolute;top:74px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--pine-deep);border-bottom:1px solid var(--line);padding:18px clamp(20px,4vw,46px) 26px;gap:4px}
  .nav-links.open a{padding:12px 0;border-bottom:1px solid var(--line);font-size:1rem}
  .nav-links.open .btn{margin-top:14px;text-align:center;border:1px solid var(--candle)}
}

/* breathing circle (Tides) */
.breath{position:relative;display:block;width:min(44vw,220px);aspect-ratio:1;margin:0 auto clamp(28px,4.5vh,46px);padding:0;border:0;background:transparent;color:inherit;font:inherit}
.breath .ring{position:absolute;inset:0;border-radius:50%;border:1px solid var(--seaglass);opacity:.85;animation:sb-inhale 11s cubic-bezier(.45,0,.55,1) infinite}
.breath .ring.r2{animation-delay:-.6s;opacity:.4}
.breath .ring.r3{animation-delay:-1.2s;opacity:.18}
.breath .word{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.72rem;letter-spacing:.5em;text-transform:uppercase;color:var(--seaglass)}
@keyframes sb-inhale{0%,100%{transform:scale(.62)}45%,55%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.breath .ring{animation:none;transform:scale(.8)}}

/* page hero (inner pages) */
.page-hero{padding:clamp(60px,10vh,110px) 0 clamp(44px,7vh,80px);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(2.2rem,5.4vw,3.9rem);max-width:18ch;text-wrap:balance;margin-top:16px}
.page-hero p.lede{margin-top:20px;max-width:54ch;color:var(--dim);font-size:1.05rem}

/* hour slides (Hearth × Monolith) */
.hour-slide{min-height:100svh;scroll-snap-align:start;scroll-snap-stop:always;position:relative;display:flex;align-items:flex-end;isolation:isolate}
.hour-slide{color:var(--overlay-ink)}
.hour-slide .bg{position:absolute;inset:0;z-index:-2}
.hour-slide .bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
.hour-slide::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,oklch(20% 0.03 166/.42),transparent 42%,oklch(16% 0.03 166/.88) 100%)}
.hour-slide .inner{padding-bottom:clamp(52px,9vh,104px);width:100%}
.hour-slide .no{font-family:'Marcellus','Marcellus Fallback',serif;letter-spacing:.3em;color:var(--overlay-accent);font-size:1rem}
.hour-slide h2{font-size:clamp(2rem,4.8vw,3.6rem);margin-top:14px;max-width:16ch;text-wrap:balance}
.hour-slide p{margin-top:14px;max-width:46ch;opacity:.9}
.hour-slide .meta{margin-top:20px;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--overlay-dim)}
.hour-slide .meta b{color:var(--overlay-accent);font-weight:400}
.hour-slide .go{display:inline-block;margin-top:26px;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--overlay-accent);text-decoration:none;border-bottom:1px solid var(--overlay-accent);padding-bottom:4px}
.hour-slide .idx{position:absolute;right:clamp(20px,4vw,46px);bottom:clamp(24px,4.5vh,52px);font-size:.66rem;letter-spacing:.42em;color:var(--overlay-dim)}

/* split bands (Hearth, inner pages) */
.band{display:grid;grid-template-columns:1fr 1fr;min-height:72vh;border-top:1px solid var(--line)}
.band.flip .b-photo{order:2}
.b-photo{position:relative;min-height:48vh;overflow:hidden}
.b-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
.b-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,5.5vw,90px)}
.b-copy .no{font-family:'Marcellus','Marcellus Fallback',serif;font-size:1rem;color:var(--candle);letter-spacing:.3em}
.b-copy h2,.b-copy h3{font-size:clamp(1.7rem,3.3vw,2.6rem);margin-top:14px;max-width:17ch}
.b-copy p{margin-top:16px;max-width:48ch;opacity:.85}
.b-copy .meta{margin-top:22px;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);opacity:1}
.b-copy .meta b{color:var(--candle);font-weight:400}
@media(max-width:780px){.band{grid-template-columns:1fr}.band.flip .b-photo{order:0}}

/* strips */
.strip{padding:clamp(64px,11vh,130px) 0}
.strip.deep{background:var(--pine-deep);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip h2{font-size:clamp(1.9rem,4vw,3rem);margin-top:14px}

/* schedule rows */
.srows{margin-top:clamp(32px,5vh,52px)}
.srow{display:grid;grid-template-columns:110px 1fr auto auto;gap:clamp(14px,3vw,44px);align-items:baseline;padding:19px 0;border-top:1px solid var(--line)}
.srow:last-of-type{border-bottom:1px solid var(--line)}
.srow .d{font-family:'Marcellus','Marcellus Fallback',serif;letter-spacing:.08em}
.srow .c{font-size:1.02rem}
.srow .c small{display:block;font-size:.85rem;color:var(--dim)}
.srow .v{font-size:.85rem;color:var(--dim);text-align:right}
.srow .t{font-family:'Marcellus','Marcellus Fallback',serif;color:var(--candle);white-space:nowrap}
@media(max-width:680px){.srow{grid-template-columns:80px 1fr auto}.srow .v{display:none}}
.note{margin-top:18px;font-size:.78rem;color:var(--dim)}

/* quote / statement */
.statement{text-align:center;padding:clamp(72px,12vh,140px) 0}
.statement p.big{font-family:'Marcellus','Marcellus Fallback',serif;font-size:clamp(1.5rem,3.2vw,2.4rem);line-height:1.4;max-width:28ch;margin:0 auto;text-wrap:balance}
.statement p.big em{font-style:normal;color:var(--candle)}

/* forms (prototype only) */
.form{display:grid;gap:18px;max-width:560px}
.form label{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.form input,.form select,.form textarea{width:100%;margin-top:8px;background:var(--pine-panel);border:1px solid var(--line);color:var(--linen);padding:14px 16px;font:inherit;font-size:.98rem}
.form input:focus,.form select:focus,.form textarea:focus{outline:1px solid var(--candle);border-color:var(--candle)}
.sb-consent{flex:1 0 100%;display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:3px 0;font-size:.78rem;line-height:1.55;color:var(--dim);text-transform:none;letter-spacing:0;cursor:pointer}
.sb-consent input{width:20px;height:20px;flex:0 0 20px;margin:1px 0 0;accent-color:var(--candle)}
.sb-consent a{color:var(--linen);text-underline-offset:3px}

/* footer */
.site-foot{background:var(--pine-deep);border-top:1px solid var(--line);padding:clamp(48px,8vh,80px) 0 34px;font-size:.92rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(28px,5vw,70px)}
.foot-grid .fb{font-family:'Marcellus','Marcellus Fallback',serif;letter-spacing:.22em;text-transform:uppercase;font-size:1rem}
.foot-grid .fb span{color:var(--candle)}
.foot-grid p{margin-top:14px;color:var(--dim);max-width:34ch;font-size:.9rem}
.foot-grid .foot-heading{font:500 .75rem/1.75 'Karla','Karla Fallback',sans-serif;letter-spacing:.26em;text-transform:uppercase;color:var(--dim)}
.foot-grid ul{list-style:none;margin-top:14px;display:grid;gap:8px}
.foot-grid a{text-decoration:none;opacity:.85}
.foot-grid a:hover{opacity:1;color:var(--candle)}
.foot-base{margin-top:clamp(36px,6vh,56px);padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--dim)}
.foot-base a{color:inherit}
@media(max-width:700px){.foot-grid{grid-template-columns:1fr 1fr}}

/* reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============ CINEMA LAYER ============ */
::selection{background:var(--candle);color:var(--button-ink)}
:focus-visible{outline:2px solid var(--candle);outline-offset:3px}

/* cross-page fade (progressive enhancement) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:sb-fadeout .35s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:sb-fadein .55s cubic-bezier(.16,1,.3,1) both}
@keyframes sb-fadeout{to{opacity:0}}
@keyframes sb-fadein{from{opacity:0}}

/* scroll progress hairline */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--candle);transform-origin:0 50%;transform:scaleX(0);z-index:80;pointer-events:none}

/* header hide on scroll down, return on scroll up */
.site-head{transition:transform .55s cubic-bezier(.16,1,.3,1)}
.site-head.hid{transform:translateY(-101%)}

/* premium button: sweeping fill */
.btn{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(var(--candle),var(--candle)) left/0% 100% no-repeat}
.btn:hover{background-size:100% 100%;transition:background-size .55s cubic-bezier(.16,1,.3,1),color .3s .08s,transform .35s cubic-bezier(.16,1,.3,1)}
.btn{transition:background-size .55s cubic-bezier(.16,1,.3,1),color .3s,transform .35s cubic-bezier(.16,1,.3,1)}
.btn.sea{background-image:linear-gradient(var(--seaglass),var(--seaglass))}
.btn.fill{background:var(--candle)}

/* film grain + vignette */
.grain{position:relative}
.grain::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.vignette::after{box-shadow:inset 0 0 clamp(80px,14vw,220px) oklch(12% 0.02 166/.75)}

/* ken burns drift on hour slides */
.hour-slide .bg{overflow:hidden}
.hour-slide .bg img{transform:scale(1.02);animation:sb-drift 26s cubic-bezier(.25,.1,.25,1) both paused}
.hour-slide.live .bg img{animation-play-state:running}
.hour-slide:nth-of-type(even) .bg img{animation-name:sb-drift-alt}
@keyframes sb-drift{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.12) translate3d(-1.5%,-1.5%,0)}}
@keyframes sb-drift-alt{from{transform:scale(1.12) translate3d(1.2%,0,0)}to{transform:scale(1.03) translate3d(0,-1%,0)}}
.hour-slide::after{background:linear-gradient(180deg,oklch(20% 0.03 166/.45),oklch(20% 0.03 166/.06) 42%,oklch(15% 0.028 166/.9) 100%),radial-gradient(120% 90% at 50% 40%,transparent 55%,oklch(13% 0.025 166/.5) 100%)}
@media(max-width:780px){.hour-slide::after{background:linear-gradient(180deg,oklch(20% 0.03 166/.5),oklch(20% 0.03 166/.08) 30%,oklch(15% 0.028 166/.82) 62%,oklch(13% 0.025 166/.95) 100%)}}

/* ghost scene numerals */
.ghost{position:absolute;z-index:-1;right:clamp(-10px,2vw,60px);top:8%;font-family:'Marcellus','Marcellus Fallback',serif;font-size:clamp(11rem,34vh,24rem);line-height:1;color:oklch(94% 0.012 90/.06);pointer-events:none;user-select:none;will-change:transform}

/* rising candle motes */
.motes{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.motes i{position:absolute;bottom:-3%;border-radius:50%;background:var(--candle);opacity:0;filter:blur(1px);animation:sb-rise linear infinite}
@keyframes sb-rise{0%{transform:translate3d(0,0,0);opacity:0}12%{opacity:.42}55%{opacity:.2}100%{transform:translate3d(var(--dx,12px),-108vh,0);opacity:0}}

/* image wipe reveals */
.reveal-img{clip-path:inset(0 100% 0 0);transition:clip-path 1.3s cubic-bezier(.16,1,.3,1)}
.reveal-img img{transform:scale(1.08);transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.reveal-img.in{clip-path:inset(0 0 0 0)}
.reveal-img.in img{transform:scale(1)}
.band.flip .reveal-img{clip-path:inset(0 0 0 100%)}
.band.flip .reveal-img.in{clip-path:inset(0 0 0 0)}

/* statement word-by-word */
.statement .big .w{display:inline-block;opacity:0;transform:translateY(.55em);filter:blur(4px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1),filter .8s cubic-bezier(.16,1,.3,1);transition-delay:var(--wd,0s)}
.statement.in .big .w{opacity:1;transform:none;filter:none}

/* opening title sequence */
.seq{opacity:0;transform:translateY(26px);filter:blur(7px);animation:sb-enter 1.25s cubic-bezier(.16,1,.3,1) forwards;animation-delay:var(--d,0s)}
@keyframes sb-enter{to{opacity:1;transform:none;filter:none}}
.page-hero .over,.page-hero h1,.page-hero p.lede{opacity:0;transform:translateY(22px);filter:blur(6px);animation:sb-enter 1.1s cubic-bezier(.16,1,.3,1) forwards}
.page-hero h1{animation-delay:.15s}
.page-hero p.lede{animation-delay:.32s}

/* breath: draw-in + orbiting bead */
.breath{opacity:0;animation:sb-breath-in 1.6s cubic-bezier(.16,1,.3,1) forwards .15s}
@keyframes sb-breath-in{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
.breath .orbit{position:absolute;inset:0;animation:sb-spin 24s linear infinite}
.breath .orbit i{position:absolute;top:-3px;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--candle);box-shadow:0 0 12px oklch(90% 0.045 85/.8)}
@keyframes sb-spin{to{transform:rotate(360deg)}}

@media(prefers-reduced-motion:reduce){
  .hour-slide .bg img,.motes i,.breath .orbit,.seq,.page-hero .over,.page-hero h1,.page-hero p.lede,.breath{animation:none;opacity:1;transform:none;filter:none}
  .reveal-img,.band.flip .reveal-img{clip-path:none;transition:none}
  .reveal-img img{transform:none;transition:none}
  .statement .big .w{opacity:1;transform:none;filter:none;transition:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}

/* sweep cascade fix: keep gradient sizing through hover */
.btn:not(.fill):hover{background:linear-gradient(var(--candle),var(--candle)) left/100% 100% no-repeat;color:var(--button-ink)}
.btn.sea:not(.fill){background-image:linear-gradient(var(--seaglass),var(--seaglass))}
.btn.sea:not(.fill):hover{background:linear-gradient(var(--seaglass),var(--seaglass)) left/100% 100% no-repeat;color:var(--button-ink)}
.site-head .btn:not(.fill):not(:hover){background:none}

/* cinematic hero video background */
.hero-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-media video{width:100%;height:100%;object-fit:cover;filter:saturate(.82) brightness(.62)}
.hero.has-video::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(95% 75% at 50% 42%,oklch(24.5% 0.035 168/.38) 0%,oklch(19% 0.03 166/.86) 100%)}
.hero.has-video,.retreat-tease,.r-hero{color:var(--overlay-ink)}
.hero.has-video .place,.retreat-tease .meta,.r-hero .meta{color:var(--overlay-dim)}
.hero.has-video .breath .ring{border-color:var(--overlay-sea)}
.hero.has-video .breath .word{color:var(--overlay-sea)}
.hero.has-video .breath .orbit i{background:var(--overlay-accent)}
.hero.has-video .btn.fill,.retreat-tease .btn.fill,.r-hero .btn.fill{background:var(--overlay-accent);color:var(--overlay-bg);border-color:var(--overlay-accent)}
.retreat-tease .over,.r-hero .over{color:var(--overlay-accent)}
@media(prefers-reduced-motion:reduce){.hero-media video{display:none}}

/* text-fit + focal safety (audit 27/08) */
h1,h2,h3,p{overflow-wrap:break-word}
.wrap,.wrap.narrow{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
.hour .bg img.f-left{object-position:22% center}
.hour .bg img.f-right{object-position:78% center}
@media(max-width:780px){
  .over{letter-spacing:.24em}
  .statement .big{font-size:clamp(1.5rem,7.2vw,2.4rem)}
}

/* ============ premium layer (phase 1) ============ */
:root{--ease-spring:linear(0,0.0036 9.62%,0.0185 16.66%,0.0489 23.03%,0.0962 28.86%,0.1705 35.08%,0.269 40.64%,0.3867 45.55%,0.5833 52.42%,0.7648 58.4%,0.9139 63.85%,1.0248 69.05%,1.0791 73.05%,1.1039 77.24%,1.1041 80.65%,1.0893 84.62%,1.0273 94.14%,1.0114 97.36%,1);--ease-out-soft:cubic-bezier(.16,1,.3,1)}
html{scrollbar-color:var(--scroll-thumb) var(--scroll-track)}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:var(--scroll-track)}
::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:6px;border:2px solid var(--scroll-track)}
*{-webkit-tap-highlight-color:transparent}
p{text-wrap:pretty}
h1,h2{text-wrap:balance}
:focus-visible{outline:2px solid var(--candle);outline-offset:3px;border-radius:2px}
.skip{position:fixed;top:-60px;left:16px;z-index:300;background:var(--candle);color:var(--button-ink);padding:12px 20px;font:600 .8rem Karla,'Karla Fallback',sans-serif;letter-spacing:.12em;transition:top .25s}
.skip:focus{top:16px}
.reveal{transition-timing-function:var(--ease-out-soft)}
.btn{transition:transform .5s var(--ease-spring),background .3s ease,color .3s ease,border-color .3s ease}
.btn:hover{transform:translateY(-2px)}
.b-photo img,.hour .bg img{transition:transform 1.4s var(--ease-out-soft)}
.band:hover .b-photo img{transform:scale(1.035)}
/* staggered reveal children */
.srows .srow,.faq .faq-item,.klist .krow{transition-delay:calc(var(--i,0)*70ms)}
/* paper (linen) tonal sections */
.strip.paper{background:var(--paper-bg);color:var(--paper-ink)}
.strip.paper .over{color:var(--paper-over)}
.strip.paper h2,.strip.paper h3{color:var(--paper-ink)}
.strip.paper p{color:var(--paper-body)}
.strip.paper .faq-item{border-color:var(--paper-line)}
.strip.paper .faq-item p{color:var(--paper-muted)}
.strip.paper a{color:var(--paper-link)}
.strip.paper .btn.fill{color:var(--button-ink)}
/* scroll-driven upgrades (progressive) */
@supports (animation-timeline: scroll()){
  .progress{animation:sb-progress linear both;animation-timeline:scroll(root)}
  @keyframes sb-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  .ghost{animation:sb-ghost linear both;animation-timeline:view()}
  @keyframes sb-ghost{from{transform:translateY(12vh)}to{transform:translateY(-12vh)}}
}
@media(prefers-reduced-motion:reduce){
  .progress,.ghost,#sb-breathe .ring,.book-card .skeleton{animation:none!important;transform:none}
  .b-photo img,.hour .bg img{transition:none}
}
/* sticky mobile book bar */
#sb-bookbar{position:fixed;left:0;right:0;bottom:0;z-index:150;display:none;padding:10px max(14px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-right));background:var(--mobile-bar);backdrop-filter:blur(14px);border-top:1px solid var(--mobile-bar-line);transform:translateY(110%);transition:transform .5s var(--ease-out-soft)}
#sb-bookbar.on{transform:none}
#sb-bookbar a{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--candle);color:var(--button-ink);text-decoration:none;font:600 .8rem/1 Karla,'Karla Fallback',sans-serif;letter-spacing:.2em;text-transform:uppercase;padding:15px 18px}
#sb-bookbar small{font-size:.62rem;letter-spacing:.14em;opacity:.85}
@media(min-width:881px){#sb-bookbar{display:none!important}}
@media(max-width:880px){#sb-bookbar{display:block}}
/* breathe overlay */
#sb-breathe{position:fixed;inset:0;width:100vw;height:100svh;max-width:none;max-height:none;margin:0;padding:0;border:0;z-index:250;background:color-mix(in srgb,var(--overlay-bg) 97%,transparent);color:var(--overlay-ink);flex-direction:column;align-items:center;justify-content:center}
#sb-breathe:not([open]){display:none}
#sb-breathe[open]{display:flex}
#sb-breathe::backdrop{background:transparent}
#sb-breathe .ring{width:min(280px,64vw);aspect-ratio:1;border-radius:50%;border:1.5px solid var(--overlay-accent);display:flex;align-items:center;justify-content:center;animation:none}
#sb-breathe[open] .ring{animation:sb-breathe-cycle 10s ease-in-out infinite}
#sb-breathe .word{font-family:'Marcellus','Marcellus Fallback',serif;font-size:1rem;letter-spacing:.4em;text-transform:uppercase;color:var(--overlay-ink)}
#sb-breathe .hint{margin-top:34px;min-height:44px;padding:10px;border:0;background:transparent;font:300 .62rem/1.4 'Karla','Karla Fallback',sans-serif;letter-spacing:.34em;text-transform:uppercase;color:var(--overlay-dim);cursor:pointer}
#sb-breathe .breathe-close{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));min-width:44px;min-height:44px;padding:10px 14px;border:1px solid var(--overlay-dim);background:transparent;color:var(--overlay-ink);font:500 .7rem/1 'Karla','Karla Fallback',sans-serif;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
@keyframes sb-breathe-cycle{0%{transform:scale(.72)}40%{transform:scale(1)}60%{transform:scale(1)}100%{transform:scale(.72)}}
.breathe-hint,[data-breathe]{cursor:pointer}
/* gallery strip */
.gallery{overflow:hidden;border-top:1px solid var(--line);padding:clamp(40px,7vh,72px) 0}
.gallery .track{display:flex;gap:14px;width:max-content;animation:sb-pan 60s linear infinite}
.gallery:hover .track{animation-play-state:paused}
.gallery img{height:clamp(200px,30vh,320px);width:auto;display:block;filter:saturate(.92)}
@keyframes sb-pan{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.gallery .track{animation:none}}

/* endless word tickers */
.ticker{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(26px,4.6vh,48px) 0;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker .tk-track{display:flex;width:max-content;animation:sb-pan var(--tk-dur,72s) linear infinite;will-change:transform}
.ticker.rev .tk-track{animation-direction:reverse}
.ticker:hover .tk-track,.ticker:focus-within .tk-track{animation-play-state:paused}
.ticker .tk-set{display:flex;align-items:center}
.tk-item{display:inline-flex;align-items:baseline;white-space:nowrap;padding-right:clamp(20px,3.4vw,44px)}
.tk-item i{font-style:normal;color:var(--candle);opacity:.55;margin-left:clamp(20px,3.4vw,44px);font-size:.72em}
.affirm{--tk-dur:78s;background:var(--affirm-bg)}
.affirm .tk-item{font-family:'Marcellus','Marcellus Fallback',serif;font-size:clamp(1.15rem,2.5vw,2rem);color:var(--linen)}
.quotes{--tk-dur:96s}
.quotes .tk-item{font-size:clamp(.92rem,1.6vw,1.18rem);color:var(--dim)}
.quotes .tk-item b{font-weight:400;color:var(--candle);font-size:.68em;letter-spacing:.22em;text-transform:uppercase;margin-left:14px}
@media(prefers-reduced-motion:reduce){
  .ticker{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
  .ticker .tk-track{animation:none}
  .ticker .tk-set[aria-hidden="true"]{display:none}
}
/* booking embed dressing */
.book-card{border:1px solid var(--booking-line);position:relative;background:oklch(97% 0.008 85)}
.book-card::before{content:"Live availability · secure payment · cards accepted";position:absolute;top:-11px;left:18px;background:var(--pine-deep,oklch(14% 0.025 166));color:var(--candle);font:500 .6rem/1 Karla,'Karla Fallback',sans-serif;letter-spacing:.3em;text-transform:uppercase;padding:4px 12px}
.book-card .skeleton{position:absolute;inset:0;background:linear-gradient(100deg,oklch(94% 0.01 85) 40%,oklch(98% 0.005 85) 50%,oklch(94% 0.01 85) 60%);background-size:200% 100%;animation:sb-shimmer 1.4s linear infinite;transition:opacity .5s ease}
.book-card.loaded .skeleton{opacity:0;pointer-events:none}
@keyframes sb-shimmer{to{background-position:-200% 0}}
