:root{--bone:#F2EBE1;--paper:#F8F4EE;--clay:#A8573A;--clay-d:#8A4429;--sand:#D9C7B2;--cocoa:#2B201B;--mute:#6E5F55;--line:rgba(43,32,27,.16);
--serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",system-ui,sans-serif;--g:clamp(20px,5vw,72px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bone);color:var(--cocoa);font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.07;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit}figure{margin:0}
:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:100;background:var(--cocoa);color:#fff;padding:8px 14px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.i{font-style:italic;font-weight:300}
.kicker{font:600 .72rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--clay-d);margin:0 0 1.4rem}
.display{font:300 clamp(3.4rem,11vw,9.5rem)/.88 var(--serif);letter-spacing:-.02em;margin:0 0 2rem}
.display--sm{font-size:clamp(2.8rem,8vw,6.5rem)}
.h2{font:300 clamp(2.4rem,6vw,4.6rem)/.98 var(--serif);letter-spacing:-.015em;margin:0 0 1.5rem}
.h3{font:400 2rem/1.1 var(--serif);margin:.2rem 0 1rem}
.note{font-size:.85rem;color:var(--mute);max-width:44ch}
.ph{color:var(--mute);font-style:italic;font-size:.9rem;border-bottom:1px dashed var(--sand)}
.pill{display:inline-flex;align-items:center;gap:.6em;min-height:48px;padding:0 1.6em;border-radius:999px;background:var(--cocoa);color:var(--paper);border:1px solid var(--cocoa);font:500 .92rem var(--sans);letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:background .35s,color .35s,transform .35s}
.pill:hover{background:var(--clay-d);border-color:var(--clay-d)}.pill:hover span{transform:translateX(4px)}.pill span{transition:transform .35s}
.pill:disabled{opacity:.35;cursor:not-allowed}
.pill--ghost{background:transparent;color:var(--cocoa);min-height:40px}.pill--ghost:hover{color:var(--paper)}
.pill--light{background:var(--bone);color:var(--cocoa);border-color:var(--bone)}.pill--light:hover{background:var(--sand);border-color:var(--sand);color:var(--cocoa)}
.link{background:none;border:0;padding:0;font:500 .92rem var(--sans);color:var(--cocoa);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .4s;cursor:pointer}
.link:hover{background-size:0 1px;background-position:100% 100%}
/* header */
.top{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:14px var(--g);background:rgba(242,235,225,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;font:400 1.35rem var(--serif)}.brand em{font-weight:300}
.mono-s{width:34px;height:34px;color:var(--clay)}
.top nav{display:none;gap:2.2rem}.top nav a{text-decoration:none;font-size:.86rem;letter-spacing:.04em}.top nav a:hover{color:var(--clay-d)}
@media(min-width:860px){.top nav{display:flex}}
/* hero */
.hero{position:relative;display:grid;gap:2.5rem;padding:clamp(40px,8vw,110px) var(--g) 60px}
.lede{font-size:1.08rem;max-width:36ch;color:var(--mute);margin:0 0 2.2rem}
.hero__cta{display:flex;align-items:center;gap:1.8rem;flex-wrap:wrap}
.hero__img{position:relative;aspect-ratio:4/5;border-radius:240px 240px 0 0;overflow:hidden}
.hero__img figcaption,.about__img figcaption{position:absolute;left:14px;bottom:12px;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);opacity:.85}
.hero__sprig{display:none}
.facts{list-style:none;margin:0;padding:1.6rem 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;font:400 1.2rem var(--serif)}
.facts span{display:block;font:600 .66rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-bottom:.3rem}
@media(min-width:900px){.hero{grid-template-columns:7fr 5fr;align-items:end;column-gap:6vw}.hero__img{grid-row:1/3;grid-column:2;max-height:84vh}.facts{grid-column:1}
.hero__sprig{display:block;position:absolute;width:60px;height:200px;left:calc(var(--g) + 300px);top:40px;color:var(--sand);opacity:0}}
/* manifesto */
.manifesto{padding:clamp(70px,12vw,170px) var(--g);background:var(--cocoa);color:var(--bone)}
.manifesto{display:grid;gap:2.5rem}.manifesto__text{font:300 clamp(1.9rem,4.4vw,4.1rem)/1.1 var(--serif);max-width:22ch;margin:0;text-indent:2.5em}.manifesto__mono{width:clamp(90px,14vw,200px);height:clamp(90px,14vw,200px);color:#C98B6C;display:block;margin-bottom:1.6rem;animation:spin 60s linear infinite}.kicker--light{color:#C98B6C}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:900px){.manifesto{grid-template-columns:4fr 8fr;align-items:start}}
.manifesto em{color:#E2A788}
/* sections */
section{scroll-margin-top:70px}
.sec-head{padding:0 var(--g);max-width:1400px}
.rituals{padding:clamp(70px,10vw,140px) 0 40px}
.menu{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid var(--line)}
.menu__row{display:grid;grid-template-columns:2.4rem 1fr;gap:.4rem 1rem;padding:1.8rem var(--g);border-bottom:1px solid var(--line);transition:background .4s}
.menu__row:hover{background:var(--paper)}
.menu__row h3{font:400 clamp(1.7rem,3.6vw,2.6rem)/1.05 var(--serif);margin:0 0 .3rem;transition:transform .45s}
.menu__row:hover h3{transform:translateX(8px);color:var(--clay-d)}
.menu__row p{margin:0;color:var(--mute);font-size:.92rem}
.n{font:italic 300 1.3rem var(--serif);color:var(--clay)}
.meta{grid-column:2;font-size:.8rem;letter-spacing:.08em;color:var(--mute)}
.arrow{grid-column:2;justify-self:start;background:none;border:0;font:500 .9rem var(--sans);color:var(--cocoa);cursor:pointer;padding:.5rem 0;min-height:44px}
.arrow:hover{color:var(--clay-d)}
@media(min-width:800px){.menu__row{grid-template-columns:4rem 1fr 12rem 7rem;align-items:center}.meta,.arrow{grid-column:auto}.arrow{justify-self:end}}
.about{display:grid;gap:3rem;padding:clamp(70px,10vw,140px) var(--g)}
.about__img{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:2px}
.about__copy p{max-width:46ch}
.sig{font:italic 300 2rem var(--serif);color:var(--clay-d)}
@media(min-width:900px){.about{grid-template-columns:5fr 1fr 6fr;align-items:center}.about__img{grid-column:1;transform:translateY(40px)}.about__copy{grid-column:3}}
.steps{padding:clamp(60px,9vw,120px) 0;background:var(--paper)}
.steps__row{display:grid;gap:2.5rem;padding:2rem var(--g) 0}
.steps article{border-top:1px solid var(--cocoa);padding-top:1.2rem}
.steps h3{font:400 2rem var(--serif);margin:.4rem 0}.steps p{color:var(--mute);margin:0;max-width:32ch}
.num{font:600 .7rem var(--sans);letter-spacing:.2em;color:var(--clay-d)}
@media(min-width:800px){.steps__row{grid-template-columns:repeat(3,1fr)}.steps article:nth-child(2){margin-top:4rem}.steps article:nth-child(3){margin-top:8rem}}
.gallery{display:grid;gap:14px;padding:clamp(60px,9vw,120px) var(--g);grid-template-columns:1fr 1fr}
.g1{grid-column:1/-1;aspect-ratio:3/2;overflow:hidden}.g1 img{filter:sepia(.35) saturate(.7) contrast(.95);transition:transform 1.2s}.g1:hover img{transform:scale(1.04)}
.ph-tile{aspect-ratio:4/5;background:var(--sand);display:grid;place-items:center;text-align:center;padding:1.5rem;font:italic 300 1.15rem var(--serif);color:var(--cocoa)}
.ph-tile svg{width:70px;height:70px;color:var(--clay)}.g3{background:#E5D8C8}
.g-cap{grid-column:1/-1;margin:.6rem 0 0}
@media(min-width:900px){.gallery{grid-template-columns:6fr 3fr 3fr;align-items:end}.g1{grid-column:1}.g3{margin-bottom:5rem}.g-cap{grid-column:2/4}}
.visit{display:grid;gap:2.5rem;padding:clamp(70px,10vw,140px) var(--g);border-top:1px solid var(--line)}
address{font:300 1.6rem/1.3 var(--serif);font-style:normal;margin:0 0 1rem}
.hours{margin:0;font-size:.95rem}.hours div{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line)}.hours dd{margin:0;color:var(--mute)}
.visit__r p{margin:0 0 1rem;word-break:break-word}.lbl{display:block;font:600 .66rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
@media(min-width:900px){.visit{grid-template-columns:5fr 4fr 3fr;align-items:start}.hours{margin-top:4.5rem}.visit__r{margin-top:4.5rem}}
.faq{padding:0 0 clamp(70px,10vw,140px)}
.faq__list{padding:1rem var(--g) 0;max-width:980px;margin-left:auto}
details{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;padding:1.4rem 0;font:400 1.6rem var(--serif);display:flex;justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}summary::after{content:"+";font-family:var(--sans);font-weight:300;transition:transform .3s}
details[open] summary::after{transform:rotate(45deg)}details p{margin:0 0 1.4rem;color:var(--mute);max-width:56ch}
.closing{background:var(--clay-d);color:var(--bone);text-align:center;padding:clamp(80px,12vw,160px) var(--g);position:relative;overflow:hidden}
.closing__mono{width:90px;height:90px;color:#E8B79C;margin-bottom:2rem}
.news{margin:4rem auto 0;max-width:460px;text-align:left}.news label{font-size:.82rem;letter-spacing:.04em;opacity:.85}
.news div{display:flex;border-bottom:1px solid rgba(242,235,225,.6);margin-top:.6rem}
.news input{flex:1;background:none;border:0;color:var(--bone);font:400 1.1rem var(--sans);padding:.8rem 0;min-width:0}.news input::placeholder{color:rgba(242,235,225,.65)}
.news button{background:none;border:0;color:var(--bone);font:600 .8rem var(--sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:28px var(--g) 100px;font-size:.8rem;color:var(--mute)}
/* sticky */
.sticky{position:fixed;right:18px;bottom:18px;z-index:50;box-shadow:0 12px 30px rgba(43,32,27,.25);padding-left:.6em;opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .4s,transform .4s,background .35s}
.sticky.on{opacity:1;transform:none;pointer-events:auto}.sticky svg{width:34px;height:34px;color:#E8B79C}
/* drawer */
.scrim{position:fixed;inset:0;background:rgba(43,32,27,.45);z-index:60;opacity:0;transition:opacity .4s}.scrim.on{opacity:1}
.drawer{position:fixed;z-index:70;right:0;bottom:0;left:0;max-height:92vh;overflow:auto;background:var(--paper);border-radius:22px 22px 0 0;padding:24px 24px 0;transform:translateY(100%);transition:transform .5s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
.drawer.on{transform:none}
@media(min-width:760px){.drawer{left:auto;top:0;width:480px;max-height:none;border-radius:0;transform:translateX(100%);padding:36px 40px 0}}
.drawer__head{display:flex;justify-content:space-between;align-items:center}.drawer__head .kicker{margin:0}
.x{background:none;border:0;font-size:2rem;line-height:1;cursor:pointer;color:var(--cocoa);width:44px;height:44px}
.bar{height:2px;background:var(--line);margin:0 0 1.6rem}.bar i{display:block;height:100%;background:var(--clay);width:25%;transition:width .5s}
fieldset{border:0;margin:0;padding:0}
.opt{display:block;margin-bottom:10px;cursor:pointer}.opt input{position:absolute;opacity:0}
.opt span{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;border:1px solid var(--line);padding:1.1rem 1.2rem;transition:border-color .3s,background .3s}
.opt b{font:400 1.35rem var(--serif)}.opt small{color:var(--mute);font-size:.78rem;white-space:nowrap}
.opt input:checked+span{border-color:var(--cocoa);background:var(--bone)}.opt input:focus-visible+span{outline:2px solid var(--clay);outline-offset:2px}
.days{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.times{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.days label,.times label{position:relative;cursor:pointer}.days input,.times input{position:absolute;opacity:0}
.days span,.times span{display:block;text-align:center;border:1px solid var(--line);padding:.8rem .2rem;font-size:.82rem;transition:all .3s}
.days span b{display:block;font:400 1.6rem var(--serif)}
.days input:checked+span,.times input:checked+span{background:var(--cocoa);color:var(--paper);border-color:var(--cocoa)}
.days input:focus-visible+span,.times input:focus-visible+span{outline:2px solid var(--clay);outline-offset:2px}
.sum{margin:0}.sum div{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.sum dt{color:var(--mute);font-size:.85rem}.sum dd{margin:0;font:400 1.25rem var(--serif);text-align:right}
.drawer__foot{position:sticky;bottom:0;margin-top:auto;padding:1.4rem 0;background:var(--paper);display:flex;justify-content:flex-end;align-items:center;gap:1.4rem;border-top:1px solid var(--line)}
.drawer__foot .link{margin-right:auto}
/* motion */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}.hero__sprig.in{opacity:1;transition:opacity 2s}
.no-js .reveal{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

@media(min-width:900px){.rituals .sec-head{display:grid;grid-template-columns:1fr 1fr;align-items:end;column-gap:6vw;max-width:none}.rituals .sec-head .kicker{grid-column:1/-1}.rituals .h2{font-size:clamp(4rem,9vw,8rem);margin:0}.rituals .note{justify-self:end}}
.hours__big{font:300 clamp(2.2rem,4vw,3.4rem)/1 var(--serif);margin:.4rem 0 1rem}
.hero__img img,.about__img img{filter:sepia(.18) saturate(.85)}
.ticker{overflow:hidden;border-top:1px solid var(--line);background:var(--bone);padding:1.1rem 0;white-space:nowrap}
.ticker div{display:inline-flex;gap:2.2rem;align-items:center;animation:tick 40s linear infinite;font:400 1.5rem var(--serif)}
.ticker i{font-style:normal;color:var(--clay);font-size:.9rem}
@keyframes tick{to{transform:translateX(-50%)}}
.arrow{border:1px solid var(--line)!important;border-radius:999px;padding:.5rem 1.2rem!important;transition:all .35s}.arrow:hover{background:var(--cocoa);color:var(--paper);border-color:var(--cocoa)!important}
.hero__sprig{display:none!important}
[hidden]{display:none!important}.drawer__foot .link,.drawer__foot .pill{white-space:nowrap}
.tabs{display:flex;gap:.4rem;overflow-x:auto;padding:2rem var(--g) 0;scrollbar-width:none}
.tabs button{flex:none;min-height:44px;padding:0 1.3rem;border-radius:999px;border:1px solid var(--line);background:transparent;font:500 .88rem var(--sans);color:var(--cocoa);cursor:pointer;transition:all .3s}
.tabs button[aria-selected=true]{background:var(--cocoa);color:var(--paper);border-color:var(--cocoa)}.tabs button:hover{border-color:var(--cocoa)}
.cat__intro{padding:1.6rem var(--g) 0;margin:0;color:var(--mute);max-width:70ch}.cat__intro .i{font-family:var(--serif);font-size:1.5rem;color:var(--cocoa)}
.consult{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between;padding:2rem var(--g) 0}.consult p{margin:0;font-size:1.05rem}.consult .i{font-family:var(--serif);font-size:1.45rem}
.offers{display:grid;gap:14px;padding:0 var(--g) clamp(60px,9vw,120px)}
.offer{padding:clamp(32px,5vw,64px);min-height:320px;display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;position:relative;overflow:hidden}
.offer p{max-width:38ch}.offer .pill{margin-top:auto}
.offer--new{background:var(--cocoa);color:var(--bone)}.offer--new p:not(.kicker){color:#D9C7B2}
.offer--gift{background:var(--sand)}.offer--gift svg{position:absolute;right:-30px;top:-30px;width:220px;height:220px;color:var(--clay);opacity:.25}
.h3{font-size:clamp(2rem,4vw,3rem)}
@media(min-width:900px){.offers{grid-template-columns:5fr 7fr}}
.grp{font:600 .66rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin:1.2rem 0 .5rem}.grp:first-of-type{margin-top:0}
.offers{margin-top:3.5rem}.offer--gift h2,.offer--gift p,.offer--gift .pill{position:relative}
@media(max-width:699px){.offer{min-height:0}.offer--gift svg{width:150px;height:150px;right:-50px;top:-50px;opacity:.18}.offer .pill{margin-top:1rem}}

.shop{padding:clamp(60px,9vw,120px) 0;border-top:1px solid var(--line)}
.shop__grid{list-style:none;margin:2.5rem 0 0;padding:0 var(--g);display:grid;grid-template-columns:repeat(2,1fr);gap:32px 14px}
.prod{text-align:center}.prod svg{width:100%;max-width:200px;height:auto;background:var(--paper);padding:20px 10px;transition:transform .6s}
.prod:hover svg{transform:translateY(-6px)}.prod h3{font:400 1.35rem var(--serif);margin:.8rem 0 .5rem}
.notify{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;border:1px solid var(--line);border-radius:999px;font:500 .78rem var(--sans);text-decoration:none;transition:all .3s}.notify:hover{background:var(--cocoa);color:var(--paper);border-color:var(--cocoa)}
@media(min-width:900px){.shop__grid{grid-template-columns:repeat(5,1fr)}.prod:nth-child(even){margin-top:3rem}}
.tabs{flex-wrap:nowrap}
