:root{--bg:#F4EFE8;--fg:#0F0E0C;--muted:#7A7268;--line:#D9D1C4;--accent:oklch(0.62 0.08 50);--soft:#EDE6DB;--serif:"Cormorant Garamond","EB Garamond",Georgia,serif;--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--pad-x:clamp(20px,6vw,96px);--section-y:clamp(80px,12vw,180px)}body[data-density=compact]{--pad-x:clamp(20px,4vw,64px);--section-y:clamp(56px,8vw,112px)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-weight:300;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:.005em;transition:background .4s ease,color .4s ease}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}::selection{background:var(--fg);color:var(--bg)}.eyebrow{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:28px}.eyebrow-num{color:var(--fg);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.eyebrow-line{width:32px;height:1px;background:currentColor;opacity:.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;font-family:var(--sans);font-size:13px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--fg);cursor:pointer;transition:all .25s ease;background:transparent;color:var(--fg);border-radius:0;font-weight:400}.btn-primary{background:var(--fg);color:var(--bg)}.btn-primary:hover{background:var(--bg);color:var(--fg)}.btn-ghost:hover{background:var(--fg);color:var(--bg)}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:18px var(--pad-x);background:color-mix(in oklab,var(--bg) 85%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in oklab,var(--line) 50%,transparent)}.nav-mark{display:flex;align-items:baseline;gap:6px}.nav-mark-italic{font-family:var(--serif);font-style:italic;font-size:26px;font-weight:500;line-height:1}.nav-mark-dot{color:var(--muted);font-size:14px}.nav-mark-small{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.nav-links{display:flex;gap:36px;list-style:none;margin:0;padding:0;justify-self:center}.nav-links a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:color .2s ease}.nav-links a:hover{color:var(--fg)}.nav-cta{justify-self:end;font-family:var(--serif);font-style:italic;font-size:17px;border-bottom:1px solid var(--fg);padding-bottom:2px}@media (max-width:760px){.nav{grid-template-columns:1fr auto}.nav-links{display:none}}.hero{padding:0 var(--pad-x);position:relative}.hero-editorial{min-height:calc(100vh - 64px);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto auto auto;grid-gap:0 24px;gap:0 24px;padding-top:48px;padding-bottom:64px}.hero-meta-l{grid-column:1;grid-row:1}.hero-meta-r{grid-column:2;grid-row:1;text-align:right}.meta-row{display:flex;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg);margin-bottom:4px;justify-content:inherit}.hero-meta-r .meta-row{justify-content:flex-end}.meta-soft{color:var(--muted)}.hero-logo-wrap{grid-column:1/-1;grid-row:2;display:flex;align-items:center;justify-content:center;padding:clamp(40px,8vw,100px) 0 clamp(20px,4vw,60px)}.hero-logo{width:min(72%,900px);height:auto;filter:var(--logo-filter,none)}body[data-theme=dark] .hero-logo{filter:invert(1)}.hero-headline{grid-row:3;font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(36px,5.5vw,76px);line-height:1.05;letter-spacing:-.015em;margin:0 0 16px;text-wrap:balance}.hero-headline,.hero-subhead{grid-column:1/-1;text-align:center}.hero-subhead{grid-row:4;font-size:16px;color:var(--muted);margin:0 auto 40px;max-width:540px;text-wrap:pretty}.hero-foot{grid-column:1/-1;grid-row:5;display:flex;gap:14px;justify-content:center}@media (max-width:760px){.hero-editorial{grid-template-columns:1fr}.hero-meta-l,.hero-meta-r{grid-column:1;text-align:left}.hero-meta-r{grid-row:1}.hero-meta-l{display:none}}.hero-split{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:clamp(40px,6vw,80px);gap:clamp(40px,6vw,80px);padding-top:64px;padding-bottom:80px;align-items:center;min-height:calc(100vh - 64px)}.split-headline{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(48px,7vw,104px);line-height:.98;letter-spacing:-.02em;margin:0 0 24px;text-wrap:balance}.split-sub{font-size:17px;color:var(--muted);margin:0 0 36px;max-width:460px}.split-actions{display:flex;gap:12px;margin-bottom:56px}.split-foot{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px;border-top:1px solid var(--line);padding-top:24px}.split-foot>div{display:flex;flex-direction:column;gap:4px}.split-foot .lbl{letter-spacing:.18em}.split-foot .lbl,.split-r-cap{font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--muted)}.split-r-cap{display:flex;justify-content:space-between;margin-top:12px;letter-spacing:.16em}@media (max-width:880px){.hero-split{grid-template-columns:1fr}.split-foot{grid-template-columns:1fr 1fr}}.hero-centered{min-height:calc(100vh - 64px);flex-direction:column;justify-content:center;text-align:center;padding-top:80px;padding-bottom:0;position:relative;overflow:hidden}.hc-top,.hero-centered{display:flex;align-items:center}.hc-top{gap:16px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:60px}.hc-rule{width:60px;height:1px;background:currentColor;opacity:.4}.hc-logo{width:min(60%,720px);margin-bottom:4px}body[data-theme=dark] .hc-logo{filter:invert(1)}.hc-tag{font-family:var(--mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin:0 0 56px}.hc-headline{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(32px,4.5vw,60px);line-height:1.1;margin:0 0 16px;max-width:18ch;text-wrap:balance}.hc-sub{color:var(--muted);max-width:480px;margin:0 0 36px}.hc-cta{margin-bottom:80px}.hc-marquee{position:absolute;bottom:24px;left:0;right:0;display:flex;gap:24px;justify-content:center;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--muted);white-space:nowrap;opacity:.55}.intro{padding:var(--section-y) var(--pad-x);border-top:1px solid var(--line)}.intro-grid{display:grid;grid-template-columns:1fr 2fr;grid-gap:clamp(32px,6vw,80px);gap:clamp(32px,6vw,80px);align-items:start}.intro-lede{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,36px);line-height:1.3;margin:0;text-wrap:pretty;max-width:26ch}.intro-lede em{font-style:italic}.intro-pillars{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:clamp(24px,4vw,64px);gap:clamp(24px,4vw,64px);margin-top:clamp(48px,8vw,96px);border-top:1px solid var(--line);padding-top:40px}.intro-pillars>div{display:flex;flex-direction:column;gap:10px}.pill-num{color:var(--accent);margin-bottom:4px}.intro-pillars h4,.pill-num{font-family:var(--serif);font-style:italic;font-size:22px}.intro-pillars h4{font-weight:400;margin:0}.intro-pillars p{color:var(--muted);margin:0;max-width:28ch}@media (max-width:880px){.intro-grid,.intro-pillars{grid-template-columns:1fr}.intro-pillars{gap:32px}}.services{padding:var(--section-y) var(--pad-x);border-top:1px solid var(--line)}.services-head{display:grid;grid-template-columns:1fr 1fr;align-items:end;grid-gap:32px;gap:32px;margin-bottom:64px}.services-note{color:var(--muted);font-size:13px;text-align:right;margin:0;max-width:36ch;justify-self:end}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:clamp(32px,4vw,64px);gap:clamp(32px,4vw,64px)}.cat-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--fg);padding-bottom:16px;margin-bottom:24px}.cat-head h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:32px;margin:0}.cat-count{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.cat-list{list-style:none;margin:0;padding:0}.cat-list li{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;grid-gap:12px;gap:12px;padding:14px 0;border-bottom:1px dashed color-mix(in oklab,var(--line) 60%,transparent)}.cat-list li:last-child{border-bottom:none}.cat-name{display:flex;flex-direction:column;gap:2px}.cat-note{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-style:normal}.cat-dots{border-bottom:1px dotted var(--line);height:1px;align-self:center;margin-bottom:4px}.cat-price{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--fg)}@media (max-width:980px){.services-grid{gap:56px}.services-grid,.services-head{grid-template-columns:1fr}.services-note{text-align:left;justify-self:start}}.gallery{padding:var(--section-y) var(--pad-x);border-top:1px solid var(--line)}.gallery-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:56px}.gallery-note{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--muted);margin:0}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:clamp(16px,2vw,28px);gap:clamp(16px,2vw,28px)}.g-item{margin:0;display:flex;flex-direction:column;gap:10px}.g-item figcaption{display:flex;gap:10px;align-items:baseline;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.g-num{color:var(--fg)}.g-1{grid-column:1/span 5}.g-2{grid-column:7/span 6;margin-top:60px}.g-3{grid-column:1/span 4}.g-4{grid-column:6/span 4}.g-5{grid-column:11/span 2;align-self:end}.g-6{grid-column:3/span 7;margin-top:40px}@media (max-width:880px){.g-1,.g-2,.g-3,.g-4,.g-5,.g-6{grid-column:1/-1;margin-top:0}}.ph{position:relative;width:100%;display:flex;align-items:flex-end;justify-content:flex-start;padding:14px;overflow:hidden}.ph,.ph-label{border:1px solid var(--line)}.ph-label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(0,0,0,.6);background:var(--bg);padding:4px 8px}.booking{padding:var(--section-y) var(--pad-x);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.1fr;grid-gap:clamp(40px,6vw,96px);gap:clamp(40px,6vw,96px);align-items:start}.booking-h{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,48px);line-height:1.15;margin:0 0 20px;text-wrap:balance;max-width:14ch}.booking-h em{font-style:italic}.booking-sub{color:var(--muted);margin:0 0 32px;max-width:40ch}.booking-sub a{border-bottom:1px solid var(--fg)}.booking-points{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.booking-points li{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted);display:flex;align-items:center;gap:12px}.booking-points li:before{content:"—";color:var(--accent);font-family:var(--serif);font-style:italic}.booking-r{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px 24px;gap:20px 24px}.field{display:flex;flex-direction:column;gap:8px}.field-wide{grid-column:1/-1}.field label{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.field input,.field select,.field textarea{border:none;border-bottom:1px solid var(--line);background:transparent;padding:10px 0;font-family:var(--sans);font-size:15px;color:var(--fg);border-radius:0;font-weight:300;transition:border-color .2s ease}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--fg)}.field textarea{resize:vertical;font-family:var(--sans)}.booking-submit{grid-column:1/-1;margin-top:12px;justify-self:start}@media (max-width:880px){.booking,.booking-r{grid-template-columns:1fr}}.hours-loc{padding:var(--section-y) var(--pad-x);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.4fr;grid-gap:clamp(40px,6vw,96px);gap:clamp(40px,6vw,96px)}.hours{list-style:none;margin:0 0 40px;padding:0}.hours li{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;grid-gap:12px;gap:12px;padding:14px 0;border-bottom:1px dashed color-mix(in oklab,var(--line) 60%,transparent)}.hours li:first-child{border-top:1px solid var(--fg);padding-top:18px}.hours li>span:first-child{font-family:var(--serif);font-style:italic;font-size:18px}.hours li>span:last-child{font-family:var(--mono);font-size:12px;letter-spacing:.06em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hours .dots{border-bottom:1px dotted var(--line);height:1px;align-self:center}.h-closed{color:var(--muted);font-style:italic}.hl-contact{display:flex;flex-direction:column;gap:14px}.hl-contact>div{display:flex;gap:20px}.foot-cols .lbl,.hl-contact .lbl,.map-foot .lbl,.split-foot .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);min-width:90px;display:inline-block}.map{width:100%;aspect-ratio:5/4;background:var(--soft);border:1px solid var(--line);margin-top:8px;overflow:hidden}.map-svg{width:100%;height:100%;display:block}.map-foot{display:flex;justify-content:space-between;align-items:center;padding-top:16px;margin-top:4px;flex-wrap:wrap;gap:16px}.map-foot>div{display:flex;gap:16px;align-items:baseline}.map-link{font-family:var(--serif);font-style:italic;font-size:18px;border-bottom:1px solid var(--fg)}@media (max-width:880px){.hours-loc{grid-template-columns:1fr}}.foot{padding:80px var(--pad-x) 40px;border-top:1px solid var(--fg);background:var(--soft)}.foot-mark{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:56px}.foot-italic{font-family:var(--serif);font-style:italic;font-size:clamp(60px,10vw,140px);line-height:.9;font-weight:500;display:block}.foot-tag{font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding-left:6px}.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:32px;gap:32px;border-top:1px solid var(--line);padding-top:32px;margin-bottom:48px}.foot-cols>div{display:flex;flex-direction:column;gap:6px}.foot-cols .lbl{margin-bottom:8px}.foot-bot{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);padding-top:24px}@media (max-width:760px){.foot-cols{grid-template-columns:1fr;gap:24px}.foot-bot{flex-direction:column;gap:8px}}