@font-face {
  font-family: Manrope;
  src: url('assets/fonts/manrope.woff2') format('woff2');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
:root {
  --pine: #193f37;
  --pine-light: #315b4f;
  --pink: #f0e3df;
  --paper: #f9f7f2;
  --lime: #d9e7bd;
  --muted: #68756a;
  --line: rgba(25,63,55,.23);
  --latin: 'Manrope',Arial,sans-serif;
  --jp: 'Yu Gothic','YuGothic','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;
  --gutter: clamp(24px,5.3vw,86px);
  --width: 1280px;
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:88px}
body {margin:0;background:var(--paper);color:var(--pine);font-family:var(--jp);font-size:14px;-webkit-font-smoothing:antialiased}
body.modal-open {overflow:hidden}
a {color:inherit;text-decoration:none}
button {cursor:pointer;border:0;background:none;color:inherit}
button,input,select {font:inherit}
a,button {-webkit-tap-highlight-color:transparent}
img {display:block;width:100%;height:auto}
h1,h2,h3,p,figure {margin:0}
::selection {background:var(--pine);color:var(--pink)}
:focus-visible {outline:2px solid var(--pine);outline-offset:5px}
.hero :focus-visible,.experience :focus-visible {outline-color:var(--lime)}
.mobile-booking:focus-visible {outline:2px solid var(--lime);outline-offset:-5px}
.container {width:100%;max-width:var(--width);margin:0 auto}
.section-pad {padding:100px var(--gutter)}
.skip-link {position:fixed;top:-70px;left:20px;z-index:100;background:var(--pine);color:white;padding:15px 22px}
.skip-link:focus {top:12px}
.site-header {height:88px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:32px;background:var(--pink);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line)}
.brand {display:flex;align-items:center;gap:15px;flex-shrink:0}
.brand-symbol {width:32px;height:36px}
.brand-name {display:block;font-family:var(--latin);font-size:26px;font-weight:550;letter-spacing:5.5px;line-height:1.15}
.brand-tagline {display:block;font-family:var(--latin);font-size:7px;letter-spacing:2.1px;margin-top:7px}
.main-nav {display:flex;gap:31px;align-items:center;margin-left:auto;margin-right:18px}
.main-nav a {font-family:var(--latin);font-size:11px;letter-spacing:.2px;padding:12px 0;border-bottom:1px solid transparent;transition:border-color .2s}
.main-nav a:hover {border-color:var(--pine)}
.header-book {background:var(--pine);color:var(--pink);padding:13px 18px;display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:11px;letter-spacing:.5px;border-radius:3px;transition:background .2s}
.header-book>span:last-child {font-size:23px}
.header-book:hover {background:var(--pine-light)}
.short-label,.nav-toggle {display:none}
.hero {position:relative;height:720px;min-height:650px;background:var(--pine);color:var(--paper);overflow:hidden}
.hero-image {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% 50%}
.hero-shade {position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,43,34,.8) 0%,rgba(14,43,34,.58) 38%,rgba(14,43,34,.05) 72%)}
.hero-inner {max-width:calc(var(--width) + var(--gutter)*2);padding:0 var(--gutter);height:100%;margin:0 auto;position:relative}
.hero-copy {padding-top:74px;max-width:690px}
.eyebrow {font-family:var(--latin);font-size:10px;font-weight:500;letter-spacing:1.6px;line-height:1.7}
.hero .eyebrow {display:flex;gap:13px;align-items:center;color:#e8ecd9;font-size:9px;letter-spacing:1.7px;margin-bottom:25px}
.status-dot {width:6px;height:6px;border-radius:50%;background:var(--lime);flex-shrink:0}
.hero h1 {font-family:var(--latin);font-size:clamp(69px,6.6vw,103px);font-weight:400;line-height:1.01;letter-spacing:-5px}
.hero-japanese {font-size:26px;line-height:1.75;letter-spacing:2.6px;font-weight:400;margin-top:26px}
.hero-description {font-size:12px;line-height:2.2;letter-spacing:.6px;color:#e3e7dc;margin-top:18px}
.button {display:inline-flex;align-items:center;justify-content:space-between;gap:42px;min-height:56px;padding:15px 22px;font-size:12px;letter-spacing:.5px;border-radius:3px;transition:background .25s,transform .25s}
.button>span {font-family:var(--latin);font-size:25px;line-height:1}
.button:hover {transform:translateY(-2px)}
.button-lime {background:var(--lime);color:var(--pine)}
.button-lime:hover {background:#e6edcf}
.hero .button {margin-top:25px}
.hero-scroll {position:absolute;right:var(--gutter);bottom:102px;display:flex;align-items:center;gap:23px;font-family:var(--latin);font-size:8px;letter-spacing:1.5px}
.hero-scroll>span:last-child {width:40px;height:40px;border:1px solid #f9f7f28c;border-radius:50%;display:grid;place-items:center;font-size:22px}
.hero-bottom {position:absolute;left:var(--gutter);right:var(--gutter);bottom:25px;border-top:1px solid #f9f7f24a;padding-top:17px;display:flex;justify-content:space-between}
.hero-bottom p {font-family:var(--latin);font-size:8px;letter-spacing:1.5px;line-height:1.7}
.hero-bottom p:last-child {text-align:right}
.section-label {display:flex;justify-content:space-between;align-items:center;gap:25px;font-family:var(--latin);font-size:9px;letter-spacing:1.2px;padding-bottom:25px;border-bottom:1px solid var(--line)}
.section-label>span:last-child {font-size:8px;text-align:right}
.philosophy {background:var(--pink)}
.philosophy-grid {display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(65px,8vw,118px);align-items:center;margin-top:60px}
.philosophy-copy>.eyebrow {font-size:9px;letter-spacing:1.1px;color:var(--muted);margin-bottom:26px}
.philosophy-copy h2 {font-size:clamp(29px,3.15vw,45px);font-weight:400;letter-spacing:2px;line-height:1.65}
.philosophy-lead {font-size:14px;letter-spacing:.5px;margin-top:30px}
.body-copy {font-size:13px;line-height:2.45;letter-spacing:.55px;margin-top:20px}
.philosophy-copy .body-copy {color:#526257}
.text-link {display:inline-flex;justify-content:space-between;align-items:center;gap:45px;border-bottom:1px solid var(--line);padding:13px 0;font-size:12px;letter-spacing:.4px;transition:gap .25s}
.text-link>span {font-size:22px;font-family:var(--latin)}
.text-link:hover {gap:55px}
.philosophy-copy .text-link {margin-top:21px}
.philosophy-photo {position:relative}
.philosophy-photo>img {height:430px;object-fit:cover;object-position:50% 50%;border-radius:3px}
.philosophy-photo figcaption {display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-family:var(--latin);font-size:8px;letter-spacing:.9px}
.philosophy-photo figcaption>span:first-child {font-size:11px;letter-spacing:.3px}
.photo-corner {position:absolute;bottom:51px;right:17px;background:var(--lime);color:var(--pine);font-family:var(--latin);font-size:11px;line-height:1.45;letter-spacing:1.5px;font-weight:500;padding:16px 18px}
.care-values {display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:62px;border-top:1px solid var(--line);padding-top:32px}
.care-values>div {border-right:1px solid var(--line);padding:0 34px;position:relative}
.care-values>div:first-child {padding-left:0}
.care-values>div:last-child {border-right:0}
.value-number {font-family:var(--latin);font-size:11px;letter-spacing:.5px;color:var(--muted);display:block;margin-bottom:13px}
.care-values h3 {font-size:18px;font-weight:400;letter-spacing:1.2px}
.care-values p {font-size:12px;line-height:1.9;margin-top:12px;letter-spacing:.4px;color:#526257}
.section-heading {display:flex;justify-content:space-between;align-items:end;gap:40px;margin:46px 0 43px}
.en-heading {font-family:var(--latin);font-size:clamp(54px,5.3vw,81px);letter-spacing:-3.5px;line-height:1.02;font-weight:400}
.section-heading>div {padding-bottom:4px}
.jp-subtitle {font-size:22px;letter-spacing:1px;font-weight:400}
.body-small {font-size:12px;line-height:2.1;letter-spacing:.4px;color:var(--muted);margin-top:18px}
.ritual-grid {display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px}
.ritual-card {background:#efeae3;min-width:0;border-radius:3px;overflow:hidden}
.ritual-image {height:322px;position:relative;overflow:hidden}
.ritual-image img {height:100%;object-fit:cover;object-position:center;transition:transform .65s}
.ritual-card:hover .ritual-image img {transform:scale(1.035)}
.ritual-image>span {position:absolute;top:18px;left:18px;background:var(--paper);padding:7px 11px;font-family:var(--latin);font-size:8px;letter-spacing:1.1px;border-radius:2px}
.ritual-content {padding:26px}
.ritual-title h3 {font-family:var(--latin);font-size:25px;letter-spacing:-.8px;font-weight:450}
.ritual-title>span {display:block;font-size:10px;letter-spacing:.6px;margin-top:8px;color:#526257}
.ritual-description {font-size:12px;line-height:2;letter-spacing:.35px;margin-top:19px;min-height:48px;color:#526257}
.ritual-price {display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:23px;border-top:1px solid var(--line);padding-top:19px;font-family:var(--latin);font-size:25px;letter-spacing:-.7px}
.ritual-price small {font-family:var(--jp);font-size:9px;font-weight:400;letter-spacing:.4px;margin-left:3px}
.ritual-price>span:first-child {font-size:18px}
.ritual-price>span:first-child>small {font-family:var(--latin);font-size:10px}
.ritual-book {border:1px solid var(--line);width:100%;display:flex;align-items:center;justify-content:space-between;padding:13px 14px;font-size:11px;letter-spacing:.4px;margin-top:21px;border-radius:2px;transition:background .25s,color .25s}
.ritual-book>span {font-family:var(--latin);font-size:22px}
.ritual-book:hover {background:var(--pine);color:var(--paper)}
.ritual-footnote {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:27px}
.ritual-footnote>p {font-size:11px;color:var(--muted);letter-spacing:.4px;line-height:1.8}
.ritual-footnote .text-link {font-size:11px;gap:27px}
.experience {background:var(--pine);color:var(--pink)}
.experience .section-label {border-color:#f0e3df45}
.experience .body-small {color:#c3d3c3}
.experience .section-heading {margin-bottom:55px}
.experience-steps {list-style:none;display:grid;grid-template-columns:1fr 1fr 1fr;gap:48px;padding:0;margin:0}
.experience-steps li {border-top:1px solid #f0e3df45;padding-top:22px}
.step-number {font-family:var(--latin);font-size:68px;line-height:1;letter-spacing:-3px;font-weight:300;color:#a9bd9d}
.experience-steps .eyebrow {font-size:9px;letter-spacing:1.7px;margin-top:28px;color:var(--lime)}
.experience-steps h3 {font-size:18px;font-weight:400;letter-spacing:.9px;margin-top:15px}
.experience-steps li>p:last-child {font-size:12px;line-height:2.2;letter-spacing:.4px;color:#cbd8cb;margin-top:15px}
.faq-grid {display:grid;grid-template-columns:1fr 1.7fr;gap:70px;border-top:1px solid #f0e3df45;margin-top:72px;padding-top:36px}
.faq-heading h3 {font-family:var(--latin);font-size:30px;font-weight:400;letter-spacing:-.8px}
.faq-heading p {font-size:11px;margin-top:12px;letter-spacing:.5px;color:#cbd8cb}
.faq-list details {border-bottom:1px solid #f0e3df45}
.faq-list summary {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 0;cursor:pointer;list-style:none;font-size:13px;letter-spacing:.45px;line-height:1.8}
.faq-list summary::-webkit-details-marker {display:none}
.faq-list details:first-child summary {padding-top:5px;padding-bottom:23px}
.faq-icon {display:block;width:24px;height:24px;position:relative;flex-shrink:0}
.faq-icon::before,.faq-icon::after {content:'';position:absolute;background:var(--lime);left:4px;right:4px;top:11px;height:1px}
.faq-icon::after {transform:rotate(90deg);transition:transform .25s}
.faq-list details[open] .faq-icon::after {transform:rotate(0)}
.faq-list details>p {font-size:12px;line-height:2.2;letter-spacing:.4px;max-width:92%;padding:0 0 22px;color:#cbd8cb}
.visit {background:var(--pink);padding-bottom:0}
.visit-grid {display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(75px,12vw,180px);margin-top:60px}
.visit-copy .en-heading {font-size:clamp(60px,6.3vw,96px);letter-spacing:-4px}
.visit-japanese {font-size:25px;line-height:1.8;letter-spacing:1.5px;margin-top:30px}
.visit-copy .body-copy {font-size:12px;color:#526257;margin-top:20px}
.button-green {background:var(--pine);color:var(--paper)}
.button-green:hover {background:var(--pine-light)}
.button-green>span {color:var(--lime)}
.visit-book {width:100%;max-width:354px;margin-top:30px}
.visit-photo {height:218px;object-fit:cover;border-radius:3px}
.visit-info-heading {display:flex;align-items:center;gap:19px;margin-top:25px}
.visit-info-heading h3 {font-family:var(--latin);font-size:25px;letter-spacing:4px;font-weight:550}
.visit-info-heading>span {font-size:10px;letter-spacing:.6px}
.visit-info dl {margin:21px 0 0;display:flex;flex-direction:column;gap:14px}
.visit-info dl>div {display:grid;grid-template-columns:97px 1fr;gap:15px}
.visit-info dt {font-family:var(--latin);font-size:8px;letter-spacing:1px;line-height:2}
.visit-info dd {margin:0;font-size:11px;line-height:1.9;letter-spacing:.4px}
.sample-info {font-size:9px;line-height:1.9;color:var(--muted);margin-top:18px}
.footer-wordmark {font-family:var(--latin);font-size:clamp(86px,17vw,248px);line-height:1;font-weight:450;letter-spacing:-12px;margin-top:82px;padding-bottom:24px;border-bottom:1px solid var(--line);text-align:center}
.site-footer {display:flex;align-items:center;justify-content:space-between;gap:35px;padding:26px 0 30px}
.site-footer>p {font-family:var(--latin);font-size:8px;line-height:2;letter-spacing:1px}
.site-footer>p>span {font-family:var(--jp);font-size:8px;letter-spacing:.3px;color:var(--muted)}
.site-footer>a {font-family:var(--latin);font-size:8px;letter-spacing:1.3px;display:flex;align-items:center;gap:25px}
.site-footer>a>span {font-size:21px}
.mobile-booking {display:none}
.booking-dialog {background:var(--pink);color:var(--pine);border:0;border-radius:5px;width:min(520px,calc(100% - 28px));max-height:calc(100dvh - 32px);padding:43px 40px;overflow:auto}
.booking-dialog::backdrop {background:#0f2e25b8;backdrop-filter:blur(5px)}
.dialog-close {position:absolute;right:12px;top:10px;width:44px;height:44px;font-size:27px;font-weight:300;line-height:1;display:grid;place-items:center}
.dialog-close:hover {background:#193f3712;border-radius:50%}
.booking-dialog>.eyebrow {font-size:8px;letter-spacing:1.25px;padding-right:25px}
.booking-dialog h2 {font-family:var(--latin);font-size:48px;line-height:1.04;font-weight:400;letter-spacing:-2px;margin-top:22px}
.dialog-japanese {font-size:12px;letter-spacing:.3px;margin-top:14px}
.demo-note {border-left:2px solid var(--pine);background:#f9f7f280;padding:12px 14px;font-size:11px;line-height:1.9;margin:23px 0}
.field {display:flex;flex-direction:column;gap:8px;margin-top:18px}
.field>label {font-size:11px;letter-spacing:.4px}
.field select,.field input {width:100%;min-width:0;min-height:47px;border:1px solid var(--line);border-radius:2px;background:transparent;padding:12px 10px;color:var(--pine);font-size:12px}
.field-row {display:grid;grid-template-columns:1fr 1fr;gap:15px}
.form-note {font-size:10px;line-height:2;color:var(--muted);margin-top:17px}
.form-submit {width:100%;margin-top:22px}
.booking-result h3 {font-size:19px;font-weight:400;letter-spacing:.5px;margin-top:18px;line-height:1.7}
.booking-result #booking-summary {font-size:13px;line-height:2.1;white-space:pre-line;background:#f9f7f280;padding:17px;margin-top:21px}
.booking-result>p:not(.eyebrow):not(#booking-summary) {font-size:12px;line-height:2.2;margin-top:20px}
.booking-result .text-link {margin-top:13px}
.noscript-note {padding:25px;font-size:12px;line-height:2;background:var(--pink);text-align:center}
@keyframes gentle-arrive {from {transform:translateY(13px)} to {transform:translateY(0)}}
.hero-copy {animation:gentle-arrive 1s both}
.reveal.is-visible {animation:gentle-arrive .75s both}

@media (max-width:1100px) {
  .site-header {gap:22px}
  .main-nav {gap:24px;margin-right:0}
  .brand-name {font-size:22px;letter-spacing:4px}
  .brand-symbol {width:28px}
  .brand-tagline {font-size:6px;letter-spacing:1.75px}
  .brand {gap:11px}
  .header-book {gap:20px;padding:11px 14px}
  .hero {height:680px}
  .hero-copy {padding-top:72px}
  .hero h1 {font-size:77px;letter-spacing:-3.5px}
  .hero-japanese {font-size:24px}
  .hero-description {font-size:12px}
  .philosophy-grid {gap:60px}
  .philosophy-photo>img {height:420px}
  .ritual-grid {gap:19px}
  .ritual-image {height:280px}
  .ritual-content {padding:23px 20px}
  .ritual-title h3 {font-size:22px}
  .ritual-description {font-size:11px;letter-spacing:.15px}
  .ritual-price {font-size:23px}
  .ritual-book {font-size:10px;padding:11px}
  .experience-steps {gap:32px}
  .experience-steps h3 {font-size:16px}
  .experience-steps li>p:last-child {font-size:11px}
  .visit-grid {gap:75px}
  .visit-copy .en-heading {font-size:75px}
  .footer-wordmark {letter-spacing:-9px}
}
@media (max-width:800px) {
  :root {--gutter:28px}
  .section-pad {padding-top:76px;padding-bottom:76px}
  .site-header {height:78px;gap:17px}
  html {scroll-padding-top:78px}
  .main-nav {gap:18px}
  .main-nav a {font-size:10px}
  .brand-name {font-size:20px;letter-spacing:3.5px}
  .brand-symbol {width:23px;height:29px}
  .brand-tagline {font-size:5px;letter-spacing:1.6px}
  .header-book {font-size:10px;gap:15px;padding:10px 12px}
  .hero {height:655px;min-height:0}
  .hero h1 {font-size:68px;letter-spacing:-3.5px}
  .hero-copy {padding-top:74px}
  .hero .eyebrow {font-size:7px;letter-spacing:1.3px;margin-bottom:27px}
  .hero-japanese {font-size:23px;margin-top:27px}
  .hero-description {font-size:11px;letter-spacing:.3px}
  .hero .button {font-size:11px;gap:28px;padding:14px 18px;margin-top:25px}
  .hero-scroll {bottom:90px;font-size:6px;gap:14px}
  .hero-scroll>span:last-child {width:34px;height:34px;font-size:18px}
  .hero-bottom p {font-size:7px;letter-spacing:1.1px}
  .section-label {font-size:8px;letter-spacing:.8px}
  .section-label>span:last-child {font-size:7px}
  .philosophy-grid {grid-template-columns:1fr 1fr;gap:36px;margin-top:40px}
  .philosophy-copy h2 {font-size:30px;letter-spacing:1.1px}
  .philosophy-copy>.eyebrow {font-size:7px;margin-bottom:21px;letter-spacing:.8px}
  .philosophy-lead {font-size:12px;letter-spacing:.1px;margin-top:22px}
  .philosophy-copy .body-copy {font-size:12px;letter-spacing:.25px;line-height:2.2;margin-top:17px}
  .desktop-break {display:none}
  .philosophy-photo>img {height:405px}
  .philosophy-photo figcaption {font-size:6px;letter-spacing:.4px}
  .philosophy-photo figcaption>span:first-child {font-size:9px}
  .photo-corner {font-size:9px;right:12px;padding:13px 14px}
  .philosophy-copy .text-link {font-size:11px;gap:28px;margin-top:13px}
  .care-values {padding-top:26px;margin-top:42px}
  .care-values>div {padding:0 22px}
  .care-values h3 {font-size:15px;letter-spacing:.5px}
  .care-values p {font-size:10px;line-height:2;letter-spacing:.15px}
  .value-number {font-size:9px}
  .en-heading {font-size:57px;letter-spacing:-2.5px}
  .jp-subtitle {font-size:17px;letter-spacing:.5px}
  .body-small {font-size:11px;letter-spacing:.25px;margin-top:14px}
  .section-heading {gap:25px;margin-top:36px;margin-bottom:35px}
  .ritual-grid {gap:15px}
  .ritual-image {height:232px}
  .ritual-image>span {font-size:7px;letter-spacing:.7px;top:12px;left:12px;padding:6px 8px}
  .ritual-content {padding:20px 15px}
  .ritual-title h3 {font-size:19px;letter-spacing:-.5px}
  .ritual-title>span {font-size:9px}
  .ritual-description {font-size:10px;line-height:2;min-height:60px}
  .ritual-price {font-size:20px;gap:5px;margin-top:18px;padding-top:15px}
  .ritual-price>span:first-child {font-size:15px}
  .ritual-price small {font-size:7px;margin-left:0}
  .ritual-price>span:first-child>small {font-size:8px}
  .ritual-book {font-size:9px;padding:10px 9px;letter-spacing:0;margin-top:18px}
  .ritual-book>span {font-size:19px}
  .ritual-footnote>p {font-size:10px}
  .ritual-footnote .text-link {font-size:10px;gap:20px}
  .experience .section-heading {margin-bottom:41px}
  .experience-steps {gap:25px}
  .step-number {font-size:58px}
  .experience-steps h3 {font-size:15px;letter-spacing:.3px;line-height:1.9}
  .experience-steps .eyebrow {font-size:8px;margin-top:20px}
  .experience-steps li>p:last-child {font-size:11px;line-height:2;letter-spacing:.15px}
  .faq-grid {gap:30px;margin-top:54px;grid-template-columns:1fr 1.6fr}
  .faq-heading h3 {font-size:25px}
  .faq-heading p {font-size:10px}
  .faq-list summary {font-size:11px;letter-spacing:.15px;padding:19px 0}
  .faq-list details>p {font-size:11px;max-width:100%;letter-spacing:.2px}
  .visit {padding-bottom:0}
  .visit-grid {grid-template-columns:1fr 1fr;gap:46px;margin-top:41px}
  .visit-copy .en-heading {font-size:62px;letter-spacing:-2.9px}
  .visit-japanese {font-size:20px;letter-spacing:1px;margin-top:26px}
  .visit-copy .body-copy {font-size:11px;line-height:2.2;letter-spacing:.25px}
  .visit-book {font-size:11px;padding:14px 17px;gap:20px}
  .visit-photo {height:181px}
  .visit-info-heading h3 {font-size:21px;letter-spacing:3px}
  .visit-info-heading>span {font-size:9px}
  .visit-info dl>div {grid-template-columns:80px 1fr;gap:10px}
  .visit-info dd {font-size:10px;letter-spacing:.2px}
  .visit-info dt {font-size:7px;letter-spacing:.7px}
  .sample-info {font-size:8px}
  .footer-wordmark {margin-top:62px;letter-spacing:-6px}
}
@media (max-width:700px) {
  :root {--gutter:23px}
  html {scroll-padding-top:70px}
  .site-header {height:70px;gap:12px}
  .brand {gap:8px;flex:1}
  .brand-symbol {width:22px;height:28px}
  .brand-name {font-size:19px;letter-spacing:3.7px}
  .brand-tagline {font-size:5px;letter-spacing:1.35px;margin-top:5px}
  .header-book {font-size:10px;padding:9px 11px;gap:14px;min-height:39px}
  .header-book>span:last-child {font-size:19px}
  .long-label {display:none}
  .short-label {display:inline}
  .nav-toggle {display:none;width:32px;height:40px;padding:5px 3px;flex-shrink:0;flex-direction:column;justify-content:center;gap:7px}
  .nav-toggle>span {height:1px;width:25px;display:block;background:var(--pine);transition:transform .25s}
  .js .nav-toggle {display:flex}
  .nav-toggle[aria-expanded="true"]>span:first-child {transform:translateY(4px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"]>span:last-child {transform:translateY(-4px) rotate(-45deg)}
  .main-nav {position:absolute;left:0;right:0;top:69px;margin:0;background:var(--pink);padding:16px var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:4px 15px;border-bottom:1px solid var(--line)}
  .main-nav a {font-size:13px;padding:13px 3px}
  .js .main-nav {display:none}
  .js .main-nav.is-open {display:grid}
  body:not(.js) .hero {margin-top:121px}
  .hero {height:auto;min-height:0}
  .hero-image {position:relative;height:320px;object-position:76% 50%}
  .hero-shade {bottom:auto;height:320px;background:linear-gradient(0deg,var(--pine) 0%,rgba(25,63,55,0) 33%)}
  .hero-inner {height:auto;padding:0 var(--gutter)}
  .hero-copy {position:relative;bottom:auto;left:auto;right:auto;padding:24px 0 28px;max-width:none}
  .hero .eyebrow {font-size:7px;letter-spacing:1px;margin-bottom:18px;gap:10px}
  .status-dot {width:5px;height:5px}
  .hero h1 {font-size:clamp(46px,12.9vw,70px);letter-spacing:-2.3px;line-height:1.03}
  .hero-japanese {font-size:21px;line-height:1.7;letter-spacing:1.7px;margin-top:21px}
  .hero-description {font-size:12px;line-height:2.05;letter-spacing:.3px;margin-top:15px;max-width:320px}
  .hero .button {width:100%;font-size:11px;margin-top:23px;padding:16px 17px;gap:15px;min-height:55px}
  .hero .button>span {font-size:22px}
  .hero-bottom {position:relative;bottom:auto;padding:15px 0 20px;left:auto;right:auto}
  .hero-bottom p {font-size:6px;line-height:1.7;letter-spacing:1.1px}
  .hero-scroll {display:none}
  .section-pad {padding-top:59px;padding-bottom:59px}
  .section-label {font-size:7px;letter-spacing:.65px;gap:14px;padding-bottom:20px}
  .section-label>span:last-child {font-size:6px;letter-spacing:.45px;line-height:1.8}
  .philosophy-grid {display:flex;flex-direction:column;align-items:stretch;gap:35px;margin-top:35px}
  .philosophy-copy>.eyebrow {font-size:8px;letter-spacing:1px;margin-bottom:22px}
  .philosophy-copy h2 {font-size:33px;line-height:1.7;letter-spacing:1.6px}
  .philosophy-lead {font-size:13px;letter-spacing:.45px;margin-top:23px}
  .philosophy-copy .body-copy {font-size:13px;line-height:2.3;letter-spacing:.4px;margin-top:17px}
  .philosophy-copy .text-link {font-size:12px;gap:38px;margin-top:14px}
  .philosophy-photo>img {height:330px;object-position:50% 50%}
  .philosophy-photo figcaption {font-size:6px;letter-spacing:.3px;margin-top:12px;align-items:center}
  .philosophy-photo figcaption>span:first-child {font-size:10px}
  .photo-corner {font-size:10px;padding:14px 16px;right:13px;bottom:43px}
  .care-values {display:block;margin-top:34px;padding-top:0}
  .care-values>div,.care-values>div:first-child,.care-values>div:last-child {border-right:0;border-bottom:1px solid var(--line);padding:23px 0 23px 44px}
  .value-number {position:absolute;left:0;top:27px;font-size:10px}
  .care-values h3 {font-size:17px;letter-spacing:.7px}
  .care-values p {font-size:12px;margin-top:9px;letter-spacing:.25px}
  .section-heading {display:block;margin-top:33px;margin-bottom:31px}
  .en-heading {font-size:clamp(49px,12.8vw,72px);letter-spacing:-2.8px;line-height:1.04}
  .section-heading>div {margin-top:26px;padding:0}
  .jp-subtitle {font-size:19px;letter-spacing:.6px;line-height:1.8}
  .body-small {font-size:12px;line-height:2.15;letter-spacing:.35px;margin-top:13px}
  .ritual-grid {display:flex;flex-direction:column;gap:24px}
  .ritual-image {height:295px}
  .ritual-image>span {font-size:8px;letter-spacing:1px;top:16px;left:16px;padding:7px 10px}
  .ritual-content {padding:24px}
  .ritual-title {display:flex;justify-content:space-between;align-items:center;gap:15px}
  .ritual-title h3 {font-size:24px;letter-spacing:-.7px}
  .ritual-title>span {font-size:9px;letter-spacing:.3px;margin-top:0;text-align:right}
  .ritual-description {font-size:12px;line-height:2.1;letter-spacing:.3px;min-height:0;margin-top:17px}
  .ritual-price {font-size:26px;margin-top:19px;padding-top:19px}
  .ritual-price>span:first-child {font-size:20px}
  .ritual-price small {font-size:9px;margin-left:3px}
  .ritual-price>span:first-child>small {font-size:10px}
  .ritual-book {font-size:12px;letter-spacing:.4px;padding:13px 15px;margin-top:18px}
  .ritual-book>span {font-size:22px}
  .ritual-footnote {display:block;margin-top:24px}
  .ritual-footnote>p {font-size:11px;letter-spacing:.2px}
  .ritual-footnote .text-link {margin-top:11px;font-size:12px;gap:30px}
  .experience .section-heading {margin-bottom:35px}
  .experience-steps {display:flex;flex-direction:column;gap:0}
  .experience-steps li {position:relative;padding:25px 0 28px 71px}
  .step-number {position:absolute;left:0;top:26px;font-size:45px;letter-spacing:-2px}
  .experience-steps .eyebrow {font-size:8px;letter-spacing:1.5px;margin-top:0}
  .experience-steps h3 {font-size:17px;letter-spacing:.4px;margin-top:10px;line-height:1.7}
  .experience-steps li>p:last-child {font-size:12px;line-height:2.1;letter-spacing:.2px;margin-top:11px}
  .experience-steps li>p:last-child>br {display:none}
  .faq-grid {display:block;padding-top:30px;margin-top:17px}
  .faq-heading h3 {font-size:29px;letter-spacing:-1px}
  .faq-heading p {font-size:11px;margin-top:10px;letter-spacing:.3px}
  .faq-list {margin-top:30px}
  .faq-list summary {font-size:12px;line-height:1.8;gap:18px;padding:21px 0;letter-spacing:.2px}
  .faq-list details:first-child summary {padding-bottom:21px}
  .faq-list details>p {font-size:12px;line-height:2.2;padding-bottom:21px}
  .visit {padding-bottom:0}
  .visit-grid {display:flex;flex-direction:column;gap:38px;margin-top:33px}
  .visit-copy .en-heading {font-size:clamp(52px,14.8vw,80px);letter-spacing:-2.8px}
  .visit-japanese {font-size:24px;line-height:1.8;letter-spacing:1px;margin-top:25px}
  .visit-copy .body-copy {font-size:12px;line-height:2.2;letter-spacing:.3px;margin-top:18px}
  .visit-copy .body-copy>br {display:none}
  .visit-book {max-width:none;width:100%;font-size:12px;padding:17px 21px;gap:30px;margin-top:24px}
  .visit-photo {height:228px}
  .visit-info-heading {margin-top:25px}
  .visit-info-heading h3 {font-size:26px;letter-spacing:4px}
  .visit-info-heading>span {font-size:10px}
  .visit-info dl {gap:15px;margin-top:22px}
  .visit-info dl>div {grid-template-columns:97px 1fr;gap:12px}
  .visit-info dt {font-size:8px;letter-spacing:.7px}
  .visit-info dd {font-size:11px;letter-spacing:.3px;line-height:2}
  .sample-info {font-size:9px;margin-top:18px;letter-spacing:0}
  .footer-wordmark {font-size:clamp(67px,19.6vw,108px);letter-spacing:-3px;margin-top:43px;padding-bottom:21px}
  .site-footer {display:block;padding:23px 0 100px}
  .site-footer>p {font-size:7px;letter-spacing:.7px;line-height:2.2}
  .site-footer>p>span {font-size:7px;letter-spacing:.15px}
  .site-footer>a {justify-content:flex-end;gap:20px;margin-top:19px;font-size:7px}
  .mobile-booking {position:fixed;display:flex;align-items:center;justify-content:space-between;gap:15px;left:16px;right:16px;bottom:14px;padding:17px 18px;background:var(--pine);color:var(--paper);border:1px solid #f9f7f266;border-radius:4px;z-index:8;box-shadow:0 2px 20px #193f372b;transition:transform .3s,opacity .3s}
  .mobile-booking>span:first-child {font-size:9px;letter-spacing:.3px;color:#d7dfce}
  .mobile-booking>span:last-child {display:flex;align-items:center;gap:16px;font-size:11px;letter-spacing:.2px}
  .mobile-booking b {font-size:23px;font-weight:400;color:var(--lime);line-height:1}
  .mobile-booking.is-hidden {opacity:0;transform:translateY(100px);pointer-events:none}
  .booking-dialog {padding:36px 25px 30px;width:calc(100% - 26px);max-height:calc(100dvh - 26px)}
  .booking-dialog h2 {font-size:43px;letter-spacing:-1.8px;margin-top:21px}
  .booking-dialog>.eyebrow {font-size:7px;letter-spacing:1px}
  .dialog-japanese {font-size:11px;letter-spacing:.2px}
  .field-row {gap:12px}
  .field input,.field select {font-size:11px;padding:12px 8px}
  .form-submit {font-size:12px;padding:15px 18px}
  .booking-result h3 {font-size:17px}
}
@media (max-width:360px) {
  :root {--gutter:19px}
  .site-header {gap:9px}
  .brand {gap:7px}
  .brand-symbol {width:19px}
  .brand-name {font-size:17px;letter-spacing:3px}
  .brand-tagline {font-size:4.5px;letter-spacing:1.1px}
  .nav-toggle {width:29px}
  .header-book {gap:9px;padding:9px;font-size:9px}
  .hero h1 {font-size:45px;letter-spacing:-2.5px}
  .hero-japanese {font-size:20px}
  .hero-description {font-size:11px;letter-spacing:.15px}
  .hero .button {font-size:10px;padding:15px}
  .philosophy-copy h2 {font-size:29px;letter-spacing:1px}
  .ritual-title h3 {font-size:22px}
  .ritual-content {padding:21px}
  .ritual-title>span {font-size:8px}
  .ritual-image {height:270px}
  .ritual-price {font-size:25px}
  .mobile-booking>span:first-child {font-size:8px}
  .mobile-booking>span:last-child {font-size:10px;gap:12px}
  .field-row {grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*::before,*::after {animation:none!important;transition:none!important}
  .ritual-card:hover .ritual-image img {transform:none}
}
