:root{--forest: #1C2B20;--forest-deep: #14201A;--forest-mid: #243528;--sand: #E8DCC8;--sand-deep: #d4c5ac;--sage: #A8B8A0;--sage-deep: #8a9c83;--paper: #f4ede0;--line: rgba(232, 220, 200, .18);--line-strong: rgba(232, 220, 200, .35);--text: #f3ece0;--muted: rgba(243, 236, 224, .62);--font-display: "Cormorant Garamond", "Times New Roman", serif;--font-body: "Jost", "Helvetica Neue", Arial, sans-serif;--max: 1400px;--pad: clamp(20px, 4vw, 64px)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--forest);color:var(--text);font-family:var(--font-body);font-weight:300;font-size:16px;line-height:1.6;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}.display{font-family:var(--font-display);font-weight:300;letter-spacing:-.01em;line-height:1.02}.display.italic{font-style:italic}.eyebrow{font-family:var(--font-body);font-size:11px;letter-spacing:.34em;text-transform:uppercase;font-weight:400;color:var(--sage)}.body-lg{font-size:18px;line-height:1.7;font-weight:300}.body-sm{font-size:13px;letter-spacing:.04em}.num{font-variant-numeric:tabular-nums}.container{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}section{position:relative}.rule{height:1px;background:var(--line);border:0;margin:0}.section-pad{padding:clamp(48px,7vw,96px) 0}.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s cubic-bezier(.2,.6,.2,1),transform 1.1s cubic-bezier(.2,.6,.2,1);will-change:opacity,transform}.reveal.in{opacity:1;transform:none}.reveal[data-delay="1"]{transition-delay:.08s}.reveal[data-delay="2"]{transition-delay:.16s}.reveal[data-delay="3"]{transition-delay:.24s}.reveal[data-delay="4"]{transition-delay:.32s}.reveal[data-delay="5"]{transition-delay:.4s}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}.nav{position:fixed;inset:0 0 auto 0;z-index:50;padding:22px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px;transition:background .5s ease,padding .4s ease,border-color .5s ease,backdrop-filter .5s ease;border-bottom:1px solid transparent}.nav.scrolled{background:#14201ad1;backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);padding:14px var(--pad);border-bottom-color:var(--line)}.brand{display:flex;align-items:baseline;gap:10px;font-family:var(--font-display);font-size:24px;letter-spacing:.02em}.brand .dot{width:5px;height:5px;border-radius:50%;background:var(--sand);display:inline-block;transform:translateY(-3px)}.brand small{font-family:var(--font-body);font-size:9px;letter-spacing:.4em;text-transform:uppercase;color:var(--sage);margin-left:4px}.nav-links{display:flex;gap:36px;align-items:center;font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:400}.nav-links a{color:var(--text);opacity:.85;transition:opacity .25s;position:relative}.nav-links a:hover{opacity:1}.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--sand);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}.nav-links a:hover:after{transform:scaleX(1)}.nav-cta{border:1px solid var(--sand);color:var(--sand);padding:10px 22px;border-radius:999px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;transition:background .3s,color .3s}.nav-cta:hover{background:var(--sand);color:var(--forest)}.menu-btn{display:none}@media(max-width:880px){.nav-links{display:none}.menu-btn{display:inline-flex;align-items:center;gap:8px;color:var(--sand);font-size:12px;letter-spacing:.2em;text-transform:uppercase}}.hero{position:relative;min-height:100vh;padding-top:120px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 80% at 80% 30%,rgba(168,184,160,.18),transparent 60%),radial-gradient(120% 90% at 10% 90%,rgba(232,220,200,.1),transparent 65%),linear-gradient(180deg,#1f3024,#1c2b20 55%,#14201a);transform:scale(1.08);animation:slowZoom 22s ease-out forwards}@keyframes slowZoom{to{transform:scale(1)}}.hero-noise{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.95 0 0 0 0 0.93 0 0 0 0 0.85 0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");mix-blend-mode:overlay}.hero-inner{position:relative;z-index:2;padding:0 var(--pad);max-width:var(--max);margin:0 auto;width:100%}.hero-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding-bottom:clamp(40px,6vw,80px)}.hero h1{margin:0 0 28px;font-size:clamp(64px,11vw,184px);font-weight:300;letter-spacing:-.025em;line-height:.95}.hero h1 .line{display:block;overflow:hidden}.hero h1 .line>span{display:inline-block;transform:translateY(110%);animation:rise 1.4s cubic-bezier(.2,.7,.2,1) forwards}.hero h1 .line:nth-child(1)>span{animation-delay:.3s}.hero h1 .line:nth-child(2)>span{animation-delay:.5s}.hero h1 .line:nth-child(3)>span{animation-delay:.7s}@keyframes rise{to{transform:translateY(0)}}.hero-sub{display:flex;flex-direction:column;gap:14px;max-width:460px;opacity:0;animation:fadeIn 1.2s ease 1.1s forwards}@keyframes fadeIn{to{opacity:1}}.hero-scroll{align-self:flex-end;writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:14px;opacity:0;animation:fadeIn 1.2s ease 1.4s forwards}.hero-scroll:after{content:"";height:60px;width:1px;background:var(--line-strong)}.features{position:relative;z-index:2;border-top:1px solid var(--line);background:#14201a8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:var(--max);margin:0 auto}.feature{padding:36px var(--pad);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px;transition:background .4s}.feature:last-child{border-right:0}.feature:hover{background:#e8dcc80a}.feature .num-tag{font-size:10px;letter-spacing:.3em;color:var(--sage);font-weight:400}.feature h3{font-family:var(--font-display);font-size:28px;font-weight:400;margin:0;line-height:1.1}.feature p{margin:0;color:var(--muted);font-size:13px;letter-spacing:.04em}.feature .meta{display:flex;gap:14px;align-items:center;margin-top:8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sand)}.feature .meta span:last-child{color:var(--sage)}@media(max-width:760px){.features-grid{grid-template-columns:1fr}.feature{border-right:0;border-bottom:1px solid var(--line)}.feature:last-child{border-bottom:0}}.intro{padding:clamp(72px,10vw,120px) 0 clamp(48px,6vw,88px)}.intro-grid{display:grid;grid-template-columns:1fr 2fr;gap:clamp(40px,6vw,100px);align-items:start}.intro-grid .eyebrow{padding-top:8px}.intro-grid p{font-family:var(--font-display);font-size:clamp(28px,3.4vw,46px);line-height:1.25;font-weight:300;letter-spacing:-.005em;margin:0;color:var(--paper)}.intro-grid p .accent{color:var(--sage);font-style:italic}.intro-grid .sig{margin-top:32px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}@media(max-width:760px){.intro-grid{grid-template-columns:1fr}}.services-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:64px;gap:40px;flex-wrap:wrap}.services-head h2{margin:18px 0 0;font-size:clamp(40px,5.4vw,76px);font-weight:300;letter-spacing:-.015em;font-family:var(--font-display)}.services-head h2 em{color:var(--sand);font-weight:300}.services-cats{display:flex;flex-direction:column;gap:4px;text-align:right;max-width:340px;color:var(--muted);font-size:13px}.service-group{border-top:1px solid var(--line)}.service-group h3{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--sage);margin:32px 0 12px;font-weight:400}.service-row{display:grid;grid-template-columns:56px minmax(0,1fr) 140px 100px 40px;align-items:baseline;gap:24px;padding:22px 0;border-top:1px solid var(--line);transition:padding-left .35s ease,color .35s;cursor:pointer}.service-row:hover{padding-left:12px}.service-row:hover .svc-name{color:var(--sand)}.service-row .svc-num{font-size:11px;letter-spacing:.2em;color:var(--sage);font-variant-numeric:tabular-nums}.service-row .svc-name{font-family:var(--font-display);font-size:clamp(22px,2.4vw,34px);font-weight:400;transition:color .35s}.service-row .svc-name small{display:block;font-family:var(--font-body);font-size:12px;letter-spacing:.06em;color:var(--muted);font-weight:300;margin-top:4px;max-width:520px}.service-row .svc-dur{font-size:13px;letter-spacing:.1em;color:var(--sage)}.service-row .svc-price{font-family:var(--font-display);font-size:24px;text-align:right;font-variant-numeric:tabular-nums;color:var(--sand)}.service-row .svc-arrow{text-align:right;color:var(--muted);transition:transform .35s,color .35s}.service-row:hover .svc-arrow{transform:translate(6px);color:var(--sand)}@media(max-width:760px){.service-row{grid-template-columns:36px 1fr auto}.service-row .svc-dur,.service-row .svc-arrow{display:none}.service-row .svc-price{font-size:20px}.services-head{flex-direction:column;align-items:flex-start}.services-cats{text-align:left}}.about{background:var(--forest-deep)}.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(40px,6vw,100px);align-items:stretch}.about-grid.flipped .about-image{order:2}.about-image{position:relative;aspect-ratio:4/5;border:1px solid var(--line);overflow:hidden;background:linear-gradient(135deg,#2c3d31,#1e2c22)}.about-image .placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:24px;color:#e8dcc859;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;letter-spacing:.06em}.about-image .placeholder span:last-child{align-self:flex-end}.about-image:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(135deg,rgba(168,184,160,.05) 0,rgba(168,184,160,.05) 1px,transparent 1px,transparent 14px)}.about-copy{display:flex;flex-direction:column;justify-content:center;gap:28px;padding:24px 0}.about-copy h2{font-family:var(--font-display);font-size:clamp(36px,4.6vw,64px);line-height:1.05;margin:0;font-weight:300}.about-copy h2 em{color:var(--sage)}.about-copy p{margin:0;color:#f3ece0c7;font-size:16px;line-height:1.75;max-width:540px}.about-meta{display:grid;grid-template-columns:auto 1fr;gap:8px 28px;border-top:1px solid var(--line);padding-top:28px;font-size:13px;color:var(--muted);letter-spacing:.04em}.about-meta dt{color:var(--sage);text-transform:uppercase;letter-spacing:.18em;font-size:11px;padding-top:3px}.about-meta dd{margin:0}@media(max-width:860px){.about-grid,.about-grid.flipped{grid-template-columns:1fr}.about-grid.flipped .about-image{order:0}}.gallery-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:36px;gap:40px;flex-wrap:wrap}.gallery-head h2{font-family:var(--font-display);font-size:clamp(40px,5.4vw,76px);margin:14px 0 0;font-weight:300;letter-spacing:-.015em}.gallery-head h2 em{color:var(--sand)}.gallery-filters{display:flex;gap:8px;flex-wrap:wrap}.gallery-filters button{padding:9px 20px;border-radius:999px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);transition:background .3s,color .3s,border-color .3s;background:transparent}.gallery-filters button:hover{color:var(--sand);border-color:var(--line-strong)}.gallery-filters button.active{background:var(--sand);color:var(--forest);border-color:var(--sand)}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.tile{position:relative;aspect-ratio:1/1;overflow:hidden;border:1px solid var(--line);transition:opacity .5s,transform .5s}.tile.tall{aspect-ratio:1/1.3}.tile:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(var(--ang, 135deg),var(--c1, rgba(232,220,200, .12)) 0,var(--c1, rgba(232,220,200, .12)) 1px,transparent 1px,transparent 12px)}.tile:after{content:"";position:absolute;left:50%;top:50%;width:36px;height:46px;transform:translate(-50%,-50%);border:1px solid rgba(232,220,200,.18);pointer-events:none}.tile .tag,.tile .corner{z-index:1}.tile .tag{position:absolute;left:14px;bottom:12px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10px;letter-spacing:.08em;color:#e8dcc88c}.tile .corner{position:absolute;right:12px;top:12px;font-size:10px;letter-spacing:.16em;color:#e8dcc866;font-family:ui-monospace,Menlo,monospace}.tile:hover{transform:scale(1.012)}.tile.hide{display:none}@media(max-width:880px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--forest-mid)}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);align-items:center}.badge{padding:56px var(--pad);text-align:center;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px;align-items:center}.badge:last-child{border-right:0}.badge .ico{font-size:14px;color:var(--sage);letter-spacing:.4em}.badge h3{font-family:var(--font-display);font-size:clamp(34px,4.4vw,56px);margin:0;font-weight:300;line-height:1;color:var(--sand)}.badge p{margin:0;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--muted)}@media(max-width:760px){.proof-grid{grid-template-columns:1fr}.badge{border-right:0;border-bottom:1px solid var(--line);padding:40px var(--pad)}.badge:last-child{border-bottom:0}}.testimonials-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:60px;gap:40px;flex-wrap:wrap}.testimonials-head h2{font-family:var(--font-display);font-size:clamp(40px,5.4vw,76px);margin:14px 0 0;font-weight:300;letter-spacing:-.015em}.testimonials-head h2 em{color:var(--sage)}.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.t-card{background:var(--forest-mid);border:1px solid var(--line);padding:36px 32px;display:flex;flex-direction:column;gap:22px;transition:transform .5s ease,border-color .5s}.t-card:hover{transform:translateY(-4px);border-color:var(--line-strong)}.t-stars{color:var(--sand);letter-spacing:.2em;font-size:12px}.t-card blockquote{margin:0;font-family:var(--font-display);font-size:22px;line-height:1.35;font-weight:300;color:var(--paper);text-wrap:pretty}.t-card blockquote:before{content:"“";font-size:50px;line-height:0;vertical-align:-.45em;color:var(--sage);margin-right:2px}.t-meta{margin-top:auto;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.t-name{font-size:13px;letter-spacing:.04em;color:var(--sand);font-weight:500}.t-treat{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--sage)}@media(max-width:980px){.t-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.t-grid{grid-template-columns:1fr}}.booking{background:var(--sand);color:var(--forest);position:relative;overflow:hidden}.booking:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(45deg,rgba(28,43,32,.04) 0,rgba(28,43,32,.04) 1px,transparent 1px,transparent 18px);pointer-events:none}.booking-inner{padding:clamp(48px,7vw,96px) var(--pad);max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:center;position:relative}.booking h2{font-family:var(--font-display);font-size:clamp(48px,7vw,104px);line-height:.98;margin:0;font-weight:300;letter-spacing:-.02em}.booking h2 em{color:var(--forest);font-style:italic;opacity:.55}.booking-cta{display:flex;flex-direction:column;gap:24px;align-items:flex-start}.booking-cta p{margin:0;max-width:360px;color:#1c2b20bf;font-size:15px;line-height:1.7}.booking-btn{display:inline-flex;align-items:center;gap:14px;background:var(--forest);color:var(--sand);padding:18px 32px;border-radius:999px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;transition:background .3s,transform .3s}.booking-btn:hover{background:var(--forest-deep);transform:translate(4px)}.booking-btn .arr{font-size:16px}@media(max-width:860px){.booking-inner{grid-template-columns:1fr}}.contact{background:var(--forest-deep)}.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:0;border-top:1px solid var(--line)}.contact-info{padding:clamp(60px,7vw,100px) clamp(28px,4vw,60px);display:flex;flex-direction:column;gap:40px;border-right:1px solid var(--line)}.contact-info h2{font-family:var(--font-display);font-size:clamp(36px,4.4vw,60px);margin:14px 0 0;font-weight:300;line-height:1}.info-block{display:flex;flex-direction:column;gap:6px}.info-block .label{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--sage)}.info-block .val{font-family:var(--font-display);font-size:22px;line-height:1.3;color:var(--paper)}.info-block .val small{display:block;font-family:var(--font-body);font-size:13px;color:var(--muted);margin-top:2px;letter-spacing:.04em}.hours{display:grid;grid-template-columns:1fr auto;gap:8px 24px;font-size:14px}.hours dt{color:var(--muted)}.hours dd{margin:0;color:var(--sand);font-variant-numeric:tabular-nums}.map{position:relative;min-height:460px;background:radial-gradient(80% 60% at 70% 40%,rgba(168,184,160,.1),transparent 70%),linear-gradient(180deg,#1a2820,#14201a);overflow:hidden}.map svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.5}.pin{position:absolute;left:56%;top:48%;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:6px}.pin .ring{width:18px;height:18px;border-radius:50%;background:var(--sand);box-shadow:0 0 0 6px #e8dcc826,0 0 0 14px #e8dcc814;animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 6px #e8dcc826,0 0 0 14px #e8dcc814}50%{box-shadow:0 0 0 10px #e8dcc81a,0 0 0 22px #e8dcc80a}}.pin .lbl{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--sand);background:#14201acc;padding:6px 10px;border:1px solid var(--line)}.map-overlay{position:absolute;left:24px;top:24px;font-family:ui-monospace,Menlo,monospace;font-size:10px;color:var(--muted);letter-spacing:.06em;line-height:1.5}.map-overlay .coord{color:var(--sand)}@media(max-width:860px){.contact-grid{grid-template-columns:1fr}.contact-info{border-right:0;border-bottom:1px solid var(--line)}}.sticky-cta{position:fixed;right:24px;bottom:24px;z-index:60;display:inline-flex;align-items:center;gap:10px;padding:14px 22px;background:var(--sand);color:var(--forest);border-radius:999px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;box-shadow:0 8px 28px #00000059,0 2px 4px #0003;opacity:0;transform:translateY(20px);transition:opacity .5s,transform .5s,background .3s}.sticky-cta.show{opacity:1;transform:none}.sticky-cta:hover{background:var(--paper)}.sticky-cta .dot{width:6px;height:6px;border-radius:50%;background:var(--forest);animation:blink 2.4s ease-in-out infinite}@keyframes blink{50%{opacity:.3}}footer{background:var(--forest-deep);border-top:1px solid var(--line);padding:80px var(--pad) 32px}.footer-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;padding-bottom:60px;border-bottom:1px solid var(--line)}.footer-brand .brand{font-size:32px}.footer-brand p{margin:22px 0 0;max-width:320px;color:var(--muted);font-size:14px;line-height:1.6}.footer-col h4{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--sage);margin:8px 0 18px;font-weight:400}.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.footer-col a{color:var(--paper);font-size:14px;opacity:.78;transition:opacity .25s,color .25s}.footer-col a:hover{opacity:1;color:var(--sand)}.footer-bottom{max-width:var(--max);margin:0 auto;padding-top:28px;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);gap:20px;flex-wrap:wrap}@media(max-width:880px){.footer-inner{grid-template-columns:1fr 1fr;gap:40px}}@media(max-width:540px){.footer-inner{grid-template-columns:1fr}}
