:root{
  --bg:#f3efe8;--fg:#1a1716;--sub:#6d655d;--line:rgba(26,23,22,.14);--card:#fffdf9;--red:#c8102e;--ink:#121010;--paper:#f6f2ec;
  --en:"Cormorant Garamond",serif;--mincho:"Noto Serif JP",serif;--sans:"Noto Sans JP",system-ui,sans-serif;
  --gut:clamp(16px,4vw,56px);--max:1280px;--ease:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-weight:400;font-size:15px;line-height:1.9;letter-spacing:.04em;overflow-x:clip;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
img[src*="logo-"]{flex:none;max-width:none;object-fit:contain}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul{margin:0}
ul{padding:0;list-style:none}
h1,h2,h3{word-break:auto-phrase;line-break:strict;text-wrap:balance}
p,li,dd{word-break:normal;line-break:strict}
.ib{display:inline-block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.eyebrow{font-family:var(--en);font-size:13px;letter-spacing:.32em;color:var(--red);font-weight:600}
.h2{font-family:var(--mincho);font-weight:500;font-size:clamp(26px,4.2vw,52px);line-height:1.5;letter-spacing:.06em}
.lead{font-size:clamp(14px,1.25vw,16px);color:var(--sub);line-height:2.1}
.btn{display:inline-flex;align-items:center;gap:.8em;padding:1em 1.8em;border:1px solid currentColor;border-radius:0;font-size:13px;letter-spacing:.14em;transition:background .4s var(--ease),color .4s var(--ease)}
.btn::after{content:"";width:18px;height:1px;background:currentColor;transition:width .4s var(--ease)}
.btn:hover::after{width:30px}
.btn--red{background:var(--red);border-color:var(--red);color:#fff}
.btn--red:hover{background:transparent;color:var(--red)}
.ch{display:inline-block;will-change:transform}
.ln{display:block;overflow:hidden;padding-bottom:.08em}
.ln>span{display:inline-block}

.hdr{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--gut);color:#fff;transition:transform .5s var(--ease),background .5s var(--ease),color .5s var(--ease)}
.hdr.is-solid{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);color:var(--fg)}
.hdr.is-hide{transform:translateY(-100%)}
.lockup{display:flex;align-items:center;gap:10px}
.lockup img{height:26px;width:auto}
.lockup .l-js{height:30px}
.lockup .x{font-family:var(--en);font-size:18px;color:var(--red)}
.lockup .lg-dk{display:none}
.hdr.is-solid .lg-wh{display:none}
.hdr.is-solid .lg-dk{display:block}
.hdr__nav{display:flex;align-items:center;gap:28px;font-size:12px;letter-spacing:.16em}
.hdr__nav a{position:relative}
.hdr__nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.hdr__nav a:not(.btn):hover::after{transform:scaleX(1);transform-origin:left}
.hdr__nav .btn{padding:.7em 1.4em}
@media (max-width:899px){.hdr__nav a:not(.btn){display:none}.lockup img{height:20px}.lockup .l-js{height:24px}}

.one{padding:clamp(110px,16vw,200px) 0 clamp(90px,12vw,160px);text-align:center;position:relative}
.meet{display:flex;align-items:center;justify-content:center;gap:clamp(16px,3vw,40px);margin:28px 0 clamp(40px,6vw,64px)}
.meet img{height:clamp(52px,8vw,96px);width:auto}
.meet .meet__dty{height:clamp(30px,4.6vw,56px)}
.meet__x{font-family:var(--en);font-size:clamp(28px,4vw,48px);color:var(--red);line-height:1}
.one .h2{margin-bottom:28px}
.one .lead{max-width:40em;margin:0 auto}
.facts{display:flex;justify-content:center;gap:clamp(28px,7vw,96px);margin-top:clamp(48px,7vw,80px)}
.facts li{display:flex;flex-direction:column;align-items:center;gap:6px}
.facts b{font-family:var(--en);font-weight:500;font-size:clamp(48px,7vw,88px);line-height:1}
.facts span{font-size:12px;color:var(--sub);letter-spacing:.12em}
.facts span{white-space:nowrap}
@media (max-width:400px){.facts{gap:16px}.facts span{font-size:11px;letter-spacing:.06em}}

.band{overflow:hidden;border-block:1px solid var(--line);padding:22px 0;white-space:nowrap}
.band__track{display:inline-flex;gap:0;will-change:transform}
.band__track span{font-family:var(--en);font-size:clamp(34px,6vw,84px);font-weight:500;line-height:1.1;padding-right:.6em;letter-spacing:.02em}
.band__track span i{font-style:normal;color:var(--red)}

.menu{position:relative}
.menu__head{padding:clamp(90px,12vw,140px) 0 clamp(40px,5vw,60px)}
.menu__head .h2{margin:14px 0 18px}
.menu__pin{overflow:hidden}
.menu__track{display:flex;gap:clamp(16px,2vw,28px);padding:0 var(--gut) clamp(80px,10vw,120px);width:max-content}
.mcard{position:relative;width:min(78vw,440px);flex:none;display:flex;flex-direction:column;gap:18px}
.mcard__img{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:0}
.mcard__img img{width:100%;height:118%;object-fit:cover;transition:transform 1.2s var(--ease)}
.mcard:hover .mcard__img img{transform:scale(1.05)}
.mcard__tag{position:absolute;top:14px;right:14px;z-index:2;font-size:11px;letter-spacing:.14em;padding:.35em 1em;border-radius:0;background:rgba(0,0,0,.45);color:#fff;backdrop-filter:blur(6px)}
.mcard__tag--dty{background:rgba(200,16,46,.85)}
.mcard__en{font-family:var(--en);font-size:clamp(26px,2.6vw,34px);line-height:1.1;font-weight:500}
.mcard__jp{font-family:var(--mincho);font-size:17px;margin-top:4px}
.mcard__txt{font-size:13.5px;color:var(--sub);line-height:2}
.mcard__go{font-size:12px;letter-spacing:.14em;display:inline-flex;gap:.6em;align-items:center;color:var(--fg)}
.mcard__go::after{content:"→";color:var(--red);transition:transform .4s var(--ease)}
.mcard:hover .mcard__go::after{transform:translateX(6px)}
@media (max-width:899px){.menu__track{width:auto;flex-direction:column}.mcard{width:100%}.mcard__img{aspect-ratio:4/3}}

.brands{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.brand{position:relative;padding:clamp(56px,8vw,100px) var(--gut);display:flex;flex-direction:column;gap:22px}
.brand+.brand{border-left:1px solid var(--line)}
.brand__img{aspect-ratio:5/6;overflow:hidden;border-radius:0}
.brand__img img{width:100%;height:120%;object-fit:cover}
.brand__logo{height:56px;width:auto;align-self:flex-start}
.brand--dty .brand__logo{height:34px;margin:11px 0}
.brand__cat{font-family:var(--en);font-size:14px;letter-spacing:.28em;color:var(--red)}
.brand__h{font-family:var(--mincho);font-weight:500;font-size:clamp(20px,2.2vw,28px);line-height:1.6}
.brand__dl{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;font-size:13px;border-top:1px solid var(--line);padding-top:18px}
.brand__dl dt{color:var(--sub)}
.brand__dl dd{margin:0}
@media (max-width:899px){.brands{grid-template-columns:1fr}.brand+.brand{border-left:0;border-top:1px solid var(--line)}}

.scene{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);padding:clamp(90px,12vw,150px) var(--gut);max-width:var(--max);margin:0 auto}
.scene__sticky{position:sticky;top:12vh;height:76vh;border-radius:0;overflow:hidden}
.scene__sticky img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity 1s var(--ease),transform 1.6s var(--ease)}
.scene__sticky img.is-on{opacity:1;transform:scale(1)}
.scene__steps{display:flex;flex-direction:column}
.scene__intro{padding-bottom:12vh}
.scene__intro .h2{margin:14px 0 18px}
.step{min-height:62vh;display:flex;flex-direction:column;justify-content:center;gap:14px;opacity:.28;transition:opacity .6s var(--ease)}
.step.is-on{opacity:1}
.step__no{font-family:var(--en);font-size:14px;letter-spacing:.24em;color:var(--red)}
.step__h{font-family:var(--mincho);font-weight:500;font-size:clamp(22px,2.6vw,34px);line-height:1.6}
.step__txt{font-size:14px;color:var(--sub);line-height:2.1;max-width:30em}
.step__brand{font-size:12px;letter-spacing:.14em}
.step__img-sp{display:none}
@media (max-width:899px){.scene{grid-template-columns:1fr}.scene__sticky{display:none}.step{min-height:auto;padding:36px 0;opacity:1}.step__img-sp{display:block;aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:0;margin-bottom:6px}.scene__intro{padding-bottom:20px}}

.salons{padding:clamp(90px,12vw,150px) 0;border-top:1px solid var(--line)}
.salons__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
.salons__head .h2{margin-top:14px}
.tabs{display:flex;gap:8px;flex-wrap:wrap}
.tab{font:inherit;font-size:12px;letter-spacing:.12em;padding:.7em 1.3em;border-radius:0;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;transition:all .4s var(--ease)}
.tab.is-on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.salon{display:flex;flex-direction:column;gap:12px;padding:26px 24px;background:var(--card);border:1px solid var(--line);border-radius:0;transition:transform .5s var(--ease),border-color .5s var(--ease)}
.salon:hover{transform:translateY(-4px);border-color:var(--red)}
.salon.is-out{display:none}
.salon__brand{font-family:var(--en);font-size:13px;letter-spacing:.24em;color:var(--sub)}
.salon__brand b{color:var(--red);font-weight:600}
.salon__name{font-family:var(--en);font-size:28px;font-weight:500;line-height:1.1}
.salon__menu{display:flex;flex-wrap:wrap;gap:6px}
.salon__menu span{font-size:11px;letter-spacing:.1em;padding:.25em .8em;border:1px solid var(--line);border-radius:0}
.salon__addr{font-size:12.5px;color:var(--sub);line-height:1.8;flex:1}
.salon__act{display:flex;gap:8px;margin-top:6px}
.salon__act a{flex:1;text-align:center;font-size:12px;letter-spacing:.12em;padding:.8em 0;border-radius:0;border:1px solid var(--fg);transition:all .4s var(--ease)}
.salon__act a:first-child{background:var(--fg);color:var(--bg)}
.salon__act a:hover{background:var(--red);border-color:var(--red);color:#fff}

.recruit{position:relative;overflow:hidden;background:var(--ink);color:var(--paper);padding:clamp(100px,14vw,180px) 0}
.recruit__bg{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;opacity:.32}
.recruit__bg img{width:100%;height:100%;object-fit:cover}
.recruit__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,16,16,.92) 20%,rgba(18,16,16,.55))}
.recruit .wrap{position:relative}
.recruit .h2{margin:14px 0 22px}
.recruit .lead{color:rgba(246,242,236,.75);max-width:34em}
.roles{display:flex;flex-wrap:wrap;gap:10px;margin:34px 0 40px}
.roles li{font-size:13px;letter-spacing:.1em;padding:.7em 1.4em;border:1px solid rgba(246,242,236,.35);border-radius:0}

.ftr{padding:70px 0 40px;border-top:1px solid var(--line)}
.ftr__in{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}
.ftr .lockup img{height:30px}
.ftr .lockup .l-js{height:36px}
.ftr__links{display:flex;gap:28px;flex-wrap:wrap;font-size:12.5px;letter-spacing:.1em}
.ftr__links a:hover{color:var(--red)}
.ftr__copy{margin-top:48px;font-size:11px;color:var(--sub);letter-spacing:.12em}

.scroll-cue{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--en);font-size:11px;letter-spacing:.3em;color:#fff}
.scroll-cue::after{content:"";width:1px;height:46px;background:linear-gradient(#fff 50%,transparent 50%);background-size:1px 200%;animation:cue 2.2s var(--ease) infinite}
@keyframes cue{from{background-position:0 100%}to{background-position:0 -100%}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
