:root { --ink:#3a2921; --rose:#d96f7d; --rose-dark:#c75d70; --rose-pale:#fbe8e7; --paper:#fffcfa; --cream:#fff7f3; --line:#efc7c8; --green:#61a947; --serif:"Noto Serif JP","Yu Mincho",serif; --display:"DM Serif Display",Georgia,serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; color:var(--ink); background:var(--paper); font-family:var(--serif); font-size:15px; line-height:1.9; }
a { color:inherit; } button { font:inherit; color:inherit; }
.site-header { position:absolute; z-index:10; top:0; display:flex; width:100%; padding:17px 20px; align-items:center; justify-content:space-between; }
.site-header { transition:background .25s ease,box-shadow .25s ease,padding .25s ease; }.site-header.is-scrolled { position:fixed; background:rgba(255,252,250,.94); box-shadow:0 4px 20px rgba(76,40,37,.08); backdrop-filter:blur(10px); }
.logo { display:inline-flex; flex-direction:column; color:var(--rose-dark); font-family:var(--display); font-size:35px; line-height:.75; text-decoration:none; }
.logo span { margin-top:8px; font-family:var(--serif); font-size:8px; letter-spacing:.2em; text-align:center; }
.nav-toggle { z-index:11; display:grid; width:43px; height:38px; padding:7px 0 0; border:0; background:transparent; justify-items:center; cursor:pointer; }
.nav-toggle span { width:25px; height:1px; background:var(--rose-dark); transition:transform .25s ease,opacity .25s ease; }
.nav-toggle i { margin-top:-2px; color:var(--rose-dark); font-family:var(--display); font-size:7px; font-style:normal; letter-spacing:.12em; }
.nav-toggle.is-open span:nth-child(1) { transform:translateY(8px) rotate(45deg); }.nav-toggle.is-open span:nth-child(2) { opacity:0; }.nav-toggle.is-open span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
.site-nav { position:absolute; top:0; right:0; display:flex; width:min(285px,78vw); padding:85px 29px 27px; flex-direction:column; gap:16px; background:rgba(255,252,250,.97); box-shadow:0 12px 35px rgba(77,37,31,.1); opacity:0; pointer-events:none; transform:translateX(100%); transition:transform .3s ease,opacity .3s ease; }
.site-nav.is-open { opacity:1; pointer-events:auto; transform:translateX(0); }.site-nav a { color:var(--ink); font-size:13px; letter-spacing:.07em; text-decoration:none; }.site-nav .nav-reserve { display:grid; height:42px; margin-top:5px; place-items:center; color:#fff; background:var(--rose-dark); }
.hero { position:relative; min-height:680px; padding:139px 25px 58px; overflow:hidden; background:linear-gradient(130deg,#fffdfc 0%,#fff6f1 53%,#f9e5e4 100%); }
.hero::after { position:absolute; right:-90px; bottom:-110px; width:310px; height:310px; border:1px solid rgba(217,111,125,.2); border-radius:50%; content:""; }.hero-photo { position:absolute; z-index:0; right:-72px; bottom:0; width:86%; height:570px; opacity:.72; background-image:linear-gradient(90deg,#fff8f5 0%,rgba(255,248,245,.9) 10%,rgba(255,248,245,0) 39%),url("assets/hero-pink.png"); background-repeat:no-repeat; background-size:100% 100%,850px auto; background-position:0,right top; mix-blend-mode:multiply; }
.hero-content { position:relative; z-index:1; max-width:360px; }.hero-kicker,.eyebrow { margin:0; color:var(--rose-dark); font-family:var(--display); font-size:10px; letter-spacing:.2em; }.hero-logo { margin:12px 0 0; color:var(--rose); font-family:var(--display); font-size:94px; line-height:.76; }.hero-kana { margin:13px 0 22px 47px; color:var(--rose); font-size:11px; letter-spacing:.25em; }.hero-sub { margin:0 0 19px; font-size:11px; letter-spacing:.07em; }
.hero-location { margin:0 0 7px; color:var(--rose-dark); font-family:var(--display); font-size:10px; letter-spacing:.16em; }
h1,h2,h3,p { overflow-wrap:break-word; } h1 { margin:0; font-size:33px; font-weight:500; letter-spacing:.11em; line-height:1.65; } h1 em,.service-heading h2 em { color:var(--rose); font-style:normal; }.hero-text { margin:16px 0 24px; color:#6e5953; font-size:13px; letter-spacing:.05em; line-height:2; }
.button,.line-button { display:inline-flex; min-height:50px; padding:0 19px; align-items:center; justify-content:center; gap:23px; font-size:13px; letter-spacing:.08em; text-decoration:none; transition:transform .25s ease,filter .25s ease; }.button:hover,.line-button:hover { filter:brightness(.96); transform:translateY(-3px); }.button-pink { color:#fff; background:var(--rose-dark); }.button b { font-size:18px; font-weight:400; }.hero-scroll { position:absolute; z-index:2; right:20px; bottom:18px; color:var(--rose-dark); font-family:var(--display); font-size:9px; letter-spacing:.16em; writing-mode:vertical-rl; }.hero-scroll::after { display:block; width:1px; height:33px; margin:9px auto 0; background:var(--rose); content:""; }
.section { padding:78px 23px; }.center-heading { max-width:560px; text-align:center; }.center-heading:not(.reveal) { margin:auto; }.center-heading h2 { margin:8px 0 12px; font-size:28px; font-weight:500; letter-spacing:.1em; line-height:1.55; }.center-heading>p:last-child { margin:0; color:#765f5a; font-size:12px; letter-spacing:.05em; }.ornament { display:block; margin-top:10px; color:var(--rose); font-size:28px; line-height:1; }
.concerns { position:relative; overflow:hidden; background:linear-gradient(130deg,#fffdfa,#fff6f4); }.concerns::before,.concerns::after { position:absolute; width:190px; height:190px; border:1px solid rgba(217,111,125,.15); border-radius:50%; content:""; }.concerns::before { top:-94px; left:-84px; }.concerns::after { right:-120px; bottom:77px; }.concern-list { position:relative; z-index:1; max-width:750px; margin:34px auto 38px; padding:0; list-style:none; }.concern-list li { display:flex; padding:14px 0; align-items:flex-start; gap:12px; border-bottom:1px dashed var(--line); font-size:15px; letter-spacing:.03em; line-height:1.75; }.concern-list span { display:grid; width:28px; height:28px; flex:0 0 28px; place-items:center; border-radius:50%; color:#fff; background:linear-gradient(135deg,#d88491,#bf6574); font-family:sans-serif; font-size:17px; }.concern-list strong { color:var(--rose-dark); font-weight:500; }.support-message { position:relative; z-index:1; max-width:750px; margin:auto; padding:28px 18px; border:1px solid var(--line); background:rgba(255,253,252,.7); text-align:center; }.support-message p { margin:0; font-size:14px; letter-spacing:.08em; line-height:2; }.support-message strong { display:inline-block; margin-top:8px; color:var(--rose-dark); font-size:26px; font-weight:500; line-height:1.58; }
.about { position:relative; overflow:hidden; padding-top:0; background:var(--paper); }.about-photo { height:250px; margin:0 -23px 42px; background-image:linear-gradient(90deg,rgba(255,247,244,.9),rgba(255,247,244,0)),url("assets/salon.png"); background-repeat:no-repeat; background-size:100% 100%,1024px auto; background-position:0,right top; }.about-copy { position:relative; max-width:580px; }.about-copy h2 { margin:8px 0 16px; font-size:29px; font-weight:500; letter-spacing:.1em; line-height:1.58; }.about-copy h2 span { color:var(--rose); font-family:var(--display); font-size:1.34em; }.about-copy>p:last-child { margin:0; color:#5e4942; font-size:14px; letter-spacing:.05em; }.about-copy strong { color:var(--rose-dark); font-weight:500; }.about-grid { display:grid; margin-top:35px; grid-template-columns:1fr 1fr; gap:10px; }.about-card { min-height:179px; padding:17px 14px; border:1px solid var(--line); background:#fffaf8; }.about-card:last-child { grid-column:1/-1; min-height:auto; }.card-number { margin:0; color:var(--rose); font-family:var(--display); font-size:24px; line-height:1; }.about-card h3 { margin:7px 0 8px; color:var(--rose-dark); font-size:16px; font-weight:500; letter-spacing:.06em; line-height:1.55; }.about-card>p:last-child { margin:0; color:#725c55; font-size:11px; line-height:1.75; }
.menu-intro { background:#f9efeb; }.menu-intro .center-heading { margin:auto; }.menu-cards { display:grid; margin-top:35px; gap:11px; }.menu-card { display:grid; min-height:122px; padding:19px; grid-template-columns:48px 1fr; align-content:center; column-gap:14px; border:1px solid rgba(198,104,119,.35); background:#fff9f7; text-decoration:none; }.menu-card:nth-child(2) { background:#fffafa; }.menu-card:nth-child(3) { background:#f8f7f1; }.menu-card span { grid-row:1 / span 2; color:var(--rose); font-family:var(--display); font-size:30px; }.menu-card strong { align-self:end; font-size:19px; font-weight:500; letter-spacing:.1em; }.menu-card small { align-self:start; margin-top:3px; color:#8a7169; font-size:11px; letter-spacing:.05em; }
.service-detail { position:relative; overflow:hidden; background:var(--paper); }.service-detail:nth-of-type(even) { background:#fffaf8; }.service-visual { height:265px; margin:-78px -23px 41px; background-repeat:no-repeat; background-size:1024px auto; }.hair-detail .service-visual { background-image:linear-gradient(90deg,rgba(255,247,244,.05),rgba(255,247,244,.7)),url("assets/hair.png"); background-size:100% 100%,900px auto; background-position:0,-67px top; }.lash-detail .service-visual { background-image:linear-gradient(90deg,rgba(255,247,244,.05),rgba(255,247,244,.7)),url("assets/lash.png"); background-size:100% 100%,820px auto; background-position:0,-25px top; }.steam-detail .service-visual { background-image:linear-gradient(90deg,rgba(255,247,244,.95),rgba(255,247,244,0) 48%),url("assets/steam.png"); background-size:100% 100%,820px auto; background-position:0,right top; }.service-heading { position:relative; max-width:690px; }.ribbon { display:inline-block; margin:0 0 15px; padding:4px 22px; color:#fff; background:linear-gradient(90deg,#c66e7b,#e08a90); font-size:14px; letter-spacing:.14em; }.service-heading h2 { margin:9px 0 15px; font-size:29px; font-weight:500; letter-spacing:.09em; line-height:1.52; }.service-heading>p:last-child { margin:0; color:#684f48; font-size:13px; letter-spacing:.05em; line-height:2; }.merit-grid { display:grid; margin:32px 0; grid-template-columns:1fr 1fr; border:1px solid var(--line); }.merit-grid p { min-height:95px; margin:0; padding:15px 11px; border-right:1px dotted var(--line); border-bottom:1px dotted var(--line); font-size:11px; line-height:1.75; text-align:center; }.merit-grid p:nth-child(2n) { border-right:0; }.merit-grid p:nth-last-child(-n+2) { border-bottom:0; }.merit-grid b { color:var(--rose-dark); font-size:12px; font-weight:500; }.service-bottom { display:grid; gap:15px; }.recommend,.price-panel { padding:22px 18px; border:1px solid var(--line); background:#fffdfc; }.recommend h3,.price-panel h3 { margin:0 0 14px; color:var(--rose-dark); font-size:18px; font-weight:500; letter-spacing:.09em; text-align:center; }.recommend ul { margin:0; padding:0; list-style:none; }.recommend li { position:relative; padding:7px 0 7px 22px; border-bottom:1px dotted var(--line); font-size:12px; }.recommend li::before { position:absolute; left:0; color:var(--rose); content:"✓"; }.price-panel>.eyebrow { text-align:center; }.price-panel dl { display:grid; margin:0; grid-template-columns:1fr 1fr; border:1px solid var(--line); }.price-panel dl div { display:grid; min-height:124px; padding:14px 6px; place-items:center; border-right:1px solid var(--line); text-align:center; }.price-panel dl div:last-child { border-right:0; }.price-panel dt { color:#765e56; font-size:12px; line-height:1.55; }.price-panel dt small { color:var(--rose-dark); }.price-panel dd { margin:0; color:var(--rose-dark); font-family:var(--display); font-size:37px; line-height:1; white-space:nowrap; }.price-panel dd span { margin-left:2px; font-family:var(--serif); font-size:14px; }.price-note { margin:10px 0 0; color:#836b64; font-size:10px; line-height:1.7; }.three-prices { grid-template-columns:1fr 1fr 1fr!important; }.three-prices div { min-height:122px!important; }.three-prices dd { font-size:27px; }.spa-notes { display:flex; padding-top:12px; justify-content:space-around; gap:5px; color:var(--rose-dark); font-size:11px; text-align:center; }.spa-notes span { flex:1; }
.flow { position:relative; background:linear-gradient(135deg,#fff8f6,#fffdfc); }.flow .center-heading { margin:auto; }.flow-list { display:grid; max-width:960px; margin:35px auto 0; padding:0; list-style:none; gap:9px; }.flow-list li { display:grid; padding:18px 15px; grid-template-columns:54px 1fr; gap:12px; border:1px solid var(--line); background:rgba(255,255,255,.62); }.flow-list b { color:var(--rose); font-family:var(--display); font-size:10px; font-weight:400; line-height:1.1; text-align:center; }.flow-list b span { font-size:34px; }.flow-list h3 { margin:0 0 5px; color:var(--rose-dark); font-size:16px; font-weight:500; letter-spacing:.05em; line-height:1.55; }.flow-list p { margin:0; font-size:11px; letter-spacing:.04em; line-height:1.8; }
.faq { background:var(--paper); }.faq .center-heading { margin:auto; }.faq-list { max-width:860px; margin:32px auto 0; border-top:1px solid var(--line); }.faq-item { border-bottom:1px solid var(--line); }.faq-item h3 { margin:0; }.faq-item button { display:flex; width:100%; padding:18px 2px; align-items:center; gap:10px; border:0; background:transparent; cursor:pointer; font-size:13px; font-weight:500; text-align:left; }.faq-item button span,.faq-answer b { color:var(--rose-dark); font-family:var(--display); font-size:17px; font-weight:400; }.faq-item button i { position:relative; width:16px; height:16px; margin-left:auto; flex:0 0 16px; }.faq-item button i::before,.faq-item button i::after { position:absolute; top:8px; left:1px; width:14px; height:1px; background:var(--rose-dark); content:""; transition:transform .25s ease; }.faq-item button i::after { transform:rotate(90deg); }.faq-item.is-open button i::after { transform:rotate(0); }.faq-answer { max-height:0; overflow:hidden; transition:max-height .3s ease; }.faq-answer p { margin:0; padding:0 2px; color:#6f5750; font-size:12px; line-height:1.9; }.faq-item.is-open .faq-answer { max-height:170px; }.faq-item.is-open .faq-answer p { padding-bottom:18px; }
.reservation { position:relative; min-height:515px; overflow:hidden; background:#f9e9e7; }.reservation-photo { position:absolute; inset:0; opacity:.4; background-image:linear-gradient(90deg,#f9e9e7 0%,rgba(249,233,231,.75) 48%,rgba(249,233,231,.12)),url("assets/reserve.png"); background-repeat:no-repeat; background-size:100% 100%,1024px auto; background-position:0,right top; }.reservation-inner { position:relative; z-index:1; max-width:560px; margin:auto; padding:72px 25px 55px; text-align:center; }.reservation h2 { margin:9px 0 17px; font-size:25px; font-weight:500; letter-spacing:.07em; line-height:1.6; }.reservation h2 span { color:var(--rose); font-family:var(--display); font-size:1.35em; }.reservation-inner>p:not(.eyebrow) { margin:0; color:#6d554e; font-size:13px; letter-spacing:.05em; line-height:2; }.line-button { width:100%; margin-top:26px; color:#fff; background:linear-gradient(135deg,#da7180,#cc576e); font-size:17px; }.line-button span { display:grid; width:38px; height:30px; place-items:center; border-radius:50%; color:var(--rose-dark); background:#fff; font-family:sans-serif; font-size:9px; font-weight:bold; }.line-button b { margin-left:auto; font-family:sans-serif; font-size:33px; font-weight:400; line-height:0; }.reservation-points { display:flex; max-width:320px; margin:23px auto 0; justify-content:space-around; color:#6d5048; font-size:14px; letter-spacing:.08em; }.reservation-points span+span { padding-left:23px; border-left:1px solid var(--rose); }
.access { background:#fffaf8; }.access .center-heading { margin:auto; }.access-grid { display:grid; max-width:970px; margin:35px auto 0; border:1px solid var(--line); background:#fff; }.map-frame { min-height:280px; }.map-frame iframe { display:block; width:100%; height:100%; min-height:280px; border:0; }.access-info { padding:27px 24px; background:#fbe4e8; text-align:center; }.access-info h3 { margin:0 0 12px; font-size:22px; font-weight:500; letter-spacing:.1em; }.access-info address { font-style:normal; font-size:14px; letter-spacing:.08em; line-height:1.9; }.access-info dl { display:flex; max-width:350px; margin:19px auto; justify-content:center; gap:0; }.access-info dl div { padding:0 17px; }.access-info dl div+div { border-left:1px solid #df9da7; }.access-info dt { color:var(--rose-dark); font-size:11px; letter-spacing:.08em; }.access-info dd { margin:2px 0 0; font-size:14px; white-space:nowrap; }.map-link { display:inline-flex; min-height:45px; padding:0 18px; align-items:center; gap:18px; color:#fff; background:var(--rose-dark); font-size:12px; letter-spacing:.08em; text-decoration:none; transition:transform .25s ease,filter .25s ease; }.map-link:hover { filter:brightness(.96); transform:translateY(-2px); }.map-link span { font-size:17px; }
.site-footer { padding:35px 20px 25px; background:#fffaf8; text-align:center; }.site-footer .logo { align-items:center; font-size:43px; }.site-footer p { margin:15px 0 12px; color:#7f675f; font-size:10px; letter-spacing:.07em; }.site-footer small { display:block; color:#ad918b; font-family:var(--display); font-size:10px; letter-spacing:.08em; }.footer-company-link { display:block; width:max-content; margin:0 auto 12px; color:var(--rose-dark); font-size:11px; letter-spacing:.08em; text-decoration:none; }.footer-company-link:hover { text-decoration:underline; text-underline-offset:4px; }.footer-instagram { display:inline-flex; margin:0 0 18px; align-items:center; gap:7px; color:#76534d; font-family:var(--display); font-size:12px; letter-spacing:.08em; text-decoration:none; transition:color .2s ease,transform .2s ease; }.footer-instagram svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; }.footer-instagram .instagram-dot { fill:currentColor; stroke:none; }.footer-instagram:hover { color:var(--rose-dark); transform:translateY(-2px); }.footer-instagram:focus-visible { outline:2px solid var(--rose-dark); outline-offset:4px; }
.mobile-line-cta { position:fixed; z-index:20; right:15px; bottom:15px; display:inline-flex; min-height:49px; padding:0 16px; align-items:center; gap:10px; border-radius:4px; color:#fff; background:linear-gradient(135deg,#6bb95a,#4d9e40); box-shadow:0 7px 20px rgba(49,104,45,.24); font-size:12px; font-weight:500; letter-spacing:.04em; text-decoration:none; transition:transform .25s ease; }.mobile-line-cta:hover { transform:translateY(-2px); }.mobile-line-cta span { display:grid; width:28px; height:23px; place-items:center; border-radius:50%; color:#59a04b; background:#fff; font-family:Arial,sans-serif; font-size:8px; font-weight:700; }.mobile-line-cta b { font-size:17px; font-weight:400; }
.reveal { opacity:0; transform:translateY(22px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.3,1); }.reveal.is-visible { opacity:1; transform:translateY(0); }
@media (min-width:760px) { .site-header { padding:24px max(5vw,calc((100% - 1160px)/2)); }.site-header.is-scrolled { padding:14px max(5vw,calc((100% - 1160px)/2)); }.nav-toggle { display:none; }.site-nav { position:static; display:flex; width:auto; padding:0; flex-direction:row; align-items:center; gap:23px; box-shadow:none; opacity:1; pointer-events:auto; transform:none; background:transparent; }.site-nav a { font-size:12px; }.site-nav .nav-reserve { display:inline-grid; min-width:86px; height:34px; margin:0; }.hero { min-height:760px; padding:160px max(7vw,calc((100% - 1110px)/2)) 80px; }.hero-photo { right:max(-10px,calc((100% - 1170px)/2)); width:min(46vw,600px); height:760px; opacity:.88; background-size:100% 100%,1024px auto; background-position:0,right top; }.hero-content { max-width:540px; }.hero-logo { font-size:146px; }.hero-kana { margin-left:72px; }.hero-sub { font-size:13px; } h1 { font-size:44px; }.hero-text { font-size:15px; }.hero-scroll { right:max(34px,calc((100% - 1190px)/2)); }.section { padding:110px max(6vw,calc((100% - 1080px)/2)); }.center-heading h2 { font-size:37px; }.center-heading>p:last-child { font-size:14px; }.concern-list li { font-size:19px; }.support-message p { font-size:16px; }.support-message strong { font-size:33px; }.about { padding-top:0; }.about-photo { height:360px; margin:0 max(-6vw,calc((1080px - 100vw)/2)) 60px; }.about-copy h2 { font-size:38px; }.about-copy>p:last-child { font-size:15px; }.about-grid { grid-template-columns:repeat(5,1fr); gap:10px; }.about-card,.about-card:last-child { grid-column:auto; min-height:205px; }.menu-cards { grid-template-columns:repeat(3,1fr); }.menu-card { min-height:160px; grid-template-columns:1fr; grid-template-rows:38px 1fr 25px; }.menu-card span { grid-row:auto; }.menu-card strong { align-self:center; font-size:20px; }.service-detail { display:grid; padding-top:110px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:45px; }.service-detail .service-visual { grid-row:1 / span 2; height:600px; margin:-110px 0 -110px max(-6vw,calc((1080px - 100vw)/2)); }.service-heading h2 { font-size:37px; }.service-heading>p:last-child { font-size:14px; }.merit-grid { margin:32px 0 0; }.service-bottom { grid-column:1/-1; margin-top:75px; grid-template-columns:.85fr 1.25fr; }.recommend,.price-panel { padding:27px 25px; }.flow-list { grid-template-columns:1fr 1fr; gap:12px; }.flow-list li { min-height:154px; padding:20px; grid-template-columns:62px 1fr; }.flow-list h3 { font-size:17px; }.reservation { min-height:530px; }.reservation-inner { padding-top:105px; }.line-button { max-width:550px; }.faq-item button { font-size:15px; }.faq-answer p { font-size:13px; }.mobile-line-cta { display:none; } }
/* Use only the photographic portions of the supplied service references. */
.hair-detail .service-visual { background-size:100% 100%,1100px auto; background-position:center,-88px 0; }
.lash-detail .service-visual { background-size:100% 100%,1100px auto; background-position:center,0 0; }
.steam-detail .service-visual { background-size:100% 100%,1000px auto; background-position:center,right top; }
.steam-detail .price-panel dl { grid-template-columns:1fr; }
.steam-detail .price-panel dl div { border-right:0; }

/* Keep the hero background within the portrait area only, excluding the source artwork text. */
.hero-photo { background-size:100% 100%,1050px auto; background-position:center,right top; }
@media (min-width:760px) { .hero-photo { background-size:100% 100%,1300px auto; } }
@media (min-width:760px) { .access-grid { grid-template-columns:1.25fr 1fr; }.map-frame,.map-frame iframe { min-height:360px; }.access-info { display:flex; padding:35px 26px; flex-direction:column; justify-content:center; } }

@media (max-width:759px) { .hero-photo { right:-96px; width:76%; opacity:.42; filter:brightness(1.12) saturate(.88); }.hero-content { z-index:2; padding:8px 12px 17px 0; background:linear-gradient(90deg,rgba(255,253,252,.98) 0%,rgba(255,253,252,.93) 59%,rgba(255,253,252,.38) 100%); }.hero-sub,.hero-text { color:#4f3b35; font-weight:500; }.hero h1 { color:#33231e; text-shadow:0 1px 0 rgba(255,255,255,.8); }.hero h1 em { color:#b94f62; }.hero-kicker,.hero-location { color:#b94f62; font-weight:500; } }

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.reveal { opacity:1; transform:none; transition:none; } }
