/* ============================================================
   EMBER — Recovery Sanctuary · warm editorial serenity
   Fraunces (display) · Newsreader (body) · Karla (labels)
   ============================================================ */

:root{
  --cream:#F6EFE6;
  --cream-deep:#EFE5D6;
  --espresso:#201711;
  --espresso-soft:#3A2C20;
  --copper:#B46432;
  --copper-deep:#96501f;
  --oak:#96714B;
  --dark:#241A12;
  --dark-2:#2E2117;
  --on-dark:#EFE3D2;
  --on-dark-dim:#C4B29B;
  --rule:rgba(32,23,17,.16);
  --rule-strong:rgba(32,23,17,.35);
  --rule-dark:rgba(239,227,210,.16);
  --ease-slow:cubic-bezier(.22,1,.36,1);
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Newsreader",Georgia,serif;
  --font-label:"Karla",Verdana,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  background:var(--cream);
  color:var(--espresso);
  font-family:var(--font-body);
  font-size:1.1875rem;
  line-height:1.65;
  font-weight:380;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
  -webkit-tap-highlight-color:rgba(180,100,50,.15);
}
a{color:inherit;touch-action:manipulation}
button{touch-action:manipulation}
img,video{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:var(--font-display);font-weight:380;line-height:1.02}
em{font-style:italic}
strong{font-weight:560}

::selection{background:var(--copper);color:var(--cream)}

:focus-visible{outline:2px solid var(--copper);outline-offset:3px;border-radius:2px}

.skip-link{
  position:fixed;top:-4rem;left:1rem;z-index:100;
  background:var(--espresso);color:var(--cream);
  font-family:var(--font-label);font-size:.8rem;letter-spacing:.08em;
  padding:.8rem 1.2rem;text-decoration:none;transition:top .3s var(--ease-slow);
}
.skip-link:focus{top:1rem}

/* film grain */
.grain{
  position:fixed;inset:-50%;z-index:60;pointer-events:none;
  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='240' height='240' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity:.055;mix-blend-mode:multiply;
}

/* layout scaffolding */
.wrap{max-width:82rem;margin-inline:auto;padding-inline:clamp(1.25rem,4.5vw,4rem)}
.grid-12{display:grid;grid-template-columns:repeat(12,1fr);column-gap:clamp(1rem,2.5vw,2.5rem)}

.kicker{
  font-family:var(--font-label);font-size:.72rem;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase;color:var(--copper-deep);
}
.kicker--copper{color:var(--copper)}
.chapter-no{
  font-family:var(--font-display);
  font-variation-settings:"opsz" 144;
  font-size:clamp(4.5rem,9vw,8rem);font-weight:300;line-height:.9;
  color:transparent;-webkit-text-stroke:1px rgba(32,23,17,.28);
}

/* underline draw-in links */
.u-link, .site-nav a, .foot-link{
  text-decoration:none;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;
  transition:background-size .55s var(--ease-slow);
  padding-bottom:2px;
}
.u-link:hover, .site-nav a:hover, .foot-link:hover{background-size:100% 1px}

/* ============ header ============ */
.site-head{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.1rem clamp(1.25rem,4vw,3rem);
  color:var(--cream);
  transition:background .5s var(--ease-slow),color .5s var(--ease-slow),box-shadow .5s var(--ease-slow),padding .5s var(--ease-slow);
}
.site-head.is-solid{
  background:rgba(246,239,230,.92);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  color:var(--espresso);
  box-shadow:0 1px 0 var(--rule);
  padding-block:.75rem;
}
.wordmark{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--font-display);font-size:1.15rem;font-weight:500;
  letter-spacing:.01em;text-decoration:none;white-space:nowrap;
}
/* the roundel flattens to cream over the hero so it reads as one lockup with the
   text wordmark, and returns to its engraved espresso once the header goes solid */
.wm-mark{
  flex:0 0 auto;width:30px;height:30px;
  filter:brightness(0) invert(1) opacity(.92);
  transition:filter .5s var(--ease-slow);
}
.site-head.is-solid .wm-mark{filter:none}
@media (max-width:400px){ .wm-mark{width:26px;height:26px} }
.site-nav{display:flex;gap:clamp(1rem,2.5vw,2.2rem)}
.site-nav a{
  font-family:var(--font-label);font-size:.74rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
  padding-block:.6rem;
}
.head-cta{
  font-family:var(--font-label);font-size:.74rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;text-decoration:none;
  border:1px solid currentColor;border-radius:99px;
  padding:.7rem 1.4rem;white-space:nowrap;
  transition:background .4s var(--ease-slow),color .4s var(--ease-slow),border-color .4s var(--ease-slow);
}
.head-cta:hover{background:var(--copper);border-color:var(--copper);color:var(--cream)}
@media (max-width:760px){ .site-nav{display:none} }

/* ============ hero ============ */
.hero{
  position:relative;min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  color:var(--cream);
  isolation:isolate;
}
.hero-media{position:absolute;inset:0;z-index:-1;overflow:hidden;background:var(--dark)}
.hero-video{width:100%;height:100%;object-fit:cover}
.hero-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(to bottom,rgba(36,26,18,.42) 0%,rgba(36,26,18,.08) 38%,rgba(36,26,18,.16) 62%,rgba(32,23,17,.72) 100%),
    radial-gradient(120% 90% at 50% 105%,rgba(32,23,17,.5),transparent 60%);
}
.hero-inner{
  position:relative;
  padding:0 clamp(1.25rem,4.5vw,4rem);
  margin-bottom:auto;margin-top:auto;
  text-align:center;
}
.hero-kicker{
  color:rgba(246,239,230,.85);
  margin-bottom:clamp(1.2rem,3vh,2rem);
}
.hero-title{
  font-size:clamp(3.4rem,11.5vw,10.5rem);
  font-weight:340;
  letter-spacing:-.015em;
  line-height:.94;
  font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1;
  text-wrap:balance;
  text-shadow:0 2px 40px rgba(32,23,17,.35);
}
.hero-title .ht-line{display:block}
.hero-title .ht-line--2{font-style:italic;font-weight:300}
.hero-tag{
  margin-top:clamp(1.4rem,3.5vh,2.4rem);
  font-size:clamp(1.05rem,1.6vw,1.35rem);
  color:rgba(246,239,230,.92);
}
.hero-foot{
  display:flex;align-items:flex-end;justify-content:space-between;
  padding:0 clamp(1.25rem,4.5vw,4rem) clamp(1.5rem,4vh,2.75rem);
}
.hero-degrees{
  display:flex;align-items:center;gap:1rem;
  font-family:var(--font-display);font-size:1rem;font-style:italic;
  color:rgba(246,239,230,.75);
  font-variant-numeric:tabular-nums;
}
.deg-rule{width:clamp(2rem,6vw,5rem);height:1px;background:rgba(246,239,230,.4)}
.scroll-cue{
  display:flex;flex-direction:column;align-items:center;gap:.7rem;
  font-family:var(--font-label);font-size:.68rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;text-decoration:none;
  color:rgba(246,239,230,.85);
  padding:.5rem;
}
.scroll-cue svg{animation:cue-drift 2.8s var(--ease-slow) infinite}
@keyframes cue-drift{
  0%,100%{transform:translateY(0);opacity:.85}
  50%{transform:translateY(7px);opacity:.45}
}

/* ============ prologue ============ */
.prologue{padding-block:clamp(7rem,18vh,13rem) clamp(5rem,12vh,9rem)}
.prologue-label{grid-column:1/3}
.flame-mark{color:var(--copper);opacity:.85;margin-bottom:1.2rem}
.prologue-body{grid-column:4/10}
.prologue-lede{
  font-size:clamp(1.5rem,2.6vw,2.15rem);
  line-height:1.42;font-weight:340;
  letter-spacing:-.005em;
  max-width:32ch;
  text-wrap:pretty;
}
.dropcap::first-letter{
  font-family:var(--font-display);
  font-variation-settings:"opsz" 144,"WONK" 1;
  float:left;
  font-size:5.2em;line-height:.78;
  padding-right:.09em;padding-top:.05em;
  color:var(--copper);
  font-weight:400;
}
.prologue-more{
  margin-top:2.2rem;max-width:58ch;
  color:var(--espresso-soft);
}
.sig{
  margin-top:2.6rem;
  font-family:var(--font-display);font-style:italic;font-size:1.5rem;
  color:var(--copper);
}
.prologue-margin{grid-column:10/13;align-self:end;padding-bottom:.5rem}
.margin-note{
  font-size:.95rem;font-style:italic;color:var(--oak);
  border-top:1px solid var(--rule);padding-top:1rem;
  max-width:24ch;
}

/* ============ index of services ============ */
.svc-index{padding-block:clamp(4rem,10vh,8rem)}
.index-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:3rem;
  margin-bottom:clamp(2.5rem,6vh,4.5rem);
  flex-wrap:wrap;
}
.index-title{
  font-size:clamp(2.6rem,6vw,4.8rem);
  font-variation-settings:"opsz" 144;
  letter-spacing:-.01em;
}
.index-note{max-width:34ch;color:var(--espresso-soft);font-size:1.05rem}
.index-list{list-style:none;border-top:1px solid var(--rule-strong)}
.index-row{
  display:flex;align-items:baseline;gap:clamp(.8rem,2vw,1.6rem);
  padding:1.15rem .25rem;
  border-bottom:1px solid var(--rule);
  transition:background .45s var(--ease-slow),padding-left .45s var(--ease-slow);
}
.index-row:hover{background:rgba(180,100,50,.06);padding-left:.9rem}
.ir-no{
  font-family:var(--font-label);font-size:.72rem;font-weight:600;
  letter-spacing:.14em;color:var(--copper);
  font-variant-numeric:tabular-nums;
  flex:0 0 2rem;
}
.ir-name{
  font-family:var(--font-display);
  font-size:clamp(1.25rem,2.4vw,1.9rem);
  font-weight:400;letter-spacing:-.005em;
  white-space:nowrap;
}
.ir-dots{flex:1;border-bottom:1px dotted rgba(32,23,17,.35);transform:translateY(-.35em);min-width:2rem}
.ir-detail{
  font-size:.95rem;font-style:italic;color:var(--espresso-soft);
  text-align:right;white-space:nowrap;
}
.index-row--res .ir-detail em{color:var(--copper-deep);font-weight:500}
@media (max-width:640px){
  .index-row{flex-wrap:wrap;row-gap:.15rem}
  .ir-dots{display:none}
  .ir-name{white-space:normal}
  .ir-detail{flex-basis:100%;text-align:left;padding-left:2.6rem;white-space:normal}
}

/* ============ chapters ============ */
.chapter{padding-top:clamp(6rem,16vh,11rem)}
.ch-head{position:relative;margin-bottom:clamp(1.8rem,4vh,3rem)}
.ch-head .chapter-no{position:absolute;top:-.35em;right:clamp(1.25rem,4.5vw,4rem);z-index:0}
.ch-head--right .chapter-no{right:auto;left:clamp(1.25rem,4.5vw,4rem)}
.ch-head--right{text-align:right}
.ch-title{
  font-size:clamp(3.2rem,8vw,7rem);
  font-variation-settings:"opsz" 144,"SOFT" 30;
  letter-spacing:-.015em;
  margin-top:.4rem;
  position:relative;z-index:1;
}

/* image figures */
.img-frame{overflow:hidden;background:var(--dark-2)}
.img-frame img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.96) sepia(.06);
  transition:filter .9s var(--ease-slow),transform 1.2s var(--ease-slow);
}
.img-frame:hover img{filter:saturate(1.08) sepia(.02) brightness(1.04);transform:scale(1.015)}
.ch-caption{
  font-size:.9rem;font-style:italic;color:var(--oak);
  padding-top:.85rem;max-width:38ch;
}
.ch-caption--right{margin-left:auto;text-align:right}
.ch-caption--dark{color:var(--on-dark-dim)}

.ch-figure{margin:0}
.ch-figure--left{width:min(100%,calc(50vw + 41rem));margin-right:auto;padding-right:clamp(1.25rem,4.5vw,4rem)}
.ch-figure--left .img-frame{aspect-ratio:16/9}
.ch-figure--left .ch-caption{padding-left:clamp(1.25rem,4.5vw,4rem)}
.ch-figure--right{width:min(100%,calc(50vw + 41rem));margin-left:auto;padding-left:clamp(1.25rem,4.5vw,4rem)}
.ch-figure--right .img-frame{aspect-ratio:16/9}
.ch-figure--right .ch-caption{padding-right:clamp(1.25rem,4.5vw,4rem)}

.ch-body{padding-top:clamp(2.5rem,6vh,4.5rem);align-items:start}
.ch-dial{grid-column:1/4}
.ch-dial--right{grid-column:9/12;grid-row:1}
.ch-copy{grid-column:5/10;max-width:56ch}
.ch-copy--left{grid-column:2/8}
.ch-copy p+p{margin-top:1.4rem}
.ch-services{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.8rem}
.svc-tag{
  font-family:var(--font-label);font-size:.7rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--rule-strong);border-radius:99px;
  padding:.45rem .95rem;color:var(--espresso-soft);
}
.svc-tag--dark{border-color:var(--rule-dark);color:var(--on-dark-dim)}
.ch-margin-figure{grid-column:10/13;margin-top:-6rem}
.ch-margin-figure .img-frame{aspect-ratio:4/5}

/* dial */
.dial{width:min(100%,13rem);transform:rotate(-90deg)}
.dial circle{fill:none}
.dial-track{stroke:var(--rule);stroke-width:1}
.dial-arc{
  stroke:var(--copper);stroke-width:2.5;stroke-linecap:round;
  stroke-dasharray:527.8;stroke-dashoffset:395.8; /* 25% arc */
}
.dial--cold .dial-arc{stroke:var(--oak);stroke-dashoffset:474.9} /* 10% arc */
.dial-text{transform:rotate(90deg);transform-origin:100px 100px}
.dial-big{
  font-family:var(--font-display);font-size:2.35rem;font-weight:350;
  fill:var(--espresso);text-anchor:middle;
}
.dial-unit{
  font-family:var(--font-label);font-size:.62rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;
  fill:var(--oak);text-anchor:middle;
}

/* pressure chapter */
.ch-body--pressure{padding-top:clamp(2rem,5vh,3.5rem)}
.ch-portrait{grid-column:1/6;margin:0}
.ch-portrait .img-frame{aspect-ratio:4/5}
.ch-portrait--right{grid-column:8/13}
.ch-copy--list{grid-column:7/13;padding-top:1rem}
.pressure-lede{
  font-family:var(--font-display);
  font-size:clamp(1.35rem,2.2vw,1.8rem);
  font-style:italic;font-weight:340;line-height:1.35;
  max-width:30ch;
  margin-bottom:2.4rem;
}
.pressure-list{border-top:1px solid var(--rule-strong)}
.pl-row{padding:1.5rem .25rem;border-bottom:1px solid var(--rule)}
.pl-row dt{
  font-family:var(--font-display);font-size:1.45rem;font-weight:420;
  margin-bottom:.45rem;
}
.pl-row dd{color:var(--espresso-soft);max-width:52ch;font-size:1.05rem}

/* light chapter (dark) */
.chapter--dark{
  background:
    linear-gradient(rgba(36,26,18,.94),rgba(36,26,18,.96)),
    url("../assets/woodgrain.webp") center/cover no-repeat var(--dark);
  color:var(--on-dark);
  margin-top:clamp(6rem,16vh,11rem);
  padding-bottom:clamp(6rem,14vh,10rem);
}
.chapter--dark .chapter-no{-webkit-text-stroke-color:rgba(239,227,210,.3)}
.chapter--dark .kicker{color:var(--copper)}
.chapter--dark .ch-copy p{color:var(--on-dark)}
.ch-body--light{padding-top:clamp(1.5rem,4vh,3rem)}
.ch-body--light .ch-copy--left{grid-column:1/7;align-self:center;font-size:1.22rem;max-width:50ch}
.ch-body--light .ch-portrait--right{margin-top:-4rem}
@media (max-width:900px){ .ch-body--light .ch-portrait--right{margin-top:0} }

/* ============ chamber ============ */
.chamber{
  background:var(--dark);
  color:var(--on-dark);
  padding-block:clamp(7rem,18vh,13rem);
  position:relative;overflow:hidden;
  text-align:left;
}
.chamber::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(65% 55% at 72% 30%,rgba(180,100,50,.22),transparent 70%);
}
.chamber .wrap{position:relative}
.chapter-no--chamber{
  -webkit-text-stroke-color:rgba(239,227,210,.22);
  margin-bottom:1rem;
}
.chamber .kicker{margin-bottom:1.6rem}
.chamber-title{
  font-size:clamp(3.2rem,8.5vw,7.5rem);
  font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1;
  letter-spacing:-.018em;line-height:.98;
  margin-bottom:clamp(2.5rem,6vh,4rem);
}
.chamber-title .ht-line{display:block}
.chamber-title em{color:var(--copper);-webkit-text-fill-color:var(--copper)}
.chamber-cols{
  display:grid;grid-template-columns:minmax(0,56ch) 1fr;
  gap:clamp(2rem,6vw,6rem);align-items:start;
}
.chamber-copy{font-size:1.22rem;color:var(--on-dark);max-width:52ch}
.chamber-facts{display:grid;gap:1.4rem;border-left:1px solid var(--rule-dark);padding-left:clamp(1.5rem,3vw,2.5rem)}
.fact{display:flex;align-items:baseline;gap:1rem}
.fact-figure{
  font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3.2rem);
  font-weight:340;color:var(--copper);
  font-variant-numeric:tabular-nums;
  min-width:3.4ch;
}
.fact-label{font-family:var(--font-label);font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-dim);line-height:1.6}
.fact-sub{text-transform:none;letter-spacing:.02em;font-style:italic;font-family:var(--font-body)}
.chamber-cta{
  display:inline-block;margin-top:clamp(2.5rem,6vh,4rem);
  font-family:var(--font-label);font-size:.8rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;text-decoration:none;
  color:var(--on-dark);
  border:1px solid rgba(239,227,210,.4);border-radius:99px;
  padding:1.1rem 2.2rem;
  transition:background .45s var(--ease-slow),border-color .45s var(--ease-slow),color .45s var(--ease-slow);
}
.chamber-cta:hover{background:var(--copper);border-color:var(--copper);color:var(--cream)}
@media (max-width:860px){ .chamber-cols{grid-template-columns:1fr} .chamber-facts{border-left:none;border-top:1px solid var(--rule-dark);padding-left:0;padding-top:1.8rem} }

/* ============ membership ============ */
.membership{padding-block:clamp(7rem,16vh,12rem) clamp(5rem,12vh,9rem)}
.mem-head{grid-column:1/5}
.mem-title{
  font-size:clamp(2.6rem,5.5vw,4.4rem);
  font-variation-settings:"opsz" 144;
  letter-spacing:-.012em;
  margin-block:1.2rem 1.6rem;
}
.mem-note{color:var(--espresso-soft);font-size:1.02rem;max-width:34ch}
.mem-ledger{grid-column:6/13;border-top:1px solid var(--rule-strong)}
.ledger-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:2rem;
  padding:1.9rem .25rem;border-bottom:1px solid var(--rule);
  transition:background .45s var(--ease-slow),padding-left .45s var(--ease-slow);
}
.ledger-row:hover{background:rgba(180,100,50,.05);padding-left:.9rem}
.lr-name h3{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:420;margin-bottom:.35rem}
.lr-name p{font-size:.98rem;font-style:italic;color:var(--oak)}
.lr-price{white-space:nowrap}
.lr-figure{
  font-family:var(--font-display);font-size:clamp(1.9rem,3.4vw,2.7rem);
  font-weight:340;font-variant-numeric:tabular-nums;
}
.lr-per{font-size:.95rem;font-style:italic;color:var(--oak)}
.ledger-row--hero .lr-figure{color:var(--copper)}
.ledger-row--hero .lr-name h3{color:var(--copper-deep)}
.ledger-row--quiet{opacity:.82}
@media (max-width:900px){ .mem-head{grid-column:1/13;margin-bottom:2.5rem} .mem-ledger{grid-column:1/13} }

/* ============ visit / booking ============ */
.visit{
  background:var(--cream-deep);
  border-top:1px solid var(--rule);
  padding-block:clamp(6rem,14vh,10rem);
}
.visit-head{max-width:46rem;margin-bottom:clamp(3rem,7vh,5rem)}
.visit-title{
  font-size:clamp(2.8rem,6.5vw,5.2rem);
  font-variation-settings:"opsz" 144,"SOFT" 30;
  letter-spacing:-.014em;
  margin-block:1.1rem 1.4rem;
}
.visit-sub{color:var(--espresso-soft);max-width:52ch}

.book{max-width:56rem}
.book-step{border:none;margin-bottom:clamp(2.6rem,6vh,4rem);min-inline-size:0}
.book-legend{
  display:flex;align-items:baseline;gap:1rem;
  font-family:var(--font-display);font-size:1.5rem;font-weight:420;
  margin-bottom:1.4rem;width:100%;
  border-bottom:1px solid var(--rule-strong);padding-bottom:.9rem;
}
.bl-no{
  font-size:1rem;font-style:italic;color:var(--copper);
  min-width:1.6ch;
}
.bl-opt{
  font-family:var(--font-label);font-size:.68rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--oak);
  margin-left:auto;align-self:center;
}

.day-row{display:flex;gap:.65rem;overflow-x:auto;padding-bottom:.5rem;scrollbar-width:thin}
.day-btn{
  flex:0 0 auto;min-width:5.4rem;min-height:44px;
  background:transparent;border:1px solid var(--rule-strong);border-radius:2px;
  font-family:var(--font-body);cursor:pointer;
  padding:.85rem .9rem .8rem;text-align:center;color:var(--espresso);
  transition:background .35s var(--ease-slow),border-color .35s var(--ease-slow),color .35s var(--ease-slow);
}
.day-btn .db-dow{
  display:block;font-family:var(--font-label);font-size:.66rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--oak);
  margin-bottom:.3rem;transition:color .35s var(--ease-slow);
}
.day-btn .db-date{font-family:var(--font-display);font-size:1.25rem;font-variant-numeric:tabular-nums}
.day-btn:hover{border-color:var(--copper)}
.day-btn[aria-pressed="true"]{background:var(--espresso);border-color:var(--espresso);color:var(--cream)}
.day-btn[aria-pressed="true"] .db-dow{color:var(--copper)}

.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:.65rem}
.slot-btn{
  min-height:44px;
  background:transparent;border:1px solid var(--rule-strong);border-radius:2px;
  font-family:var(--font-body);cursor:pointer;color:var(--espresso);
  padding:.9rem 1.1rem;text-align:left;
  display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;
  transition:background .35s var(--ease-slow),border-color .35s var(--ease-slow),color .35s var(--ease-slow),opacity .3s;
}
.slot-btn .sb-time{font-family:var(--font-display);font-size:1.1rem;font-variant-numeric:tabular-nums}
.slot-btn .sb-spots{
  font-family:var(--font-label);font-size:.64rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--oak);
  transition:color .35s var(--ease-slow);
}
.slot-btn:hover:not(:disabled){border-color:var(--copper)}
.slot-btn[aria-pressed="true"]{background:var(--espresso);border-color:var(--espresso);color:var(--cream)}
.slot-btn[aria-pressed="true"] .sb-spots{color:var(--copper)}
.slot-btn:disabled{opacity:.38;cursor:not-allowed;text-decoration:line-through}
.slot-btn .sb-spots--low{color:var(--copper-deep)}

.chamber-opt{display:flex;gap:1rem;align-items:flex-start;cursor:pointer;max-width:56ch;padding:.35rem 0}
.chamber-opt input{position:absolute;opacity:0;width:44px;height:44px}
.co-box{
  flex:0 0 auto;width:1.35rem;height:1.35rem;margin-top:.2rem;
  border:1px solid var(--rule-strong);border-radius:2px;
  display:grid;place-items:center;
  transition:background .3s var(--ease-slow),border-color .3s var(--ease-slow);
}
.co-box::after{
  content:"";width:.62rem;height:.35rem;
  border-left:2px solid var(--cream);border-bottom:2px solid var(--cream);
  transform:rotate(-45deg) scale(0);transition:transform .3s var(--ease-slow);
  margin-top:-2px;
}
.chamber-opt input:checked + .co-box{background:var(--copper);border-color:var(--copper)}
.chamber-opt input:checked + .co-box::after{transform:rotate(-45deg) scale(1)}
.chamber-opt input:focus-visible + .co-box{outline:2px solid var(--copper);outline-offset:3px}
.co-text{font-size:1.05rem;color:var(--espresso-soft)}
.co-text strong{color:var(--espresso)}

.book-foot{
  display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;
  border-top:1px solid var(--rule-strong);padding-top:1.8rem;
}
.book-summary .bs-line{font-style:italic;color:var(--espresso-soft)}
.book-summary .bs-strong{font-style:normal;color:var(--espresso)}
.bs-price{font-family:var(--font-display);color:var(--copper-deep);font-style:normal}
.book-cta{
  font-family:var(--font-label);font-size:.8rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  background:var(--espresso);color:var(--cream);
  border:1px solid var(--espresso);border-radius:99px;
  padding:1.15rem 2.4rem;cursor:pointer;
  transition:background .4s var(--ease-slow),border-color .4s var(--ease-slow),transform .4s var(--ease-slow);
}
.book-cta:hover{background:var(--copper);border-color:var(--copper)}
.book-fine{margin-top:1.6rem;font-size:.88rem;font-style:italic;color:var(--oak);max-width:60ch}

.book-confirm{
  max-width:34rem;
  border:1px solid var(--rule-strong);
  padding:clamp(2.2rem,5vw,3.5rem);
  text-align:center;margin-inline:auto;
  background:var(--cream);
  color:var(--espresso);
}
.bc-mark{color:var(--copper);margin:0 auto 1.4rem}
.bc-flame{stroke-dasharray:130;stroke-dashoffset:0}
.bc-title{font-size:clamp(1.9rem,3.5vw,2.6rem);font-variation-settings:"opsz" 144;margin-bottom:1rem}
.bc-detail{font-size:1.1rem;margin-bottom:1.2rem}
.bc-fine{font-size:.92rem;font-style:italic;color:var(--oak);margin-bottom:1.8rem}
.bc-again{
  font-family:var(--font-label);font-size:.74rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
  background:transparent;border:1px solid var(--rule-strong);border-radius:99px;
  padding:.85rem 1.7rem;cursor:pointer;color:var(--espresso);
  transition:background .35s var(--ease-slow),color .35s var(--ease-slow),border-color .35s var(--ease-slow);
}
.bc-again:hover{background:var(--espresso);color:var(--cream);border-color:var(--espresso)}

/* ============ footer ============ */
.site-foot{
  background:var(--dark);color:var(--on-dark);
  padding-block:clamp(4.5rem,10vh,7rem) 2.5rem;
  overflow:hidden;
}
.foot-logo{
  width:100%;max-width:clamp(320px,55%,620px);height:auto;
  margin-bottom:clamp(3rem,7vh,5rem);
}
.foot-cols{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;
  padding-bottom:3rem;border-bottom:1px solid var(--rule-dark);
}
.kicker--foot{color:var(--copper);margin-bottom:.9rem}
.foot-col p{font-size:1.02rem;color:var(--on-dark-dim);line-height:1.8}
.foot-link{color:var(--on-dark)}
.foot-base{
  display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  padding-top:1.8rem;
  font-size:.9rem;font-style:italic;color:var(--on-dark-dim);
}
.foot-demo{font-family:var(--font-label);font-style:normal;font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(196,178,155,.6)}
@media (max-width:700px){ .foot-cols{grid-template-columns:1fr;gap:2.2rem} }

/* ============ responsive: collapse editorial grid ============ */
@media (max-width:900px){
  .grid-12{display:block}
  .prologue-label{display:flex;align-items:center;gap:1.4rem;margin-bottom:2rem}
  .flame-mark{margin-bottom:0;width:44px;height:44px}
  .prologue-margin{margin-top:2.5rem}
  .margin-note{max-width:40ch}
  .ch-dial{margin-bottom:2rem}
  .ch-dial--right{margin-top:2rem;margin-bottom:0}
  .ch-copy,.ch-copy--left,.ch-copy--list{max-width:60ch}
  .ch-margin-figure{margin-top:2.5rem;max-width:26rem}
  .ch-portrait{max-width:30rem;margin-bottom:2.5rem}
  .ch-portrait--right{margin-bottom:0;margin-top:2.5rem}
  .ch-figure--left,.ch-figure--right{width:100%;padding:0 clamp(1.25rem,4.5vw,4rem)}
  .ch-figure--left .ch-caption,.ch-figure--right .ch-caption{padding-inline:0}
  .index-head{margin-bottom:2rem}
}
@media (max-width:640px){
  body{font-size:1.09rem}
  .hero-degrees{display:none}
  .hero-foot{justify-content:center}
  .dropcap::first-letter{font-size:4.4em}
}

/* ============ reveal initial states (JS adds .js to <html>) ============ */
.js .reveal-img .img-frame{clip-path:inset(6% 4% 6% 4%);}
.js .reveal-img.is-in .img-frame{clip-path:inset(0 0 0 0);transition:clip-path 1.2s var(--ease-slow)}
/* scale-settle only on figures that are NOT parallaxed (parallax owns transform) */
.js .ch-margin-figure.reveal-img img,
.js .ch-portrait.reveal-img img{transform:scale(1.08)}
.js .ch-margin-figure.reveal-img.is-in img,
.js .ch-portrait.reveal-img.is-in img{transform:scale(1)}
/* full-bleed parallax figures: oversize the image so shifting never shows edges */
.ch-figure .img-frame{position:relative}
.ch-figure .img-frame img{position:absolute;left:0;top:-7%;height:114%;width:100%}

/* text rises (class added by JS only when motion is allowed) */
.rise{opacity:0;transform:translateY(28px);visibility:hidden}
.rise.is-in{
  opacity:1;transform:none;visibility:visible;
  transition:opacity 1.05s var(--ease-slow),transform 1.05s var(--ease-slow),visibility 0s;
}

/* hero wordmark breathing */
@keyframes breathe{
  0%,100%{font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1,"wght" 330;letter-spacing:-.015em}
  50%{font-variation-settings:"opsz" 144,"SOFT" 65,"WONK" 1,"wght" 395;letter-spacing:.004em}
}
.hero-title{animation:breathe 9s ease-in-out infinite}

/* ============ reduced motion ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important}
  .hero-title{animation:none}
  .scroll-cue svg{animation:none}
  .js .reveal-img .img-frame{clip-path:none}
  .js .reveal-img .img-frame img{transform:none}
}
