@font-face{font-family:"Lexend Deca";src:url('fonts/LexendDeca-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Lexend Deca";src:url('fonts/LexendDeca-medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"Lexend Deca";src:url('fonts/LexendDeca-semibold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Archivo;src:url('fonts/Archivo-var.woff2') format('woff2');font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap}
:root{--ink:#571b43;--muted:#714361;--rose:color-mix(in srgb,var(--muted) 78%,var(--blush));--blush:#f2dfe2;--wash:#fcf4f3;--paper:#ffffff;--line:rgb(87 27 67 / .12);--radius:28px;--ease:cubic-bezier(.2,.8,.2,1);--space:40px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:32px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Lexend Deca",sans-serif;font-weight:400;font-size:16px;line-height:1.6}
button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}
button{cursor:pointer;border:0}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-underline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
img{display:block;max-width:100%;width:100%;height:auto}p{margin:0 0 20px}h1,h2,h3{margin:0;font-weight:500}b,strong{font-weight:400}
.display,.brand,.service-card h3,.type-panel{font-family:"Lexend Deca",sans-serif;font-weight:500;letter-spacing:-.035em;line-height:1.08;text-wrap:balance}
.container{width:calc(100% - var(--space)*2);max-width:1200px;margin-inline:auto}
.section{padding-top:96px;padding-bottom:96px}.display{font-size:clamp(38px,4.1vw,56px)}
.small{font-size:13px;color:var(--muted);line-height:1.6}
.primary,.outline{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid var(--ink);border-radius:999px;padding:16px 27px;min-height:54px;background:var(--ink);color:var(--paper);font-weight:400;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .25s var(--ease),transform .25s var(--ease)}
.primary span,.text-link span{font-size:20px;font-weight:400;line-height:1}.primary:hover:not(:disabled){background:var(--muted);border-color:var(--muted)}button:active:not(:disabled){transform:translateY(1px)}
.outline{background:var(--paper);color:var(--ink)}.outline:hover{background:var(--blush)}
.text-link{display:inline-flex;gap:18px;align-items:center;min-height:44px;padding:0;background:transparent;text-decoration:underline;text-underline-offset:6px;font-weight:400}
.skip{position:fixed;top:-100px;left:16px;padding:12px 18px;background:var(--ink);color:var(--paper);z-index:3;border-radius:999px}.skip:focus{top:12px}#main:focus{outline:none}
.appointment-strip{background:var(--blush);text-align:center;font-size:11px;letter-spacing:.075em;padding:6px 20px;color:var(--muted)}
.site-header{height:80px;padding:0 var(--space);max-width:1440px;margin:auto;display:flex;align-items:center;gap:32px}
.brand{font-size:28px;font-weight:400;letter-spacing:-.04em;text-decoration:none;white-space:nowrap}
.site-header nav{display:flex;gap:30px;margin-left:auto;margin-right:8px}.site-header nav a{text-decoration:none;display:flex;align-items:center;min-height:44px;font-size:14px}.site-header nav a:hover{text-decoration:underline}
.header-book{font-size:13px;min-height:46px;padding:12px 20px;gap:16px}
.opening{position:relative;isolation:isolate;overflow:clip}.hero-wash{position:absolute;z-index:-1;top:32px;left:0;height:850px;width:100%;color:var(--wash);pointer-events:none}
.hero{min-height:436px;display:grid;place-items:start center}.hero-inner{text-align:center;padding:68px 24px 78px;width:100%}
.hero-intro{font-size:14px;letter-spacing:.09em;color:var(--muted);margin-bottom:32px}
.hero h1{font-size:clamp(54px,5.9vw,80px);max-width:1200px;margin:0 auto 18px;line-height:1.05;letter-spacing:-.045em}
.hero-tagline{font-size:clamp(26px,3.15vw,44px);font-weight:400;line-height:1.2;color:var(--rose);letter-spacing:-.04em;margin:0 auto 32px;max-width:1100px}
.hero-tagline span{display:inline-block}.hero .primary{font-size:17px;padding:17px 34px;min-height:58px;gap:24px}
.bracket-chip{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;font-family:Archivo,sans-serif;font-size:10px;line-height:1.3;font-stretch:112%;text-transform:uppercase;font-weight:600;letter-spacing:.1em;padding:13px 20px;white-space:nowrap;margin:0 12px;transform:translateY(-.14em)}
.bracket-chip:before,.bracket-chip:after{content:'';position:absolute;top:6px;bottom:6px;width:6px;border-block:1px solid var(--ink)}.bracket-chip:before{left:0;border-left:1px solid var(--ink);border-radius:3px 0 0 3px}.bracket-chip:after{right:0;border-right:1px solid var(--ink);border-radius:0 3px 3px 0}
.section-intro{text-align:center;margin-bottom:42px}.section-intro .small{margin:18px 0 0}.section-intro .bracket-chip{margin-left:18px}
.services{padding-top:52px;padding-bottom:104px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.service-card{background:var(--wash);border:1px solid rgb(87 27 67 / .065);border-radius:var(--radius);padding:32px;min-height:292px;display:flex;flex-direction:column;transition:background .35s var(--ease),transform .35s var(--ease)}
.service-card h3{font-size:26px;font-weight:500;line-height:1.15;margin-bottom:20px;overflow-wrap:anywhere}
.service-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px;font-size:13px}.service-price{font-weight:400}.duration{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:var(--muted);font-size:12px}.duration svg{width:15px;height:15px;flex-shrink:0}
.service-description{font-size:14px;line-height:1.6;color:var(--muted);max-width:32ch;margin-bottom:28px}
.card-actions{display:flex;align-items:center;gap:24px;margin-top:auto}.card-actions .primary{min-height:44px;padding:12px 22px;font-size:13px;gap:0}.card-actions .text-link{font-size:13px}
.feature-panel{border-radius:var(--radius);background:var(--blush);overflow:hidden;min-height:292px;position:relative;display:grid;align-items:center;padding:34px;border:1px solid rgb(87 27 67 / .065)}
.feature-panel .type-panel{font-size:clamp(32px,3.4vw,47px);line-height:1.12;transition:transform .6s var(--ease);position:relative}
.feature-panel img{height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .6s var(--ease)}
.feature-panel:before{content:'';position:absolute;width:110%;aspect-ratio:1;left:30%;top:35%;border:1px solid rgb(87 27 67 / .09);border-radius:50%}
.work{padding:0 0 82px;text-align:center}.work:before{content:'';display:block;height:1px;background:rgb(87 27 67 / .25);margin-bottom:44px}.work-title{font-size:clamp(34px,3.3vw,46px);margin-bottom:20px}.work-caption{font-size:16px;color:var(--muted);margin:0 auto 32px}
.work-shape{width:220px;height:100px;background:var(--blush);border-radius:50%;margin:auto;transform:rotate(-8deg)}.work .text-link{margin-top:24px}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:36px}.photo-grid img{height:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.about{display:grid;grid-template-columns:1fr 1.1fr;gap:72px;align-items:center;padding-block:60px 126px}.about-copy{padding-left:100px}.about h2{font-size:clamp(34px,3vw,42px);margin-bottom:22px}.experience{font-size:20px;line-height:1.5;color:var(--muted);max-width:27ch;margin-bottom:20px}
.about-details p{color:var(--muted);white-space:pre-line;max-width:45ch}.about-copy .text-link{font-size:16px}
.portrait-oval{background:radial-gradient(ellipse at 35% 35%,color-mix(in srgb,var(--blush) 78%,var(--paper)),var(--blush) 75%);border-radius:50%;aspect-ratio:1.76;overflow:hidden;display:grid;align-items:center}.portrait-oval img{height:100%;width:100%;object-fit:cover}
.visit-wrap{background:var(--wash)}.visit{display:grid;grid-template-columns:1.15fr 1fr;gap:100px;align-items:center;padding-block:90px 96px}.visit h2{font-size:clamp(38px,4.1vw,56px);margin-bottom:32px;line-height:1.12}
.hours-list{margin:0 0 18px}.hours-row-public{display:flex;gap:16px;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);font-size:16px}.hours-row-public dt{font-weight:400}.hours-row-public dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}.visit-info>p{color:var(--muted);white-space:pre-line}.hours-caption{font-size:12px;color:var(--muted);margin-bottom:14px}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-block:42px}.site-footer .brand{font-size:24px}.site-footer .text-link{font-size:13px;margin-left:auto}.site-footer>span{font-size:12px;color:var(--muted)}.mobile-book{display:none}
.loading{grid-column:1/-1;padding:40px;text-align:center;background:var(--wash);border-radius:var(--radius);color:var(--muted)}
/* Layer order: page, mobile booking 1, skip link 3, native top-layer dialogs. */
dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:36px;width:calc(100% - 48px);max-width:780px;max-height:calc(100dvh - 48px);overscroll-behavior:contain;box-shadow:0 24px 100px rgb(87 27 67 / .15)}dialog::backdrop{background:rgb(87 27 67 / .28)}body:has(dialog[open]){overflow:hidden}body:has(dialog[open]) .mobile-book{visibility:hidden}
.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.dialog-head h2{font-size:38px;min-width:0;line-height:1.1}
.close{display:grid;place-items:center;border:1px solid var(--line);border-radius:999px;min-width:44px;width:44px;height:44px;font-size:28px;font-weight:400;background:var(--paper);line-height:1;padding:0;flex-shrink:0}.close:hover{background:var(--blush)}
.service-dialog{max-width:1020px;padding:34px}.service-dialog>.close{position:absolute;right:18px;top:18px;z-index:1}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:48px;min-height:410px}
.detail-media{background:var(--blush);border-radius:50% 50% var(--radius) var(--radius);overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:18px;min-width:0}.detail-media img{aspect-ratio:4/3;object-fit:cover;min-height:100%;flex-shrink:0}.detail-type{padding:40px;font-size:44px;line-height:1.1}
.detail-copy{display:flex;flex-direction:column;justify-content:center;padding-block:46px 24px;min-width:0}.detail-copy h2{font-size:43px;line-height:1.08;margin-bottom:26px;overflow-wrap:anywhere;max-width:12ch}.detail-copy .service-meta{gap:18px;margin-bottom:24px}.detail-copy .service-description{font-size:16px;margin-bottom:30px}.detail-copy .primary{align-self:flex-start}
.preview-note{margin:-6px 0 24px}.booking-progress{display:flex;gap:22px;list-style:none;padding:0;margin:0 0 25px;font-size:13px;color:var(--muted)}.booking-progress li{padding-bottom:6px;border-bottom:2px solid transparent}.booking-progress li[aria-current=step]{color:var(--ink);border-color:var(--ink);font-weight:400}.field{display:block;font-size:14px;font-weight:400;margin-bottom:18px}.field input,.field select,.field textarea{display:block;width:100%;min-height:50px;border:1px solid var(--line);border-radius:var(--radius);padding:12px 15px;background:var(--paper);margin-top:7px;font-weight:400;line-height:1.4}.field input::placeholder{color:var(--muted)}.field textarea{height:100px;resize:vertical}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.full{grid-column:1/-1}fieldset{margin:0 0 20px;padding:0;border:0;min-width:0}legend{font-size:14px;font-weight:400;margin-bottom:10px}.date-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.date-chip{padding:12px 5px;min-height:65px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);font-size:14px;line-height:1.4}.date-chip span{display:block;color:var(--muted);font-size:12px}.date-chip[aria-pressed=true],.slot[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.date-chip[aria-pressed=true] span{color:var(--blush)}.date-pager{display:flex;justify-content:space-between;gap:12px;margin-top:6px}.date-pager button{background:transparent;font-size:12px;text-decoration:underline;text-underline-offset:4px;min-height:36px;padding:0 4px}.slot-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:10px}.slot{background:var(--paper);border:1px solid var(--line);border-radius:999px;min-height:44px;font-size:13px;padding:8px 4px;font-variant-numeric:tabular-nums}.slot:hover,.date-chip:hover{border-color:var(--ink)}.slots-label{font-size:14px;font-weight:400;margin-bottom:0}.slots-zone{font-size:12px;color:var(--muted);margin:6px 0 0}.form-actions{display:flex;gap:20px;flex-wrap:wrap;align-items:center;margin-top:25px}.form-actions .primary{font-size:14px;padding-inline:28px}.summary-box{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:var(--wash);margin:0 0 24px}.summary-box h3{font-size:20px;line-height:1.2;margin-bottom:12px}.summary-box p{font-size:14px;margin:0;color:var(--muted)}.summary-box p+p{margin-top:16px}.notice{background:var(--wash);border-radius:var(--radius);padding:18px;font-size:13px;margin:0 0 22px}.status{font-size:14px;margin:0}.status:not(:empty){background:var(--blush);border-radius:var(--radius);padding:16px;margin-top:20px}.status a{font-size:14px}.owner-dialog{max-width:940px}.owner-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 28px}.owner-tabs button{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:10px 17px;min-height:44px;font-size:13px}.owner-tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.calendar-row{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.calendar-row h3{font-size:16px}.calendar-row p{font-size:13px;margin:5px 0}.calendar-row button{align-self:center;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:10px 16px;min-height:44px}.hours-row{display:grid;grid-template-columns:65px 80px 1fr 1fr;gap:12px;align-items:center;margin-bottom:12px}.hours-row input[type=time]{min-width:0;width:100%;border:1px solid var(--line);padding:10px;border-radius:var(--radius);background:var(--paper);min-height:44px}.hours-row label{font-size:13px}

.field{font-weight:400}legend,.slots-label{font-weight:400}.field input,.field select,.field textarea{border-radius:18px}.date-chip{border-radius:18px;background:var(--wash)}.summary-box h3{font-weight:500}.booking-progress li[aria-current=step]{font-weight:400}
.photo-fallback{background:var(--blush);border-radius:var(--radius);padding:28px;min-height:220px;display:grid;align-content:center;font-size:32px;line-height:1.15}.detail-media .photo-fallback{height:100%;font-size:40px}.feature-panel .photo-fallback{padding:0;background:transparent}
input[type=checkbox]{accent-color:var(--ink);width:16px;height:16px;vertical-align:middle}
@media(hover:hover){.service-card:hover{background:var(--blush);transform:translateY(-3px)}.feature-panel:hover .type-panel,.feature-panel:hover img{transform:scale(1.03)}}
@media(prefers-reduced-motion:no-preference){.hero-intro,.hero h1,.hero-tagline,.hero .primary{animation:arrive .8s var(--ease) both}.hero h1{animation-delay:.08s}.hero-tagline{animation-delay:.16s}.hero .primary{animation-delay:.24s}.hero-wash{animation:wash-in 1.2s var(--ease) both}dialog[open] .detail-copy>*{animation:arrive .5s var(--ease) both}dialog[open] .detail-copy>:nth-child(2){animation-delay:.08s}dialog[open] .detail-copy>:nth-child(3){animation-delay:.16s}dialog[open] .detail-copy>:nth-child(4){animation-delay:.24s}dialog[open] #bookContent{animation:arrive .4s var(--ease) both}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes wash-in{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}}
@media(max-width:1024px){:root{--space:28px}.site-header{gap:22px}.brand{font-size:25px}.site-header nav{gap:20px;margin-right:0}.header-book{padding-inline:18px;font-size:12px}.hero h1{font-size:7vw}.hero-tagline{font-size:3.5vw}.service-card{padding:26px}.service-card h3{font-size:23px}.card-actions{gap:20px}.service-meta{gap:10px}.about,.visit{gap:48px}.about-copy{padding-left:32px}.detail-copy h2{font-size:38px}}
@media(max-width:767px){
:root{--space:20px}.appointment-strip{font-size:10px;letter-spacing:.04em;padding:7px 12px}.site-header{height:76px;gap:12px;padding-inline:20px}.site-header .brand{font-size:19px;max-width:none;white-space:nowrap;line-height:1.08}.site-header nav{display:none}.header-book{margin-left:auto;font-size:10px;min-height:42px;padding:11px 14px;gap:10px}.header-book span{font-size:17px}
.hero{min-height:430px}.hero-inner{padding:44px 20px 36px}.hero-intro{font-size:11px;letter-spacing:.05em;max-width:28ch;margin:0 auto 28px;line-height:1.8}.hero h1{font-size:46px;line-height:1.07;letter-spacing:-.05em;max-width:8ch;margin-bottom:24px}.hero-tagline{font-size:25px;line-height:1.3;max-width:20ch;margin-bottom:28px;letter-spacing:-.035em}.hero .primary{font-size:14px;min-height:52px;padding:16px 25px;gap:20px}.hero-wash{height:820px;top:16px;width:100%;left:0;max-width:none}
.section{padding-block:65px}.display{font-size:36px}.services{padding-top:32px;padding-bottom:78px}.section-intro{text-align:left;margin-bottom:26px}.section-intro .bracket-chip{font-size:8px;padding:11px 14px;margin:0 0 0 14px;letter-spacing:.07em}.section-intro .small{font-size:12px;max-width:31ch;margin-top:16px}
.service-grid{grid-template-columns:1fr;gap:16px}.service-card{padding:27px;min-height:236px}.service-card h3{font-size:26px;max-width:17ch;margin-bottom:18px}.service-meta{gap:16px;margin-bottom:18px}.service-description{font-size:14px;margin-bottom:25px}.card-actions{gap:26px}.feature-panel{min-height:220px;padding:30px}.feature-panel .type-panel{font-size:39px;max-width:10ch}
.work{padding-bottom:58px}.work:before{margin-bottom:34px}.work-title{font-size:32px;margin-bottom:18px}.work-caption{font-size:14px;max-width:26ch;margin-bottom:26px}.work-shape{width:170px;height:78px}.photo-grid{grid-template-columns:1fr 1fr;gap:16px}.photo-grid img:first-child{grid-column:1/-1;aspect-ratio:4/3}.photo-grid .photo-fallback{font-size:26px}
.about-copy{padding-left:0}.about{grid-template-columns:1fr;gap:36px;padding-block:22px 78px}.about h2{font-size:32px;margin-bottom:20px}.experience{font-size:18px;max-width:24ch;margin-bottom:18px}.about-copy .text-link{font-size:15px}.portrait-oval{aspect-ratio:1.65}
.visit{grid-template-columns:1fr;gap:42px;padding-block:66px}.visit h2{font-size:37px;margin-bottom:28px}.visit .primary{font-size:14px}.hours-row-public{font-size:14px;padding-block:18px}.hours-caption{font-size:11px}.site-footer{flex-wrap:wrap;gap:16px;padding-top:34px;padding-bottom:110px}.site-footer .brand{font-size:23px;width:100%}.site-footer .text-link{margin-left:0;margin-right:auto;font-size:12px}
.mobile-book{display:block;position:fixed;z-index:1;bottom:0;left:0;right:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}.mobile-book .primary{width:100%;font-size:13px;min-height:46px;justify-content:space-between;padding-inline:24px}
dialog{padding:26px 20px;width:calc(100% - 24px);max-height:calc(100dvh - 32px)}.dialog-head{gap:12px;margin-bottom:22px}.dialog-head h2{font-size:30px}.booking-dialog .dialog-head{position:relative;padding-right:48px}.booking-dialog .dialog-head .close{position:absolute;right:0;top:0}.booking-dialog .dialog-head h2{font-size:29px;letter-spacing:-.04em}.preview-note{font-size:12px;margin-bottom:20px}.booking-progress{gap:18px;font-size:10px;margin-bottom:22px}
.service-dialog{padding:18px}.service-dialog>.close{right:24px;top:24px}.service-detail{grid-template-columns:1fr;gap:27px;min-height:0}.detail-media{min-height:214px;border-radius:50% 50% var(--radius) var(--radius)}.detail-type{padding:36px 30px 24px;font-size:35px;max-width:none}.detail-media img{aspect-ratio:4/3}.detail-copy{padding:0 8px 12px}.detail-copy h2{font-size:33px;max-width:none;margin-bottom:20px}.detail-copy .service-meta{gap:18px;margin-bottom:18px}.detail-copy .service-description{font-size:14px;margin-bottom:24px}.detail-copy .primary{width:100%;font-size:14px;min-height:48px}
.field-grid{grid-template-columns:1fr}.field{font-size:13px;margin-bottom:16px}.field input,.field select,.field textarea{font-size:16px}.date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.date-chip{min-height:62px;font-size:13px}.slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.slot{font-size:12px}.form-actions{gap:16px;margin-top:22px}.form-actions .primary{flex-grow:1;font-size:13px;padding-inline:20px}.summary-box{padding:20px}.summary-box h3{font-size:18px}.hours-row{grid-template-columns:38px 55px 1fr 1fr;gap:6px}.hours-row input[type=time]{font-size:12px;padding:8px 4px}.hours-row label{font-size:11px}.calendar-row{gap:10px}.calendar-row button{font-size:12px;padding:8px 12px}
}
@media(max-width:360px){.hero h1{font-size:44px}.hero-tagline{font-size:23px}.header-book{font-size:9px;padding-inline:12px}.site-header .brand{font-size:18px}.about h2,.work-title{font-size:30px}.booking-dialog .dialog-head h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.service-card:hover{transform:none}.feature-panel:hover .type-panel,.feature-panel:hover img{transform:none}}
