@charset "UTF-8";
:root{--paper:#ffffff;--white:#ffffff;--ink:#333333;--muted:#666666;--rose:#505050;--rose-light:#eeeeee;--line:#d8d8d8;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;--english:Georgia,"Times New Roman",serif;--max:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.9;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}h1,h2,h3,p,figure{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:.09em}h2{font-size:clamp(26px,2.7vw,36px);line-height:1.85}h3{font-weight:500}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--rose);outline-offset:6px}::selection{background:#dddddd}.serif{font-family:var(--english);font-weight:400}.skip-link{position:fixed;top:-80px;left:16px;background:white;padding:14px;z-index:99}.skip-link:focus{top:12px}.section{padding:112px max(5.7vw,calc((100vw - var(--max))/2));}.section-kicker,.eyebrow,.tiny-label{font-size:10px;letter-spacing:.22em;font-weight:600;line-height:1.6}.section-kicker{display:flex;align-items:center;gap:20px;margin-bottom:30px;color:var(--muted)}.section-kicker>span{font-family:var(--english);font-size:13px;letter-spacing:.08em;border:1px solid var(--line);border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-weight:400}.text-link{display:inline-flex;align-items:center;gap:28px;border-bottom:1px solid #aaaaaa;padding:9px 0;min-height:44px;font-size:12px;letter-spacing:.04em;transition:color .2s}.text-link>span{margin-left:auto;font-size:19px;line-height:1}.text-link:hover{color:var(--rose)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;padding:17px 25px;min-height:56px;background:var(--rose);color:white;font-size:12px;letter-spacing:.06em;border:1px solid var(--rose);border-radius:2px;transition:background .25s,transform .25s}.button:hover{background:#383838;transform:translateY(-2px)}.button>span{font-size:19px;font-weight:400;line-height:1}.button-light{background:transparent;color:var(--ink);border-color:var(--button-border)}.button-light:hover{background:#eeeeee}.quiet-link{display:inline-flex;align-items:center;gap:20px;font-size:12px;min-height:44px}.quiet-link:hover{color:var(--rose)}.mobile-only{display:none}
.site-header{position:sticky;top:0;z-index:30;height:96px;display:flex;align-items:center;gap:32px;padding:0 4.5vw;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(216,216,216,.55)}.brand{display:flex;flex-direction:column;margin-right:auto}.brand-name{display:block;font-family:var(--english);font-size:37px;letter-spacing:.035em;line-height:1.1}.brand-dot{color:#666666}.brand-sub{display:block;font-size:8px;letter-spacing:.17em;margin-top:6px}.desktop-nav{display:flex;gap:28px;font-size:11px;letter-spacing:.05em}.desktop-nav a{padding:10px 0}.desktop-nav a:hover{color:var(--rose)}.header-booking{display:flex;align-items:center;gap:27px;border:1px solid #999999;padding:10px 20px;font-size:11px;min-height:44px}.header-booking:hover{background:var(--rose-light)}.nav-toggle{display:none}.mobile-nav[hidden]{display:none}
.hero{position:relative;min-height:690px;max-width:1800px;margin:auto;display:grid;grid-template-columns:45% 55%;padding:45px 4.5vw 74px;isolation:isolate}.hero-light{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 51% 50%,#e5e5e558,transparent 63%),radial-gradient(ellipse at 2% 5%,#fff 0,transparent 52%)}.hero-copy{padding:70px 0 70px 2vw;z-index:2;align-self:center}.hero .eyebrow{display:flex;gap:14px;align-items:center;color:var(--rose);font-size:9px}.eyebrow>span{height:1px;width:30px;background:var(--rose)}.hero-place{font-size:11px;letter-spacing:.07em;margin:24px 0 16px;color:var(--muted)}.hero h1{font-size:clamp(30px,3.25vw,49px);line-height:1.9;letter-spacing:.08em;white-space:nowrap}.word-glow{color:var(--rose)}.hero-description{font-size:12px;line-height:2.4;letter-spacing:.06em;margin-top:24px;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:25px;margin-top:34px}.hero-stations{display:flex;gap:16px;font-size:10px;color:var(--muted);margin-top:38px;letter-spacing:.04em}.hero-stations>span+span{border-left:1px solid var(--line);padding-left:16px}.hero-stations strong{font-weight:500;color:var(--ink)}.hero-art{position:relative;margin-left:20px;align-self:stretch;min-height:550px;padding:0 22px 24px 8px}.hero-photo{height:100%;position:relative;overflow:hidden;border-radius:48% 48% 3px 3px / 25% 25% 3px 3px;background:#e5e5e5}.hero-photo:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 55px #ffffff29;pointer-events:none}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:49% 42%;position:absolute}.hero-art:before{content:"";position:absolute;inset:-12px 8px 38px -5px;border:1px solid #bdbdbd88;border-radius:48% 48% 2px 2px / 25% 25% 2px 2px;z-index:-1}.glass-note{position:absolute;bottom:2px;left:-42px;display:flex;align-items:center;gap:18px;padding:20px 32px;background:rgba(255,255,255,.83);border:1px solid #fff8;backdrop-filter:blur(14px);box-shadow:0 14px 40px #33333310;font-family:var(--english);font-size:24px;line-height:1.28;color:#555555}.glass-note em{font-size:24px;font-weight:400}.glass-star{font-size:43px;font-weight:normal;color:#888888}.vertical-caption{position:absolute;right:0;top:34%;writing-mode:vertical-rl;font-size:8px;letter-spacing:.22em;color:var(--muted)}.hero-bottom{position:absolute;bottom:20px;left:6.5vw;right:6vw;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.16em;color:var(--muted)}.hero-bottom a{display:flex;align-items:center;gap:18px;min-height:44px}.hero-bottom a span{font-size:20px}
.concept{padding-top:100px;padding-bottom:110px;border-top:1px solid var(--line)}.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.section-en{font-size:clamp(36px,4.6vw,64px);line-height:1.18;letter-spacing:-.025em;color:#808080}.section-en em{font-weight:400;color:#666666}.concept-text h2{font-size:27px;line-height:1.9;margin-bottom:22px}.concept-text p{font-size:12px;line-height:2.5;color:var(--muted);margin-top:16px}.concept-facts{display:flex;gap:9px;flex-wrap:wrap;margin-top:26px}.concept-facts span{border-bottom:1px solid var(--line);padding:5px 3px;font-size:10px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:48px}.heading-note{font-size:12px;line-height:2.15;color:var(--muted)}.heading-note .text-link{margin-top:17px;color:var(--ink)}
.design{background:linear-gradient(135deg,#f2f2f2 0%,#f7f7f7 44%,#eeeeee 100%);padding-bottom:90px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.gallery-item:nth-child(even){padding-top:48px}.photo-button{display:block;width:100%;padding:0;border:0;background:none;position:relative;overflow:hidden;aspect-ratio:4/5}.photo-button img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.photo-button:hover img{transform:scale(1.045)}.photo-open{position:absolute;right:10px;bottom:10px;width:30px;height:30px;border-radius:50%;background:#fff9;display:grid;place-items:center;backdrop-filter:blur(8px);font-size:18px}.gallery-item figcaption{padding-top:17px}.gallery-item .serif{font-size:23px;color:#5c5c5c;font-style:italic}.gallery-item p{font-size:11px;letter-spacing:.07em;margin-top:4px}.collection-note{font-size:10px;color:var(--muted);text-align:right;margin-top:28px}
.menu-section{background:var(--white)}.menu-intro{font-size:13px;line-height:2.1;color:var(--muted)}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.menu-card{min-width:0}.menu-photo{display:block;aspect-ratio:1.25;position:relative;overflow:hidden}.menu-photo img{height:100%;width:100%;object-fit:cover;transition:transform .5s}.menu-photo:hover img{transform:scale(1.035)}.menu-no{position:absolute;top:12px;left:14px;font:italic 20px var(--english);padding:4px 12px;background:#fff9;backdrop-filter:blur(8px)}.menu-copy{padding:24px 1px 0}.menu-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.menu-top>.serif{font-size:33px;color:#666666}.price{font-family:var(--english);font-size:28px;letter-spacing:-.01em}.price small{font-size:17px;padding-right:3px}.menu-copy h3{font-size:12px;letter-spacing:.1em;margin-top:5px}.menu-description{font-size:11px;color:var(--muted);line-height:2.1;min-height:48px;margin-top:16px}.menu-copy .text-link{width:100%;margin-top:13px}.menu-inclusions{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:48px;border:1px solid var(--line);padding:23px 28px;background:#f7f7f7}.tiny-label{color:var(--rose);font-size:8px}.menu-inclusions>div>p{font-size:13px;margin-top:4px}.small-print{font-size:10px;color:var(--muted);line-height:2}.menu-help{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-top:17px;font-size:10px;color:var(--muted)}
.salon{display:grid;grid-template-columns:1.25fr 1fr;gap:8vw;align-items:center;padding-left:0;padding-top:125px;padding-bottom:125px;background:radial-gradient(ellipse at 60% 50%,#f5f5f5,transparent 70%)}.salon-photo{position:relative}.salon-photo img{width:100%;height:550px;object-fit:cover;object-position:61% 50%;border-radius:0 180px 0 0}.salon-photo-label{position:absolute;left:30px;bottom:28px;background:#fff9;backdrop-filter:blur(12px);font-size:9px;letter-spacing:.2em;padding:12px 20px}.salon-copy .section-en{font-size:51px;margin-bottom:27px}.salon-copy h2{font-size:27px}.salon-copy>p:not(.section-en){font-size:12px;color:var(--muted);line-height:2.4;margin-top:20px}.salon-copy .text-link{margin-top:22px}
.first-visit{border-top:1px solid var(--line);padding-top:85px;padding-bottom:85px}.first-visit .eyebrow{color:var(--rose);margin-bottom:22px}.first-visit h2{font-size:28px}.visit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.visit-grid article{border-top:1px solid var(--line);padding-top:20px;position:relative;padding-left:50px}.step-number{position:absolute;left:0;top:12px;font-size:30px;color:#777777;font-style:italic}.visit-grid h3{font-size:14px;margin-bottom:12px}.visit-grid p{font-size:11px;color:var(--muted);line-height:2.1}
.faq-section{display:grid;grid-template-columns:1fr 1.8fr;gap:7vw;background:#f5f5f5}.faq-heading h2{font-size:27px}.faq-heading>p{color:var(--muted);font-size:12px;margin-top:22px}.faq-heading .text-link{margin-top:25px}.faq-item{border-bottom:1px solid #cccccc}.faq-item:first-child{border-top:1px solid #cccccc}.faq-item summary{list-style:none;cursor:pointer;padding:21px 38px 21px 30px;position:relative;font-size:12px;line-height:1.9;min-height:64px}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:before{content:"Q";position:absolute;left:0;top:17px;font:italic 22px var(--english);color:var(--rose)}.faq-item summary:after{content:"＋";position:absolute;right:5px;top:20px;font-size:17px;color:var(--rose)}.faq-item[open] summary:after{content:"−"}.faq-answer{padding:0 30px 23px;color:var(--muted);font-size:12px;line-height:2.2}.faq-answer a{text-decoration:underline;text-underline-offset:4px;color:var(--rose)}
.access .section-heading{margin-bottom:55px}.access-brand{font-size:85px;color:#999999;letter-spacing:-.03em}.access-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:10vw}.access-location .eyebrow{font-size:9px;color:var(--rose);margin-bottom:20px}.station-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:18px 0;font-size:15px}.station-row>span:last-child{font-size:11px}.station-row strong{font:40px var(--english);margin:0 8px}.map-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:28px}.map-links .button{min-width:235px}.salon-info{margin:0}.salon-info>div{display:grid;grid-template-columns:85px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.salon-info dt{font-size:11px;color:var(--muted)}.salon-info dd{margin:0;font-size:12px;line-height:1.9}.salon-info dd>span{font-size:10px}.phone{font-family:var(--english);font-size:21px;letter-spacing:.04em}
.reservation{position:relative;isolation:isolate;text-align:center;padding:90px 24px;background:radial-gradient(ellipse at 30% 80%,#dddddd7a,transparent 50%),radial-gradient(ellipse at 85% 5%,#fff9,transparent 70%),#f5f5f5;border-top:1px solid #d8d8d8;overflow:hidden}.reservation:before,.reservation:after{content:"";position:absolute;z-index:-1;border:1px solid #fff7;width:440px;height:440px;border-radius:50%;transform:rotate(-20deg);left:-160px;top:-80px}.reservation:after{left:auto;right:-180px;top:30px;width:580px;height:300px}.reservation .eyebrow{font-size:9px;color:#555555}.reservation h2{font-size:35px;margin-top:23px}.reservation>p:not(.eyebrow){font-size:12px;color:var(--muted);margin-top:14px}.reservation .button{min-width:300px;margin-top:32px}.booking-provider{display:block;font-size:9px;color:var(--muted);margin-top:13px}.footer{padding:50px 5.7vw 22px;background:#ffffff}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:35px;padding-bottom:40px}.footer-brand{display:flex;align-items:center;gap:16px}.footer-brand img{width:64px;height:64px;object-fit:contain;border-radius:50%}.footer-brand .brand-name{font-size:32px}.footer-brand .brand-sub{font-size:9px;letter-spacing:.1em}.footer-top nav{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.footer-top .text-link{font-size:10px;border:0}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--muted)}.footer-bottom small{font-size:9px}.footer-bottom .text-link{font-size:9px;border:0}.back-top{font-size:9px;letter-spacing:.12em;min-height:44px;display:flex;align-items:center}.mobile-booking{display:none}
.photo-dialog{border:1px solid #dddddd;padding:16px;background:var(--paper);max-width:min(88vw,1000px);max-height:90dvh;overflow:auto;box-shadow:0 30px 80px #0003}.photo-dialog::backdrop{background:#292929cf;backdrop-filter:blur(8px)}.photo-dialog>img{max-width:100%;max-height:74dvh;object-fit:contain;margin:auto}.photo-dialog>p{font-size:12px;margin-top:13px;text-align:center;padding:0 25px}.dialog-close{position:sticky;top:0;display:grid;place-items:center;margin:0 0 10px auto;width:44px;height:44px;background:var(--paper);border:1px solid var(--button-border);font-size:27px;line-height:1}.photo-dialog:not([open]){display:none}
@media(min-width:1500px){.hero{min-height:780px}.hero-art{min-height:630px}.hero-copy{padding-left:3vw}.hero h1{font-size:50px}}
@media(max-width:1100px){.site-header{padding:0 4vw;gap:20px;height:86px}.desktop-nav{gap:17px;font-size:10px}.brand-name{font-size:31px}.hero{grid-template-columns:46% 54%;min-height:640px;padding-top:34px}.hero-art{min-height:510px}.hero-copy{padding-left:0}.hero h1{font-size:32px}.hero-actions{gap:13px}.hero-actions .button{padding:15px 18px;gap:20px}.hero .quiet-link{font-size:10px;gap:10px}.hero-place{font-size:9px}.hero-stations{gap:10px;font-size:9px}.hero-stations>span+span{padding-left:10px}.section{padding:85px 5.5vw}.section-en{font-size:46px}.concept-text h2{font-size:23px}.menu-top>.serif{font-size:28px}.price{font-size:24px}.menu-inclusions{align-items:flex-start;gap:18px;padding:20px;flex-direction:column}.salon{padding-left:0;gap:6vw}.salon-copy .section-en{font-size:44px}.salon-photo img{height:510px}.faq-section{grid-template-columns:.9fr 1.7fr;gap:5vw}.access-grid{gap:6vw}}
@media(max-width:760px){html{scroll-padding-top:85px}body{font-size:13px}.site-header{height:77px;padding:0 22px;gap:17px}.brand-name{font-size:30px}.brand-sub{font-size:7px;letter-spacing:.13em}.desktop-nav{display:none}.header-booking{font-size:10px;padding:8px 13px;gap:14px}.nav-toggle{width:32px;height:44px;padding:9px 2px;background:none;border:none;display:flex;flex-direction:column;justify-content:center;gap:7px}.nav-toggle span{height:1px;background:var(--ink);width:25px;transition:transform .2s}.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)}.mobile-nav{position:absolute;top:77px;left:0;right:0;padding:18px 25px 26px;background:#fffffffa;backdrop-filter:blur(20px);border-bottom:1px solid var(--line);box-shadow:0 15px 25px #33333310;max-height:calc(100dvh - 145px);overflow:auto;display:flex;flex-direction:column}.mobile-nav>a:not(.button){padding:11px 4px;border-bottom:1px solid var(--line);font-size:13px}.mobile-nav .button{margin-top:20px}.hero{display:flex;flex-direction:column;padding:30px 23px 58px;min-height:auto}.hero-copy{padding:0 2px;align-self:stretch}.hero .eyebrow{font-size:8px}.hero-place{font-size:9px;margin-top:18px;margin-bottom:12px;letter-spacing:.02em}.hero h1{font-size:clamp(27px,7.5vw,43px);line-height:1.8;letter-spacing:.05em}.hero-description{font-size:11px;line-height:2.2;margin-top:15px;letter-spacing:.03em}.hero-actions{margin-top:23px;gap:22px}.hero-actions .button{font-size:11px;min-height:48px;padding:13px 18px;gap:24px}.hero .quiet-link{font-size:11px}.hero-stations{font-size:9px;margin-top:19px;gap:15px}.hero-stations>span+span{padding-left:15px}.hero-art{width:100%;height:350px;min-height:0;margin:35px 0 18px;padding:0 10px 18px}.hero-photo{border-radius:44% 44% 2px 2px / 24% 24% 2px 2px}.hero-art:before{inset:-9px 0 27px 1px;border-radius:44% 44% 2px 2px / 24% 24% 2px 2px}.hero-photo img{object-position:center 46%}.glass-note{left:-4px;bottom:-4px;padding:13px 21px;gap:14px;font-size:21px}.glass-note em{font-size:21px}.glass-star{font-size:32px}.vertical-caption{right:-12px;font-size:7px}.hero-bottom{left:25px;right:25px;bottom:9px;font-size:7px;letter-spacing:.09em}.hero-bottom>span:last-child{display:none}.hero-bottom a{gap:9px}.hero-bottom a span{font-size:16px}.section{padding:66px 25px}.section-kicker{margin-bottom:24px;font-size:9px;gap:12px}.section-kicker>span{width:26px;height:26px;font-size:12px}.concept-grid{grid-template-columns:1fr;gap:29px}.section-en{font-size:42px}.concept-text h2{font-size:23px;margin-bottom:16px}.concept-text p{font-size:11px;line-height:2.3}.concept-facts{gap:11px;margin-top:22px}.concept-facts span{font-size:9px}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:26px}.heading-note{font-size:11px;margin-top:20px;line-height:2.2}.heading-note .text-link{margin-top:12px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 16px}.gallery-item:nth-child(even){padding-top:28px}.gallery-item:nth-child(n+3){margin-top:-6px}.gallery-item .serif{font-size:22px}.gallery-item figcaption{padding-top:12px}.gallery-item p{font-size:9px;letter-spacing:0}.collection-note{font-size:9px;text-align:left;line-height:1.9;margin-top:23px}.menu-intro{font-size:11px;margin-top:15px}.menu-grid{grid-template-columns:1fr;gap:34px}.menu-card{display:grid;grid-template-columns:41% 1fr;gap:18px;align-items:start}.menu-photo{aspect-ratio:3/4}.menu-copy{padding:0}.menu-top{flex-wrap:wrap;gap:0;align-items:baseline}.menu-top>.serif{font-size:27px;flex-basis:100%}.price{font-size:24px}.price small{font-size:15px}.menu-copy h3{font-size:10px;letter-spacing:.01em}.menu-description{font-size:10px;margin-top:10px;min-height:0}.menu-copy .text-link{font-size:10px;margin-top:7px;gap:10px;padding:6px 0;min-height:36px}.menu-inclusions{margin-top:30px;padding:18px;gap:10px}.menu-inclusions>div>p{font-size:11px}.small-print{font-size:9px}.menu-help{display:block;font-size:10px;line-height:2}.menu-help .quiet-link{font-size:11px;margin-top:6px}.salon{display:flex;flex-direction:column;align-items:stretch;gap:32px;padding:62px 0}.salon-photo{width:calc(100% - 25px)}.salon-photo img{height:340px;border-radius:0 105px 0 0;object-position:60% 50%}.salon-photo-label{font-size:8px;padding:9px 14px;left:23px;bottom:20px}.salon-copy{padding:0 25px}.salon-copy .section-en{font-size:43px;margin-bottom:22px}.salon-copy h2{font-size:25px}.salon-copy>p:not(.section-en){font-size:11px;line-height:2.3;margin-top:15px}.salon-copy .text-link{margin-top:15px}.first-visit .section-heading{margin-bottom:28px}.first-visit h2{font-size:25px}.visit-grid{grid-template-columns:1fr;gap:24px}.visit-grid article{padding:22px 0 0 52px}.visit-grid h3{font-size:13px;margin-bottom:8px}.visit-grid p{font-size:11px}.step-number{font-size:29px;top:17px}.faq-section{grid-template-columns:1fr;gap:30px}.faq-heading h2{font-size:26px}.faq-heading>p{font-size:11px;margin-top:16px}.faq-heading .text-link{margin-top:12px}.faq-item summary{font-size:11px;padding:19px 28px 19px 25px;min-height:64px}.faq-item summary:before{font-size:20px}.faq-item summary:after{font-size:15px;right:1px}.faq-answer{padding:0 24px 20px;font-size:11px}.access .section-heading{margin-bottom:25px}.access-brand{display:none}.access-grid{grid-template-columns:1fr;gap:32px}.station-row{font-size:14px;padding:12px 0}.station-row strong{font-size:35px}.map-links{margin-top:22px}.map-links .button{width:100%;font-size:11px}.map-links>.text-link{font-size:11px}.salon-info>div{grid-template-columns:70px 1fr;gap:15px}.salon-info dt{font-size:10px}.salon-info dd{font-size:11px}.reservation{padding:68px 24px}.reservation h2{font-size:28px;line-height:1.85}.reservation>p:not(.eyebrow){font-size:11px}.reservation .button{min-width:0;width:100%;max-width:330px;font-size:11px}.mobile-only{display:block}.footer{padding:35px 25px 90px}.footer-top{display:block;padding-bottom:25px}.footer-brand img{width:55px;height:55px}.footer-top nav{margin-top:22px;gap:0 17px}.footer-top .text-link{font-size:9px;gap:10px}.footer-bottom{display:flex;flex-wrap:wrap;gap:0 20px}.footer-bottom small{flex-basis:100%;font-size:8px}.footer-bottom .text-link{font-size:8px;letter-spacing:0}.back-top{font-size:8px;margin-left:auto}.mobile-booking{position:fixed;bottom:0;left:0;right:0;z-index:25;display:grid;grid-template-columns:1fr;padding:8px 15px calc(8px + env(safe-area-inset-bottom));background:#ffffffed;backdrop-filter:blur(16px);border-top:1px solid var(--line);gap:10px}.mobile-booking>a{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:11px}.mobile-book-button{background:var(--rose);color:white;gap:28px;border-radius:2px}.mobile-book-button>span{font-size:18px}.photo-dialog{max-width:94vw;padding:10px}.photo-dialog>p{font-size:11px}.photo-dialog>img{max-height:65dvh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Readability refinement after desktop and mobile visual review. */
.desktop-nav{font-size:12px}.hero-description,.concept-text p,.heading-note,.salon-copy>p:not(.section-en),.faq-answer{font-size:13px}.hero-place{font-size:12px}.hero-stations{font-size:11px}.menu-description,.visit-grid p{font-size:12px}.faq-item summary{font-size:13px}.collection-note,.small-print{font-size:11px}.photo-dialog>img{height:auto}
@media(max-width:1100px) and (min-width:761px){.desktop-nav{font-size:11px;gap:14px}.hero-place{font-size:10px}.hero-stations{font-size:10px}.hero-actions{flex-wrap:wrap;gap:12px}.hero-description{font-size:12px}}
@media(max-width:760px){.hero-place{font-size:10px}.hero-description{font-size:13px;line-height:2}.hero-stations{font-size:10px}.hero-actions .button,.hero .quiet-link{font-size:12px}.hero-actions{gap:18px}.concept-text p,.salon-copy>p:not(.section-en){font-size:13px;line-height:2.15}.heading-note{font-size:12px}.gallery-item p{font-size:11px;letter-spacing:0}.collection-note,.small-print{font-size:11px}.menu-description{font-size:12px;line-height:1.85}.menu-copy h3{font-size:12px}.menu-copy .text-link{font-size:11px;min-height:44px}.menu-inclusions>div>p{font-size:13px}.menu-help{font-size:11px}.visit-grid p{font-size:12px}.faq-item summary,.faq-answer{font-size:13px}.faq-heading>p{font-size:12px}.salon-info dt{font-size:11px}.salon-info dd{font-size:12px}.reservation>p:not(.eyebrow){font-size:12px}.footer-top .text-link{font-size:10px}.menu-photo{min-height:190px}.menu-top>.serif{font-size:28px}}
.price-note{font-size:11px;color:var(--muted);margin:-20px 0 25px;line-height:1.9}@media(max-width:760px){.price-note{font-size:11px;margin:-8px 0 25px}}

/* Keep the remaining footer links balanced after removing the FAQ. */
.footer-top nav{grid-template-columns:repeat(3,max-content)}
@media(max-width:760px){.footer-top nav{grid-template-columns:1fr;max-width:210px}.footer-top nav .text-link{width:100%;justify-content:space-between;border-bottom:1px solid var(--line)}}

/* Keep mobile headings together at meaningful phrase boundaries. */
.heading-phrase{display:inline}
@media(max-width:760px){
  .heading-phrase{display:inline-block;max-width:100%;overflow-wrap:anywhere}
  .hero h1{white-space:normal;font-size:clamp(24px,7.5vw,43px)}
  .concept .section-en{font-size:clamp(34px,10.8vw,42px);padding-right:.12em}
  .salon-copy .section-en{font-size:clamp(34px,10.8vw,43px);padding-right:.12em}
  .hero-actions{flex-wrap:wrap;row-gap:4px}
  .footer{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
}
@media(max-width:760px){.header-booking{white-space:nowrap;flex-shrink:0}.nav-toggle{flex-shrink:0}}
@media(max-width:359px){.site-header{padding-inline:18px;gap:12px}.site-header .brand-name{font-size:27px}.site-header .brand-sub{font-size:6.5px;letter-spacing:.1em}.header-booking{padding-inline:12px;gap:10px}.nav-toggle{width:28px}}
@media(max-width:760px){.menu-photo{min-height:0;width:100%}}
/* Mobile: keep menu numbers below the photo, clear of the nail design. */
@media(max-width:760px){
  .menu-photo{aspect-ratio:auto;overflow:visible}
  /* Square mobile crops show substantially more of the landscape nail photos. */
  .menu-photo img{height:auto;aspect-ratio:1/1;object-fit:cover}
  .menu-photo:hover img{transform:none}
  .menu-no{position:static;display:block;padding:8px 0 0;background:none;backdrop-filter:none;font-size:16px;line-height:1.25;color:var(--muted)}
}

/* Champagne gold accents: header dot and hero decorations. */
.site-header .brand-dot{color:#b39a65}
.hero .eyebrow>span{background:#b39a65}
.hero-art:before{border-color:#b39a65}
.hero .glass-star{color:#b39a65}

/* Para gel visual in the philosophy section. */
.concept-product-image{display:block;width:100%;height:auto}

/* Match the product visual to the adjacent copy height on desktop. */
@media(min-width:761px){.concept-grid>div:first-child{position:relative;min-width:0}.concept-product-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}}

/* Lower the hero photograph after removing its caption card. */
.hero-art{transform:translateY(24px)}
@media(max-width:760px){.hero-art{transform:translateY(12px)}}

/* Borderless photographs: keep the full composition and feather only the edges. */
.hero-art:before,.hero-photo:after{content:none}
.hero-photo{top:9%;height:auto;aspect-ratio:4/3;border-radius:0;background:transparent;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent);
  -webkit-mask-composite:source-in;mask-composite:intersect}
.hero-photo img,.hero-photo .hero-photo-next{object-fit:contain;object-position:center;transform:none}
/* Enlarge only the desktop photographs while keeping their right edge anchored. */
@media(min-width:761px){.hero-copy{align-self:start}.hero-art{align-self:start;min-height:0;aspect-ratio:8/9}.hero-photo{top:0;transform:scale(1.5);transform-origin:right top;-webkit-mask-image:linear-gradient(to right,transparent,#000 34%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(to right,transparent,#000 34%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent)}}
/* Fit the mobile arch to the reduced photograph, keeping the desktop design. */
@media(max-width:760px){
  .hero-art:before,.hero-photo:after{content:""}
  .hero-art:before{top:calc(10% - 10.8px);bottom:calc(10% + 25.2px)}
  .hero-photo{top:10%;height:80%;aspect-ratio:auto;border-radius:44% 44% 2px 2px / 24% 24% 2px 2px;background:#e5e5e5;-webkit-mask-image:none;mask-image:none}
  .hero-photo img,.hero-photo .hero-photo-next{object-fit:cover;object-position:center 46%}
}
/* Hold each design, then crossfade gently without moving the nail details. */
/* Three photographs: 4.2-second holds and 1.8-second crossfades. */
.hero-photo .hero-photo-next{opacity:0;animation:hero-photo-second 18s ease-in-out infinite}
.hero-photo .hero-photo-third{animation-name:hero-photo-third}
@keyframes hero-photo-second{0%,23.333%{opacity:0}33.333%,66.667%{opacity:1}66.668%,100%{opacity:0}}
@keyframes hero-photo-third{0%,56.667%{opacity:0}66.667%,90%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.hero-photo .hero-photo-next{animation:none;opacity:0}}

/* Shared subtle background; centered details remain visible on mobile. */
.hero-light,.salon,.footer{background:linear-gradient(rgba(255,255,255,.55),rgba(255,255,255,.55)),url('assets/soft-petal-background.webp') center/cover no-repeat}

/* Light greige buttons with readable dark labels. */
:root{--button-bg:transparent;--button-hover:rgba(179,154,101,.08);--button-ink:#453f3a;--button-border:#000000}
.button:not(.button-light),.mobile-book-button{background:var(--button-bg);border:1px solid var(--button-border);color:var(--button-ink)}
.button:not(.button-light):hover,.mobile-book-button:hover{background:var(--button-hover);border-color:var(--button-border)}

/* Link each first-visit number together with its descriptive heading. */
.step-title-link{display:inline-flex;align-items:center;gap:12px;min-height:44px}
.visit-grid h3{display:flex;align-items:center;min-height:44px}
@media(min-width:761px){
  .menu-section .section-heading{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:end}
  .menu-section .section-heading>div{grid-column:1 / 3}
  .menu-section .menu-intro{grid-column:3;justify-self:start}
}
@media(min-width:761px){
  .first-visit .section-heading{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
  .first-visit .section-heading>div{grid-column:1 / 3}
  .first-visit .heading-note{grid-column:3;padding-left:50px}
}
@media(max-width:760px){.first-visit .heading-note{padding-left:52px}}
.step-link-label{text-decoration:underline;text-decoration-color:#b39a65;text-decoration-thickness:1px;text-underline-offset:6px}
.step-title-link:hover,.step-title-link:hover .step-number{color:#8b7447}
.step-title-link>span:last-child{color:#8b7447}
/* Match the access wordmark to the header colors. */
.access-brand{color:var(--ink)}.access-brand .brand-dot{color:#b39a65}
.access-brand{width:288px;max-width:33.6%;flex-shrink:0;line-height:0}
.access-brand img{width:100%;height:auto}
@media(min-width:761px){
  .access .section-heading{display:grid;grid-template-columns:1fr 1.1fr;gap:10vw}
  .access .access-brand{justify-self:center;max-width:100%}
}
@media(min-width:761px) and (max-width:1100px){.access .section-heading{gap:6vw}}

.footer-brand .brand-name{color:var(--ink)}.footer-brand .brand-dot{color:#b39a65}

/* Enlarge the desktop image and heading; retain expanded copy spacing. */
.concept-text{position:relative;isolation:isolate}
.concept{position:relative;isolation:isolate;overflow:hidden}
.concept-grid>div:first-child{position:relative;z-index:1}
.concept:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('assets/concept-right-flowers.webp') right center/auto 100% no-repeat;opacity:.39}
@media(max-width:760px){
  .concept:before{content:none}
  .concept-text:before{content:"";position:absolute;inset:0 -25px -66px;z-index:-1;pointer-events:none;background:url('assets/concept-right-flowers.webp') right center/auto 100% no-repeat;opacity:.39}
}
@media(min-width:1101px){
  .concept-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .concept-text h2{font-size:clamp(29.9px,2.4375vw,35.1px);margin-bottom:28.6px}
  .concept-text p{font-size:13px;line-height:42.25px;margin-top:20.8px}
  .concept-facts{gap:11.7px;margin-top:33.8px}
  .concept-facts span{font-size:10px;line-height:24.7px;padding:6.5px 3.9px}
}

/* Apply the same heading scale and spacious body copy to the salon. */
@media(min-width:1101px){
  .salon-copy{padding-left:clamp(59.8px,4.875vw,70.2px);min-width:0}
  .salon-copy h2{font-size:clamp(29.9px,2.4375vw,35.1px)}
  .salon-copy>p:not(.section-en){font-size:13px;line-height:40.56px;margin-top:26px}
  .salon-copy .text-link{margin-top:28.6px}
}

/* Soft, lightweight tokimeki background for the booking section. */
.reservation{background:linear-gradient(rgba(255,255,255,.55),rgba(255,255,255,.55)),url('assets/tokimeki-yellow-desktop.webp') center/cover no-repeat}
.reservation:before,.reservation:after{content:none}
.reservation .button:not(.button-light),.reservation .button:not(.button-light):hover{background:#fff}
.hero-actions .button:not(.button-light),.hero-actions .button:not(.button-light):hover{background:#fff}
/* Lift text links and the header booking link on interaction. */
a[href]:not(.button,.brand,.footer-brand,.menu-photo,.skip-link){transition:transform .2s ease,color .2s ease,text-shadow .2s ease,box-shadow .2s ease}
.phone{display:inline-block}
a[href]:not(.button,.brand,.footer-brand,.menu-photo,.skip-link):is(:hover,:focus-visible){color:#8b6b35;transform:translateY(-3px);text-shadow:0 4px 7px rgba(69,63,58,.2)}
.header-booking:is(:hover,:focus-visible){background:#fff;box-shadow:0 5px 12px rgba(69,63,58,.14);border-color:var(--button-border)}
/* Keep absolute step numbers anchored to their cards while lifting only the label. */
a.step-title-link[href]:is(:hover,:focus-visible){transform:none}
.step-title-link .step-link-label{display:inline-block;transition:transform .2s ease}
.step-title-link:is(:hover,:focus-visible) .step-link-label{transform:translateY(-3px)}
@media(prefers-reduced-motion:reduce){.step-title-link .step-link-label{transition:none}.step-title-link:is(:hover,:focus-visible) .step-link-label{transform:none}}
@media(prefers-reduced-motion:reduce){a[href]:not(.button,.brand,.footer-brand,.menu-photo,.skip-link){transition:none}a[href]:not(.button,.brand,.footer-brand,.menu-photo,.skip-link):is(:hover,:focus-visible){transform:none}}
@media(max-width:760px){
  .reservation{background-image:linear-gradient(rgba(255,255,255,.55),rgba(255,255,255,.55)),url('assets/tokimeki-yellow-mobile.webp')}
}

/* Main-content buttons: simple black rectangular borders. */
main .button,main .button:hover{border-color:var(--button-border);border-radius:0}

/* Option 01: fine double borders on header and fixed footer buttons. */
:is(.site-header,.footer,.mobile-booking) .button-double{
  position:relative;border:1px solid var(--button-border);border-radius:0;
  background:#fff;color:var(--button-ink);
}
:is(.site-header,.footer,.mobile-booking) .button-double:is(:hover,:focus-visible){background:#fbf8f2}
.button-double::before{
  content:"";position:absolute;inset:5px;border:1px solid var(--button-border);pointer-events:none;
}

/* Desktop header: text-only booking link and external catalog indicator. */
@media(min-width:761px){
  .site-header .header-booking.button-double,
  .site-header .header-booking.button-double:is(:hover,:focus-visible){
    border-color:transparent;background:transparent;box-shadow:none;
  }
  .site-header .header-booking.button-double::before{content:none}
  .desktop-nav .desktop-catalog-link{display:inline-flex;align-items:center;gap:8px}
}

/* Simple single-border booking buttons in the mobile header and menu. */
@media(max-width:760px){
  .site-header .header-booking.button-double::before,
  .mobile-nav .button-double::before{content:none}
}

/* Booking backdrop: gentle crossfade from the existing gray to white. */
.reservation::before{
  content:"";position:absolute;inset:0;z-index:-1;width:auto;height:auto;
  border:0;border-radius:0;transform:none;pointer-events:none;
  background:linear-gradient(rgba(255,255,255,.55),rgba(255,255,255,.55)),url('assets/tokimeki-white-20260917-1920.webp') center/cover no-repeat;
  opacity:0;animation:reservation-white-fade 12s ease-in-out infinite;
}
@keyframes reservation-white-fade{0%,35%{opacity:0}50%,85%{opacity:1}100%{opacity:0}}
@media(max-width:760px){
  .reservation::before{background-image:linear-gradient(rgba(255,255,255,.55),rgba(255,255,255,.55)),url('assets/tokimeki-white-20260917-960.webp');background-position:center,15% center}
}
@media(prefers-reduced-motion:reduce){
  .reservation::before{animation:none;opacity:1}
}

/* Included services: maintain readable text while the panel darkens. */
.menu-inclusions{
  animation:included-panel-fade 12s linear infinite,included-panel-ink 12s steps(1,end) infinite;
}
.menu-inclusions .tiny-label,.menu-inclusions .small-print{color:inherit}
@keyframes included-panel-fade{
  0%,35%,100%{background-color:#f7f7f7}
  45%,90%{background-color:#757575}
  50%,85%{background-color:#333333}
}
/* Switch ink at the middle-gray contrast crossover; avoid gray-on-gray text. */
@keyframes included-panel-ink{
  0%{color:#000000}
  45%{color:#ffffff}
  90%{color:#000000}
  100%{color:#000000}
}
@media(prefers-reduced-motion:reduce){
  .menu-inclusions{animation:none;background-color:#333333;color:#ffffff}
}

/* Footer background follows the booking section's white-fade cycle. */
.footer{position:relative;isolation:isolate}
.footer::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:#ffffff;
  opacity:0;animation:reservation-white-fade 12s ease-in-out infinite;
}
@media(prefers-reduced-motion:reduce){
  .footer::before{animation:none;opacity:1}
}
