@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Sans+JP:wght@400;500&family=Noto+Serif+JP:wght@400;500&display=swap');
:root{--paper:#faf9f6;--ink:#302b28;--muted:#716b65;--line:#d8d2ca;--accent:#967f69;--serif:'Noto Serif JP','Yu Mincho',serif;--latin:'Cormorant Garamond',Georgia,serif;--sans:'Noto Sans JP',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/2 var(--sans);-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}p,h1,h2,h3{margin-top:0}p{margin-bottom:1.5em}h1,h2,h3{font-weight:400}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #8c6746;outline-offset:7px}.skip{position:fixed;top:-90px;left:20px;padding:8px 20px;background:white;z-index:30}.skip:focus{top:10px}.header{height:110px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:sticky;top:0;z-index:20;border-bottom:1px solid #302b2810}.brand{display:flex;flex-direction:column;line-height:1}.brand>span{font:500 46px/.9 var(--latin);letter-spacing:-2px}.brand-dot{color:var(--accent)}.brand small{font-size:9px;letter-spacing:2px;margin-top:12px}.header-right{display:flex;align-items:center;gap:38px}.booking{font-size:14px;border-bottom:1px solid var(--ink);padding:8px 0;min-width:95px;display:flex;justify-content:space-between}.menu-toggle{border:0;background:transparent;padding:14px 0 14px 10px;display:flex;gap:22px;align-items:center;color:var(--ink)}.toggle-label{font-size:12px;letter-spacing:2px}.menu-lines{width:32px;height:12px;border-top:1px solid;border-bottom:1px solid;position:relative;transition:transform .3s}.menu-open .menu-lines{transform:rotate(45deg);border-bottom:0;height:1px}.menu-open .menu-lines:after{content:'';position:absolute;width:32px;left:0;top:-1px;border-top:1px solid;transform:rotate(90deg)}.menu-panel{position:fixed;inset:110px 0 0;background:var(--paper);z-index:19;padding:30px max(8%,calc((100vw - 1050px)/2));overflow:auto}.menu-panel[hidden]{display:none}.menu-panel nav a{display:flex;align-items:center;gap:26px;border-bottom:1px solid var(--line);padding:18px 0;font:400 25px/1.8 var(--serif)}.menu-panel nav a span{font:16px var(--latin);color:var(--accent)}.menu-panel nav a em{margin-left:auto;font:italic 23px var(--latin);color:var(--muted)}.menu-panel>p{font-size:12px;letter-spacing:2px;margin-top:35px}.hero{position:relative;max-width:1600px;margin:auto;display:grid;grid-template-columns:1fr 1fr;min-height:640px;padding:28px 5.5% 68px;gap:20px}.hero-copy{padding:63px 0 30px;z-index:1}.eyebrow{font-size:12px;line-height:1.6;letter-spacing:2px;margin-bottom:0}.hero .eyebrow{margin-bottom:32px;font-size:11px}h1{font:400 clamp(32px,3.2vw,54px)/1.9 var(--serif);letter-spacing:.08em;white-space:nowrap;margin-bottom:24px}.hero-intro{font-size:15px;line-height:2.2;color:var(--muted)}.text-link{display:inline-flex;justify-content:space-between;gap:30px;padding:10px 0;border-bottom:1px solid var(--ink);font-size:14px;transition:color .2s}.text-link:hover{color:var(--accent)}.text-link span{font-size:20px}.hero-meta{display:flex;gap:20px;margin-top:54px;font-size:11px;letter-spacing:1px;color:var(--muted)}.hero-meta span+span{border-left:1px solid var(--line);padding-left:20px}.hero-photo{position:relative;min-height:540px;overflow:hidden}.hero-photo img{position:absolute;inset:0;object-position:50% 50%}.hero-photo:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#251c1450)}.photo-caption{position:absolute;bottom:28px;left:30px;z-index:1;color:white;font:italic 32px var(--latin)}.scroll-link{position:absolute;bottom:25px;left:5.5%;font-size:10px;letter-spacing:2px}.scroll-link span{margin-left:25px;font-size:18px}.section{padding:100px 8%;scroll-margin-top:0}.section-top{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:22px;margin-bottom:64px}.section-jp{font-size:13px;color:var(--muted)}h2{font:400 clamp(30px,3vw,43px)/1.9 var(--serif);letter-spacing:.07em;margin-bottom:30px}.concept{padding-top:65px}.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%}.concept-grid p,.staff-copy>p{font-size:15px;color:var(--muted);line-height:2.4}.concept-grid p:last-child{margin-bottom:0}.concept-points{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:70px}.concept-points>div{border-left:1px solid var(--line);padding-left:25px}.concept-points small{font-size:11px;letter-spacing:1.4px;color:var(--accent)}.concept-points p{font-family:var(--serif);margin:10px 0 0}.treatments{background:#efede8}.title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:42px}.title-row h2{margin:0}.title-row>p{font-size:14px;color:var(--muted);line-height:2.2;margin-bottom:8px}.price-list{border-top:1px solid var(--line)}.price-row{display:grid;grid-template-columns:45px 1fr auto 30px;align-items:center;gap:20px;padding:30px 0;border-bottom:1px solid var(--line);transition:padding .2s,background .2s}.price-row:hover{background:#ffffff55;padding-left:12px;padding-right:12px}.row-number{font:italic 22px var(--latin);color:var(--accent);align-self:start;padding-top:5px}.tag{font-size:11px;letter-spacing:1px;color:var(--muted)}.price-row h3{font:400 20px/1.8 var(--serif);margin:5px 0 8px}.price-row p{font-size:12px;margin:0;color:var(--muted)}.price-row p span{margin-left:18px}.price{font:400 34px/1.4 var(--latin);text-align:right}.price small{display:block;font:11px var(--sans);margin-bottom:10px}.row-arrow{font-size:22px;text-align:right}.menu-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:30px}.note{font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:0}.staff{display:grid;grid-template-columns:.85fr 1fr;gap:12%;align-items:center}.staff-photo{position:relative;aspect-ratio:4/5;max-width:400px;background:#eee}.staff-photo img{object-position:center 25%}.staff-photo>span{position:absolute;bottom:15px;left:20px;color:white;background:#302b2877;padding:0 8px;font-size:10px;letter-spacing:2px}.staff-copy .section-top{margin-bottom:40px}.owner-name{font:400 38px var(--latin);margin-bottom:25px}.owner-name span{font:12px var(--sans);margin-left:18px;color:var(--muted)}.school{background:#302b28;color:#f6f2eb;padding-bottom:35px;overflow:hidden}.school .section-top{border-color:#ffffff40}.school .section-jp{color:#d0c3b7}.school-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.school-kicker{font-size:11px;letter-spacing:2px;color:#c8b097}.school-grid h2{font-size:46px}.school-grid p{font-size:15px}.school-detail>p{color:#d4cec6;line-height:2.4}.button{display:flex;justify-content:space-between;align-items:center;gap:30px;font-size:14px;padding:17px 24px;transition:background .2s,color .2s}.button span{font-size:22px}.button.light{background:#f2ece4;color:var(--ink);margin-top:35px}.button.light:hover{background:white}.school-instagram{font-size:12px;display:inline-block;border-bottom:1px solid #9e9286;margin-top:20px;color:#d4cec6}.school-word{font:italic 500 clamp(50px,8vw,120px)/1.3 var(--latin);color:#d0bcaa50;white-space:nowrap;text-align:center;margin-top:70px}.contact-grid{display:grid;grid-template-columns:1fr .85fr;gap:13%}.contact-grid>div>p{font-size:14px;color:var(--muted);line-height:2.2}.contact .button{margin-bottom:12px}.dark{background:var(--ink);color:white}.dark:hover{background:#51463e}.outline{border:1px solid var(--ink)}.outline:hover{background:#efede8}.contact-grid .note{font-size:11px;margin-top:20px}.access h3{font:400 40px var(--latin);margin-bottom:25px}.access h3 span{font:12px var(--sans);margin-left:20px}.access dl{margin:0 0 25px}.access dl>div{display:grid;grid-template-columns:80px 1fr;gap:20px;border-bottom:1px solid var(--line);padding:18px 0;font-size:13px}.access dt{color:var(--muted)}.access dd{margin:0}.access small{display:block;font-size:11px;color:var(--muted);margin-top:4px;line-height:1.9}footer{border-top:1px solid var(--line);margin:0 5.5%;padding:40px 0;display:flex;align-items:center;gap:30px}footer .brand>span{font-size:36px}footer .brand small{font-size:8px}footer p{font-size:11px;color:var(--muted);margin:0 auto 0 15px}footer>a:not(.brand){font-size:12px}footer>small{font-size:10px;color:var(--muted)}
@media(min-width:1600px){.section{padding-left:max(8%,calc((100vw - 1300px)/2));padding-right:max(8%,calc((100vw - 1300px)/2))}}@media(max-width:1000px){.header{height:90px}.menu-panel{top:90px}.hero{min-height:600px}.hero-copy{padding-top:55px}.hero-photo{min-height:480px}.hero .eyebrow{font-size:9px;letter-spacing:1px}.hero-intro{font-size:13px}h1{font-size:34px}.hero-meta{font-size:9px;gap:10px}.hero-meta span+span{padding-left:10px}.section{padding:75px 6%}.staff{gap:7%}.price-row h3{font-size:18px}.menu-bottom{align-items:flex-start;flex-direction:column}.contact-grid{gap:7%}.title-row>p{font-size:12px}.concept-grid p,.staff-copy>p{font-size:14px}footer p{display:none}footer>a:not(.brand){margin-left:auto}}
@media(max-width:680px){html{scroll-padding-top:80px}.header{height:80px;padding:0 6%}.brand>span{font-size:38px}.brand small{font-size:8px;letter-spacing:1.3px;margin-top:10px}.header-right{gap:23px}.booking{min-width:67px;font-size:12px}.menu-toggle{gap:10px}.toggle-label{display:none}.menu-lines{width:27px}.menu-open .menu-lines:after{width:27px}.menu-panel{top:80px;padding:24px 7%}.menu-panel nav a{font-size:20px;gap:14px;padding:21px 0}.menu-panel nav a em{font-size:16px}.hero{display:flex;flex-direction:column;padding:0 0 42px;gap:0}.hero-copy{padding:39px 7% 35px}.hero .eyebrow{font-size:9px;letter-spacing:1.4px;margin-bottom:23px}h1{font-size:clamp(27px,6.8vw,43px);letter-spacing:.055em;line-height:1.85;margin-bottom:18px}.hero-intro{font-size:13px;margin-bottom:18px}.hero .text-link{font-size:12px}.hero-meta{margin-top:25px;font-size:10px;letter-spacing:0;gap:16px}.hero-meta span+span{padding-left:16px}.hero-photo{min-height:0;height:330px;margin:0 6%}.photo-caption{font-size:29px;bottom:20px;left:20px}.scroll-link{font-size:8px;left:7%;bottom:10px}.scroll-link span{font-size:14px}.section{padding:65px 7%}.section-top{padding-top:18px;margin-bottom:36px}.eyebrow{font-size:10px;letter-spacing:1.3px}.section-jp{font-size:11px}h2{font-size:29px;line-height:1.85;letter-spacing:.05em;margin-bottom:28px}.concept-grid,.school-grid,.contact-grid{grid-template-columns:1fr;gap:20px}.concept-grid p,.staff-copy>p{font-size:14px}.desktop-break{display:none}.concept-points{grid-template-columns:1fr;gap:21px;margin-top:38px}.concept-points>div{padding-left:20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.concept-points small{font-size:9px;letter-spacing:.6px}.concept-points p{font-size:13px;margin:0}.title-row{display:block;margin-bottom:30px}.title-row>p{font-size:13px;margin:20px 0 0}.price-row{grid-template-columns:23px 1fr auto;gap:10px;padding:25px 0}.price-row h3{font-size:15px;line-height:1.8;max-width:210px}.row-number{font-size:18px}.price-row p{font-size:10px}.price-row p span{margin-left:7px}.tag{font-size:9px;letter-spacing:0}.price{font-size:27px}.price small{font-size:10px}.row-arrow{display:none}.menu-bottom .note{font-size:10px}.text-link{font-size:12px;gap:18px}.staff{display:flex;flex-direction:column-reverse;gap:35px}.staff-photo{width:82%;max-width:320px;align-self:flex-start;margin-left:8%}.staff-copy .section-top{margin-bottom:35px}.staff-copy>p{max-width:450px}.school-grid h2{font-size:35px}.school-grid p{font-size:14px}.school-detail>p{line-height:2.2}.school-detail .button{margin-top:28px;font-size:13px;padding:17px}.school-word{font-size:44px;margin-top:44px}.contact-grid{gap:55px}.contact-grid>div>p{font-size:13px}.button{font-size:13px;padding:14px 20px}.contact-grid .note{font-size:10px}.access dl>div{font-size:13px}.access small{font-size:11px}.contact{padding-bottom:50px}footer{padding:30px 0;gap:16px;flex-wrap:wrap}footer .brand small{font-size:7px}footer>small{width:100%;text-align:right;font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Readable type across screen sizes. */
.hero-intro,.concept-grid p,.staff-copy>p,.school-grid p,.contact-grid>div>p,.title-row>p{font-size:1rem}.text-link,.button,.section-jp,.access dl>div,.school-instagram{font-size:.875rem}.note,.contact-grid .note,.menu-bottom .note,.access small,.price-row p,.tag,.price small{font-size:.75rem}.hero .eyebrow,.eyebrow,.school-kicker{font-size:.75rem}.brand small{font-size:.6rem}.hero-meta{font-size:.75rem}.school-grid .school-kicker{font-size:.75rem}.school .section-top{gap:20px}.price-row{min-width:0}.price-row h3{overflow-wrap:anywhere}
@media(max-width:680px){.hero-copy{padding-top:32px}.hero .eyebrow{font-size:.625rem}.hero-intro{font-size:1rem}.hero-meta{font-size:.6875rem}.concept-points{gap:22px}.concept-points p{font-size:.875rem}.concept-points small{font-size:.625rem}.school .eyebrow{max-width:60%;font-size:.625rem}.school .section-jp{font-size:.75rem}.price-row{grid-template-columns:1fr auto}.row-number{display:none}.price-row h3{font-size:1rem;max-width:220px}.price-row p span{display:block;margin-left:0}.school-detail .button,.button,.text-link{font-size:.875rem}.access dl>div{grid-template-columns:65px 1fr}.brand small{font-size:.5rem}.menu-panel nav a em{font-size:1rem}}
