:root{
--ivory:#F8F4ED;
--cream:#F1E9DE;
--champagne:#C7AD82;
--beige:#D8C7B3;
--blush:#E8D5CF;
--brown:#453A32;
--charcoal:#302D2A;
--ink-soft:#6B5F55;
--line:rgba(69,58,50,.16);
--line-strong:rgba(69,58,50,.32);
--serif:"Bodoni Moda","Bodoni 72","Didot",Georgia,serif;
--latin-serif:"Bodoni Moda","Bodoni 72","Didot",Georgia,serif;
--sans:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
--zh:"Noto Serif SC","Songti SC","STSong","SimSun",serif;
--gutter:clamp(1.25rem,5vw,4rem);
--max:1360px;
--section:clamp(4.5rem,10vw,9.5rem);
--header-h:60px;
--tap:44px;
--ease:cubic-bezier(.22,.61,.36,1);
--safe-l:env(safe-area-inset-left,0px);
--safe-r:env(safe-area-inset-right,0px);
--safe-b:env(safe-area-inset-bottom,0px);
}
@media (min-width:960px){:root{--header-h:72px}}
*,*::before,*::after{box-sizing:border-box}
html{
-webkit-text-size-adjust:100%;text-size-adjust:100%;
scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + .5rem);
}
body{
margin:0;min-width:320px;background:var(--ivory);color:var(--brown);
font:400 1rem/1.7 var(--sans);
-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
-webkit-tap-highlight-color:transparent;
overflow-x:hidden;
}
@supports (overflow:clip){body{overflow-x:clip}}
@media (min-width:760px){body{font-size:1.0625rem}}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,figure,blockquote,dl,dd{margin:0}
h2,h3{font-family:var(--serif);font-weight:400;color:var(--charcoal);overflow-wrap:break-word}
h2{font-size:clamp(1.95rem,5.2vw + .4rem,3.6rem);line-height:1.08;letter-spacing:-.012em}
h3{font-size:clamp(1.3rem,1.2vw + 1rem,1.65rem);line-height:1.22}
:not(html)[lang^="zh"]{font-family:var(--zh);font-weight:300}
:focus-visible{outline:2px solid var(--brown);outline-offset:3px}
::selection{background:var(--blush);color:var(--charcoal)}
.wrap{
width:100%;max-width:var(--max);margin-inline:auto;
padding-left:calc(var(--gutter) + var(--safe-l));
padding-right:calc(var(--gutter) + var(--safe-r));
}
.section{padding-block:var(--section)}
.measure{max-width:34rem}
.lede{font-size:clamp(1rem,.4vw + .95rem,1.1875rem);color:var(--ink-soft)}
.skip{position:absolute;left:1rem;top:-200px;z-index:100;background:var(--brown);color:var(--ivory);padding:.75rem 1rem;text-decoration:none}
.skip:focus{top:.75rem}
.work__head,.styles__head,.services__head,.training__head{display:grid;gap:1rem;margin-bottom:clamp(2.25rem,5vw,4.5rem)}
@media (min-width:960px){
.work__head,.styles__head,.services__head,.training__head{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:0 2rem}
.work__head h2,.styles__head h2,.training__head h2{grid-column:1/7}
.services__head h2{grid-column:1/8}
.work__head p,.styles__head p,.training__head p{grid-column:8/13}
.services__head p{grid-column:9/13}
}
.btn{
display:inline-flex;align-items:center;justify-content:center;text-align:center;
min-height:52px;padding:.75rem 1.75rem;
font:500 .9375rem/1.2 var(--sans);letter-spacing:.06em;text-decoration:none;
border:1px solid var(--brown);border-radius:999px;cursor:pointer;
transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);
touch-action:manipulation;
}
.btn--solid{background:var(--brown);color:var(--ivory)}
.btn--ghost{background:transparent;color:var(--brown)}
.btn--light{background:var(--ivory);color:var(--charcoal);border-color:var(--ivory)}
.text-link{
display:inline-flex;align-items:center;min-height:var(--tap);
font:500 .9375rem/1.3 var(--sans);text-decoration:none;
background:linear-gradient(var(--champagne),var(--champagne)) 0 calc(100% - 10px)/100% 1px no-repeat;
transition:background-size .4s var(--ease);
}
@media (hover:hover){
.btn--solid:hover{background:var(--charcoal);border-color:var(--charcoal)}
.btn--ghost:hover{background:var(--brown);color:var(--ivory)}
.btn--light:hover{background:transparent;color:var(--ivory)}
.text-link:hover{background-size:35% 1px}
}
.ph{position:relative;overflow:hidden;background:var(--cream);margin:0}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.ph img.is-missing{visibility:hidden}
.ph--blush{background:var(--blush)}
.ph--beige{background:var(--beige)}
.ph--dark{background:#5a4c42}
.site-header{
position:sticky;top:0;z-index:50;height:var(--header-h);
background:rgba(248,244,237,.95);
-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);
border-bottom:1px solid transparent;transition:border-color .4s var(--ease);
}
.site-header.is-scrolled,.menu-open .site-header{border-bottom-color:var(--line)}
.site-header .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:inline-flex;align-items:baseline;gap:.5rem;min-height:var(--tap);padding-top:.7rem;text-decoration:none;color:var(--charcoal);white-space:nowrap}
.brand__en{font:400 1.2rem/1 var(--latin-serif);letter-spacing:.2em}
.brand__zh{font-size:.95rem;color:var(--ink-soft)}
.nav{display:none}
.nav ul{display:flex;gap:clamp(1.25rem,2.4vw,2.4rem);list-style:none;margin:0;padding:0}
.nav a{display:inline-flex;align-items:center;min-height:var(--tap);font:400 .9375rem/1 var(--sans);text-decoration:none;color:var(--brown);letter-spacing:.03em;position:relative;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:10px;height:1px;background:var(--champagne);transition:right .4s var(--ease)}
@media (hover:hover){.nav a:hover::after{right:0}}
.header-actions{display:flex;align-items:center;gap:.4rem}
.header-cta{display:none;min-height:var(--tap);padding:0 1.3rem;font-size:.875rem}
.lang-btn{
display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);min-width:var(--tap);padding:0 .8rem;
background:transparent;border:1px solid var(--line-strong);border-radius:999px;cursor:pointer;
font:400 .9rem/1 var(--zh);color:var(--brown);letter-spacing:.06em;touch-action:manipulation;
transition:border-color .3s var(--ease),background .3s var(--ease);
}
.lang-btn[lang="en"]{font-family:var(--sans);font-weight:500;font-size:.8rem;letter-spacing:.12em}
@media (hover:hover){.lang-btn:hover{border-color:var(--brown);background:rgba(69,58,50,.05)}}
.menu-btn{
display:inline-flex;align-items:center;gap:.55rem;min-height:var(--tap);min-width:var(--tap);padding:0 0 0 .6rem;
background:none;border:0;cursor:pointer;touch-action:manipulation;
font:500 .875rem/1 var(--sans);letter-spacing:.08em;color:var(--brown);
}
.menu-btn__lines{width:22px;height:8px;position:relative;flex:none}
.menu-btn__lines::before,.menu-btn__lines::after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor;transition:transform .35s var(--ease),top .35s var(--ease)}
.menu-btn__lines::before{top:0}
.menu-btn__lines::after{top:7px}
.menu-btn[aria-expanded="true"] .menu-btn__lines::before{top:4px;transform:rotate(18deg)}
.menu-btn[aria-expanded="true"] .menu-btn__lines::after{top:4px;transform:rotate(-18deg)}
.menu{
position:fixed;top:var(--header-h);left:0;right:0;bottom:0;z-index:49;background:var(--ivory);
overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
padding:1.5rem calc(var(--gutter) + var(--safe-r)) calc(1.5rem + var(--safe-b)) calc(var(--gutter) + var(--safe-l));
display:flex;flex-direction:column;justify-content:space-between;gap:2rem;
}
.menu[hidden]{display:none}
.menu ul{list-style:none;margin:0;padding:0}
.menu li{border-bottom:1px solid var(--line)}
.menu li a{display:flex;align-items:center;min-height:3.75rem;font:400 clamp(1.6rem,6vw,2rem)/1.1 var(--serif);text-decoration:none;color:var(--charcoal)}
.menu__foot .btn{width:100%}
@media (min-width:960px){
.nav,.header-cta{display:inline-flex}
.brand__en{font-size:1.3rem}
.header-actions{gap:.75rem}
.menu-btn,.menu{display:none!important}
}
.hero{display:grid;background:var(--ivory)}
.hero__media{width:100%;aspect-ratio:4/5;max-height:min(70vh,680px);max-height:min(70svh,680px)}
.hero__media img{object-position:52% 28%}
.hero__text{display:flex;flex-direction:column;padding:2rem calc(var(--gutter) + var(--safe-r)) 3rem calc(var(--gutter) + var(--safe-l))}
.hero__id{font-weight:400;margin:0}
.hero__mark{display:flex;align-items:flex-start;gap:clamp(.5rem,1.2vw,1.1rem);--mark:clamp(3.4rem,16vw,6.25rem)}
.wordmark{font:400 var(--mark)/.82 var(--latin-serif);letter-spacing:.07em;color:var(--charcoal);text-transform:uppercase;margin-left:-.04em;white-space:nowrap}
.hero__zh{display:flex;flex-direction:column;gap:.12em;flex:none;font-size:calc(var(--mark)*.29);line-height:1;color:var(--brown);padding-left:clamp(.45rem,1vw,.9rem);margin-top:.04em;border-left:1px solid var(--champagne)}
.hero__en{display:block;margin-top:1.1rem;font:italic 400 clamp(1.1rem,1.6vw,1.4rem)/1.2 var(--latin-serif);color:var(--brown)}
.hero__role{display:block;margin-top:.6rem;font:500 .8125rem/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
@media (max-width:440px){.hero__role{letter-spacing:.08em}}
.hero__headline{margin-top:clamp(1.75rem,4vh,3.25rem);max-width:15ch;font:400 clamp(1.75rem,5.5vw + .3rem,2.9rem)/1.12 var(--serif);color:var(--charcoal);letter-spacing:-.01em}
.hero__support{margin-top:1rem;max-width:30rem;color:var(--ink-soft)}
.hero__ctas{margin-top:1.75rem;display:flex;flex-wrap:wrap;gap:.75rem}
.hero__ctas .btn{flex:1 1 13rem}
@media (min-width:960px), (orientation:landscape) and (min-width:640px) and (max-height:600px){
.hero{grid-template-columns:minmax(0,11fr) minmax(0,13fr)}
.hero__media{order:2;aspect-ratio:auto;max-height:none;height:100%;min-height:100%}
.hero__text{order:1;justify-content:flex-end}
.hero__ctas .btn{flex:0 0 auto}
.hero__mark{--mark:clamp(3rem,6.4vw,7.5rem)}
.hero__headline{font-size:clamp(1.5rem,3.1vw,2.9rem)}
}
@media (min-width:960px){
.hero{height:calc(100vh - var(--header-h));height:calc(100svh - var(--header-h));min-height:620px;max-height:1020px}
.hero__text{padding:3rem clamp(2rem,4vw,4.5rem) clamp(3rem,7vh,5.5rem) max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)))}
}
@media (orientation:landscape) and (min-width:640px) and (max-height:600px){
.hero{min-height:calc(100vh - var(--header-h))}
.hero__text{padding:1.5rem 1.75rem 2rem calc(var(--gutter) + var(--safe-l))}
.hero__headline{margin-top:1.25rem}
}
.js .hero__media img,.js .page-hero__media img{transform:scale(1.045);transition:transform 2.4s var(--ease)}
.js .hero.is-in .hero__media img,.js .page-hero.is-in .page-hero__media img{transform:none}
.js .hero__text > *{opacity:0;transform:translateY(12px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .hero.is-in .hero__text > *{opacity:1;transform:none}
.js .hero.is-in .hero__text > :nth-child(2){transition-delay:.35s}
.js .hero.is-in .hero__text > :nth-child(3){transition-delay:.5s}
.js .hero.is-in .hero__text > :nth-child(4){transition-delay:.65s}
.js .reveal{opacity:0;transition:opacity 1.3s var(--ease)}
.js .reveal img{transform:scale(1.035);transition:transform 1.8s var(--ease)}
.js .reveal.is-in{opacity:1}
.js .reveal.is-in img{transform:none}
.pov__grid{display:grid;gap:2.5rem}
.pov h2{max-width:11ch}
.pov__body{margin-top:1.5rem;max-width:34rem;font-size:clamp(1.0625rem,.4vw + 1rem,1.1875rem);line-height:1.75}
.pov__media{aspect-ratio:408/340;width:100%;max-width:640px}
@media (min-width:960px){
.pov__grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:0 2rem}
.pov__copy{grid-column:1/7;padding-bottom:2rem}
.pov__body{margin-top:2rem;margin-left:clamp(0rem,5vw,6rem)}
.pov__media{grid-column:8/13}
}
.work{padding-top:0}
.work__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;align-items:start}
.work__col{display:grid;gap:.5rem}
.work__grid .ph img{transition:transform 1.4s var(--ease)}
@media (hover:hover){.work__grid .ph:hover img{transform:scale(1.03)}}
.work__more{margin-top:1.75rem;display:flex;justify-content:flex-end}
@media (min-width:760px){
.work__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
.work__col{gap:.75rem}
.work__col:nth-child(2){margin-top:2.5rem}
.work__col:nth-child(4){margin-top:1.25rem}
}
@media (min-width:960px){
.work__grid{gap:clamp(.75rem,1.2vw,1.25rem);max-width:1220px;margin-inline:auto}
.work__col{gap:clamp(.75rem,1.2vw,1.25rem)}
.work__col:nth-child(2){margin-top:4.5rem}
.work__col:nth-child(4){margin-top:2rem}
}
.styles{background:var(--cream)}
.styles__list{list-style:none;margin:0;padding:0;display:grid;gap:2rem}
.style{padding-top:1.25rem;border-top:1px solid var(--line-strong)}
.style h3{font-size:clamp(1.45rem,1.5vw + 1rem,2.1rem)}
.style p{margin-top:.6rem;font-size:.98rem;color:var(--ink-soft);max-width:32rem}
@media (min-width:640px){.styles__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.75rem 2rem}}
@media (min-width:1080px){.styles__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:3.5rem clamp(1.5rem,2.5vw,2.75rem)}}
.services__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-strong)}
.service{display:grid;gap:.75rem;padding:1.75rem 0 1.5rem;border-bottom:1px solid var(--line)}
.service__note{display:block;margin-top:.45rem;font:400 .82rem/1.4 var(--sans);color:var(--ink-soft)}
.service__desc{max-width:38rem}
.service__plan{margin-top:.75rem;max-width:38rem;font-size:.95rem;color:var(--ink-soft)}
.service__plan strong{font-weight:500;color:var(--brown)}
.service__cta{justify-self:start}
@media (min-width:960px){
.service{grid-template-columns:minmax(0,4fr) minmax(0,6fr) minmax(0,2.4fr);gap:clamp(1.5rem,3vw,3rem);padding:2.4rem 0}
.service__cta{justify-self:end;align-self:start;margin-top:-.4rem;text-align:right}
}
.alice{background:var(--cream)}
.alice__grid{display:grid;gap:2.5rem}
.alice__portrait{aspect-ratio:284/438;width:100%;max-width:400px}
.alice__copy p{margin-top:1rem;max-width:34rem}
.alice__copy p:first-of-type{margin-top:1.5rem}
.name-meaning{display:flex;flex-wrap:wrap;gap:1.25rem 2.5rem;margin-top:2.25rem;padding-top:1.75rem;border-top:1px solid var(--line-strong)}
.name-meaning div{display:flex;align-items:center;gap:.9rem}
.name-meaning dt{font-family:var(--zh);font-weight:300;font-size:clamp(2.4rem,6vw,3rem);line-height:1;color:var(--charcoal)}
.name-meaning dd{font:italic 400 1.15rem/1.2 var(--serif);color:var(--ink-soft)}
@media (min-width:760px) and (max-width:959px){
.alice__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2.5rem;align-items:start}
}
@media (min-width:960px){
.alice__grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 2rem;align-items:center}
.alice__portrait{grid-column:1/6;justify-self:end;max-width:440px}
.alice__copy{grid-column:7/13}
}
.training__list{margin:0;border-top:1px solid var(--line-strong)}
.training__row{display:grid;gap:.7rem;padding:1.6rem 0;border-bottom:1px solid var(--line)}
.training__area{font:italic 400 1.45rem/1.15 var(--serif);color:var(--charcoal)}
.training__quals{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;font-weight:500;color:var(--brown);font-size:.97rem}
.training__means{color:var(--ink-soft);max-width:36rem}
@media (min-width:640px){
.training__row{grid-template-columns:9rem minmax(0,1fr);gap:.6rem 2rem}
.training__area{grid-row:1/3}
.training__quals,.training__means{grid-column:2}
}
@media (min-width:1024px){
.training__row{grid-template-columns:minmax(0,2.4fr) minmax(0,4fr) minmax(0,5.6fr);gap:clamp(1.5rem,3vw,3rem);padding:2.2rem 0}
.training__area{grid-row:auto}
.training__quals{grid-column:2}
.training__means{grid-column:3}
}
.sg{background:var(--blush)}
.sg__grid{display:grid;gap:2.75rem}
.sg__media{aspect-ratio:330/324;width:100%;max-width:520px}
.sg__points{display:grid;gap:1.75rem;margin-top:2.25rem}
.sg__point{padding-top:1.15rem;border-top:1px solid rgba(69,58,50,.28)}
.sg__point p{margin-top:.55rem;color:var(--brown);font-size:.98rem}
@media (min-width:640px){.sg__points{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 2rem}}
@media (min-width:1080px){
.sg__grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 2rem;align-items:start}
.sg__copy{grid-column:1/8}
.sg__media{grid-column:9/13;margin-top:6rem}
}
.process__head{margin-bottom:clamp(2.25rem,5vw,4rem)}
.process__head p{margin-top:1rem}
.steps{list-style:none;margin:0;padding:0;display:grid}
.step{position:relative;padding:0 0 2.25rem 2.75rem;margin-left:.85rem;border-left:1px solid var(--line-strong)}
.step:last-child{padding-bottom:0;border-left-color:transparent}
.step__num{position:absolute;left:-.85rem;top:0;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--ivory);border:1px solid var(--champagne);display:grid;place-items:center;font:500 .8rem/1 var(--sans);color:var(--brown)}
.step h3{line-height:1.15}
.step p{margin-top:.55rem;color:var(--ink-soft);max-width:32rem}
@media (min-width:960px){
.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:2.5rem}
.step,.step:last-child{padding:3rem 0 0;margin:0;border-left:0;border-top:1px solid var(--line-strong)}
.step__num{left:0;top:-.85rem}
}
.words{background:var(--cream)}
.words h2{margin-bottom:clamp(2.25rem,5vw,4rem)}
.words__grid{display:grid;gap:2.5rem}
.quote{border-top:1px solid var(--line-strong);padding-top:1.5rem}
.quote blockquote p{font:400 clamp(1.2rem,1vw + 1rem,1.55rem)/1.4 var(--serif);color:var(--charcoal)}
.quote--lead blockquote p{font-size:clamp(1.45rem,2.2vw + .8rem,2.3rem);line-height:1.28}
.quote figcaption{margin-top:1.1rem;font-size:.9rem;color:var(--ink-soft)}
.quote figcaption strong{font-weight:500;color:var(--brown);display:block}
.dev-note{margin-top:2.25rem;font-size:.85rem;color:var(--ink-soft)}
@media (min-width:960px){
.words__grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 clamp(1.5rem,3vw,3rem)}
.quote--lead{grid-column:1/8;grid-row:1/3}
.quote:nth-child(2){grid-column:9/13}
.quote:nth-child(3){grid-column:9/13;margin-top:3rem}
}
.faq__grid{display:grid;gap:2rem}
.faq__intro .lede{margin-top:1rem}
.faq__list{border-top:1px solid var(--line-strong)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:1.25rem;
padding:1.25rem 0;min-height:var(--tap);font:400 clamp(1.1rem,.6vw + 1rem,1.35rem)/1.32 var(--serif);color:var(--charcoal);
touch-action:manipulation;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
content:"";flex:0 0 13px;height:13px;margin-top:.45rem;
background:linear-gradient(var(--brown),var(--brown)) center/100% 1px no-repeat,linear-gradient(var(--brown),var(--brown)) center/1px 100% no-repeat;
transition:transform .4s var(--ease);
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq__answer{padding:0 0 1.5rem;max-width:42rem;color:var(--ink-soft)}
.faq__answer p + p{margin-top:.75rem}
.confirm{font-weight:500;color:var(--brown);background:rgba(199,173,130,.22);padding:.05rem .35rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}
@media (min-width:960px){
.faq__grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 2rem}
.faq__intro{grid-column:1/5}
.faq__list{grid-column:6/13}
}
.morning{position:relative;background:var(--brown);color:var(--ivory);overflow:hidden;padding-block:var(--section)}
.morning__grid{display:grid;gap:2.25rem;align-items:center;position:relative;z-index:2}
.morning__media{aspect-ratio:330/324;width:100%;max-width:520px}
.morning__zh{position:absolute;z-index:1;right:calc(var(--gutter) + var(--safe-r));bottom:1.25rem;font-family:var(--zh);font-weight:300;font-size:clamp(5rem,14vw,10rem);line-height:1;color:rgba(199,173,130,.22)}
.morning h2{color:var(--ivory);max-width:14ch}
.morning p{margin-top:1.25rem;max-width:32rem;color:rgba(248,244,237,.88);font-size:clamp(1rem,.4vw + .95rem,1.175rem)}
.morning .btn{margin-top:2rem}
@media (max-width:639px){.morning .btn{width:100%}.morning__zh{display:none}}
@media (min-width:960px){
.morning__grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 2rem}
.morning__media{grid-column:1/6}
.morning__content{grid-column:7/13}
.morning__zh{bottom:auto;top:clamp(2rem,5vw,4rem);color:rgba(199,173,130,.35)}
}
.enquire__grid{display:grid;gap:3rem}
.enquire__intro p{margin-top:1.1rem}
.direct{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid var(--line-strong)}
.direct li{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.25rem;border-bottom:1px solid var(--line)}
.direct span{font-size:.9rem;color:var(--ink-soft);flex:none}
.direct a{display:inline-flex;align-items:center;min-height:var(--tap);font-weight:500;text-decoration:none;overflow-wrap:anywhere;text-align:right}
@media (hover:hover){.direct a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--champagne)}}
.form{display:grid;gap:1.6rem;min-width:0}
.form__row{display:grid;gap:1.6rem}
.field{display:grid;gap:.3rem;min-width:0}
.field label,.field legend{font:500 .875rem/1.35 var(--sans);letter-spacing:.02em;color:var(--brown);padding:0}
.req{color:var(--ink-soft);font-weight:400}
.field input,.field select,.field textarea{
display:block;width:100%;min-width:0;min-height:3rem;
font:400 1.0625rem/1.4 var(--sans);color:var(--charcoal); 
background:transparent;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;
padding:.6rem 0;-webkit-appearance:none;appearance:none;
transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.field input[type="date"]{min-height:3rem;line-height:1.8;color:var(--charcoal)}
.field input[type="date"]::-webkit-date-and-time-value{text-align:left}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--brown);box-shadow:0 1px 0 var(--brown)}
.field input::placeholder,.field textarea::placeholder{color:#968a7f}
.field select{
padding-right:1.75rem;cursor:pointer;
background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23453A32' stroke-width='1.2'/%3E%3C/svg%3E") right .2rem center/12px 8px no-repeat;
}
.field textarea{min-height:8rem;resize:vertical}
.field #f-schedule{min-height:4.5rem}
.field[aria-invalid="true"] input{border-bottom-color:#9b3d2f}
.field__error{font-size:.85rem;color:#9b3d2f}
.field__error:empty{display:none}
fieldset.field{border:0;margin:0;padding:0;min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.chip span{
display:inline-flex;align-items:center;min-height:var(--tap);padding:0 1.1rem;border-radius:999px;
border:1px solid var(--line-strong);font-size:.92rem;line-height:1.2;
transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);
}
.chip input:checked + span{background:var(--brown);border-color:var(--brown);color:var(--ivory)}
.chip input:focus-visible + span{outline:2px solid var(--brown);outline-offset:3px}
@media (hover:hover){.chip:hover span{border-color:var(--brown)}}
.form__submit{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.form__submit .btn{flex:1 1 16rem}
.form__status{font-size:.95rem;color:var(--brown);flex:1 1 100%}
.form__status:empty{display:none}
.form__privacy{font-size:.85rem;color:var(--ink-soft)}
@media (min-width:640px){
.form__row{grid-template-columns:1fr 1fr}
.form__submit .btn{flex:0 0 auto}
}
@media (min-width:960px){
.enquire__grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 2rem}
.enquire__intro{grid-column:1/5}
.form{grid-column:6/13}
}
.footer{background:var(--charcoal);color:rgba(248,244,237,.82);padding-block:clamp(3.5rem,7vw,6rem) calc(2rem + var(--safe-b))}
.footer__grid{display:grid;gap:2.5rem}
.footer .brand{color:var(--ivory);padding-top:0}
.footer .brand__en{font-size:1.9rem}
.footer .brand__zh{color:rgba(248,244,237,.7);font-size:1.35rem}
.footer__line{margin-top:.9rem;max-width:24rem;font-size:.95rem}
.footer h2{font:500 .8125rem/1 var(--sans);letter-spacing:.14em;color:rgba(248,244,237,.62);margin-bottom:.75rem;text-transform:uppercase}
.footer ul{list-style:none;margin:0;padding:0;display:grid}
.footer ul a{display:inline-flex;align-items:center;min-height:2.6rem;text-decoration:none;color:var(--ivory);overflow-wrap:anywhere}
@media (hover:hover){.footer ul a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--champagne)}}
.footer__base{margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(248,244,237,.14);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 1rem;font-size:.85rem;color:rgba(248,244,237,.6)}
@media (min-width:720px){.footer__grid{grid-template-columns:2fr 1fr 1fr}}
@media (max-width:959px){.footer{padding-bottom:calc(6.5rem + var(--safe-b))}}
.sticky-cta{
position:fixed;z-index:40;
left:calc(.75rem + var(--safe-l));right:calc(.75rem + var(--safe-r));bottom:calc(.75rem + var(--safe-b));
display:flex;align-items:center;justify-content:center;min-height:54px;border-radius:999px;
background:var(--brown);color:var(--ivory);text-decoration:none;
font:500 .95rem/1 var(--sans);letter-spacing:.08em;
box-shadow:0 10px 30px -12px rgba(48,45,42,.55);
transform:translateY(calc(100% + 2rem + var(--safe-b)));transition:transform .5s var(--ease);
touch-action:manipulation;
}
.sticky-cta.is-visible{transform:none}
.menu-open .sticky-cta{transform:translateY(calc(100% + 2rem + var(--safe-b)))}
@media (min-width:640px){.sticky-cta{left:auto;right:calc(1.25rem + var(--safe-r));bottom:calc(1.25rem + var(--safe-b));padding:0 2rem}}
@media (min-width:960px){.sticky-cta{display:none}}
html[lang="zh-Hans"]{
--serif:"Noto Serif SC","Songti SC","STSong",serif;
--sans:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
html[lang="zh-Hans"] body{line-height:1.9;letter-spacing:.02em}
html[lang="zh-Hans"] h2{line-height:1.32;letter-spacing:.03em}
html[lang="zh-Hans"] h3{line-height:1.45;letter-spacing:.02em}
html[lang="zh-Hans"] .hero__headline{line-height:1.4;max-width:11em;letter-spacing:.04em}
html[lang="zh-Hans"] .hero__role{letter-spacing:.3em}
html[lang="zh-Hans"] .pov h2{max-width:9em}
html[lang="zh-Hans"] .morning h2{max-width:10em}
html[lang="zh-Hans"] .training__area,
html[lang="zh-Hans"] .name-meaning dd{font-style:normal}
html[lang="zh-Hans"] .btn{letter-spacing:.12em}
html[lang="zh-Hans"] .faq summary{line-height:1.5}
html[lang="zh-Hans"] .quote blockquote p{line-height:1.6}
html[lang="zh-Hans"] .menu li a{letter-spacing:.06em}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
.js .hero__media img,.js .page-hero__media img,.js .hero__text > *,.js .reveal,.js .reveal img{opacity:1!important;transform:none!important;clip-path:none!important}
}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400 900;font-display:swap;
src:url(/assets/fonts/bodoni-moda-latin-opsz-normal.woff2) format("woff2-variations"),url(/assets/fonts/bodoni-moda-latin-opsz-normal.woff2) format("woff2");}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400 900;font-display:swap;
src:url(/assets/fonts/bodoni-moda-latin-opsz-italic.woff2) format("woff2-variations"),url(/assets/fonts/bodoni-moda-latin-opsz-italic.woff2) format("woff2");}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;
src:url(/assets/fonts/hanken-grotesk-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;
src:url(/assets/fonts/hanken-grotesk-latin-500-normal.woff2) format("woff2");}
.page-hero{display:grid;background:var(--ivory)}
.page-hero__media{width:100%;aspect-ratio:4/5;max-height:min(66vh,620px);max-height:min(66svh,620px)}
.page-hero__media img{object-position:50% 30%}
.page-hero__text{display:flex;flex-direction:column;padding:1.5rem calc(var(--gutter) + var(--safe-r)) 3rem calc(var(--gutter) + var(--safe-l))}
.page-hero h1{
margin:.9rem 0 0;max-width:13ch;font:400 clamp(2.3rem,7vw + .4rem,4.5rem)/1.04 var(--serif);
letter-spacing:-.015em;color:var(--charcoal);overflow-wrap:break-word;
}
.page-hero__lede{margin-top:1.2rem;max-width:34rem;font-size:clamp(1.05rem,.5vw + .95rem,1.2rem);color:var(--ink-soft)}
.page-hero .hero__ctas{margin-top:1.75rem}
.page-hero__art{background:var(--cream);display:grid;place-items:center;overflow:hidden}
.page-hero__art svg{width:min(88%,520px);height:auto}
@media (min-width:960px){
.page-hero{grid-template-columns:minmax(0,11fr) minmax(0,10fr);min-height:min(80vh,780px)}
.page-hero__media{order:2;aspect-ratio:auto;max-height:none;height:100%;min-height:100%}
.page-hero__text{order:1;justify-content:center;padding:3.5rem clamp(2rem,4vw,4.5rem) 4rem max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)))}
.page-hero .hero__ctas .btn{flex:0 0 auto}
}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;column-gap:.5rem;font-size:.875rem;color:var(--ink-soft)}
.crumbs li{display:flex;align-items:center;gap:.5rem}
.crumbs li + li::before{content:"/";color:var(--champagne)}
.crumbs a{display:inline-flex;align-items:center;min-height:var(--tap);text-decoration:none;color:var(--ink-soft)}
@media (hover:hover){.crumbs a:hover{color:var(--brown);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--champagne)}}
.tag{display:inline-flex;align-items:center;align-self:flex-start;min-height:30px;margin-top:.5rem;padding:0 .85rem;border-radius:999px;
border:1px solid var(--champagne);background:rgba(199,173,130,.16);font:500 .8125rem/1 var(--sans);letter-spacing:.03em;color:var(--brown)}
.svc{list-style:none;margin:0;padding:0;display:grid;gap:2.25rem}
.svc__item{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:1.1rem;align-items:start;padding-top:1.25rem;border-top:1px solid var(--line-strong)}
.svc__media{aspect-ratio:4/5}
.svc__media.page-hero__art svg{width:86%}
.svc__item h3{font-size:clamp(1.35rem,1.4vw + 1rem,1.9rem)}
.svc__item p{margin-top:.5rem;color:var(--ink-soft);font-size:.98rem}
.svc__item .text-link{margin-top:.35rem}
@media (min-width:760px){.svc{grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem 2.5rem}}
.service--2{grid-template-columns:none}
@media (min-width:960px){.service--2{grid-template-columns:minmax(0,4fr) minmax(0,8.4fr)}}
.after-list{margin-top:1.25rem;font-size:.95rem;color:var(--ink-soft)}
.work__grid .ph img{position:static;width:100%;height:auto}
@media (min-width:960px){.steps--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.split{display:grid;gap:1.75rem}
.split__head .lede{margin-top:1rem}
@media (min-width:960px){
.split{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 2rem}
.split__head{grid-column:1/5}
.split__body{grid-column:6/13}
}
.facts{margin:0;border-top:1px solid var(--line-strong)}
.facts > div{display:grid;gap:.2rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.facts dt{font:500 .875rem/1.45 var(--sans);color:var(--ink-soft)}
.facts dd{margin:0;color:var(--charcoal)}
@media (min-width:640px){.facts > div{grid-template-columns:15rem minmax(0,1fr);gap:2rem}}
.note{max-width:46rem;padding:1.25rem 1.4rem;border-left:2px solid var(--champagne);background:rgba(199,173,130,.12);color:var(--brown)}
.note p + p{margin-top:.6rem}
.note strong{font-weight:500}
.note-wrap{margin-top:2rem}
.creds{list-style:none;margin:1.75rem 0 0;padding:0;border-top:1px solid var(--line-strong)}
.creds li{padding:.7rem 0;border-bottom:1px solid var(--line);font-weight:500;font-size:.97rem}
.prose{max-width:42rem}
.prose h2{font-size:clamp(1.4rem,1vw + 1.1rem,1.75rem);margin-top:2.5rem}
.prose p,.prose ul{margin-top:.8rem}
.prose ul{padding-left:1.2rem}
.prose .updated{color:var(--ink-soft);font-size:.9rem;margin-top:1rem}
.inline-link{color:var(--brown);text-decoration:underline;text-decoration-color:var(--champagne);text-underline-offset:3px}
@media (min-width:960px) and (max-width:1099px){
.nav,.header-cta{display:none!important}
.menu-btn{display:inline-flex!important}
.menu:not([hidden]){display:flex!important}
}
@media (min-width:1100px){.nav ul{gap:clamp(1.1rem,1.8vw,2rem)}}
@media (min-width:960px){.footer__grid{grid-template-columns:2fr 1fr 1fr 1.2fr}}
.footer ul a.is-quiet{color:rgba(248,244,237,.7)}
.lang-btn{text-decoration:none;font-weight:300}
.lang-btn[lang="en"]{font-weight:500}
.prose h1{margin:.75rem 0 0;font:400 clamp(2.3rem,6vw + .4rem,3.8rem)/1.06 var(--serif);color:var(--charcoal);letter-spacing:-.01em}
.notfound{min-height:100vh;min-height:100svh;display:grid;place-items:center;text-align:center;padding:2rem 1.25rem}
.notfound main{max-width:32rem}
.notfound__mark{font:300 4.5rem/1 var(--zh);color:var(--champagne)}
.notfound h1{margin:1.5rem 0 .5rem;font:400 clamp(1.8rem,6vw,2.6rem)/1.15 var(--serif);color:var(--charcoal)}
.notfound p{margin:.5rem auto;color:var(--ink-soft)}
.notfound .zh-line{font-family:var(--zh);font-weight:400}
.notfound .btn{margin-top:1.75rem}
.signout{display:inline-flex;align-items:center;min-height:var(--tap);color:inherit;text-decoration:underline;text-decoration-color:var(--champagne);text-underline-offset:4px}
.signout--menu{justify-content:center;width:100%;margin-top:.5rem;color:var(--brown)}
.signout--header{display:none;font-size:.875rem;color:var(--ink-soft);margin-right:.25rem}
@media (min-width:1100px){.signout--header{display:inline-flex}}
.wechat-copy{display:inline-flex;align-items:center;min-height:var(--tap);padding:0;border:0;background:none;cursor:pointer;
font:inherit;font-weight:500;color:inherit;text-decoration:underline;text-decoration-color:var(--champagne);text-underline-offset:4px;touch-action:manipulation}
.wechat-copy::after{content:"⧉";margin-left:.4rem;font-size:.85em;opacity:.6;text-decoration:none}
.wechat-copy.is-copied::after{content:"✓";opacity:1}
.wechat-copy:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.direct .wechat-copy{text-align:right}
.copy-status{margin-top:.75rem;font-size:.9rem;color:var(--brown)}
.copy-status:empty{display:none}
.footer__wechat{display:flex;flex-wrap:wrap;align-items:center;column-gap:.4rem;color:var(--ivory)}
.wechat-copy--footer{font-weight:400;color:var(--ivory)}
.copy-tip{flex-basis:100%;font-size:.8rem;color:rgba(248,244,237,.75)}
/* Chinese glyphs: Noto Serif SC (SIL Open Font License), subset to the characters this site uses */
@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/noto-serif-sc-brand.8933e95745.woff2) format("woff2")}
@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/noto-serif-sc-headings.b47f323a18.woff2) format("woff2")}
