@font-face{font-family:LocalSerif;src:local('Georgia')}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:#f6f3ec;color:#30352b;font-family:Arial,'Microsoft YaHei',sans-serif;font-size:15px;line-height:1.65}body:has(dialog[open]){overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}button{border:0;background:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #9a753e;outline-offset:6px}::selection{background:#cfd3bd;color:#30352b}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman','Microsoft YaHei',serif;font-weight:400}h2{font-size:clamp(40px,5.2vw,78px);line-height:1.1;letter-spacing:-2.8px}h2 em{font-weight:400;color:#777d60}p{max-width:60ch}small{display:block}section[id]{scroll-margin-top:0}.section-pad{padding:100px max(6.25vw,24px)}.site-header{height:88px;position:absolute;top:0;left:0;width:100%;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 4%;color:#fff;border-bottom:1px solid #ffffff38;transition:background .3s,color .3s,box-shadow .3s}.site-header.scrolled{position:fixed;background:#f6f3ecf5;color:#30352b;box-shadow:0 1px 0 #30352b16;backdrop-filter:blur(15px);height:76px}.wordmark{display:flex;gap:10px;align-items:center;font-family:Georgia,serif;font-size:27px;line-height:1.2;letter-spacing:.2px}.wordmark small{font:8px Arial,sans-serif;letter-spacing:2.8px;margin-top:6px}.brand-icon{width:32px;height:44px;object-fit:contain}.desktop-nav{display:flex;gap:30px;font-size:12px}.desktop-nav a{position:relative}.desktop-nav a:after{content:'';position:absolute;left:0;bottom:-6px;height:1px;width:0;background:currentColor;transition:width .3s}.desktop-nav a:hover:after{width:100%}.header-actions{display:flex;gap:23px;align-items:center;font-size:12px}.language{padding:8px 0;font-size:12px}.book-link{border-bottom:1px solid #ffffff70;padding:9px 0}.scrolled .book-link{border-color:#30352b60}.menu-toggle{display:none;padding:9px}.menu-toggle span{display:block;width:23px;height:1px;background:currentColor;margin:6px 0}.mobile-menu{position:fixed;z-index:29;top:76px;background:#f6f3ec;left:0;right:0;padding:25px;color:#30352b;border-bottom:1px solid #deded1}.mobile-menu:not([hidden]){display:grid;gap:20px}.hero{height:100svh;min-height:680px;position:relative;background:#555341;color:white;overflow:hidden}.hero-film{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:65% center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,31,22,.73),rgba(34,37,27,.32) 50%,rgba(27,31,23,.08)),linear-gradient(0deg,rgba(19,24,15,.35),transparent 45%)}.hero-content{position:relative;z-index:1;padding:clamp(160px,24vh,260px) 6.25vw 150px;max-width:1000px}.eyebrow{font:10px Arial,sans-serif;font-weight:500;letter-spacing:2.1px;line-height:1.6;color:#6d735b}.eyebrow.light{color:#f0ead9}.hero h1{font-size:clamp(54px,6.2vw,94px);line-height:1.04;letter-spacing:-3.3px;margin:24px 0}.hero-description{font-size:14px;line-height:1.8;font-weight:400;color:#f2eee5cc}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;padding:16px 23px;font-size:12px;line-height:1.5;min-height:52px;transition:background .25s,transform .25s}.button:hover{transform:translateY(-2px)}.button.cream{background:#f6f3ec;color:#353c2f}.button.cream:hover{background:#e3e6d5}.hero .button{margin-top:30px}.button.olive{background:#535f43;color:#fff}.button.olive:hover{background:#3f4933}.hero-bottom{position:absolute;bottom:32px;left:6.25%;right:6.25%;display:flex;align-items:center;justify-content:space-between;z-index:2;color:#ffffffe0;font-size:9px;letter-spacing:1.6px}.scroll-cue{display:flex;align-items:center;gap:14px}.scroll-line{height:35px;width:1px;background:#ffffff80;position:relative;overflow:hidden}.scroll-line:after{content:'';position:absolute;top:-20px;height:15px;background:#fff;width:1px;animation:scroll 2.2s infinite}@keyframes scroll{to{transform:translateY(60px)}}.film-control{border:1px solid #ffffff50;padding:9px 13px;display:flex;gap:12px;align-items:center;color:white;font-size:10px;letter-spacing:.3px}.section-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:48px}.section-top>span:not(.tiny-leaf){font-size:9px;letter-spacing:1.7px}.tiny-leaf{font-size:38px;color:#8c9474;line-height:1}.philosophy-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;align-items:start}.philosophy-copy{padding-top:8px;font-size:14px;color:#75786b}.philosophy-copy .lead{font-size:21px;color:#404935;line-height:1.6;margin-bottom:24px}.text-link{display:inline-flex;align-items:center;gap:35px;padding:0 0 10px;border-bottom:1px solid #7e84664d;font-size:12px;color:#414b34}.text-link span{font-size:18px}.text-link:hover{border-color:currentColor}.philosophy-copy .text-link{margin-top:28px}.wide-space{margin-top:65px}.wide-space img{height:550px;object-position:center 54%}.wide-space figcaption{display:flex;justify-content:space-between;font-size:10px;color:#818273;margin-top:14px}.wide-space figcaption span:last-child{font-size:8px;letter-spacing:1.6px}.herbal-story{height:160vh;position:relative;background:#e9e7dc}.herbal-sticky{position:sticky;top:76px;min-height:700px;height:calc(100svh - 76px);display:grid;grid-template-columns:1.05fr 1fr;align-items:center;overflow:hidden}.herbal-visual{height:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.herbal-visual>img{position:absolute;width:70%;height:75%;object-fit:contain;filter:drop-shadow(0 25px 18px #454c2520);transition:opacity .15s;will-change:opacity,transform}.herbal-visual>#herbal-reveal{width:100%;height:100%;object-fit:cover;opacity:0;filter:none;mix-blend-mode:multiply}.herbal-copy{padding:60px 12% 60px 8%;position:relative;z-index:2}.herbal-copy h2{font-size:clamp(40px,4.2vw,64px);margin:26px 0}.herbal-copy>p:not(.eyebrow){font-size:14px;color:#737764;margin-bottom:28px}.chapter-progress{margin-top:50px;height:1px;background:#b7bca5;max-width:230px}.chapter-progress span{display:block;width:0;background:#586342;height:2px}.botanical-note{display:block;font-size:8px;letter-spacing:2px;margin-top:18px;color:#828970}.rituals{background:#f6f3ec}.section-aside{font-size:12px;color:#787c6d}.rituals h2{margin-bottom:36px}.filters{display:flex;gap:30px;border-bottom:1px solid #dcded2;margin-bottom:40px;overflow-x:auto;scrollbar-width:thin}.filters button{white-space:nowrap;font-size:12px;padding:14px 0;color:#838779;position:relative}.filters button.active{color:#36432c}.filters button.active:after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:#536241}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 26px}.service-card{min-width:0}.service-card button{display:block;width:100%;text-align:left;padding:0}.service-image{aspect-ratio:4/4.6;overflow:hidden;position:relative;background:#e6e2d7}.service-image img{transition:transform .8s cubic-bezier(.2,.6,.2,1)}.service-card button:hover img{transform:scale(1.045)}.image-note{position:absolute;bottom:12px;left:12px;background:#f6f3ecee;color:#555c48;padding:5px 8px;font:8px Arial;letter-spacing:1px}.service-info{position:relative;padding:17px 30px 0 0}.service-duration{font-size:9px;color:#828875;letter-spacing:1.3px;margin-bottom:6px}.service-info h3{font-size:24px;line-height:1.18;letter-spacing:-.5px}.service-zh{display:block;margin-top:7px;font-size:11px;color:#878b7c;letter-spacing:1px}.service-arrow{position:absolute;right:1px;top:33px;font-size:23px;color:#5b654c}.service-card[hidden]{display:none}.ritual-note{margin-top:45px;font-size:13px;color:#7e8373}.rituals>.text-link{margin-top:13px}.couple-feature{position:relative;height:740px;overflow:hidden;color:#fff;background:#655b44}.couple-feature>img{position:absolute;inset:0;object-position:center 45%}.couple-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#1d2519b3,transparent 85%)}.couple-copy{position:relative;z-index:1;padding:115px 6.25vw;max-width:800px}.couple-copy h2{font-size:clamp(60px,7vw,104px);margin:20px 0}.couple-copy h2 em{color:#ebe6d3}.couple-copy>p:not(.eyebrow){font-size:14px;color:#f0eee5de;line-height:1.8}.couple-copy .button{margin-top:32px}.space-heading{display:flex;align-items:end;justify-content:space-between;gap:9%;margin-bottom:54px}.space-heading>p{max-width:330px;font-size:14px;color:#7f8374}.space-gallery{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:start}.space-gallery figure:nth-child(2){margin-top:100px}.space-photo{display:block;position:relative;padding:0;width:100%;overflow:hidden}.space-photo img{aspect-ratio:1.25;transition:transform .7s}.space-photo:hover img{transform:scale(1.035)}.space-photo span{position:absolute;right:20px;bottom:15px;font-size:23px;color:#fff}.space-gallery figcaption{font-size:10px;letter-spacing:1px;margin-top:15px;color:#777e69}.faq{background:#eeeee4;display:grid;grid-template-columns:1fr 1.1fr;gap:10%;padding-top:90px;padding-bottom:90px}.faq h2{font-size:clamp(35px,4vw,58px);margin-top:24px}.faq-list details{border-bottom:1px solid #cfd3c1;padding:22px 0}.faq-list details:first-child{padding-top:0}.faq-list summary{list-style:none;font-size:14px;cursor:pointer;padding-right:30px;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:0;top:-3px;font-size:22px;font-weight:300}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:13px;color:#7a806d;margin-top:14px;padding-right:20px}.visit{display:grid;grid-template-columns:1fr 1fr;background:#e2e5d6}.visit-photo img{height:100%;min-height:750px;object-position:48% center}.visit-copy{padding:85px 12% 80px 13%}.visit h2{margin:26px 0 30px;font-size:clamp(45px,5vw,72px)}.visit address{font-style:normal;font-size:13px;line-height:1.9;color:#6b735d}.contact-lines{margin:25px 0}.contact-lines a{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin:8px 0;max-width:330px}.contact-lines span{font-size:10px;color:#707b60}.map-link{display:block;margin-top:24px;font-size:11px;text-decoration:underline;text-underline-offset:5px}.hours-note{font-size:11px;margin-top:18px;color:#788268}footer{background:#f6f3ec;padding:55px 6.25vw 25px}.footer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:48px;gap:20px}.footer-brand{font:34px Georgia,serif}.footer-brand small{font:8px Arial;letter-spacing:2.7px;margin-top:9px}.footer-top p{font:italic 18px Georgia,serif;color:#7d856b}.back-top{font-size:11px}.footer-bottom{border-top:1px solid #dedfd4;padding-top:23px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:9px;color:#929786}.footer-bottom button{font-size:9px;padding:0}.skip{position:fixed;top:10px;left:10px;background:#fff;z-index:100;padding:10px;transform:translateY(-200%)}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.reveal{opacity:0;transform:translateY(25px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:none}dialog{padding:0;border:0;background:#f6f3ec;color:#30352b;max-height:90svh;max-width:1000px;width:90%;overscroll-behavior:contain}dialog::backdrop{background:#1c231bc7;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:15px;top:15px;background:#f6f3ecf0;width:40px;height:40px;display:grid;place-items:center;font-size:27px;z-index:2;line-height:1}.dialog-layout{display:grid;grid-template-columns:1fr 1fr;min-height:550px}.dialog-photo{height:100%;position:relative}.dialog-photo img{height:100%;min-height:550px;object-fit:cover}.dialog-info{padding:65px 45px 45px}.dialog-info h2{font-size:42px;letter-spacing:-1.3px;margin:17px 0 8px}.dialog-info .chinese-name{font-size:13px;color:#838a74}.dialog-info .description{font-size:14px;color:#6f7861;margin:26px 0 20px}.duration-options{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.duration-options span{border:1px solid #d3d8c3;padding:7px 12px;font-size:11px}.dialog-info .detail-note{font-size:11px;color:#919681;margin-bottom:25px}.dialog-info .button{width:100%;gap:15px}.gallery-dialog{background:#1b2219;color:white;max-width:1200px;width:92%;padding-bottom:20px}.gallery-dialog img{height:auto;max-height:76svh;object-fit:contain}.gallery-dialog p{padding:15px 25px 0;font-size:12px}.privacy-dialog{max-width:650px;padding:65px 45px 45px}.privacy-dialog h2{font-size:35px;letter-spacing:-1px;margin:20px 0}.privacy-dialog>p:not(.eyebrow){font-size:14px;color:#6f7861;margin:15px 0}html[lang=zh] h1,html[lang=zh] h2{letter-spacing:1px;line-height:1.25}html[lang=zh] .hero h1{font-size:clamp(48px,5.5vw,82px)}html[lang=zh] .service-info h3{font-size:25px}html[lang=zh] .service-zh{letter-spacing:0;font-size:10px;line-height:1.4}
@media(min-width:1700px){.hero-content{padding-top:27vh}.wide-space img{height:650px}.service-grid{gap:55px 35px}.section-pad{padding-top:120px;padding-bottom:120px}}
@media(max-width:1100px){.desktop-nav{gap:19px}.header-actions{gap:15px}.wordmark{font-size:23px}.wordmark small{letter-spacing:2px}.hero-content{padding-top:24vh}.hero h1{font-size:75px}.herbal-copy{padding-right:10%;padding-left:6%}.herbal-copy h2{font-size:47px}.service-info h3{font-size:22px}.wide-space img{height:430px}.contact-lines a{font-size:12px}.visit-copy{padding:70px 10%}.visit-photo img{min-height:700px}}
@media(max-width:800px){html{scroll-padding-top:76px}.site-header{height:76px;padding:0 24px}.desktop-nav{display:none}.menu-toggle{display:block}.header-actions{gap:19px}.book-link{display:none}.wordmark{font-size:24px}.brand-icon{width:27px;height:36px}.hero{min-height:650px;max-height:1000px}.hero-film{object-fit:cover;object-position:58% center;opacity:.95}.hero-content{padding:190px 7% 130px}.hero h1{font-size:clamp(55px,9.5vw,78px);letter-spacing:-2px}.hero-shade{background:linear-gradient(90deg,#1b2116bf,#1c231642),linear-gradient(0deg,#1c23164d,transparent)}.hero-bottom{left:7%;right:7%;bottom:28px}.hero-location{display:none}.hero-description{font-size:13px}.section-pad{padding:75px 7%}.philosophy-grid{gap:8%;grid-template-columns:1fr 1fr}.philosophy-copy .lead{font-size:18px}.philosophy-copy{font-size:13px}.section-top{margin-bottom:35px}h2{letter-spacing:-1.5px}.wide-space{margin-top:45px}.wide-space img{height:370px}.herbal-story{height:auto}.herbal-sticky{position:relative;top:0;height:auto;min-height:unset;grid-template-columns:1fr}.herbal-visual{height:480px}.herbal-visual>img{width:70%;height:90%}.herbal-visual>#herbal-product{opacity:1!important;transform:none!important}.herbal-visual>#herbal-reveal{display:none}.herbal-copy{padding:0 7% 65px}.herbal-copy h2{font-size:48px}.chapter-progress{display:none}.botanical-note{margin-top:30px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 20px}.filters{gap:23px}.service-info h3{font-size:23px}.couple-feature{height:650px}.couple-copy{padding:100px 7%}.couple-copy h2{font-size:76px}.space-heading{align-items:start;gap:8%}.space-heading>p{max-width:240px;font-size:13px}.space-gallery{gap:24px;grid-template-columns:1fr 1fr}.space-gallery figure:nth-child(2){margin-top:65px}.space-gallery img{aspect-ratio:.85}.faq{grid-template-columns:1fr;gap:45px}.faq h2{font-size:43px}.visit{grid-template-columns:1fr}.visit-photo{height:440px}.visit-photo img{min-height:0;object-position:center 50%}.visit-copy{padding:65px 7%}.visit h2{font-size:60px}.visit address{font-size:14px}.contact-lines a{font-size:15px;max-width:350px}.footer-top{flex-wrap:wrap}.footer-top p{display:none}.footer-bottom{align-items:start;flex-wrap:wrap;gap:15px;font-size:10px}.footer-bottom span:first-child{width:100%}.footer-bottom button{font-size:10px}.dialog-info{padding:60px 28px 35px}.dialog-info h2{font-size:33px}.dialog-photo img{min-height:500px}}
@media(max-width:500px){.site-header{padding:0 20px}.wordmark{font-size:22px}.wordmark small{font-size:7px;letter-spacing:1.9px}.header-actions{gap:10px}.hero{min-height:700px}.hero-content{padding-top:210px}.hero h1{font-size:56px;margin:23px 0}.eyebrow{font-size:9px;letter-spacing:1.7px}.hero-description{font-size:12px}.hero .button{margin-top:28px}.hero-bottom{font-size:8px;letter-spacing:1px}.scroll-cue{gap:10px}.film-control{font-size:9px;padding:8px 11px}.philosophy-grid{grid-template-columns:1fr;gap:28px}.philosophy h2{font-size:51px}.philosophy-copy{padding:0}.philosophy-copy .lead{font-size:19px}.philosophy-copy .text-link{margin-top:24px}.wide-space img{height:300px}.wide-space figcaption span:last-child{display:none}.herbal-visual{height:380px}.herbal-copy h2{font-size:43px}.herbal-copy>p:not(.eyebrow){font-size:13px}.section-aside{font-size:10px}.rituals h2{font-size:42px}.filters{gap:22px;margin-bottom:27px}.filters button{font-size:11px}.service-grid{gap:28px 14px}.service-info{padding:13px 18px 0 0}.service-info h3{font-size:19px;letter-spacing:-.4px}.service-duration{font-size:8px;letter-spacing:.5px}.service-zh{font-size:9px;letter-spacing:0}.service-arrow{font-size:18px;top:28px}.service-image{aspect-ratio:3/4}.image-note{font-size:7px;left:6px;bottom:6px;padding:4px 5px}.couple-feature{height:620px}.couple-feature>img{object-position:60% center}.couple-overlay{background:linear-gradient(90deg,#1d2519c7,#1d251940)}.couple-copy{padding-top:110px}.couple-copy h2{font-size:65px}.couple-copy>p:not(.eyebrow){font-size:12px}.space-heading{display:block}.space-heading h2{font-size:45px}.space-heading>p{margin-top:25px;max-width:100%}.space-gallery{grid-template-columns:1fr;gap:35px}.space-gallery figure:nth-child(2){margin-top:0}.space-gallery img{aspect-ratio:1.2}.visit-photo{height:350px}.visit h2{font-size:54px}.visit address{font-size:12px}.contact-lines a{font-size:14px}.footer-brand{font-size:29px}.back-top{font-size:10px}.footer-top{padding-bottom:35px}.dialog-layout{grid-template-columns:1fr}.dialog-photo{height:260px}.dialog-photo img{min-height:0;height:260px;object-position:center 45%}.dialog-info{padding:30px 25px}.dialog-info h2{font-size:34px}.service-dialog{width:94%}.privacy-dialog{padding:65px 26px 30px}.privacy-dialog h2{font-size:29px}html[lang=zh] .hero h1{font-size:48px}html[lang=zh] .service-info h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.scroll-line:after{animation:none}.service-image img,.space-photo img,.button{transition:none}.herbal-story{height:auto}.herbal-sticky{position:relative;top:0;height:auto;min-height:600px}.herbal-visual>#herbal-product{opacity:1!important;transform:none!important}.herbal-visual>#herbal-reveal{display:none}}
.film-track{height:320svh;position:relative}.film-track .hero{position:sticky;top:0;height:100svh;min-height:0;max-height:none}.film-counter{font-variant-numeric:tabular-nums}.film-track .hero-content{padding-top:clamp(100px,24svh,260px)}
#music-toggle{padding:6px 8px;border:1px solid currentColor;border-radius:20px;font-size:13px;white-space:nowrap;line-height:1.4}

/* System typography for Latin and Simplified Chinese. */
:root {
  --site-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
}
body, button, h1, h2, h3, .wordmark, .footer-brand, .footer-top p,
.wordmark small, .footer-brand small, .eyebrow, .image-note {
  font-family: var(--site-font);
}
.hero h1, h2, .herbal-copy h2, .couple-copy h2, .dialog-info h2 {
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: 1.08;
  text-wrap: balance;
}
h2 em, .footer-top p { font-style: normal; }
.service-info h3 { font-weight: 600; line-height: 1.2; letter-spacing: -.025em; }
.wordmark, .footer-brand { font-weight: 600; letter-spacing: -.045em; }
.desktop-nav, .button, .filters button { font-weight: 500; }
html[lang=zh] h1, html[lang=zh] h2, html[lang=zh] .service-info h3 {
  letter-spacing: -.015em;
  line-height: 1.23;
}
@media (max-width: 500px) {
  .hero h1 { font-size: clamp(42px, 11.3vw, 55px); }
  .service-info h3 { font-size: 18px; }
}

/* Give letters a little breathing room at each reading size. */
body { letter-spacing: .025em; }
.hero h1, h2, .herbal-copy h2, .couple-copy h2, .dialog-info h2,
.wordmark, .footer-brand, .service-info h3 { letter-spacing: .012em; }
html[lang=zh] h1, html[lang=zh] h2, html[lang=zh] .service-info h3 {
  letter-spacing: .045em;
}
.button, .book-link, .filters button, .text-link, .language { letter-spacing: .035em; }
.button, .book-link, .text-link, .filters button, .dialog-close { border-radius: 999px; }
.book-link, .text-link { border: 1px solid currentColor; padding: 8px 17px; }
.filters { gap: 8px; padding: 4px 0 12px; }
.filters button { padding: 8px 15px; border: 1px solid #c4c9b9; color: #515c46; }
.filters button.active { color: #fff; background: #535f43; border-color: #535f43; }
.filters button.active::after { display: none; }

/* A sticky stage gives vertical page movement to one row of treatments. */
.ritual-scroll { position: relative; }
.ritual-stage { position: sticky; top: 78px; padding: 12px 0; background: #f6f3ec; }
.ritual-stage .filters { margin-bottom: 14px; }
.ritual-window { overflow: clip; }
.ritual-stage .service-grid {
  --card-gap: clamp(8px, 1.8vw, 26px);
  display: flex;
  gap: var(--card-gap);
  will-change: transform;
}
.ritual-stage .service-card {
  flex: 0 0 calc((100% - 2 * var(--card-gap)) / 3);
}
.ritual-stage .service-image { aspect-ratio: auto; height: clamp(90px, 37svh, 390px); }
@media(max-width: 600px) {
  .ritual-stage .service-image { height: clamp(100px, 31vw, 170px); }
  .ritual-stage .service-info { padding-right: 0; }
  .ritual-stage .service-info h3 { font-size: clamp(13px, 3.6vw, 18px); overflow-wrap: anywhere; }
  .ritual-stage .service-arrow { display: none; }
}

.ritual-stage .service-image { border-radius: 16px; }
html[lang=en] .ritual-stage .service-zh { font-size: calc(11px + 5pt); }
html[lang=zh] .ritual-stage .service-info h3 { font-size: calc(25px + 5pt); }
@media (max-width: 600px) {
  html[lang=zh] .ritual-stage .service-info h3 { font-size: calc(clamp(13px, 3.6vw, 18px) + 5pt); }
}
@media (max-width: 500px) {
  html[lang=en] .ritual-stage .service-zh { font-size: calc(9px + 5pt); }
}

/* Clip both the photograph and any overlay to the same visible corners. */
.hero, .wide-space img, .herbal-visual, .herbal-visual img,
.couple-feature, .space-photo, .visit-photo, .visit-photo img,
.ritual-stage .service-image, .ritual-stage .service-image img,
.dialog-photo, .dialog-photo img, .gallery-dialog img {
  border-radius: clamp(20px, 2.1vw, 32px);
  overflow: hidden;
}

.site-header .brand-icon { width: 38px; height: 48px; object-fit: contain; flex: none; }
.herbal-visual > #herbal-product {
  width: auto; height: auto; max-width: 88%; max-height: 86%;
  border-radius: clamp(20px, 2.1vw, 32px); filter: none;
}
html[lang=en] .ritual-stage .service-zh,
html[lang=zh] .ritual-stage .service-info h3 { letter-spacing: 4px; }
@media (max-width: 600px) {
  .site-header .brand-icon { width: 30px; height: 40px; }
  html[lang=en] .ritual-stage .service-zh,
  html[lang=zh] .ritual-stage .service-info h3 { letter-spacing: 3px; }
}

.visit {
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 5vw, 90px);
  padding: clamp(48px, 6vw, 100px) max(5vw, 24px);
}
.visit .visit-photo { width: 100%; height: auto; }
.visit .visit-photo img { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; object-fit: contain; }
.visit .visit-copy { padding: 0; max-width: 480px; }
.visit .visit-copy h2 { margin: 18px 0 22px; }
@media (max-width: 800px) {
  .visit { grid-template-columns: minmax(0, 1fr); gap: 34px; padding: 48px 7%; }
}

/* Preserve each call to action's original footprint in both languages. */
.hero .button { --cta-en:184px; --cta-zh:194px; }
.philosophy-copy .text-link { --cta-en:184px; --cta-zh:159px; }
.herbal-copy .text-link { --cta-en:221px; --cta-zh:159px; }
.rituals > .text-link { --cta-en:219px; --cta-zh:200px; }
.couple-copy .button { --cta-en:244px; --cta-zh:169px; }
.visit-copy .button { --cta-en:177px; --cta-zh:169px; }
main :is(.button, .text-link) {
  width: var(--cta-en);
  font-family: "Trebuchet MS", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .01em;
  line-height: 1.2;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 8px;
  white-space: nowrap;
}
main .button { height: 52px; }
main .text-link { height: 48px; }
main :is(.button, .text-link) span { font: 16px/1 "Segoe UI Symbol", sans-serif; }
html[lang=zh] main :is(.button, .text-link) { width: var(--cta-zh); }

/* Match the reference's regular-weight label and balanced vertical space. */
main :is(.button, .text-link) {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: calc(18px - 1pt);
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -.015em;
  gap: 0;
  border-radius: 999px;
}
main .button { font-size: calc(19px - 1pt); }

.desktop-nav a, .mobile-menu a {
  letter-spacing: .15em;
  white-space: nowrap;
}

html[lang=en] main :is(.button, .text-link) { letter-spacing: .025em; }
.language { background: transparent; color: inherit; border: 0; font: inherit; cursor: pointer; }
.language option { color: #30352b; background: #f6f3ec; }
html[lang=ms] .service-zh { letter-spacing: .015em; }
@media(max-width: 1050px) {
  html[lang=ms] .desktop-nav { display: none; }
  html[lang=ms] .menu-toggle { display: block; }
}
.space-slides img[hidden] { display: none; }

.space-slides { display: grid; isolation: isolate; }
.space-slides img { grid-area: 1 / 1; min-width: 0; opacity: 0; transition: opacity 1s ease-in-out; }
.space-slides img[aria-hidden="false"] { opacity: 1; z-index: 1; }
@media (prefers-reduced-motion: reduce) { .space-slides img { transition: none; } }

.hero-steam { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% center; pointer-events: none; opacity: var(--steam-opacity, 1); }
@media (max-width: 800px) { .hero-steam { object-position: 58% center; } }
@media (prefers-reduced-motion: reduce) { .hero-steam { display: none; } }
.herbal-visual > #herbal-reveal { object-fit: cover; mix-blend-mode: normal; border-radius: clamp(20px, 2.1vw, 32px); }

.philosophy-grid > * { min-inline-size: 0; }
.philosophy-copy p { max-inline-size: min(100%, 60ch); overflow-wrap: break-word; }
.hero-sequence { display: none; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-sequence.ready { display: block; }
@media (pointer: coarse) { .hero-film, .hero-steam { object-position: center; } }
@media (orientation: portrait) and (max-width: 1100px) {
  .philosophy-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .philosophy-copy { width: 100%; padding-top: 0; }
  .film-track .hero { --visual-height: min(72vw, 43svh); background: #393c30; }
  .hero-film, .hero-sequence, .hero-steam {
    inset: 76px 0 auto;
    height: var(--visual-height);
    width: 100%;
    object-position: 50% 50%;
    object-fit: cover;
  }
  .hero-shade { background: linear-gradient(to bottom, transparent calc(76px + var(--visual-height) - 42px), #393c30 calc(76px + var(--visual-height))); }
  .film-track .hero-content { padding: calc(76px + var(--visual-height) + 12px) 7% 0; }
  .film-track .hero h1 { font-size: clamp(32px, min(7vw, 5.5svh), 60px); margin: 10px 0; }
  .film-track .hero .button { margin-top: 12px; }
}
@media (orientation: portrait) and (max-height: 740px) {
  .film-track .hero { --visual-height: min(61vw, 32svh); }
  .hero-bottom { bottom: 12px; }
}

.space-dots { display:flex; align-items:center; justify-content:center; gap:9px; width:max-content; margin:16px auto 0; border-radius:99px; padding:9px 14px; border:1px solid #d2d4c6; }
.space-dots i { width:7px; height:7px; border-radius:99px; background:#acafa0; transition:width .35s ease, background-color .35s ease; }
.space-dots i.current { width:27px; background:#525e43; }
.ritual-stage > h2 { margin:0 0 clamp(8px,2vh,20px); font-size:clamp(32px,5vw,65px); }
.ritual-stage .service-image { height:clamp(95px,32svh,370px); }
@media(max-width:600px) { .ritual-stage .service-image { height:clamp(100px,31vw,170px); } }

/* iPad 竖屏（801–1100px 宽）：用平板排版，避免顶部菜单和地址区挤爆 */
@media (orientation: portrait) and (min-width: 801px) and (max-width: 1100px) {
  html { scroll-padding-top: 76px; }
  .site-header { height: 76px; padding: 0 32px; }
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .header-actions { gap: 18px; }
  .book-link { white-space: nowrap; }
  .visit { grid-template-columns: minmax(0, 1fr); }
  .visit-photo { height: 520px; }
  .visit-photo img { min-height: 0; object-position: center 50%; }
  .visit-copy { padding: 65px 7%; }
}


/* 四张空间照片：允许左右滑动，圆点可以点 */
.space-slides { touch-action: pan-y; user-select: none; -webkit-user-select: none; cursor: grab; }
.space-slides img { -webkit-user-drag: none; }
.space-dots i { cursor: pointer; position: relative; }
.space-dots i::after { content: ''; position: absolute; inset: -10px -5px; }

/* 竖屏首屏：影片延伸到菜单栏后面，菜单透明叠在影片上（跟电脑版一样是一整片） */
@media (orientation: portrait) and (max-width: 1100px) {
  .hero-film, .hero-sequence, .hero-steam {
    inset: 0 0 auto;
    height: calc(76px + var(--visual-height));
  }
  .hero-shade {
    background:
      linear-gradient(to bottom, rgba(27, 33, 22, .55), rgba(27, 33, 22, 0) 140px),
      linear-gradient(to bottom, transparent calc(76px + var(--visual-height) - 42px), #393c30 calc(76px + var(--visual-height)));
  }
}

/* 手机：草药球那一段也有"停住、第一张淡出、第二张浮现"的效果 */
@media (max-width: 800px) {
  .herbal-story { height: 210svh; }
  .herbal-sticky { position: sticky; top: 76px; height: calc(100svh - 76px); min-height: 0; grid-template-columns: 1fr; align-content: start; overflow: hidden; }
  .herbal-visual { height: 47svh; }
  .herbal-visual > #herbal-reveal { display: block; }
  .herbal-copy { padding: 18px 7% 20px; }
  .herbal-copy h2 { font-size: clamp(32px, 9vw, 43px); margin: 12px 0; }
  .herbal-copy > p:not(.eyebrow) { margin-bottom: 14px; }
  .herbal-copy .botanical-note { margin-top: 16px; }
}
@media (max-width: 800px) and (max-height: 700px) {
  .herbal-visual { height: 40svh; }
  .herbal-copy > p:not(.eyebrow) { font-size: 12px; }
}

/* 手机：双人疗程那一段，文字在上，完整照片在下（两个人都看得到） */
@media (max-width: 800px) {
  .couple-feature { height: auto; display: flex; flex-direction: column; background: #2b261d; }
  .couple-feature > img { position: relative; inset: auto; order: 2; width: 100%; height: auto; aspect-ratio: 1447 / 1087; object-fit: cover; object-position: center; margin-top: -40px;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 22%); mask-image: linear-gradient(to bottom, transparent 0, #000 22%); }
  .couple-overlay { display: none; }
  .couple-copy { order: 1; padding: 80px 7% 20px; }
}
