/* site.css — ページの組み方（色・書体は kk-design-system.css の変数を使う） */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--head) + 8px);-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:clip;background:var(--black);color:var(--ink);font:400 16px/1.9 var(--jp);letter-spacing:.04em;
  font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--or-hi);outline-offset:3px;border-radius:4px}
[hidden]{display:none!important}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.en{font-family:var(--en)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- header ---------- */
.hd{position:fixed;inset:0 0 auto;z-index:50;height:var(--head);transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.hd.solid{background:rgba(6,8,13,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.hd .wrap{height:100%;display:flex;align-items:center;gap:28px;max-width:1360px}
.logo{font:800 17px/1 var(--en);font-stretch:112%;letter-spacing:.16em;white-space:nowrap}
.logo small{display:block;margin-top:5px;font-size:9.5px;font-weight:500;letter-spacing:.3em;color:var(--sub)}
.nav{display:flex;gap:24px;margin-left:auto}
.nav a{font:600 12.5px/1 var(--en);letter-spacing:.16em;color:var(--sub);padding:8px 0;position:relative;white-space:nowrap}
.nav a:hover,.nav a.on{color:var(--ink)}
.nav a.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink)}
.sns{display:flex;gap:6px}
.sns a{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:var(--sub)}
.sns a:hover{color:var(--ink);background:rgba(255,255,255,.07)}
.sns svg{width:17px;height:17px;fill:currentColor}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;border:0;
  font:700 15px/1.2 var(--jp);letter-spacing:.08em;cursor:pointer;transition:transform .15s,filter .15s,background .2s;white-space:nowrap}
.btn:hover{filter:brightness(1.08)} .btn:active{transform:translateY(1px)}
.btn.or{background:var(--or);color:#fff}
.btn.gr{background:var(--gr);color:#fff}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line2)}
.btn.line:hover{background:rgba(255,255,255,.06)}
.btn.sm{min-height:40px;padding:0 18px;font-size:13px}
.btn svg{width:16px;height:16px;fill:currentColor;flex:none}
.menu-btn{display:none;margin-left:auto;width:48px;height:48px;border:0;background:none;cursor:pointer;place-items:center}
.menu-btn i{display:block;width:24px;height:1.5px;background:#fff;box-shadow:0 -7px 0 #fff,0 7px 0 #fff}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(100svh,940px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero picture,.hero picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 30%;z-index:-2}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(6,8,13,.86) 0%,rgba(6,8,13,.55) 34%,rgba(6,8,13,0) 60%,rgba(6,8,13,0) 100%),
             linear-gradient(0deg,var(--black) 0%,rgba(6,8,13,0) 34%)}
.hero .wrap{width:100%;max-width:1360px;padding-bottom:clamp(56px,9vh,110px);padding-top:calc(var(--head) + 40px)}
.hero .role{font:500 13px/1 var(--en);letter-spacing:.34em;color:var(--sub);margin:0 0 26px}
.hero h1{margin:0;font-weight:900;font-size:clamp(40px,6.1vw,92px);line-height:1.18;letter-spacing:.02em}
.hero h1 span{display:block}
.hero .name{margin:28px 0 0;font:800 clamp(18px,1.8vw,24px)/1 var(--en);font-stretch:118%;letter-spacing:.32em}
.hero .lead{margin:26px 0 0;max-width:30em;color:var(--sub);font-size:15.5px;line-height:2}
.hero .cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px}
.hero .proof{margin:44px 0 0;display:flex;flex-wrap:wrap;gap:10px 30px;font:600 12.5px/1.4 var(--en);letter-spacing:.14em;color:var(--sub)}
.hero .proof li{list-style:none;position:relative;padding-left:16px}
.hero .proof li::before{content:"";position:absolute;left:0;top:.45em;width:6px;height:6px;border-radius:50%;background:var(--stage)}
.hero .proof{padding:0}
.hero .sign{position:absolute;right:var(--gut);bottom:clamp(40px,8vh,90px);font:400 clamp(44px,5vw,76px)/1 var(--sig);color:rgba(255,255,255,.82);transform:rotate(-6deg)}
@media (prefers-reduced-motion:no-preference){
  .hero h1 span,.hero .name,.hero .lead,.hero .cta,.hero .proof,.hero .marks{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
  .hero h1 span:nth-child(2){animation-delay:.12s} .hero .name{animation-delay:.28s} .hero .lead{animation-delay:.38s}
  .hero .cta{animation-delay:.5s} .hero .proof,.hero .marks{animation-delay:.62s}
  .hero picture img{animation:slowin 2.4s ease-out both}
}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes slowin{from{opacity:0;transform:scale(1.05)}to{opacity:1;transform:none}}

/* ---------- section scaffold ---------- */
section.s{padding:var(--sec) 0;position:relative}
section.s + section.s{border-top:1px solid var(--line)}
.sh{display:grid;grid-template-columns:auto 1fr;column-gap:22px;align-items:baseline;margin:0 0 clamp(44px,6vw,72px)}
.sh .no{font:500 14px/1 var(--en);letter-spacing:.2em;color:var(--faint);grid-row:span 2;align-self:start;padding-top:.7em}
.sh h2{margin:0;font:800 clamp(40px,5.4vw,72px)/.95 var(--en);font-stretch:72%;letter-spacing:.03em;text-transform:uppercase}
.sh p{margin:14px 0 0;font-size:14px;color:var(--sub);letter-spacing:.12em}
.lede{font-size:clamp(17px,1.6vw,20px);line-height:1.95;font-weight:500;margin:0 0 22px;max-width:30em}
.body{color:var(--sub);max-width:36em}
.body p{margin:0 0 1.2em}
.small{font-size:13px;color:var(--faint)}
.photo{position:relative;overflow:hidden;background:var(--char)}
.photo img{width:100%;height:100%;object-fit:cover}
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity 1s ease,transform 1s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
.cap{position:absolute;left:16px;bottom:12px;font-size:12px;color:rgba(255,255,255,.75);letter-spacing:.08em}

/* accordion (mobile) — on desktop these behave as plain blocks */
details.acc{border-top:1px solid var(--line)}
details.acc:last-of-type{border-bottom:1px solid var(--line)}
details.acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;min-height:62px;padding:12px 2px}
details.acc>summary::-webkit-details-marker{display:none}
details.acc>summary b{font-weight:700;font-size:16px}
details.acc>summary .meta{margin-left:auto;font:500 13px/1 var(--en);color:var(--faint);letter-spacing:.1em}
details.acc>summary::after{content:"";width:12px;height:12px;flex:none;margin-left:6px;
  background:linear-gradient(currentColor,currentColor) center/12px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 12px no-repeat;
  color:var(--sub);transition:transform .25s}
details.acc[open]>summary::after{transform:rotate(45deg)}
details.acc .in{padding:4px 2px 26px}

/* ---------- PROFILE ---------- */
.prof{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,110px);align-items:start}
.prof .photo{aspect-ratio:4/5;border-radius:4px}
.prof .sign{position:absolute;right:18px;bottom:10px;font:400 46px/1 var(--sig);color:rgba(255,255,255,.85);transform:rotate(-7deg)}
.can{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 36px;padding:0}
.can li{list-style:none;font:600 12px/1 var(--en);letter-spacing:.14em;padding:9px 14px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line2);color:var(--sub)}
.facts{display:grid;grid-template-columns:auto 1fr;gap:12px 28px;margin:36px 0 0;font-size:14.5px}
.facts dt{color:var(--faint);font-family:var(--en);letter-spacing:.08em}
.facts dd{margin:0}
.prof .sns{margin-top:30px;gap:10px}
.prof .sns a{width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--line2)}
.gear{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 32px;margin:0;padding:0}
.gear li{list-style:none}
.gear b{display:block;font-size:13px;color:var(--faint);font-weight:500;margin-bottom:6px;letter-spacing:.1em}
.gear span{display:block;font:500 14.5px/1.75 var(--en);letter-spacing:.02em}
.prof-more{margin-top:40px}

/* ---------- CAREER ---------- */
.career{display:grid;grid-template-columns:minmax(0,1fr);max-width:980px;margin:0;padding:0}
.career>li{list-style:none}
.yr{display:grid;grid-template-columns:150px 1fr;gap:32px;padding:34px 0;border-top:1px solid var(--line)}
.career{border-bottom:1px solid var(--line)}
.yr .y{font:800 46px/1 var(--en);font-stretch:72%;letter-spacing:.02em;color:var(--ink)}
.yr ul{margin:0;padding:0;display:grid;gap:18px}
.yr li{list-style:none;display:grid;gap:2px}
.yr li b{font-weight:700;font-size:16.5px;line-height:1.6;position:relative;padding-left:18px}
.yr li span{font-size:13.5px;color:var(--sub);padding-left:18px}
.yr li.k b::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--stage)}

/* ---------- LIVE / TV ---------- */
.live-photos{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:18px;margin-bottom:clamp(56px,7vw,90px)}
.live-photos .photo{border-radius:4px}
.live-photos .a{aspect-ratio:16/10}
.live-photos .b{aspect-ratio:auto}
.live-cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(40px,6vw,96px)}
.lbl{font:700 13px/1 var(--en);letter-spacing:.26em;color:var(--faint);margin:0 0 22px;display:flex;align-items:center;gap:14px}
.lbl::after{content:"";flex:1;height:1px;background:var(--line)}
.gigs{margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px}
.gigs li{list-style:none;padding:16px 0;border-bottom:1px solid var(--line);display:grid;gap:3px}
.gigs b{font-weight:700;font-size:15.5px;line-height:1.55}
.gigs span{font-size:12.5px;color:var(--faint);letter-spacing:.06em}
.tv{margin:0;padding:0}
.tv li{list-style:none;padding:18px 0;border-bottom:1px solid var(--line)}
.tv b{display:block;font:800 30px/1 var(--en);font-stretch:80%;letter-spacing:.04em}
.tv span{font-size:13.5px;color:var(--sub)}

/* ---------- WORKS ---------- */
.cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:clamp(80px,10vw,130px)}
.cat{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:400px;padding:22px;border-radius:4px;overflow:hidden;isolation:isolate;
  background:var(--char);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;text-align:left;border:0}
.cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s ease}

.cat::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,8,13,.05) 25%,rgba(6,8,13,.7) 58%,rgba(6,8,13,.96))}
.cat .n{font:500 13px/1 var(--en);color:var(--sub);letter-spacing:.2em}
.cat .t{margin:14px 0 4px;font:800 21px/1.05 var(--en);font-stretch:78%;letter-spacing:.04em;text-transform:uppercase}
.cat .j{font-weight:700;font-size:15px}
.cat .d{margin:12px 0 0;font-size:13px;line-height:1.75;color:var(--sub)}
.cat .c{margin-top:16px;padding-top:14px;border-top:1px solid var(--line2);font:600 13px/1 var(--en);letter-spacing:.1em;color:var(--gr-hi)}
.feat-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 30px}
.feat-head h3{margin:0;font:800 30px/1 var(--en);font-stretch:80%;letter-spacing:.04em}
.feat-head p{margin:0;color:var(--sub);font-size:13.5px}
.feat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,32px)}
.song{display:flex;flex-direction:column}
.song .art{position:relative;aspect-ratio:1;border-radius:4px;overflow:hidden;background:var(--char) center/cover no-repeat;border:0;padding:0;cursor:pointer;width:100%}
.song .art .no{position:absolute;left:14px;top:12px;font:700 13px/1 var(--en);letter-spacing:.16em;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.song .play{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px 0 14px;border-radius:999px;
  background:rgba(6,8,13,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:700 12.5px/1 var(--en);letter-spacing:.14em;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.song .play i{width:0;height:0;border-left:9px solid var(--gr-hi);border-top:6px solid transparent;border-bottom:6px solid transparent}
.song.on .art{box-shadow:0 0 0 2px var(--gr-hi)}
.song h4{margin:22px 0 2px;font:800 26px/1.15 var(--en);letter-spacing:.01em}
.song .who{font-size:14px;color:var(--sub)}
.song .who em{font-style:normal;font-family:var(--en);color:var(--faint);margin-left:10px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0}
.tags li{list-style:none;font:700 11px/1 var(--en);letter-spacing:.16em;padding:7px 10px;border-radius:3px;background:var(--gr-soft);color:var(--gr-hi)}
.song .jr{margin-top:8px;font-size:12.5px;color:var(--faint)}
.song .sp{margin-top:auto;padding-top:14px;font:600 12.5px/1 var(--en);letter-spacing:.12em;color:var(--sub);display:inline-flex;gap:8px;align-items:center}
.song .sp svg{width:15px;height:15px;fill:#1DB954}
.player{margin-top:26px;border-radius:12px;overflow:hidden}
.player:empty{display:none}
.swipe{display:none}
.allworks{margin-top:56px}
.allworks>summary{justify-content:flex-start}
.allworks>summary b{font-size:15px}
.credit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.credit-grid h5{margin:0 0 12px;font-size:13px;color:var(--faint);font-weight:500;letter-spacing:.1em}
.credit-grid ul{margin:0;padding:0}
.credit-grid li{list-style:none;padding:10px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;font-size:14px}
.credit-grid li span{color:var(--faint);text-align:right;flex:none;max-width:55%}

/* ---------- LISTEN ---------- */
.listen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.media{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:340px;padding:30px;border-radius:4px;overflow:hidden;isolation:isolate;box-shadow:inset 0 0 0 1px var(--line)}
.media .bg{position:absolute;inset:0;z-index:-2}
.media::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,8,13,.15),rgba(6,8,13,.9) 78%)}
.media .bg.mosaic{display:grid;grid-template-columns:repeat(3,1fr);opacity:.85}
.media .bg.mosaic span{background:center/cover no-repeat}
.media .bg img{width:100%;height:100%;object-fit:cover}
.media .ico{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin-bottom:18px}
.media .ico svg{width:22px;height:22px;fill:#fff}
.media b{font:800 34px/1 var(--en);font-stretch:85%;letter-spacing:.03em}
.media p{margin:10px 0 0;color:var(--sub);font-size:14.5px}
.media .go{margin-top:18px;font:600 13px/1 var(--en);letter-spacing:.14em}

.workcta{margin-top:clamp(72px,9vw,110px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center;padding:clamp(30px,4vw,48px);
  border-radius:4px;background:linear-gradient(110deg,var(--gr-soft),transparent 70%),var(--navy);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gr-hi) 25%,transparent)}
.workcta h3{margin:0;font-size:clamp(20px,2vw,24px);font-weight:700}
.workcta p{margin:8px 0 0;color:var(--sub);font-size:14px}
.workcta .serv{display:flex;flex-wrap:wrap;gap:8px 22px;margin:18px 0 0;padding:0;font-size:13px;color:var(--sub)}
.workcta .serv li{list-style:none}
.workcta .serv li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gr-hi);margin-right:8px;vertical-align:.2em}

/* ---------- LESSON ---------- */
#lesson{background:radial-gradient(70% 60% at 100% 0%,rgba(255,116,23,.08),transparent 70%),var(--navy)}
.les{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,90px);align-items:start}
.les .photo{aspect-ratio:4/5;border-radius:4px}
.les .sign{position:absolute;right:16px;bottom:10px;font:400 44px/1 var(--sig);color:rgba(255,190,140,.9);transform:rotate(-7deg)}
.les .tg{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 34px;padding:0}
.les .tg li{list-style:none;font-size:13px;padding:7px 14px;border-radius:999px;background:var(--or-soft);color:#ffd3b0}
.trial{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-radius:4px;margin-bottom:16px;
  box-shadow:inset 0 0 0 1px rgba(255,154,77,.4);background:rgba(255,116,23,.06)}
.trial b{font-size:16px} .trial small{display:block;color:var(--sub);font-size:12.5px;margin-top:2px}
.trial .p{font:800 26px/1 var(--en);white-space:nowrap}
.trial .p small{display:inline;font-size:13px;color:var(--sub);margin-left:4px;font-family:var(--jp)}
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0}
.plan{list-style:none;position:relative;padding:24px 22px 22px;border-radius:4px;background:var(--char);box-shadow:inset 0 0 0 1px var(--line)}
.plan .nm{font-weight:700;font-size:17px}
.plan .ct{font-size:12.5px;color:var(--faint);margin-top:2px}
.plan .p{margin-top:18px;font:800 34px/1 var(--en);letter-spacing:.01em}
.plan .p small{font:500 13px/1 var(--jp);color:var(--sub);margin-left:4px}
.plan .per{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--sub);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.plan .per em{font-style:normal;color:var(--or-hi);font-weight:700}
.plan.rec{background:linear-gradient(160deg,rgba(255,116,23,.2),rgba(255,116,23,.04) 60%),var(--char);box-shadow:inset 0 0 0 1.5px var(--or)}
.plan .badge{position:absolute;right:16px;top:-11px;background:var(--or);color:#fff;font-size:11.5px;font-weight:700;padding:4px 12px;border-radius:999px;letter-spacing:.08em}
.les .cta{margin-top:34px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.les .cta p{margin:0;font-size:13px;color:var(--sub)}
.les-info{margin-top:44px}
table.hours{width:100%;border-collapse:collapse;font-size:14px}
.hours th,.hours td{border-bottom:1px solid var(--line);padding:12px 4px;text-align:left;vertical-align:top}
.hours th{width:32%;font-weight:700}
.hours td small{display:block;color:var(--faint);font-size:12.5px}

/* ---------- CONTACT ---------- */
#contact{background-color:var(--black);background-position:center;background-size:cover;background-repeat:no-repeat}
.ct{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:clamp(40px,6vw,96px);align-items:start}
.ct .side p{color:var(--sub);margin:0 0 26px;max-width:24em}
.ct .side dl{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;font-size:14px;margin:0}
.ct .side dt{color:var(--faint)}
.ct .side dd{margin:0}
.ct .side .quick{display:grid;gap:12px;margin:34px 0 0}
.ct .side .quick button{justify-content:flex-start;width:100%;max-width:380px;white-space:normal;text-align:left;line-height:1.5;padding:12px 22px}
form.f{display:grid;gap:22px;padding:clamp(24px,3.4vw,44px);border-radius:4px;background:rgba(20,26,37,.78);box-shadow:inset 0 0 0 1px var(--line);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.f .two{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.f label{display:block;font-size:13px;font-weight:700;margin-bottom:8px;letter-spacing:.08em}
.f label i{font-style:normal;color:var(--or-hi);font-weight:500;margin-left:6px;font-size:11.5px}
.f input,.f select,.f textarea{width:100%;min-height:52px;padding:12px 14px;border-radius:4px;border:1px solid var(--line2);background:rgba(6,8,13,.6);font-size:16px}
.f select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--sub) 50%),linear-gradient(-45deg,transparent 50%,var(--sub) 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.f textarea{min-height:170px;resize:vertical;line-height:1.8}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--sub);outline:none}
.f .err{color:#ff9b8a;font-size:12.5px;margin:6px 0 0}
.f .note{font-size:12.5px;color:var(--faint);margin:0}
.f .send{justify-self:start}
.f .done{padding:20px;border-radius:4px;background:var(--gr-soft);color:var(--ink);font-size:14px}

/* ---------- footer ---------- */
footer{padding:80px 0 120px;border-top:1px solid var(--line)}
footer .wrap{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end}
footer .big{font:800 clamp(34px,6vw,84px)/.9 var(--en);font-stretch:110%;letter-spacing:.06em}
footer nav{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:22px}
footer nav a{font:600 12px/1 var(--en);letter-spacing:.16em;color:var(--sub)}
footer small{display:block;margin-top:26px;color:var(--faint);font-size:12px}

/* ---------- mobile parts ---------- */
.dock{display:none}
.menu{position:fixed;inset:0;z-index:60;background:rgba(6,8,13,.97);backdrop-filter:blur(10px);display:flex;flex-direction:column;padding:16px var(--gut) 30px;overflow:auto}
.menu .top{display:flex;align-items:center;justify-content:space-between;height:56px}
.menu .x{width:48px;height:48px;border:0;background:none;font-size:30px;line-height:1;cursor:pointer}
.menu nav{display:grid;margin:24px 0 30px}
.menu nav a{display:flex;align-items:baseline;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font:800 30px/1 var(--en);font-stretch:75%;letter-spacing:.06em}
.menu nav a small{font:500 12px/1 var(--jp);color:var(--faint);letter-spacing:.1em}
.menu .btns{display:grid;gap:12px;margin-bottom:26px}
.menu .btns .btn{min-height:58px;font-size:16px}

@media (max-width:1279px){
  .nav,.hd .sns,.hd .btn{display:none}
  .menu-btn{display:grid}
  .cats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
  
  body{font-size:15px}
  .hero{min-height:auto;align-items:stretch;flex-direction:column}
  .hero picture{position:relative;display:block;height:min(118vw,620px)}
  .hero picture img{position:absolute}
  .hero::before{background:linear-gradient(0deg,var(--black) 0%,var(--black) calc(100% - min(118vw,620px)),rgba(6,8,13,.55) calc(100% - min(118vw,620px) + 120px),rgba(6,8,13,0) 62%,rgba(6,8,13,.4) 100%)}
  .hero .wrap{position:relative;margin-top:-120px;padding-top:0;padding-bottom:48px}
  .hero h1{font-size:clamp(28px,8.9vw,48px)}
  .hero .role{margin-bottom:18px;font-size:11.5px}
  .hero .name{margin-top:20px}
  .hero .lead{font-size:14.5px;margin-top:20px}
  .hero .cta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}
  .hero .cta .btn{padding:0 12px;font-size:14px;min-height:54px}
  .hero .proof{margin-top:30px;gap:8px 20px;font-size:11px}
  .hero .sign{top:calc(min(118vw,620px) - 210px);bottom:auto;right:18px;font-size:46px}
  .sh{margin-bottom:38px;column-gap:14px}
  .sh h2{font-size:44px}
  .sh p{font-size:13px;margin-top:10px}
  .prof,.les,.ct,.live-cols{grid-template-columns:minmax(0,1fr)}
  .prof .photo{aspect-ratio:4/4.4}
  .gear{grid-template-columns:minmax(0,1fr)}
  .yr{grid-template-columns:64px 1fr;gap:16px;padding:22px 0}
  .yr .y{font-size:30px}
  .live-photos{grid-template-columns:minmax(0,1fr);gap:12px}
  .live-photos .b{aspect-ratio:4/3}
  .gigs{grid-template-columns:minmax(0,1fr)}
  .cats{grid-template-columns:minmax(0,1fr);gap:12px}
  .cat{min-height:0;aspect-ratio:16/11;padding:18px}
  .cat .d{display:none}
  .feat{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:80%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
    margin:0 calc(var(--gut) * -1);padding:0 var(--gut) 4px;scroll-padding:0 var(--gut);scrollbar-width:none}
  .feat::-webkit-scrollbar{display:none}
  .song{scroll-snap-align:start}
  .song h4{font-size:22px;margin-top:16px}
  .swipe{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:12px;color:var(--faint)}
  .swipe .dots{display:flex;gap:6px}
  .swipe .dots i{width:6px;height:6px;border-radius:3px;background:var(--line2);transition:width .2s,background .2s}
  .swipe .dots i.on{width:18px;background:var(--gr-hi)}
  .feat-head{display:block}
  .feat-head p{margin-top:10px}
  .credit-grid{grid-template-columns:minmax(0,1fr);gap:26px}
  .listen{grid-template-columns:minmax(0,1fr);gap:12px}
  .media{min-height:230px;padding:22px}
  .media b{font-size:28px}
  .workcta{grid-template-columns:minmax(0,1fr);gap:22px}
  .workcta .btn{width:100%}
  .plans{grid-template-columns:minmax(0,1fr);gap:14px}
  .plan{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:12px;padding:20px 18px}
  .plan .p{margin:0;font-size:27px;grid-row:span 2;text-align:right}
  .plan .p small{display:block;margin:4px 0 0}
  .plan .per{grid-column:1/-1}
  .les .cta .btn{width:100%}
  .les-info{margin-top:34px}
  .f .two{grid-template-columns:minmax(0,1fr)}
  .f .send{width:100%}
  footer{padding:60px 0 130px}
  footer .wrap{grid-template-columns:minmax(0,1fr)}
  .sns a{width:44px;height:44px}
  .dock{display:grid;grid-template-columns:1fr auto;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:40;
    padding:12px var(--gut) calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(6,8,13,0),rgba(6,8,13,.92) 38%);transition:transform .3s,opacity .3s}
  .dock .btn{min-height:54px}
  .dock .btn.gr{padding:0 18px}
  .dock.hide{transform:translateY(110%);opacity:0;pointer-events:none}
}
@media (min-width:821px){
  details.acc.pc-open{border:0}
  details.acc.pc-open>summary{display:none}
  details.acc.pc-open .in{padding:0}
}

/* ===== v4.1：カードで整理（ショップの商品を選ぶような見せ方） ===== */
.card{position:relative;list-style:none;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
  box-shadow:inset 0 0 0 1px var(--line);padding:20px 20px 18px;transition:box-shadow .2s,transform .2s}
.card b{display:block;font-weight:700;font-size:15.5px;line-height:1.5}
.card small{display:block;margin-top:4px;font-size:12.5px;line-height:1.6;color:var(--sub)}
.chip{display:inline-block;font:700 10.5px/1 var(--en);letter-spacing:.16em;padding:6px 9px;border-radius:999px;background:rgba(77,125,255,.16);color:#a9c1ff}
.chip.gr{background:var(--gr-soft);color:var(--gr-hi)} .chip.or{background:var(--or-soft);color:var(--or-hi)} .chip.tv{background:rgba(255,255,255,.1);color:#fff}
.card .row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.yr2{font:700 13px/1 var(--en);color:var(--faint);letter-spacing:.06em}
.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 12px;padding:0}
.cards3 .card .chip{margin-bottom:14px}
.cards3.mini .card{padding:16px 18px}
.cards3.mini small{margin:0 0 4px;font-family:var(--en);color:var(--faint);letter-spacing:.06em}
.cards3.mini b{font-size:14px}
.prof .sns{margin:26px 0 30px}
details.open-card{border:0!important;margin-top:12px;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line);padding:0 20px;background:rgba(255,255,255,.02)}
details.open-card>summary{min-height:60px}
details.open-card .in{padding:0 0 22px}
details.open-card .in.body p{font-size:14.5px}
.gcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0}
.gcard{list-style:none;padding:14px 16px;border-radius:10px;background:rgba(255,255,255,.04)}
.gcard b{display:block;font-size:12px;color:var(--faint);font-weight:500;margin-bottom:6px;letter-spacing:.1em}
.gcard span{display:block;font:500 13.5px/1.7 var(--en)}
/* career shelf */
.shelf{display:grid;align-items:start;grid-auto-flow:column;grid-auto-columns:calc((100% - 32px)/3);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.shelf::-webkit-scrollbar{display:none}
.ycard{scroll-snap-align:start;padding:26px 24px}
.ycard .y{font:800 54px/1 var(--en);font-stretch:72%;margin-bottom:20px;background:linear-gradient(180deg,#fff,#8aa6ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.ycard ul{margin:0;padding:0;display:grid;gap:14px}
.ycard li{list-style:none;padding-top:14px;border-top:1px solid var(--line)}
.ycard li b{font-size:14.5px}
.shelf-nav{display:flex;align-items:center;justify-content:space-between;margin-top:18px;font-size:12px;color:var(--faint)}
.arw{width:44px;height:44px;border-radius:50%;border:0;margin-left:8px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px var(--line2);font-size:22px;line-height:1;cursor:pointer}
.arw:hover{background:rgba(255,255,255,.12)}
/* filter chips + grids */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.fchip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;border:0;cursor:pointer;font-size:13.5px;font-weight:700;
  background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px var(--line2);color:var(--sub)}
.fchip em{font-style:normal;font:600 11.5px/1 var(--en);color:var(--faint)}
.fchip[aria-pressed="true"]{background:var(--ink);color:var(--black);box-shadow:none}
.fchip[aria-pressed="true"] em{color:#5a6377}
.grid3,.grid4{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0}
.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gig,.credit{min-height:132px}

.live-photos{margin-bottom:clamp(44px,5vw,64px)}
.allworks .in{padding-top:10px}
/* listen: services as cards */
.workcta .serv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:22px 0 0;padding:0}
.workcta .serv li::before{display:none}
.workcta .serv .card{padding:14px 14px 12px;border-radius:10px}
.workcta .serv .card b{font-size:13.5px}
.workcta{border-radius:18px;grid-template-columns:minmax(0,1fr)}
.workcta>.btn{justify-self:start}
/* lesson as products */
.les .tg li{font-size:12.5px}
.trial{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 18px;padding:22px;border-radius:14px;margin-bottom:14px;
  background:linear-gradient(120deg,rgba(255,116,23,.14),rgba(255,116,23,.03) 70%);box-shadow:inset 0 0 0 1px rgba(255,154,77,.45)}
.trial .chip{margin-bottom:10px}
.trial .pick{grid-column:1/-1}
.plans{gap:14px}
.plan{border-radius:14px;padding:22px 20px 20px;display:flex;flex-direction:column}
.plan .per{display:block;border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.plan .per em{display:block;margin-top:2px}
.pick{margin-top:16px;min-height:46px;border-radius:999px;border:0;cursor:pointer;font-weight:700;font-size:14px;letter-spacing:.06em;
  background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--line2);color:var(--ink);transition:background .2s}
.pick:hover{filter:brightness(1.08)}
.pick,.pick.or,.plan.rec .pick{background:var(--or);box-shadow:none;color:#fff}
.plan .pick{margin-top:auto}
.plan .per{margin-bottom:16px}
/* contact: choose like products */
.kinds{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kinds legend{font-size:13px;font-weight:700;margin-bottom:12px;letter-spacing:.08em;padding:0}
.kinds legend i{font-style:normal;color:var(--or-hi);font-weight:500;margin-left:6px;font-size:11.5px}
.kc{position:relative;cursor:pointer;margin:0!important}
.kc input{position:absolute;opacity:0;inset:0;cursor:pointer}
.kc span{display:block;height:100%;padding:14px 14px 12px;border-radius:12px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--line2);transition:box-shadow .15s,background .15s}
.kc b{display:block;font-size:14px}
.kc small{display:block;font-size:11.5px;color:var(--faint);font-weight:400;margin-top:2px;letter-spacing:.02em}
.kc input:checked+span{background:var(--gr-soft);box-shadow:inset 0 0 0 1.5px var(--gr-hi)}
.kc.or input:checked+span{background:var(--or-soft);box-shadow:inset 0 0 0 1.5px var(--or-hi)}
.kc input:focus-visible+span{outline:2px solid var(--or-hi);outline-offset:2px}
.kinds .err{grid-column:1/-1}
form.f{border-radius:18px}
@media (max-width:1080px){ .grid4{grid-template-columns:repeat(3,minmax(0,1fr))} .workcta .serv{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:820px){
  .cards3{grid-template-columns:minmax(0,1fr)}
  .cards3:not(.mini) .card{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;padding:16px}
  .cards3:not(.mini) .card .chip{margin:0;grid-row:span 2;min-width:78px;text-align:center}
  .cards3:not(.mini) .card small{margin-top:0}
  .cards3.mini{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .cards3.mini .card{padding:12px}
  .cards3.mini b{font-size:12px;line-height:1.45}
  .cards3.mini small{font-size:11px}
  .gcards{grid-template-columns:minmax(0,1fr)}
  .shelf{grid-auto-columns:82%;margin:0 calc(var(--gut) * -1);padding:0 var(--gut) 4px;scroll-padding:0 var(--gut);gap:12px}
  .ycard .y{font-size:44px}
  .filters{flex-wrap:nowrap;overflow-x:auto;margin-right:calc(var(--gut) * -1);padding-right:var(--gut);scrollbar-width:none}
  .filters::-webkit-scrollbar{display:none}
  .fchip{flex:none}
  .grid3,.grid4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .gig,.credit{min-height:0;padding:14px 14px 12px}
  .card b{font-size:13.5px}
  .card small{font-size:11.5px}
  .card .row{margin-bottom:10px}
  .workcta .serv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kinds{grid-template-columns:minmax(0,1fr)}
  .plan{display:flex;align-items:stretch;text-align:left}
  .plan .p{text-align:left;margin-top:14px}
  .plan .p small{display:inline}
}

/* ===== v4.2：セクションごとに明るさを変える（B案） 暗い＝迫力／明るめ＝読ませる ===== */

section.s + section.s{border-top:0}
#profile{background:var(--t1)}
#career{background:var(--t2)}
#live{background:var(--black)}
#works{background:var(--t1)}
#listen{background:var(--t0b)}
#lesson{background:radial-gradient(70% 55% at 100% 0%,rgba(255,130,40,.13),transparent 70%),radial-gradient(60% 50% at 0% 100%,rgba(255,130,40,.06),transparent 70%),#1d2638}
#profile .card,#career .card,#works .card,#lesson .card,#profile details.open-card,#lesson details.open-card{background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035));box-shadow:inset 0 0 0 1px rgba(200,215,245,.17)}
#lesson .plan.rec{background:linear-gradient(160deg,rgba(255,116,23,.24),rgba(255,116,23,.06) 60%),rgba(255,255,255,.04);box-shadow:inset 0 0 0 1.5px var(--or)}
#lesson .trial{background:linear-gradient(120deg,rgba(255,116,23,.18),rgba(255,116,23,.04) 70%);box-shadow:inset 0 0 0 1px rgba(255,154,77,.5)}
#career .ycard .y{background:linear-gradient(180deg,#fff,#a9bdff);-webkit-background-clip:text;background-clip:text}
#works .cat{box-shadow:inset 0 0 0 1px rgba(200,215,245,.17)}
.workcta{background:linear-gradient(110deg,var(--gr-soft),transparent 70%),#121b2c}
footer{background:var(--black)}

/* ===== v4.3：カードの背景に写真をぼかして敷く ===== */
.ph{isolation:isolate;overflow:hidden}
.ph::before{content:"";position:absolute;inset:-24px;z-index:-1;background:center/cover no-repeat;filter:blur(10px) saturate(1.15);opacity:.55;transform:scale(1.05);transition:opacity .3s}
.ph::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(180deg,rgba(9,13,24,.42) 0%,rgba(9,13,24,.82) 75%)}

.plan.ph::after{background:linear-gradient(180deg,rgba(14,19,32,.55),rgba(14,19,32,.9) 70%)}
.plan.rec.ph::after{background:linear-gradient(165deg,rgba(255,116,23,.3),rgba(20,16,20,.85) 60%)}
.trial.ph::after{background:linear-gradient(120deg,rgba(255,116,23,.32),rgba(14,16,26,.8) 65%)}
.plan .badge{top:14px;right:14px}
.ph b,.ph small,.ph .p,.ph .nm{text-shadow:0 1px 8px rgba(0,0,0,.45)}

/* ===== v4.5：流れる文字の帯／大きな英字／細長い写真／カードを順番に ===== */
.band{overflow:hidden;white-space:nowrap;padding:22px 0;background:var(--black);border-block:1px solid var(--line);user-select:none}
.band .tr{display:inline-flex;animation:band 38s linear infinite}
.band.rev .tr{animation-direction:reverse}
.band span{font:800 clamp(34px,5vw,64px)/1 var(--en);font-stretch:75%;letter-spacing:.06em;padding-right:.5em;color:transparent;-webkit-text-stroke:1px rgba(220,228,245,.45)}
.band span:nth-child(4n+1){color:var(--ink);-webkit-text-stroke:0}
.band i{display:inline-block;width:.45em;height:.45em;margin:0 .6em 0 .1em;border-radius:50%;background:var(--or);align-self:center;font-size:clamp(34px,5vw,64px)}
.band.rev i{background:var(--gr)}
@keyframes band{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.band .tr{animation:none}}
.pw{position:relative}
.bigword{position:absolute;left:-.06em;bottom:-.42em;z-index:2;pointer-events:none;font:800 clamp(56px,6.4vw,96px)/1 var(--en);font-stretch:72%;letter-spacing:.02em;
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.85);text-transform:uppercase;white-space:nowrap}
.bigword.or{-webkit-text-stroke-color:rgba(255,170,110,.95);font-size:clamp(48px,5.2vw,78px)}
.pw .sign{z-index:3}
.strip{display:grid;grid-template-columns:1.1fr 1fr 1.1fr;gap:12px;align-items:start;margin-bottom:clamp(44px,5vw,64px)}
.strip .photo{aspect-ratio:3/4.4;border-radius:10px}
.strip .photo:nth-child(2){margin-top:48px}
.strip .photo:nth-child(3){margin-top:16px}
.strip .cap{left:12px;bottom:10px;font:600 11px/1 var(--en);letter-spacing:.2em}
.card.rv{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease,box-shadow .2s}
.card.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.card.rv{opacity:1;transform:none;transition:none}}
@media (max-width:820px){
  .band{padding:16px 0}
  .bigword{font-size:clamp(48px,15vw,64px);bottom:-.38em}
  .pw{margin-bottom:22px}
  .strip{gap:8px}
  .strip .photo{border-radius:8px}
  .strip .photo:nth-child(2){margin-top:28px}
  .strip .photo:nth-child(3){margin-top:10px}
}

/* ===== v4.6：数字のバー／レッスンの流れとよくある質問／DMの入口 ===== */
.nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:46px;max-width:760px;border-top:1px solid rgba(255,255,255,.18)}
.nums div{padding:16px 18px 0 0}
.nums div+div{padding-left:18px;border-left:1px solid rgba(255,255,255,.12)}
.nums b{display:block;font:800 clamp(34px,3.6vw,52px)/1 var(--en);font-stretch:75%;letter-spacing:.01em}
.nums b small{font:700 13px/1 var(--jp);margin-left:3px;color:var(--sub)}
.nums span{display:block;margin-top:6px;font-size:12px;color:var(--sub);letter-spacing:.08em}
.les-extra{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(30px,5vw,70px);margin-top:clamp(64px,8vw,100px)}
.les-extra h3{margin:0 0 18px;font-size:18px;font-weight:700;display:flex;align-items:baseline;gap:12px}
.les-extra h3 span{font:700 12px/1 var(--en);letter-spacing:.24em;color:var(--or-hi)}
.flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;counter-reset:st}
.flow .card{padding:20px 18px}
.flow .card::marker{content:none}
.flow .n{display:block;font:800 30px/1 var(--en);font-stretch:75%;color:var(--or-hi);margin-bottom:14px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:flex-start;padding:16px 2px;font-weight:700;font-size:14.5px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font:800 15px/1.5 var(--en);color:var(--or-hi)}
.faq summary::after{content:"+";margin-left:auto;color:var(--sub);font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq p{margin:0 0 16px 26px;font-size:14px;color:var(--sub)}
.dm{display:flex;align-items:center;gap:14px;margin-top:14px;max-width:380px;padding:14px 18px;border-radius:14px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--line2)}
.dm i{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%)}
.dm i svg{width:18px;height:18px;fill:#fff}
.dm b{display:block;font-size:14px} .dm small{display:block;font-size:12px;color:var(--faint)}
.dm:hover{background:rgba(255,255,255,.08)}
@media (max-width:820px){
  .nums{margin-top:30px;grid-template-columns:repeat(4,minmax(0,1fr))}
  .nums div{padding:12px 6px 0 0}
  .nums div+div{padding-left:8px}
  .nums b{font-size:30px}
  .nums b small{font-size:11px}
  .nums span{font-size:10.5px;letter-spacing:.02em}
  .les-extra{grid-template-columns:minmax(0,1fr)}
  .flow{grid-template-columns:minmax(0,1fr)}
  .flow .card{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center}
  .flow .n{margin:0;grid-row:span 2;font-size:26px}
}

/* v4.7：レッスンの実績カード */
.lstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 26px;padding:0}
.lstats .card{padding:16px 16px 14px}
.lstats b{font:800 clamp(26px,2.6vw,34px)/1 var(--en);font-stretch:78%;color:var(--or-hi);letter-spacing:.01em}
.lstats b small{display:inline-block;white-space:nowrap;font:700 12px/1 var(--jp);color:var(--ink);margin:0 0 0 2px}
.lstats span{display:block;margin-top:8px;font-size:12px;color:var(--sub)}
@media (max-width:820px){.lstats{gap:8px}.lstats .card{padding:12px 10px}.lstats b{font-size:24px}.lstats span{font-size:11px}}
/* ===== カードに触れたときの動き（PCはマウスで浮く・スマホは押すと沈む） ===== */
.card,.cat,.song,.media{transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s cubic-bezier(.2,.7,.2,1)}
.card.rv.in{transition:opacity .7s ease,transform .7s ease,box-shadow .25s ease}
.card.settled{transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s cubic-bezier(.2,.7,.2,1)}
.media .bg img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.ph::before{transition:opacity .3s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){
  .card:hover,.card.settled:hover,.cat:hover,.song:hover,.media:hover{transform:translateY(-4px)}
  .card:hover,.cat:hover,.media:hover{box-shadow:inset 0 0 0 1px rgba(220,230,250,.42)}
  .song:hover .art{box-shadow:0 0 0 1px rgba(220,230,250,.42)}
  .cat:hover img,.media:hover .bg img{transform:scale(1.04)}
  .ph:hover::before{opacity:.75;transform:scale(1.09)}
  .media:hover .go{text-decoration:underline;text-underline-offset:5px}
}
@media (hover:none){
  .card:active,.card.settled:active,.cat:active,.song:active,.media:active{transform:scale(.98);transition-duration:.12s}
}
@media (prefers-reduced-motion:reduce){
  .card,.cat,.song,.media,.media .bg img,.ph::before,.cat img{transition:none!important}
  .card:hover,.card.settled:hover,.cat:hover,.song:hover,.media:hover,.card:active,.cat:active,.song:active,.media:active{transform:none!important}
  .cat:hover img,.media:hover .bg img,.ph:hover::before{transform:none}
}
/* ===== スマホは横スクロール（WORKSのカテゴリ・料金・STEP。Featured Worksと同じ形） ===== */
@media (max-width:820px){
  .hs{display:grid;grid-auto-flow:column;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
    margin-left:calc(var(--gut) * -1);margin-right:calc(var(--gut) * -1);padding:0 var(--gut) 4px;scroll-padding:0 var(--gut);scrollbar-width:none}
  .hs::-webkit-scrollbar{display:none}
  .hs>*{scroll-snap-align:start}
  .cats.hs{grid-auto-columns:78%;margin-bottom:0}
  .cats.hs+.swipe{margin-bottom:clamp(64px,10vw,130px)}
  .plans.hs{grid-auto-columns:74%;padding-top:14px}
  .flow.hs{grid-auto-columns:80%}
  .flow.hs .card{display:block}
  .flow.hs .n{margin-bottom:12px}
}
/* ===== LIVE / TV の「すべて見る」 ===== */
details.acc.gigs-more{margin-top:14px;border:0!important}
details.acc.gigs-more>summary{justify-content:center;gap:10px;min-height:52px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line2);padding:0 26px;width:fit-content;margin:0 auto}
details.acc.gigs-more>summary .meta{display:none}
.gigs-more>summary b{font-size:14px}
.gigs-more[open]>summary{margin-bottom:12px}
.gigs-more .in{padding:0}
.gigs-more.filtered>summary{display:none}
details.acc>.in,details.open-card>.in,.faq details>p{overflow:hidden}
/* ===== 語や単位の途中で折れないように ===== */
h1,h2,h3,h4,p,b,small,dd,summary,.lede{word-break:auto-phrase;text-wrap:pretty}
.dm b{text-wrap:balance}
/* ===== プロフィール：目立つ経歴＋生い立ち ===== */
.prof .lede.hl{font-weight:700;font-size:clamp(17px,1.5vw,19px);line-height:1.85;max-width:none;margin-bottom:20px}
.prof .bio{margin:0 0 30px;max-width:none}
.prof .bio p{font-size:14.5px;line-height:2}
/* ===== トップ：回数ではなく、大きい実績の名前を並べる ===== */
.marks{display:grid;grid-template-columns:repeat(4,minmax(0,auto));justify-content:start;margin:48px 0 0;padding:20px 0 0;border-top:1px solid rgba(255,255,255,.18);max-width:900px}
.marks li{list-style:none;padding:0 26px;border-left:1px solid rgba(255,255,255,.14)}
.marks li:first-child{padding-left:0;border-left:0}
.marks b{display:block;font:800 clamp(18px,1.75vw,25px)/1.15 var(--en);font-stretch:88%;letter-spacing:.03em;white-space:nowrap}
.marks li>span{display:block;margin-top:8px;font-size:11.5px;color:var(--sub);letter-spacing:.06em}
@media (max-width:820px){
  .marks{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 0;margin-top:32px;padding-top:18px}
  .marks li{padding:0 0 0 14px}
  .marks li:nth-child(odd){padding-left:0;border-left:0}
  .marks b{font-size:clamp(15px,4.4vw,19px);white-space:normal}
  .marks li>span{font-size:10.5px;margin-top:5px}
}
.marks .ib{display:inline-block}
/* ===== PROFILE：写真入りのカード（Apple風）／SNSはそれぞれの色 ===== */
.skills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0}
.card.skill{display:flex;flex-direction:column;justify-content:flex-end;min-height:250px;padding:18px 18px 16px;border-radius:22px;overflow:hidden;isolation:isolate;
  background:#0d1322!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 18px 40px -22px rgba(0,0,0,.8)!important}
.card.skill img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.card.skill::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,11,19,0) 22%,rgba(8,11,19,.62) 52%,rgba(8,11,19,.95))}
.card.skill .k{font:700 10.5px/1 var(--en);letter-spacing:.22em;color:rgba(255,255,255,.72);margin-bottom:8px}
.card.skill b{font-size:16.5px;letter-spacing:.04em}
.card.skill small{color:rgba(230,236,248,.75);font-size:12px}
@media (hover:hover){.card.skill:hover img{transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){.card.skill img{transition:none}.card.skill:hover img{transform:none}}
.sns.color a{color:#fff}
.sns.color a.c-ig{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%)}
.sns.color a.c-tt{background:#000;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.sns.color a.c-tt svg{filter:drop-shadow(1.5px 1px 0 #fe2c55) drop-shadow(-1.5px -1px 0 #25f4ee)}
.sns.color a.c-x{background:#000;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.sns.color a.c-yt{background:#FF0000}
.sns.color a.c-sp{background:#1DB954}
.sns.color a:hover{filter:brightness(1.1);background-blend-mode:normal}
.prof .sns.pills{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0 30px}
.prof .sns.pills a{width:auto;height:40px;padding:0 13px 0 11px;gap:7px;display:inline-flex;align-items:center;border-radius:999px;font:700 12.5px/1 var(--en);letter-spacing:.06em}
.prof .sns.pills svg{width:16px;height:16px}
@media (max-width:820px){
  .skills.hs{grid-template-columns:none;grid-auto-columns:72%}
  .card.skill{min-height:230px}
  .prof .sns.pills a{height:40px;padding:0 13px 0 11px;font-size:12px}
}
footer .sns,.menu .sns{gap:10px}
footer .sns a,.menu .sns a{width:40px;height:40px}
/* ===== CAREER：年表＋大きい仕事は写真入りの枠で ===== */
.tl{position:relative;margin:0;padding:0;max-width:1000px}
.tl::before{content:"";position:absolute;left:143px;top:10px;bottom:10px;width:1px;background:linear-gradient(180deg,transparent,var(--line2) 6%,var(--line2) 94%,transparent)}
.tly{list-style:none;position:relative;display:grid;grid-template-columns:120px minmax(0,1fr);gap:0 48px;padding:18px 0}
.tly::before{content:"";position:absolute;left:139px;top:31px;width:9px;height:9px;border-radius:50%;background:var(--t2,#1a2539);box-shadow:inset 0 0 0 1.5px var(--sub)}
.tly.has-key::before{background:var(--stage);box-shadow:0 0 0 5px rgba(77,125,255,.2)}
.tly .y{font:800 34px/1 var(--en);font-stretch:72%;letter-spacing:.02em;color:var(--sub);padding-top:4px;text-align:right}
.tly.has-key .y{color:var(--ink);font-size:40px;padding-top:0}
.evs{display:grid;gap:12px}
.ev{padding:6px 0}
.ev b{display:block;font-size:16px;font-weight:700;line-height:1.6}
.ev small{display:block;font-size:13px;color:var(--sub);margin-top:2px}
.card.hlc{display:grid;grid-template-columns:minmax(0,1fr) 38%;align-items:stretch;padding:0;min-height:168px;border-radius:22px;overflow:hidden;isolation:isolate;
  background:linear-gradient(120deg,rgba(77,125,255,.16),rgba(255,255,255,.04) 60%)!important;box-shadow:inset 0 0 0 1px rgba(150,180,255,.32),0 20px 44px -26px rgba(0,0,0,.9)!important}
.card.hlc img{grid-column:2;grid-row:1;width:100%;height:0;min-height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent,#000 45%);mask-image:linear-gradient(90deg,transparent,#000 45%);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.card.hlc .tx{grid-column:1;grid-row:1;padding:24px 4px 22px 26px;display:flex;flex-direction:column;justify-content:center}
.card.hlc .k{font:700 10.5px/1 var(--en);letter-spacing:.22em;color:#a9c1ff;margin-bottom:10px}
.card.hlc b{font-size:clamp(17px,1.6vw,21px);line-height:1.45}
.card.hlc small{font-size:13px;margin-top:6px}
@media (hover:hover){.card.hlc:hover img{transform:scale(1.05)}}
@media (prefers-reduced-motion:reduce){.card.hlc img{transition:none}.card.hlc:hover img{transform:none}}
@media (max-width:820px){
  .tl::before{left:5px}
  .tly{grid-template-columns:minmax(0,1fr);gap:8px;padding:14px 0 14px 28px}
  .tly::before{left:1px;top:22px}
  .tly .y,.tly.has-key .y{text-align:left;font-size:28px;padding:0}
  .tly.has-key .y{font-size:32px}
  .card.hlc{grid-template-columns:minmax(0,1fr);min-height:0}
  .card.hlc img{grid-column:1;grid-row:1;height:130px;min-height:0;-webkit-mask-image:linear-gradient(180deg,#000 40%,transparent);mask-image:linear-gradient(180deg,#000 40%,transparent)}
  .card.hlc .tx{grid-row:2;padding:0 18px 18px;margin-top:-26px;position:relative}
  .ev b{font-size:14.5px}
}
/* ===== WORKS：楽曲とライブ・TVを1つにまとめてタブで切り替え ===== */
.works-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;margin-bottom:clamp(30px,4vw,48px)}
.works-top .lede{margin:0;max-width:26em}
.seg{display:inline-grid;grid-auto-flow:column;gap:4px;padding:4px;border-radius:999px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.seg button{min-height:44px;padding:0 22px;border:0;border-radius:999px;background:transparent;color:var(--sub);font-weight:700;font-size:14.5px;letter-spacing:.06em;cursor:pointer;transition:background .25s,color .25s;display:inline-flex;align-items:center;gap:8px}
.seg button em{font:600 11.5px/1 var(--en);font-style:normal;color:var(--faint)}
.seg button[aria-selected="true"]{background:var(--ink);color:var(--black);box-shadow:0 4px 14px rgba(0,0,0,.35)}
.seg button[aria-selected="true"] em{color:#5a6377}
.js .tabp:not(.on){display:none}
.js .tabp.on{animation:tabin .45s cubic-bezier(.2,.7,.2,1)}
@keyframes tabin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.js .tabp.on{animation:none}}
.outlinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:clamp(48px,6vw,72px)}
.ol{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:20px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);transition:transform .25s cubic-bezier(.2,.7,.2,1),background .25s}
.ol svg{width:40px;height:40px;flex:none;padding:9px;border-radius:50%;fill:#fff}
.ol.sp svg{background:#1DB954} .ol.yt svg{background:#FF0000}
.ol b{display:block;font:800 19px/1.1 var(--en);letter-spacing:.02em}
.ol small{display:block;margin-top:4px;font-size:12.5px;color:var(--sub)}
@media (hover:hover){.ol:hover{transform:translateY(-3px);background:rgba(255,255,255,.08)}}
.workcta{margin-top:12px}
@media (max-width:820px){
  .works-top{display:block}
  .works-top .lede{margin-bottom:22px}
  .seg{display:grid;grid-auto-columns:1fr;width:100%}
  .seg button{justify-content:center;padding:0 10px}
  .outlinks{grid-template-columns:minmax(0,1fr);gap:10px}
}
/* ===== ジャケットの真ん中の再生ボタン ===== */
.song .art{border-radius:18px;box-shadow:0 22px 44px -24px rgba(0,0,0,.9),inset 0 0 0 1px rgba(255,255,255,.08)}
.song .art::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(0,0,0,.28),rgba(0,0,0,0) 60%);opacity:.9;transition:opacity .3s}
.song .pp{position:absolute;left:50%;top:50%;z-index:2;width:74px;height:74px;margin:-37px 0 0 -37px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.2);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 10px 30px rgba(0,0,0,.35);
  transition:transform .25s cubic-bezier(.2,.7,.2,1),background .25s}
.song .pp .tri{width:0;height:0;margin-left:5px;border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent}
.song .pp .bars{display:none;width:18px;height:22px;background:linear-gradient(90deg,#fff 0 6px,transparent 6px 12px,#fff 12px 18px)}
.song.playing .pp .tri{display:none} .song.playing .pp .bars{display:block}
.song.playing .pp{background:rgba(29,185,84,.85)}
@media (hover:hover){.song .art:hover .pp{transform:scale(1.08)}}
.song .art:active .pp{transform:scale(.94)}
.song .eq{position:absolute;right:14px;top:12px;z-index:2;display:none;gap:3px;align-items:flex-end;height:16px}
.song .eq i{width:3px;height:100%;background:#fff;border-radius:2px;transform-origin:bottom;animation:eq .9s ease-in-out infinite}
.song .eq i:nth-child(2){animation-delay:-.3s} .song .eq i:nth-child(3){animation-delay:-.6s}
.song.playing .eq{display:flex}
@keyframes eq{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
.song .bar{position:absolute;left:0;right:0;bottom:0;height:4px;z-index:2;background:rgba(255,255,255,.18);opacity:0;transition:opacity .3s}
.song .bar i{display:block;height:100%;background:#1DB954;transform:scaleX(0);transform-origin:left;transition:transform .5s linear}
.song.playing .bar{opacity:1}
.song.playing .art{box-shadow:0 0 0 2px #1DB954,0 22px 44px -24px rgba(0,0,0,.9)}
.song h4{margin:18px 0 2px}
@media (prefers-reduced-motion:reduce){.song .eq i{animation:none;transform:scaleY(.7)}}
.sp-host{position:fixed;left:12px;right:12px;bottom:-120px;z-index:45;max-width:420px;margin:0 auto;border-radius:14px;overflow:hidden;opacity:0;pointer-events:none;transition:bottom .35s cubic-bezier(.2,.7,.2,1),opacity .35s}
.sp-host.show{bottom:calc(84px + env(safe-area-inset-bottom));opacity:1;pointer-events:auto;box-shadow:0 18px 50px rgba(0,0,0,.6)}
@media (min-width:821px){.sp-host.show{bottom:24px}}
/* ===== LESSON のブラッシュアップ（写真は横についてくる・角丸を大きく・料金を読みやすく） ===== */
@media (min-width:821px){ .les>.pw{position:sticky;top:calc(var(--head) + 32px)} }
.les .photo{border-radius:22px}
#lesson .card,#lesson details.open-card{border-radius:20px}
.lstats .card{border-radius:18px!important}
.trial{padding:24px 24px 22px;border-radius:22px!important}
.trial b{font-size:18px}
.trial .p{font-size:32px}
.plan{padding:24px 22px 22px}
.plan .p{display:flex;align-items:baseline;gap:4px;font-size:36px}
.plan .p small{margin-left:2px}
.plan .badge{box-shadow:0 6px 16px rgba(255,116,23,.4)}
.plan.rec{transform:none}
#lesson .plan.rec{box-shadow:inset 0 0 0 1.5px var(--or),0 24px 50px -26px rgba(255,116,23,.55)}
.pick{min-height:48px;font-size:14.5px;box-shadow:0 8px 20px -10px rgba(255,116,23,.7)!important}
.faq{padding:6px 24px 10px;border-radius:22px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(200,215,245,.14)}
.faq h3{margin-top:18px}
.faq details:first-of-type{border-top:0}
.faq details:last-child{border-bottom:0}
.flow .card{border-radius:20px!important}
.les .tg li{background:rgba(255,116,23,.14);box-shadow:inset 0 0 0 1px rgba(255,154,77,.25)}
@media (max-width:820px){
  .faq{padding:4px 18px 8px}
  .plan .p{font-size:30px}
}
/* ===== フォーム：ご用件で入力欄が切り替わる ===== */
.js .xf:not(.on){display:none}
.xf{display:grid;gap:22px;padding:20px;border-radius:16px;background:rgba(255,255,255,.035);box-shadow:inset 0 0 0 1px var(--line)}
.js .xf.on{animation:tabin .4s cubic-bezier(.2,.7,.2,1)}
.xf[data-for="レッスン"]{box-shadow:inset 0 0 0 1px rgba(255,154,77,.3)}
.xf[data-for="お仕事"]{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gr-hi) 30%,transparent)}
.opts{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.opts legend{font-size:13px;font-weight:700;margin-bottom:10px;letter-spacing:.08em;padding:0}
.opts legend i{font-style:normal;color:var(--or-hi);font-weight:500;margin-left:6px;font-size:11.5px}
.opts .err{flex-basis:100%}
.opt{position:relative;margin:0!important;cursor:pointer}
.opt input{position:absolute;opacity:0;inset:0;cursor:pointer;min-height:0}
.opt span{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:999px;font-size:13.5px;font-weight:700;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px var(--line2);color:var(--sub);transition:background .15s,color .15s,box-shadow .15s}
.opt input:checked+span{background:var(--ink);color:var(--black);box-shadow:none}
.opt input:focus-visible+span{outline:2px solid var(--or-hi);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.js .xf.on{animation:none}}
@media (max-width:820px){.xf{padding:16px}}
/* ===== 背景：セクションごとに写真を大きくぼかして敷く（色を出して鮮やかに） ===== */
section.s.sbg{isolation:isolate;overflow:clip}
section.s.sbg::before{content:"";position:absolute;inset:-120px;z-index:-2;background:center/cover no-repeat;filter:blur(70px) saturate(1.7) brightness(.95);opacity:.6;transform:translateZ(0)}
section.s.sbg::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,11,19,.62) 0%,rgba(8,11,19,.28) 30%,rgba(8,11,19,.32) 70%,rgba(8,11,19,.72) 100%)}
#profile.sbg::before{background-position:50% 30%}
#career.sbg::before{opacity:.5}
#works.sbg::before{opacity:.55}
#lesson.sbg::before{opacity:.5}
#lesson.sbg{background:#1a1626}
#contact.sbg::before{opacity:.4}
/* カード：Apple風（半透明・大きい角丸・やわらかい影） */
.card{border-radius:20px}
#profile .card,#career .card,#works .card,#lesson .card,#profile details.open-card,#lesson details.open-card{
  background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.045));box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 18px 40px -26px rgba(0,0,0,.75)}
.card.gig,.card.credit{border-radius:18px}
.workcta{border-radius:24px;background:linear-gradient(120deg,rgba(47,184,240,.16),rgba(255,255,255,.04) 65%);box-shadow:inset 0 0 0 1px rgba(92,200,245,.28),0 24px 50px -30px rgba(0,0,0,.8)}
.workcta .serv .card{border-radius:14px}
.strip .photo{border-radius:20px}
.prof .photo{border-radius:22px}
details.open-card{border-radius:20px}
form.f{border-radius:24px;background:rgba(20,26,40,.62);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 30px 60px -30px rgba(0,0,0,.8)}
@media (hover:hover){
  .card:hover,.cat:hover,.media:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.3),0 26px 50px -24px rgba(0,0,0,.85)}
}
@media (max-width:820px){ section.s.sbg::before{filter:blur(50px) saturate(1.7);inset:-80px} }

/* ===== v5（2026-10-14）：ブラッシュアップ ===== */
/* トップのキャッチ：「書ける」「弾ける」を色と下線で立たせ、筆記体の Write & Play を重ねる */
.hero h1.cp{position:relative;font-size:clamp(44px,6.8vw,104px);line-height:1.12;letter-spacing:.01em;text-shadow:0 4px 30px rgba(0,0,0,.45)}
.hero h1.cp span.l1,.hero h1.cp span.l2{display:block;white-space:nowrap}
.hero h1.cp span.l2{padding-left:.9em}
.kw{position:relative;display:inline-block;font-style:normal;z-index:0}
@media (max-width:820px){
  .hero h1.cp{font-size:clamp(34px,10.4vw,52px)}
  .hero h1.cp span.l2{padding-left:.6em}
}
/* 主な実績：同じ大きさのカード4枚（PC 4列・スマホ 2×2） */
.marks{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border-top:0;padding-top:0;max-width:980px;justify-content:stretch}
.marks li,.marks li:first-child{position:relative;padding:16px 18px 15px;border-left:0;border-radius:18px;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.04));box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 18px 40px -24px rgba(0,0,0,.85);
  backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3)}
.marks li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--or)}
.marks li:nth-child(3)::before{background:#fff}
.marks li:nth-child(4)::before{background:var(--gr-hi)}
.marks li>i{display:block;font:700 9.5px/1 var(--en);font-style:normal;letter-spacing:.22em;color:rgba(255,255,255,.6);margin-bottom:9px}
@media (hover:hover){.marks li{transition:transform .25s cubic-bezier(.2,.7,.2,1)}.marks li:hover{transform:translateY(-3px)}}
@media (max-width:820px){
  .marks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .marks li,.marks li:nth-child(odd),.marks li:first-child{padding:13px 12px 12px 14px}
  .marks li>i{font-size:8.5px;margin-bottom:7px}
}
/* 流れる文字の帯：6本の弦の上を細い文字が流れる（全部うすい線の文字に統一） */
.band{position:relative;padding:26px 0;background:var(--black)}
.band::before{content:"";position:absolute;left:0;right:0;top:50%;height:58%;transform:translateY(-50%);pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(220,228,245,.16) 0 1px,transparent 1px calc(100%/5 - .2px));opacity:.9}
.band span,.band span:nth-child(4n+1){position:relative;color:transparent;-webkit-text-stroke:1px rgba(220,228,245,.5)}
.band i{width:.28em;height:.28em;margin:0 .7em;background:transparent;box-shadow:0 0 0 1.5px var(--or-hi);position:relative}
.band.rev i{background:transparent;box-shadow:0 0 0 1.5px var(--gr-hi)}
.band .tr{animation-duration:60s}
@media (max-width:820px){.band{padding:18px 0}}
/* SNS：5つとも同じ大きさ */
.prof .sns.pills{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.prof .sns.pills a{width:auto;justify-content:center;padding:0 8px}
@media (max-width:820px){.prof .sns.pills{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* CAREER：写真カードをやめて、年表の文字だけで見せる（大きい仕事は色の点と見出し） */
.ev.key{padding:4px 0 8px}
.ev.key .k{display:block;font:700 10.5px/1 var(--en);letter-spacing:.22em;color:#a9c1ff;margin-bottom:8px}
.ev.key b{font-size:clamp(17px,1.6vw,21px);line-height:1.45}
.ev.key small{font-size:13px;margin-top:6px}
/* 背景の真空管：スクロールに合わせてゆっくり動き、ぼんやり明滅する */
section.s.pb{isolation:isolate;overflow:clip}
.pbg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.pbg i{position:absolute;left:0;right:0;top:-18%;bottom:-18%;background:center/cover no-repeat;transform:translate3d(0,var(--py,0px),0) scale(1.06);will-change:transform;opacity:.62;filter:saturate(1.25) contrast(1.05)}
.pbg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,11,19,.9) 0%,rgba(8,11,19,.55) 22%,rgba(8,11,19,.6) 70%,rgba(8,11,19,.95) 100%),linear-gradient(90deg,rgba(8,11,19,.75),rgba(8,11,19,.15) 70%)}
.pbg.amber::after{background:linear-gradient(180deg,rgba(8,11,19,.92) 0%,rgba(8,11,19,.5) 25%,rgba(8,11,19,.62) 72%,rgba(8,11,19,.96) 100%),linear-gradient(270deg,rgba(8,11,19,.2),rgba(8,11,19,.8) 75%)}
@media (prefers-reduced-motion:no-preference){ .pbg i{animation:hum 6s ease-in-out infinite alternate} }
@keyframes hum{from{filter:saturate(1.2) brightness(.92)}to{filter:saturate(1.35) brightness(1.12)}}
@media (prefers-reduced-motion:reduce){ .pbg i{transform:none} }
#career{background:var(--black)}
#contact{background:var(--black)}
/* CONTACT：「その他」は青紫で区別 */
.kc.bl input:checked+span{background:rgba(77,125,255,.16);box-shadow:inset 0 0 0 1.5px var(--stage)}
.f .note a,footer small a{text-decoration:underline;text-underline-offset:3px}
/* 生徒さんの声 */
.voices{margin-top:clamp(56px,7vw,90px)}
.voices h3{margin:0 0 18px;font-size:18px;font-weight:700;display:flex;align-items:baseline;gap:12px}
.voices h3 span{font:700 12px/1 var(--en);letter-spacing:.24em;color:var(--or-hi)}
.vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0}
.voice p{margin:0 0 12px;font-size:14.5px;line-height:1.9}
@media (max-width:820px){.vgrid.hs{grid-template-columns:none;grid-auto-columns:82%}}
/* プライバシーポリシーのページ */
.docw{max-width:820px;padding-top:calc(var(--head) + 60px);padding-bottom:100px}
.dsec{padding:22px 0;border-top:1px solid var(--line)}
.dsec h3{margin:0 0 8px;font-size:16px}
.dsec p{margin:0;color:var(--sub);font-size:14.5px}
/* v5 調整 */
.hero picture img{object-position:32% 30%}
@media (max-width:820px){.hero picture img{object-position:62% 30%}}
.marks b{white-space:normal;font-size:clamp(17px,1.55vw,22px)}
.pbg i{opacity:.8}
.pbg::after{background:linear-gradient(180deg,rgba(8,11,19,.92) 0%,rgba(8,11,19,.35) 20%,rgba(8,11,19,.4) 75%,rgba(8,11,19,.95) 100%),linear-gradient(90deg,rgba(8,11,19,.7),rgba(8,11,19,0) 70%)}
.pbg.amber::after{background:linear-gradient(180deg,rgba(8,11,19,.92) 0%,rgba(8,11,19,.35) 22%,rgba(8,11,19,.45) 75%,rgba(8,11,19,.96) 100%),linear-gradient(270deg,rgba(8,11,19,.15),rgba(8,11,19,.75) 70%)}
@media (max-width:820px){
  .pbg::after{background:linear-gradient(180deg,rgba(8,11,19,.92) 0%,rgba(8,11,19,.5) 18%,rgba(8,11,19,.6) 80%,rgba(8,11,19,.96) 100%)}
}
/* v5.4 キャッチ：「書ける」「弾ける」の後ろで、色の光がぼんやり灯る（北川くんが選択。線・Write & Play は無し） */
.hero h1.cp .kw{color:inherit}
.hero h1.cp .kw::after{content:none}
.hero h1.cp .kw::before{content:"";position:absolute;inset:.05em -.2em -.05em;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--or) 85%,transparent),transparent);filter:blur(10px)}
.hero h1.cp .kw.bl::before{background:radial-gradient(closest-side,color-mix(in srgb,var(--gr-hi) 80%,transparent),transparent)}
@media (prefers-reduced-motion:no-preference){
  .hero h1.cp .kw::before{animation:glowin 1.2s ease-out both .6s}
  .hero h1.cp .l2 .kw::before{animation-delay:.9s}
}
@keyframes glowin{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}
@media (max-width:820px){.hero .name{margin-top:20px}.hero h1.cp .kw::before{filter:blur(7px);inset:0 -.15em -.08em}}
/* v6（2026-10-15）：生徒さんの声／動画1本／予約カレンダー */
.voice{display:flex;flex-direction:column;padding:26px 22px 20px}
.voice .q{font:800 56px/.6 var(--en);color:var(--or-hi);opacity:.85;height:24px}
.voice p{flex:1;margin:10px 0 16px}
.voice .who{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:14px;border-top:1px solid var(--line)}
.voice .who b{font-size:13.5px;margin-right:4px}
.pv{margin:0 0 clamp(44px,6vw,64px)}
.pv-frame{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;border-radius:22px;overflow:hidden;cursor:pointer;
  background:var(--char) center/cover no-repeat;box-shadow:0 30px 60px -30px rgba(0,0,0,.9),inset 0 0 0 1px rgba(255,255,255,.1)}
.pv-frame::after{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(0,0,0,.15),rgba(0,0,0,.45))}
.pv-frame .pp{position:absolute;left:50%;top:50%;z-index:2;width:88px;height:88px;margin:-44px 0 0 -44px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);transition:transform .25s}
.pv-frame .pp .tri{width:0;height:0;margin-left:6px;border-left:24px solid #fff;border-top:14px solid transparent;border-bottom:14px solid transparent}
@media (hover:hover){.pv-frame:hover .pp{transform:scale(1.08)}}
.pv-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.pv-tx{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:16px}
.pv-tx b{font-size:clamp(18px,1.8vw,22px)}
.pv-tx small{color:var(--sub);font-size:13px}
.bk{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:16px;background:rgba(6,8,13,.8);backdrop-filter:blur(8px)}
.bk-in{width:min(920px,100%);height:min(88vh,860px);display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:22px;background:var(--t1,#111a2c);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.bk-top{display:flex;align-items:center;justify-content:space-between;padding:0 6px}
.bk .x{width:44px;height:44px;border:0;background:none;font-size:28px;cursor:pointer}
.bk iframe{flex:1;width:100%;border:0;border-radius:14px;background:#fff}
.bk a{text-align:center;text-decoration:underline;text-underline-offset:3px}
/* v6.1（2026-10-15）：体験レッスンの中身／お知らせ */
.tsteps{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 14px;margin:2px 0 4px;padding:0;font-size:12.5px;color:var(--sub)}
.tsteps li{list-style:none;display:inline-flex;align-items:center;gap:6px}
.tsteps span{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--or-soft);color:var(--or-hi);font:700 10.5px/1 var(--en)}
.news{margin:14px 0 0;padding:0;max-width:980px;display:grid;gap:6px}
.news li{list-style:none;display:flex;gap:14px;align-items:baseline;font-size:13px;color:var(--sub)}
.news time{font:600 11.5px/1 var(--en);letter-spacing:.08em;color:var(--or-hi);flex:none}
.news a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:820px){.tsteps{font-size:12px}.news li{font-size:12.5px}}
/* v6.2（2026-10-15）：仕事の依頼の流れ */
.wflow{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;counter-reset:none}
.wflow li{list-style:none;display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;border-radius:999px;background:rgba(47,184,240,.1);box-shadow:inset 0 0 0 1px rgba(92,200,245,.25);font-size:13px;font-weight:700}
.wflow li span{font:700 10.5px/1 var(--en);letter-spacing:.08em;color:var(--gr-hi)}
.wflow li+li::before{content:"→";margin:0 4px 0 -2px;color:var(--faint);font-weight:400}
