@font-face{font-family:'Fraunces';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/fraunces-latin-opsz-normal.woff2') format('woff2-variations')}@font-face{font-family:'Fraunces';font-style:italic;font-weight:100 900;font-display:swap;src:url('/assets/fonts/fraunces-latin-opsz-italic.woff2') format('woff2-variations')}@font-face{font-family:'Inter Tight';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/inter-tight-latin-wght-normal.woff2') format('woff2-variations')}@font-face{font-family:'Inter Tight';font-style:italic;font-weight:100 900;font-display:swap;src:url('/assets/fonts/inter-tight-latin-wght-italic.woff2') format('woff2-variations')}.skip-link{position:absolute;top:0;left:0;background:#0F0E0C;color:#F8F5F0;padding:12px 20px;text-decoration:none;font-weight:600;border-radius:0 0 4px 0;transform:translateY(-100%);transition:transform 150ms ease-out;z-index:1000}.skip-link:focus{transform:translateY(0);outline:2px solid #B89B8C;outline-offset:2px}:root{--cream:#F8F5F0;--cream-deep:#F0EBE3;--ink:#0F0E0C;--ink-soft:#1A1815;--rose:#B89B8C;--rose-deep:#9F8071;--rose-tint:#E8DDD5;--stone-90:#2A2620;--stone-60:#6B665F;--stone-30:#B8B2A8;--stone-10:#E8E2D8;--font-display:'Fraunces',Georgia,'Times New Roman',serif;--font-body:'Inter Tight',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;--fs-display-xl:clamp(3.25rem,6vw,5.5rem);--fs-display-lg:clamp(2.5rem,4.5vw,4rem);--fs-display-md:clamp(1.75rem,3vw,2.75rem);--fs-display-sm:clamp(1.375rem,2vw,1.875rem);--fs-body-lg:1.125rem;--fs-body:1rem;--fs-body-sm:0.9375rem;--fs-eyebrow:0.75rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:80px;--space-10:120px;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-pill:999px;--content-max:1200px;--prose-max:720px;--ease:cubic-bezier(0.22,1,0.36,1);--duration-fast:180ms;--duration-mid:360ms;--duration-slow:600ms}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}body{margin:0;background:var(--cream);color:var(--ink-soft);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img{display:block;max-width:100%;height:auto}a{color:inherit}button{font:inherit;cursor:pointer}::selection{background:var(--ink);color:var(--cream)}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);font-weight:400;letter-spacing:-0.02em;line-height:1.05;margin:0 0 var(--space-5)}h1{font-size:var(--fs-display-xl)}h2{font-size:var(--fs-display-lg)}h3{font-size:var(--fs-display-md)}h4{font-size:var(--fs-display-sm)}p{margin:0 0 var(--space-4);max-width:65ch}em,.italic{font-style:italic}.eyebrow{font-family:var(--font-body);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--stone-60);margin:0 0 var(--space-4);display:block}.lede{font-size:var(--fs-body-lg);line-height:1.55;color:var(--stone-90);max-width:60ch}a:not(.btn):not(.pill):not(.nav__link):not(.logo){color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--duration-fast) var(--ease)}a:not(.btn):not(.pill):not(.nav__link):not(.logo):hover{color:var(--rose-deep)}.container{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 var(--space-5)}@media (min-width:720px){.container{padding:0 var(--space-7)}}.section{padding:var(--space-9) 0}@media (min-width:720px){.section{padding:var(--space-10) 0}}.section--cream{background:var(--cream)}.section--cream-deep{background:var(--cream-deep)}.section--ink{background:var(--ink);color:var(--cream)}.section--ink h1,.section--ink h2,.section--ink h3,.section--ink h4{color:var(--cream)}.section--ink .eyebrow{color:var(--stone-30)}.section--ink .lede{color:var(--stone-30)}.stack>*+*{margin-top:var(--space-4)}.stack-lg>*+*{margin-top:var(--space-6)}.two-col{display:grid;gap:var(--space-7);align-items:center}@media (min-width:1024px){.two-col{grid-template-columns:1fr 1fr;gap:var(--space-9)}}.two-col--narrow{display:grid;gap:var(--space-6)}@media (min-width:1024px){.two-col--narrow{grid-template-columns:1fr 2fr;gap:var(--space-8)}}.pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:10px 22px;border-radius:var(--radius-pill);font-family:var(--font-display);font-size:1rem;font-style:italic;font-weight:400;text-decoration:none;line-height:1;white-space:nowrap}.pill--dark{background:var(--ink);color:var(--cream);border:1px solid var(--ink)}.pill--light{background:var(--cream);color:var(--ink);border:1px solid var(--ink)}.pill--small{padding:6px 14px;font-size:0.875rem}@media (min-width:720px){.pill{padding:12px 28px;font-size:1.0625rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:14px 28px;border:1px solid transparent;border-radius:var(--radius-md);font-family:var(--font-body);font-size:0.9375rem;font-weight:600;letter-spacing:0.02em;text-decoration:none;cursor:pointer;transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),transform var(--duration-fast) var(--ease)}.btn:focus-visible{outline:2px solid var(--rose);outline-offset:3px}.btn--primary{background:var(--ink);color:var(--cream);border-color:var(--ink)}.btn--primary:hover{background:var(--rose-deep);border-color:var(--rose-deep);color:var(--cream)}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn--ghost:hover{background:var(--ink);color:var(--cream)}.btn--ink-on-ink{background:transparent;color:var(--cream);border-color:var(--cream)}.btn--ink-on-ink:hover{background:var(--cream);color:var(--ink)}.btn-arrow{display:inline-block;transition:transform var(--duration-fast) var(--ease)}.btn:hover .btn-arrow{transform:translateX(3px)}.nav{position:sticky;top:0;z-index:100;background:var(--cream);border-bottom:1px solid transparent;transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}.nav.is-scrolled{border-bottom-color:var(--stone-10)}.nav__inner{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);max-width:var(--content-max);margin:0 auto}.logo{display:inline-block;text-decoration:none}.logo img{height:22px;width:auto}@media (min-width:720px){.logo img{height:26px}.nav__inner{padding:var(--space-5) var(--space-7)}}@media (min-width:1024px){.logo img{height:30px}}.nav__menu{display:none;align-items:center;gap:var(--space-6);list-style:none;margin:0;padding:0}.nav__link{color:var(--ink);text-decoration:none;font-size:0.9375rem;font-weight:400;letter-spacing:0.01em;transition:color var(--duration-fast) var(--ease)}.nav__link:hover{color:var(--rose-deep)}.nav__link.is-active{color:var(--rose-deep)}.nav__cta{margin-left:var(--space-4)}@media (min-width:1024px){.nav__menu{display:flex}.nav__hamburger{display:none}}.nav__hamburger{display:flex;flex-direction:column;gap:5px;width:28px;height:28px;padding:0;background:transparent;border:none;cursor:pointer;align-items:center;justify-content:center}@media (min-width:1024px){.nav__hamburger{display:none}}.nav__hamburger span{display:block;width:22px;height:1.5px;background:var(--ink);transition:transform var(--duration-fast) var(--ease),opacity var(--duration-fast) var(--ease)}.nav.is-open .nav__hamburger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.nav.is-open .nav__hamburger span:nth-child(2){opacity:0}.nav.is-open .nav__hamburger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.nav__drawer{display:none;flex-direction:column;padding:var(--space-5) var(--space-5) var(--space-7);background:var(--cream);border-bottom:1px solid var(--stone-10);gap:var(--space-3)}.nav.is-open .nav__drawer{display:flex}.nav__drawer .nav__link{padding:var(--space-3) 0;border-bottom:1px solid var(--stone-10);font-size:1.125rem}.nav__drawer .nav__cta{margin:var(--space-4) 0 0;align-self:stretch;text-align:center}@media (min-width:1024px){.nav__drawer{display:none !important}}.hero{position:relative;min-height:clamp(520px,80vh,760px);display:flex;align-items:center;overflow:hidden;background:var(--ink)}.hero__media{position:absolute;inset:0;z-index:1}.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.hero__overlay{position:absolute;inset:0;z-index:2;background:linear-gradient( 180deg,rgba(15,14,12,0.35) 0%,rgba(15,14,12,0.15) 35%,rgba(15,14,12,0.45) 100% )}.hero__content{position:relative;z-index:3;width:100%;color:var(--cream);padding-top:var(--space-7);padding-bottom:var(--space-7)}.hero__content .eyebrow{color:var(--cream);opacity:0.85}.hero h1{color:var(--cream);margin-bottom:var(--space-5);max-width:14ch}.hero .lede{color:var(--cream);opacity:0.95;max-width:44ch;margin-bottom:var(--space-6)}.hero__ctas{display:flex;flex-wrap:wrap;gap:var(--space-3)}.hero__ctas .btn--primary{background:var(--cream);color:var(--ink);border-color:var(--cream)}.hero__ctas .btn--primary:hover{background:var(--rose);color:var(--ink);border-color:var(--rose)}.hero__ctas .btn--ghost{color:var(--cream);border-color:var(--cream)}.hero__ctas .btn--ghost:hover{background:var(--cream);color:var(--ink)}.page-hero{padding:var(--space-9) 0 var(--space-7);background:var(--cream)}@media (min-width:720px){.page-hero{padding:var(--space-10) 0 var(--space-8)}}.page-hero h1{max-width:18ch}.service{padding:var(--space-8) 0;border-top:1px solid var(--stone-10)}.service:first-child{border-top:none}.service__inner{max-width:var(--content-max);margin:0 auto;padding:0 var(--space-5)}@media (min-width:720px){.service__inner{padding:0 var(--space-7)}.service{padding:var(--space-9) 0}}.service__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.service__title{font-family:var(--font-display);font-size:clamp(1.5rem,2.8vw,2.25rem);line-height:1.1;letter-spacing:-0.02em;margin:0}.service__price{font-family:var(--font-display);font-size:1.5rem;color:var(--stone-60);font-feature-settings:"tnum";white-space:nowrap}.service__meta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.service__meta .pill{font-size:0.8125rem;padding:5px 14px}.service__body{max-width:65ch;color:var(--stone-90)}.service__cta{margin-top:var(--space-5)}.service-grid{display:grid;gap:var(--space-5);margin-top:var(--space-7)}@media (min-width:720px){.service-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.service-grid{grid-template-columns:repeat(3,1fr)}}.service-card{padding:var(--space-6);background:var(--cream);border:1px solid var(--stone-10);text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:var(--space-3);transition:transform var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.service-card:hover{transform:translateY(-2px);border-color:var(--ink)}.service-card h3{font-size:1.5rem;margin:0}.service-card__price{font-family:var(--font-display);color:var(--stone-60);font-size:1.125rem}.service-card__arrow{margin-top:auto;font-family:var(--font-display);font-style:italic;color:var(--rose-deep);display:inline-flex;align-items:center;gap:var(--space-2);transition:gap var(--duration-fast) var(--ease)}.service-card:hover .service-card__arrow{gap:var(--space-3)}.gallery-grid{display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:720px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-5)}}@media (min-width:1024px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}.gallery__item{aspect-ratio:1 / 1;overflow:hidden;background:var(--cream-deep);position:relative}.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-mid) var(--ease)}.gallery__item:hover img{transform:scale(1.02)}.newsletter{background:var(--ink);color:var(--cream);padding:var(--space-9) 0}.newsletter__inner{max-width:720px;margin:0 auto;padding:0 var(--space-5);text-align:center}.newsletter h2{color:var(--cream)}.newsletter>.newsletter__inner>p{color:var(--stone-30);margin-left:auto;margin-right:auto}.newsletter .eyebrow{color:var(--rose)}.newsletter__form{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin-top:var(--space-6)}.newsletter__form input[type="email"]{flex:1 1 280px;max-width:360px;padding:14px 18px;background:transparent;border:1px solid var(--stone-30);color:var(--cream);font:inherit;border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease)}.newsletter__form input[type="email"]:focus{outline:none;border-color:var(--cream)}.newsletter__form input[type="email"]::placeholder{color:var(--stone-30)}.newsletter__feedback{margin-top:var(--space-4);font-size:var(--fs-body-sm);min-height:1.4em}.newsletter__feedback--success{color:var(--rose)}.newsletter__feedback--error{color:#E89999}.newsletter__privacy{margin:var(--space-5) auto 0;font-size:var(--fs-body-sm);color:var(--stone-30);max-width:50ch}.form{max-width:540px;margin:0 auto}.form__field{margin-bottom:var(--space-5);position:relative}.form__label{display:block;font-size:var(--fs-eyebrow);text-transform:uppercase;letter-spacing:0.18em;font-weight:600;color:var(--stone-60);margin-bottom:var(--space-3)}.form__input,.form__textarea{width:100%;padding:12px 0;border:none;border-bottom:1px solid var(--stone-30);background:transparent;font:inherit;color:var(--ink);border-radius:0;transition:border-color var(--duration-fast) var(--ease)}.form__textarea{min-height:140px;resize:vertical;font-family:var(--font-body)}.form__input:focus,.form__textarea:focus{outline:none;border-bottom:2px solid var(--ink);padding-bottom:11px}.form__input.is-invalid,.form__textarea.is-invalid{border-bottom-color:var(--rose-deep)}.form__error{display:block;font-size:var(--fs-body-sm);color:var(--rose-deep);margin-top:var(--space-2);min-height:1.4em}.form__honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form__feedback{margin-top:var(--space-5);padding:var(--space-4);background:var(--cream-deep);border-left:2px solid var(--ink);font-size:var(--fs-body-sm)}.form__feedback--success{border-left-color:var(--rose)}.form__captcha{margin:var(--space-5) 0;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.form__captcha .h-captcha{overflow:hidden;border-radius:var(--radius-md)}.form__captcha.is-invalid .h-captcha{outline:1px solid var(--rose-deep);outline-offset:2px}@media (max-width:380px){.form__captcha .h-captcha{transform:scale(0.92);transform-origin:center}}.footer{background:var(--cream-deep);border-top:1px solid var(--stone-10);padding:var(--space-9) 0 var(--space-6)}.footer__grid{max-width:var(--content-max);margin:0 auto;padding:0 var(--space-5);display:grid;gap:var(--space-7)}@media (min-width:720px){.footer__grid{padding:0 var(--space-7);grid-template-columns:2fr 1fr 1fr}}.footer__brand img{height:30px;margin-bottom:var(--space-4)}.footer__heading{font-size:var(--fs-eyebrow);text-transform:uppercase;letter-spacing:0.18em;font-weight:600;color:var(--stone-60);margin:0 0 var(--space-4);font-family:var(--font-body)}.footer ul{list-style:none;padding:0;margin:0}.footer li{margin-bottom:var(--space-2)}.footer a{color:var(--ink);text-decoration:none;transition:color var(--duration-fast) var(--ease)}.footer a:hover{color:var(--rose-deep)}.footer__bottom{max-width:var(--content-max);margin:var(--space-7) auto 0;padding:var(--space-5) var(--space-5) 0;border-top:1px solid var(--stone-10);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;align-items:center;font-size:var(--fs-body-sm);color:var(--stone-60)}@media (min-width:720px){.footer__bottom{padding:var(--space-5) var(--space-7) 0}}[data-reveal]{opacity:0;transform:translateY(12px);transition:opacity var(--duration-slow) var(--ease),transform var(--duration-slow) var(--ease)}[data-reveal].is-revealed{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none}}.text-center{text-align:center}.muted{color:var(--stone-60)}.divider{border:none;border-top:1px solid var(--stone-10);margin:var(--space-7) 0}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.prose{max-width:var(--prose-max);margin:0 auto}.prose h2{font-size:var(--fs-display-md);margin-top:var(--space-8);margin-bottom:var(--space-4)}.prose h2:first-child{margin-top:0}.prose h3{font-size:var(--fs-display-sm);margin-top:var(--space-6);margin-bottom:var(--space-3)}.prose p,.prose ul,.prose ol{color:var(--stone-90);line-height:1.65}.prose ul,.prose ol{padding-left:var(--space-5);margin-bottom:var(--space-4)}.prose li{margin-bottom:var(--space-2)}.prose strong{font-weight:600;color:var(--ink)}.prose hr{border:none;border-top:1px solid var(--stone-10);margin:var(--space-8) 0}.prose blockquote{margin:var(--space-6) 0;padding:var(--space-3) 0 var(--space-3) var(--space-5);border-left:2px solid var(--ink);font-style:italic;font-family:var(--font-display);font-size:var(--fs-body-lg);color:var(--ink)}.fact-grid{display:grid;gap:var(--space-5);margin-top:var(--space-6)}@media (min-width:720px){.fact-grid{grid-template-columns:repeat(3,1fr)}}.fact{padding:var(--space-5) 0;border-top:1px solid var(--stone-10)}.fact__value{display:block;font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);line-height:1;color:var(--ink);margin-bottom:var(--space-2);font-style:italic}.fact__label{font-size:var(--fs-body-sm);color:var(--stone-60);letter-spacing:0.04em}.faq__item{border-top:1px solid var(--stone-10);padding:var(--space-5) 0}.faq__item:last-child{border-bottom:1px solid var(--stone-10)}.faq__item summary{list-style:none;cursor:pointer;font-family:var(--font-display);font-size:1.25rem;font-weight:400;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-right:4px;transition:color var(--duration-fast) var(--ease)}.faq__item summary::-webkit-details-marker{display:none}.faq__item summary::after{content:'+';font-size:1.5rem;font-weight:300;line-height:1;color:var(--stone-60);transition:transform var(--duration-fast) var(--ease);flex-shrink:0}.faq__item[open] summary::after{content:'−'}.faq__item summary:hover{color:var(--rose-deep)}.faq__item p{margin:var(--space-4) 0 0;color:var(--stone-60);line-height:1.65;max-width:65ch}.mobile-book-cta{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;background:var(--ink);color:var(--cream);border-radius:var(--radius-pill);text-decoration:none;font-weight:600;font-size:0.9375rem;box-shadow:0 8px 32px rgba(15,14,12,0.25),0 2px 8px rgba(15,14,12,0.15);transition:transform var(--duration-fast) var(--ease),opacity var(--duration-fast) var(--ease)}.mobile-book-cta:hover,.mobile-book-cta:focus-visible{transform:translateY(-2px);color:var(--cream)}.mobile-book-cta__arrow{transition:transform var(--duration-fast) var(--ease)}.mobile-book-cta:hover .mobile-book-cta__arrow{transform:translateX(4px)}@media (min-width:720px){.mobile-book-cta{display:none}}body[data-page="book"] .mobile-book-cta{display:none}@supports (padding:max(0px)){.mobile-book-cta{bottom:max(16px,env(safe-area-inset-bottom))}}.glossary{margin:0;padding:0}.glossary dt{font-family:var(--font-display);font-size:1.5rem;font-weight:400;color:var(--ink);margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--stone-10);scroll-margin-top:80px}.glossary dt:first-child{margin-top:0;border-top:none;padding-top:0}.glossary dd{margin:var(--space-3) 0 0;color:var(--stone-60);line-height:1.7;max-width:65ch}.booking-card{background:var(--cream);border:1px solid var(--stone-10);padding:var(--space-9) var(--space-5);text-align:center;border-radius:var(--radius-md);margin:0 auto;max-width:720px}@media (max-width:480px){.booking-card{padding:var(--space-7) var(--space-5)}}.btn--lg{padding:18px 36px !important;font-size:1rem !important;letter-spacing:0.03em}.error-page{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-9) var(--space-5)}.error-page__code{font-family:var(--font-display);font-size:clamp(5rem,12vw,9rem);font-style:italic;color:var(--rose);line-height:1;margin-bottom:var(--space-4)}