/* Editorial beauty direction. Design variance 8 / motion 6 / density 3.
   Fixed warm-neutral palette requested by client; burgundy is the sole accent.
   Rounded photos 24px; navigation and controls pill-shaped. Layer scale: nav 20, menu 30, toast 40. */
@import url('fonts.css');
:root{--wine:#661b2c;--wine-dark:#49121f;--cream:#faf6ef;--rose:#eedddd;--blush:#e8d0cf;--ink:#402b2d;--muted:#7b6363;--line:#ddccc8;--serif:'Italiana',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--cream);color:var(--ink);font:14px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button{border:0}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--wine);outline-offset:5px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05;letter-spacing:-.045em}img{display:block;width:100%;object-fit:cover}[hidden]{display:none!important}::selection{background:var(--wine);color:var(--cream)}.skip{position:fixed;left:15px;top:-80px;z-index:50;background:var(--cream);padding:10px}.skip:focus{top:10px}
.site-header{position:absolute;top:32px;left:4%;right:4%;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;height:70px;padding:10px 22px 10px 28px;background:var(--wine);color:var(--cream);border-radius:100px;box-shadow:0 8px 40px #4716250b}.wordmark{line-height:1;min-width:150px;text-align:center}.wordmark>span{font:italic 30px Georgia,serif;letter-spacing:-1.7px}.wordmark small{display:block;font:8px var(--sans);letter-spacing:5px;margin:5px 0 0 5px}.site-header nav{display:flex;gap:32px}.site-header nav a{font-size:12px;position:relative;padding:8px 0}.site-header nav a:after{content:'';position:absolute;bottom:3px;left:0;right:100%;height:1px;background:var(--cream);transition:right .25s}.site-header nav a:hover:after,.site-header nav a[aria-current]:after{right:0}.header-book{font-size:12px;display:flex;gap:25px;align-items:center;background:var(--cream);border-radius:40px;color:var(--wine);padding:12px 19px}.header-book span{font-size:17px}.mobile-menu{display:none}.mobile-navigation{position:absolute;z-index:30;left:20px;right:20px;top:100px;background:var(--cream);padding:28px;border-radius:24px;box-shadow:0 20px 50px #49121f25}.mobile-navigation a{display:block;font:28px/1.7 var(--serif)}
.home-hero{position:relative;isolation:isolate;min-height:720px;margin:16px;border-radius:28px;overflow:hidden;background:#e4d5c8}.hero-image{position:absolute;width:64%;height:100%;right:0;top:0;object-position:center 38%}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,#eee2d5 0%,#eee2d5 28%,#eee2d500 62%)}.hero-copy{position:relative;z-index:1;padding:193px 0 146px 6%;max-width:600px;pointer-events:none}.hero-copy .script{font:italic 31px Georgia,serif;color:var(--wine);margin-bottom:20px}.hero-copy h1{font-size:clamp(64px,6.7vw,106px);line-height:.97;color:var(--wine);max-width:630px}.hero-copy h1 em{font-family:Georgia,serif;font-size:.9em;font-weight:400;line-height:1.2}.hero-copy p{font-size:14px;max-width:315px;margin-top:25px;color:#694b4d}.hero-copy .button{margin-top:29px;pointer-events:auto}.button{display:inline-flex;align-items:center;justify-content:center;gap:35px;border-radius:99px;background:var(--wine);color:var(--cream);padding:16px 26px;font-size:12px;border:1px solid var(--wine);transition:background .25s,transform .25s}.button:hover{background:var(--wine-dark);transform:translateY(-2px)}.button.light{background:var(--cream);color:var(--wine);border-color:var(--cream)}.button.outline{background:transparent;color:var(--wine)}.button.outline:hover{background:var(--rose)}.hero-bottom{position:absolute;z-index:4;bottom:25px;left:6%;right:4%;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.3px;text-transform:uppercase;gap:20px}.hero-bottom .replay{font-size:11px;text-transform:none;letter-spacing:0;background:#faf6efcc;border-radius:30px;padding:10px 17px}.foam-canvas{position:absolute;z-index:2;inset:0;width:100%;height:100%;touch-action:pan-y;transition:opacity .45s;cursor:crosshair}.foam-canvas.cleared{opacity:0;pointer-events:none}.foam-invitation{position:absolute;z-index:3;left:50%;top:49%;transform:translate(-50%,-50%);width:340px;text-align:center;pointer-events:none;color:var(--wine);transition:opacity .4s}.foam-invitation .script{font:italic 24px Georgia,serif}.foam-invitation h2{font-size:59px;line-height:1.02;margin:13px 0 20px}.foam-invitation p{font-size:12px}.foam-invitation button{pointer-events:auto;margin-top:24px;background:var(--wine);color:var(--cream);padding:11px 23px;border-radius:30px;font-size:11px}.foam-invitation.faded{opacity:0;pointer-events:none}.foam-invitation.faded button{pointer-events:none}
.intro-section{padding:90px 25px 82px;text-align:center;max-width:820px;margin:auto}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:10px;color:var(--wine);margin-bottom:20px}.intro-section h2{font-size:clamp(38px,4.4vw,65px);color:var(--wine)}.intro-section h2 em{font-family:Georgia,serif;font-weight:400;font-size:.9em}.intro-section p:last-child{color:var(--muted);max-width:470px;margin:25px auto 0;font-size:14px}.section{max-width:1340px;margin:auto;padding:65px 6% 85px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:33px}.section-heading h2{font-size:clamp(38px,4vw,60px);color:var(--wine)}.text-link{font-size:12px;border-bottom:1px solid currentColor;padding-bottom:5px;display:inline-block;color:var(--wine)}.category-grid{display:grid;grid-template-columns:1.1fr 1fr 1.1fr;gap:24px}.category-card:nth-child(2){padding-top:65px}.category-card .photo{border-radius:100px 100px 22px 22px;overflow:hidden}.category-card:nth-child(2) .photo{border-radius:24px}.photo{position:relative;aspect-ratio:314/416;overflow:hidden;background:var(--rose)}.photo img{position:absolute;max-width:none;width:300%;height:auto;left:-200%;top:0;transform:translateY(-34.67%);transition:filter .3s}.photo.body img{left:-100%;transform:translateY(-55.12%)}.photo.beauty img{left:-100%;transform:translateY(-46.39%)}.category-card:hover .photo{filter:saturate(1.12)}.category-caption{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:15px}.category-caption h3{font-size:31px;color:var(--wine)}.category-caption p{font-size:11px;color:var(--muted);margin-top:6px}.round-arrow{width:43px;height:43px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:21px;flex-shrink:0;transition:background .2s}.category-card:hover .round-arrow{background:var(--rose)}
.founder{margin:35px 16px 16px;background:var(--rose);border-radius:28px;padding:70px 7%;display:grid;grid-template-columns:.9fr 1fr;align-items:center;gap:12%}.founder-photo{position:relative}.founder-photo img{border-radius:180px 180px 24px 24px;aspect-ratio:4/4.5;object-position:50% 45%}.founder-photo .signature{position:absolute;bottom:18px;right:-35px;font:italic 65px Georgia,serif;color:var(--cream);transform:rotate(-7deg);text-shadow:0 2px 15px #49121f33}.founder h2{font-size:clamp(43px,4.6vw,70px);color:var(--wine)}.founder p:not(.eyebrow){margin:25px 0;color:var(--muted);max-width:380px}.founder .button{margin-top:10px}.ritual{padding:95px 6%;max-width:1280px;margin:auto;display:grid;grid-template-columns:1fr 1.1fr;gap:12%;align-items:start}.ritual h2{font-size:55px;color:var(--wine)}.ritual h2 em{font-family:Georgia,serif;font-weight:400}.ritual details,.faq details{border-bottom:1px solid var(--line);padding:19px 0}.ritual summary,.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:15px;gap:20px}.ritual summary:after,.faq summary:after{content:'+';font-size:23px;color:var(--wine)}details[open] summary:after{content:'−'}.ritual details p,.faq details p{font-size:13px;color:var(--muted);padding:15px 30px 3px 0}.closing{margin:0 16px 16px;border-radius:28px;background:var(--blush);padding:65px 25px;text-align:center}.closing h2{font-size:clamp(44px,6vw,82px);color:var(--wine);margin:12px 0 25px}.closing .script{font:italic 24px Georgia,serif;color:var(--wine)}
.site-footer{padding:65px 7% 22px;background:var(--cream)}.footer-top{display:grid;grid-template-columns:1.2fr 1fr .65fr;gap:45px;padding-bottom:55px}.footer-logo{font:italic 53px Georgia,serif;letter-spacing:-3px;color:var(--wine)}.footer-logo span{font:9px var(--sans);display:block;letter-spacing:8px;margin-top:10px;margin-left:35px}.footer-top p{font:24px/1.3 var(--serif);margin:10px 0 15px;color:var(--wine)}.footer-links{display:grid;gap:9px;font-size:12px}.footer-bottom{border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted);gap:15px}
.inner-page{padding:155px 6% 70px;max-width:1400px;margin:auto;min-height:75vh}.page-intro{max-width:760px;margin:10px auto 40px;text-align:center}.page-intro h1{font-size:clamp(47px,6vw,82px);color:var(--wine)}.page-intro p:not(.eyebrow){color:var(--muted);max-width:460px;margin:22px auto 0}.filter-bar{display:flex;gap:10px;justify-content:center;margin:32px 0 45px;flex-wrap:wrap}.filter-bar button{padding:11px 24px;border:1px solid var(--line);background:transparent;border-radius:30px;font-size:12px}.filter-bar button[aria-pressed=true]{background:var(--wine);color:var(--cream);border-color:var(--wine)}.treatment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 24px}.treatment-card{min-width:0}.treatment-card .photo{aspect-ratio:1.05;border-radius:22px}.treatment-card h2{font-size:29px;color:var(--wine);margin-top:18px}.treatment-meta{display:flex;justify-content:space-between;gap:15px;margin-top:10px;font-size:12px;color:var(--muted)}.treatment-card>a{display:block}.treatment-card .text-link{margin-top:14px}.menu-note{text-align:center;font-size:11px;color:var(--muted);margin-top:45px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:start}.detail-grid>.photo{border-radius:25px;position:sticky;top:30px}.breadcrumb{font-size:11px;margin-bottom:30px;color:var(--muted)}.detail-copy h1{font-size:clamp(42px,5vw,68px);color:var(--wine);margin:20px 0}.detail-copy>p{color:var(--muted);margin:22px 0}.detail-price{display:flex;gap:22px;align-items:center;margin:25px 0}.detail-price strong{font-size:27px;font-weight:400;color:var(--wine)}.detail-price span{font-size:12px;color:var(--muted)}.detail-copy .button{margin-bottom:24px}.detail-copy details{padding:15px 0;border-bottom:1px solid var(--line)}.detail-copy summary{cursor:pointer;font-size:13px}.detail-copy details p{font-size:12px;color:var(--muted);margin:12px 0}.about-page{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.about-page img{border-radius:220px 220px 24px 24px;aspect-ratio:4/5}.about-page h1{font-size:clamp(48px,5.6vw,78px);color:var(--wine)}.about-page p{color:var(--muted);margin:25px 0;max-width:440px}.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:start}.studio-note{background:var(--rose);padding:45px;border-radius:24px}.studio-note h2{font-size:42px;color:var(--wine)}.studio-note p{color:var(--muted);margin:20px 0}.studio-note .text-link{margin:12px 15px 0 0}.faq h2{font-size:36px;color:var(--wine);margin-bottom:20px}
.booking-layout{display:grid;grid-template-columns:1.35fr .7fr;gap:7%;max-width:1050px;margin:auto;align-items:start}.booking-progress{display:flex;gap:23px;list-style:none;padding:0;margin:0 0 35px;color:var(--muted);font-size:11px}.booking-progress li{border-bottom:2px solid var(--line);padding:0 0 9px;flex:1}.booking-progress li.current{border-color:var(--wine);color:var(--wine)}.booking-form h2{font-size:36px;color:var(--wine);margin-bottom:12px}.booking-form>p{font-size:12px;color:var(--muted);margin-bottom:25px}.field{display:block;margin:20px 0}.field>span{font-size:12px;display:block;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--cream);font-size:16px}.field textarea{min-height:90px;resize:vertical}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-row .field{margin:0 0 20px}.form-actions{display:flex;gap:15px;margin-top:28px;align-items:center;flex-wrap:wrap}.back-button{background:transparent;padding:12px;color:var(--muted)}.booking-summary{background:var(--rose);padding:28px;border-radius:24px;position:sticky;top:25px}.booking-summary .mini-portrait{width:64px;height:64px;border-radius:50%;object-fit:cover;margin-bottom:25px}.booking-summary h3{font-size:27px;color:var(--wine);margin:12px 0 20px}.summary-row{display:flex;justify-content:space-between;gap:15px;padding:11px 0;font-size:12px;border-bottom:1px solid var(--line)}.booking-summary p{font-size:11px;color:var(--muted);margin-top:20px}.review-message{background:var(--rose);padding:24px;border-radius:18px;white-space:pre-wrap;font-size:14px}.review-note{font-size:12px;color:var(--muted);margin:20px 0}.error{color:var(--wine);font-size:12px;padding:10px 0}.empty{padding:70px 25px;text-align:center}.empty h1{font-size:60px;color:var(--wine);margin-bottom:25px}#toast{position:fixed;z-index:40;bottom:24px;left:50%;transform:translateX(-50%);background:var(--wine);color:var(--cream);padding:15px 25px;border-radius:40px;font-size:12px;box-shadow:0 10px 40px #49121f33;max-width:90%;text-align:center}
@media(min-width:1600px){.home-hero{min-height:800px}.hero-copy{padding-top:230px}}@media(max-width:1000px){.site-header nav{gap:20px}.wordmark{min-width:125px}.header-book{gap:15px}.hero-copy{max-width:500px}.home-hero{min-height:670px}.hero-image{width:73%;right:-8%}.hero-copy h1{font-size:75px}.hero-copy{padding-top:185px}.category-grid{gap:17px}.section{padding-left:5%;padding-right:5%}.founder{gap:7%}.category-caption h3{font-size:28px}.ritual{gap:7%}.treatment-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.site-header{top:25px;left:28px;right:28px;height:63px;padding:10px 20px}.site-header nav,.header-book{display:none}.mobile-menu{display:flex;align-items:center;gap:20px;background:none;color:var(--cream);font-size:12px;padding:10px 0}.mobile-menu span{font-size:22px}.wordmark{min-width:0}.wordmark>span{font-size:25px}.wordmark small{font-size:7px}.home-hero{margin:12px;min-height:750px;border-radius:23px}.hero-image{width:100%;right:0;height:65%;top:35%;object-position:50% 40%}.hero-wash{background:linear-gradient(180deg,#eee2d5 0%,#eee2d5 28%,#eee2d5aa 43%,#eee2d500 63%)}.hero-copy{padding:125px 25px 0;max-width:100%}.hero-copy .script{font-size:23px;margin-bottom:12px}.hero-copy h1{font-size:66px;max-width:450px}.hero-copy p{margin-top:17px;max-width:270px;font-size:12px}.hero-copy .button{margin-top:19px;padding:13px 22px}.hero-bottom{bottom:18px;left:22px;right:20px;font-size:8px;letter-spacing:.5px}.hero-bottom>span{max-width:110px}.foam-invitation{width:280px;top:46%}.foam-invitation h2{font-size:53px}.intro-section{padding:65px 30px 40px}.intro-section h2{font-size:42px}.section{padding:45px 25px 60px}.section-heading h2{font-size:42px}.section-heading{align-items:start}.section-heading .text-link{font-size:10px;white-space:nowrap;margin-top:14px}.category-grid{grid-template-columns:1fr;gap:35px;max-width:450px;margin:auto}.category-card:nth-child(2){padding-top:0}.category-card .photo{aspect-ratio:1.08;border-radius:25px}.category-card .photo img{transform:translateY(-34.67%)}.category-card .photo.beauty img{transform:translateY(-46.39%)}.category-card .photo.body img{transform:translateY(-55.12%)}.category-caption h3{font-size:34px}.founder{margin:15px 12px;padding:35px 25px;grid-template-columns:1fr;gap:38px}.founder-photo{max-width:400px}.founder-photo .signature{right:10px;font-size:57px}.founder h2{font-size:48px}.ritual{grid-template-columns:1fr;padding:60px 30px;gap:30px}.ritual h2{font-size:45px}.closing{margin:0 12px 12px;padding:50px 25px}.closing h2{font-size:50px}.footer-top{grid-template-columns:1fr 1fr;gap:35px}.footer-logo{grid-column:1/-1;font-size:48px}.site-footer{padding:45px 30px 25px}.footer-top p{font-size:24px}.footer-bottom{flex-wrap:wrap;font-size:9px}.inner-page{padding:130px 25px 50px}.page-intro{margin:10px auto 30px}.page-intro h1{font-size:55px}.page-intro p:not(.eyebrow){font-size:13px}.filter-bar{gap:7px;margin:25px 0 30px}.filter-bar button{padding:9px 17px}.treatment-grid{gap:30px 16px}.treatment-card h2{font-size:25px;letter-spacing:-1px}.treatment-meta{font-size:10px}.treatment-card .text-link{font-size:11px}.detail-grid,.about-page,.studio-grid,.booking-layout{grid-template-columns:1fr;gap:35px}.detail-grid>.photo{position:relative;top:0;max-width:480px;aspect-ratio:1.1}.detail-copy h1{font-size:52px}.about-page img{max-width:440px}.about-page h1{font-size:54px}.about-page p{font-size:14px}.studio-note{padding:30px}.booking-summary{position:static}.booking-layout{max-width:560px}.booking-progress{gap:18px}.booking-form h2{font-size:33px}.field-row{grid-template-columns:1fr}.field-row .field{margin-bottom:20px}.booking-summary .mini-portrait{display:none}}
@media(max-width:380px){.hero-copy h1{font-size:57px}.hero-copy{padding-left:20px}.section-heading{display:block}.treatment-grid{grid-template-columns:1fr}.foam-invitation{width:250px}.foam-invitation h2{font-size:47px}.footer-top{grid-template-columns:1fr}.footer-logo{grid-column:auto}.booking-progress{gap:10px;font-size:10px}}
/* Crop the supplied social photographs inside the frame, excluding app chrome. */
.photo img{width:370%;left:-263%;transform:translateY(-38.1%)}
.photo.body img{left:-139%;transform:translateY(-57.3%)}
.photo.beauty img{left:-139%;transform:translateY(-49.2%)}
.hero-image{mask-image:linear-gradient(90deg,transparent,#000 20%)}
@media(max-width:760px){.home-hero{display:flex;flex-direction:column;min-height:0}.hero-image{mask-image:none;position:relative;order:2;top:auto;right:auto;height:420px;width:100%;object-position:center 35%}.hero-wash{display:none}.hero-copy{order:1;background:#eee2d5;padding:125px 25px 35px}.hero-copy h1{font-size:53px;max-width:440px}.hero-copy p{font-size:13px;max-width:310px}.category-card .photo img{transform:translateY(-38.1%)}.category-card .photo.body img{transform:translateY(-57.3%)}.category-card .photo.beauty img{transform:translateY(-49.2%)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Reserve the application area while deferred route scripts initialise. */
#main:empty{min-height:100svh}
