/* WIDE Official Site — 白基調 × 黒文字 × 差し色 赤 */
/* 見出しフォントは自サーバー（Google Fonts の FOUT 対策・font-display:block） */
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-stretch:100%;font-display:block;src:url(fonts/bricolage-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
html.fl body{opacity:0}
html.fr body{animation:bodyIn .25s ease both}
@keyframes bodyIn{from{opacity:0}to{opacity:1}}
:root{
  --bg:#fff; --bg2:#f6f6f6; --fg:#111; --mute:#666; --line:#111; --line2:#ddd;
  --red:#dd1e26; --red2:#b8141b;
  --fd:"Bricolage Grotesque","Noto Sans JP",system-ui,sans-serif;
  --fb:"Noto Sans JP","Bricolage Grotesque",system-ui,sans-serif;
  --w:1160px; --gut:24px; --hd:64px;
}
*{box-sizing:border-box;min-width:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--fb);font-size:15px;line-height:1.8;letter-spacing:.02em;font-feature-settings:"palt"}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{color:var(--red)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
h1,h2,h3{margin:0;font-family:var(--fd);letter-spacing:-.02em;line-height:1.05;overflow-wrap:break-word}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--gut)}
.tiny{font-size:12px;color:var(--mute);margin:18px 0 0}
.tiny a{text-decoration:underline;text-underline-offset:3px}

/* header */
.hd{position:sticky;top:0;z-index:50;height:var(--hd);display:flex;align-items:center;gap:28px;padding:0 var(--gut);background:rgba(255,255,255,.94);border-bottom:1.5px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px}
.brand img{width:96px;height:auto}
.brand .mark{width:38px}
.nav{display:flex;gap:22px;margin-left:8px;font-family:var(--fd);font-weight:700;font-size:13px;letter-spacing:.08em}
.nav a{position:relative;padding:4px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1)}
.hdsns{margin-left:auto;display:flex;gap:6px}
.hdsns a,.ft-sns a{width:32px;height:32px;border:1.5px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:.2s}
.hdsns a:hover{background:var(--red);border-color:var(--red);color:#fff}
.hdsns svg,.ft-sns svg{width:15px;height:15px;fill:currentColor}
.burger{display:none;width:40px;height:40px;margin-left:auto;flex-direction:column;justify-content:center;gap:6px;align-items:center}
.burger span{display:block;width:24px;height:2px;background:var(--fg);transition:.25s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* hero */
.hero{padding:56px 0 48px;border-bottom:1.5px solid var(--line);position:relative;overflow:hidden}
.hero-wm{position:absolute;left:-4%;bottom:-18%;width:min(46vw,640px);opacity:.045;pointer-events:none;z-index:0}
.hero-in{position:relative;z-index:1}
.hero-t{border-left:6px solid var(--red);padding-left:22px}
.hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.kicker{margin:0 0 10px;font-family:var(--fd);font-weight:800;font-size:14px;letter-spacing:.2em;color:var(--red)}
.kicker::before{content:"";display:inline-block;width:28px;height:2px;background:var(--red);vertical-align:middle;margin-right:10px}
.hero-title{font-size:clamp(44px,6.4vw,92px);font-weight:800;line-height:.98}
.hero-note{margin:14px 0 0;font-family:var(--fd);font-weight:700;font-size:16px;letter-spacing:.18em}
.hero-sub{margin:18px 0 0;max-width:34em;color:#333}
.hero-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border:1.5px solid var(--line);font-family:var(--fd);font-weight:700;font-size:13px;letter-spacing:.1em;position:relative;overflow:hidden;transition:color .25s}
.btn::before{content:"";position:absolute;inset:0;background:var(--fg);transform:translateX(-101%);transition:transform .3s}
.btn:hover{color:#fff}.btn:hover::before{transform:none}
.btn>*{position:relative}
.btn.red{background:var(--red);border-color:var(--red);color:#fff}
.btn.red::before{background:var(--fg)}
.btn.red:hover{border-color:var(--fg)}
.btn .ar{transition:transform .25s}.btn:hover .ar{transform:translateX(4px)}
.hero-art{margin:0}
.hero-art img{width:100%;aspect-ratio:1;object-fit:cover;border:1.5px solid var(--line);box-shadow:12px 12px 0 var(--red);background:#fff}
.hero-art{padding-right:12px;padding-bottom:12px}
.hero-art figcaption{margin-top:8px;font-family:var(--fd);font-size:11px;letter-spacing:.14em;color:var(--mute);text-align:right}

/* quick tiles */
.tiles{border-bottom:1.5px solid var(--line)}
.tiles-in{display:grid;grid-template-columns:repeat(4,1fr);padding:0 var(--gut)}
.tile{display:flex;align-items:center;gap:14px;padding:16px 18px;border-right:1.5px solid var(--line);transition:background .2s;position:relative}
.tile::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.tile:hover::before{transform:none}
.tile:first-child{border-left:1.5px solid var(--line)}
.tile:hover{background:var(--bg2)}
.tile img{width:56px;height:56px;object-fit:cover;border:1px solid var(--line2);flex:none}
.tile b{display:block;font-family:var(--fd);font-size:13px;letter-spacing:.12em}
.tile b i{font-style:normal;color:var(--red)}
.tile span{display:block;font-size:12px;color:var(--mute);line-height:1.4;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* sections */
.sec{padding:72px 0}
.sec.alt{background:var(--bg2)}
main{counter-reset:sec}
.h2{display:flex;align-items:baseline;gap:14px;margin-bottom:34px;font-size:clamp(34px,4.4vw,56px);font-weight:800}
.h2::before{counter-increment:sec;content:"0" counter(sec);align-self:center;background:#111;color:#fff;font-size:12px;letter-spacing:.14em;padding:5px 9px 4px;line-height:1;border-left:4px solid var(--red)}
.h2 small{font-family:var(--fb);font-size:12px;font-weight:500;letter-spacing:.14em;color:var(--mute)}
.h2::after{content:"";flex:1;height:1.5px;background:var(--line);margin-left:6px;transform:translateY(-.35em)}
.h3{font-size:14px;font-weight:800;letter-spacing:.18em;margin:44px 0 18px;color:var(--red)}
.h3::before{content:"";display:inline-block;width:14px;height:2px;background:var(--red);vertical-align:middle;margin-right:8px}

/* news */
.news{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--line)}
.news li{border-bottom:1px solid var(--line2)}
.news li.hide{display:none}
.news a,.news .row{display:grid;grid-template-columns:110px 84px 1fr;gap:16px;align-items:baseline;padding:16px 4px;transition:background .2s}
.news a:hover{background:var(--bg2);color:inherit}
.news time{font-family:var(--fd);font-weight:700;font-size:13px;letter-spacing:.06em}
.news .cat{font-family:var(--fd);font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--red);border:1.5px solid var(--red);padding:1px 6px;text-align:center;line-height:1.6;align-self:center}
.news .cat.fill{background:var(--red);color:#fff}
.news .tx{font-size:14px}
.news a:hover .tx{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--red)}
.more{display:block;margin:22px auto 0;padding:10px 26px;border:1.5px solid var(--line);font-family:var(--fd);font-weight:700;font-size:12px;letter-spacing:.16em;transition:.2s}
.more:hover{background:var(--fg);color:#fff}

/* release feature */
.rel-feat{display:grid;grid-template-columns:360px 1fr;gap:36px;align-items:start;background:#fff;border:1.5px solid var(--line);padding:26px}
.rel-feat .cov{position:relative}
.rel-feat .cov img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--line2)}
.rel-feat .badge,.card .badge{position:absolute;top:10px;left:10px;background:var(--red);color:#fff;font-family:var(--fd);font-weight:800;font-size:10px;letter-spacing:.16em;padding:3px 8px}
.rel-feat .type{font-family:var(--fd);font-weight:700;font-size:12px;letter-spacing:.16em;color:var(--red)}
.rel-feat h3.tt{font-size:clamp(26px,3vw,40px);font-weight:800;margin:6px 0 4px;color:var(--fg)}
.rel-feat h3.tt::before{display:none}
.rel-feat .date{font-family:var(--fd);font-weight:700;font-size:13px;letter-spacing:.1em;color:var(--mute)}
.rel-feat .desc{margin:14px 0 0;font-size:14px}
.rel-feat .credit{margin:6px 0 0;font-size:12px;color:var(--mute)}
.playrow{display:flex;align-items:center;gap:12px;margin-top:18px}
.play{width:52px;height:52px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:18px;flex:none;transition:.2s;box-shadow:0 0 0 0 rgba(221,30,38,.4)}
.play:hover{background:var(--red2);transform:scale(1.05)}
.play.on{animation:pulse 1.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(221,30,38,.45)}100%{box-shadow:0 0 0 14px rgba(221,30,38,0)}}
.play.sm{width:38px;height:38px;font-size:13px}
.playrow .lbl{font-family:var(--fd);font-weight:700;font-size:12px;letter-spacing:.14em}
.playrow .lbl small{display:block;font-weight:500;letter-spacing:.08em;color:var(--mute);font-family:var(--fb);font-size:11px}
.links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.lk{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1.5px solid var(--line);font-family:var(--fd);font-weight:700;font-size:11px;letter-spacing:.1em;transition:.2s}
.lk:hover{background:var(--fg);color:#fff}
.lk.all{background:var(--fg);color:#fff}.lk.all:hover{background:var(--red);border-color:var(--red)}
.lk svg{width:13px;height:13px;fill:currentColor}
.tracks{list-style:none;margin:16px 0 0;padding:0;columns:2;column-gap:24px;font-size:13px}
.tracks li{display:flex;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line2);break-inside:avoid}
.tracks .n{font-family:var(--fd);font-weight:700;color:var(--mute);width:20px;flex:none;font-size:12px}
.tracks .tp{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-size:9px;flex:none;transition:.2s}
.tracks .tp:hover,.tracks .tp.on{background:var(--red);border-color:var(--red);color:#fff}

/* album block */
.albums{display:grid;gap:22px}
.rel-feat.album{grid-template-columns:300px 1fr}
.rel-feat.album .tracks{columns:3}
.rel-feat.album .tracks li{font-size:12.5px}
@media (max-width:1000px){.rel-feat.album{grid-template-columns:1fr}.rel-feat.album .tracks{columns:2}}
@media (max-width:560px){.rel-feat.album .tracks{columns:1}}

/* discography grid */
.disco{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{background:#fff;border:1.5px solid var(--line);padding:12px;position:relative;display:flex;flex-direction:column;gap:8px;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.08)}
.card .cov{position:relative}
.card .cov img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--line2)}
.card .cov .play{position:absolute;right:10px;bottom:10px}
.card .type{font-family:var(--fd);font-weight:700;font-size:10px;letter-spacing:.16em;color:var(--red)}
.card .tt{font-family:var(--fd);font-weight:700;font-size:15px;line-height:1.25;letter-spacing:-.01em}
.card .art{font-size:12px;color:var(--mute)}
.card .date{font-family:var(--fd);font-weight:700;font-size:12px;color:var(--mute);letter-spacing:.08em}
.card .links{margin-top:auto;gap:6px}
.card .lk{padding:5px 9px;font-size:10px}

/* dark section */
.sec.dark{background:#111;color:#fff}
.sec.dark .h2::after{background:#fff}
.sec.dark .h2::before{background:#fff;color:#111}
.sec.dark .h2 small{color:#aaa}
.sec.dark .tiny{color:#aaa}
.sec.dark .vid-main{border-color:#fff}
.sec.dark .vid-cap{background:#111;color:#fff;border-top-color:#fff}
.sec.dark .vth{background:#111;border-color:#444;color:#fff}
.sec.dark .vth:hover{border-color:#fff}
.sec.dark .vth.on{outline-color:var(--red)}

/* video */
.vid-main{border:1.5px solid var(--line);background:#000;margin-bottom:18px}
.yt{position:relative;aspect-ratio:16/9;background:#000;cursor:pointer;overflow:hidden}
.yt img{width:100%;height:100%;object-fit:cover;opacity:.9;transition:.3s}
.yt:hover img{opacity:1;transform:scale(1.02)}
.yt .pb{position:absolute;inset:0;display:grid;place-items:center}
.yt .pb i{width:74px;height:74px;border-radius:50%;background:var(--red);display:grid;place-items:center;color:#fff;font-size:26px;font-style:normal;transition:.2s;padding-left:5px}
.yt:hover .pb i{transform:scale(1.08)}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid-cap{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:12px 16px;background:#fff;border-top:1.5px solid var(--line)}
.vid-cap b{font-family:var(--fd);font-size:15px}
.vid-cap span{font-family:var(--fd);font-weight:700;font-size:11px;letter-spacing:.14em;color:var(--red)}
.vid-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.vth{border:1.5px solid var(--line);background:#fff;transition:transform .25s}
.vth:hover{transform:translateY(-3px)}
.vth .yt .pb i{width:46px;height:46px;font-size:16px;padding-left:3px}
.vth .cap{padding:10px 12px;font-size:13px;line-height:1.4;font-family:var(--fd)}
.vth .cap span{display:block;font-size:10px;letter-spacing:.14em;color:var(--red);font-weight:700;margin-bottom:2px}
.vth.on{outline:2px solid var(--red)}

/* live */
.live-card{display:grid;grid-template-columns:300px 1fr;gap:34px;background:#fff;border:1.5px solid var(--line);padding:26px;align-items:start}
.live-card img{width:100%;border:1px solid var(--line2)}
.live-card .d{display:inline-flex;align-items:baseline;gap:10px;font-family:var(--fd);font-weight:800;background:#111;color:#fff;padding:8px 16px 6px;border-left:6px solid var(--red)}
.live-card .d b{font-size:clamp(44px,6vw,72px);letter-spacing:-.03em;line-height:1}
.live-card .d span{font-size:14px;letter-spacing:.16em;color:var(--red)}
.live-card .d small{font-size:13px;letter-spacing:.1em;color:#bbb}
.live-card h3.tt{font-size:clamp(22px,2.6vw,32px);font-weight:800;margin:10px 0 2px;color:var(--fg);letter-spacing:-.01em}
.live-card h3.tt::before{display:none}
.live-card .sub{font-family:var(--fd);font-weight:700;letter-spacing:.2em;font-size:12px;color:var(--red)}
.live-card dl{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:18px 0 0;font-size:14px}
.live-card dt{font-family:var(--fd);font-weight:700;font-size:11px;letter-spacing:.16em;color:var(--mute);padding-top:4px}
.live-card dd{margin:0}
.live-card .note{margin:16px 0 0;font-size:13px;color:#333}
.live-card .links{margin-top:18px}
.live-past{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--line)}
.live-past li{display:grid;grid-template-columns:110px 1fr auto;gap:16px;padding:12px 4px;border-bottom:1px solid var(--line2);font-size:14px;align-items:baseline}
.live-past time{font-family:var(--fd);font-weight:700;font-size:13px}
.live-past .v{font-size:12px;color:var(--mute)}

/* goods */
.goods{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.goods .soon{grid-column:1/-1;display:grid;grid-template-columns:200px 1fr;gap:30px;align-items:center;border:1.5px dashed var(--line);padding:28px}
.goods .soon img{width:100%}
.goods .soon b{font-family:var(--fd);font-weight:800;font-size:clamp(28px,3.6vw,44px);letter-spacing:-.02em;display:block;line-height:1}
.goods .soon p{margin:10px 0 0;font-size:14px;color:#333}
.gitem{border:1.5px solid var(--line);background:#fff;padding:12px}
.gitem img{aspect-ratio:1;object-fit:cover;width:100%}
.gitem b{display:block;font-family:var(--fd);margin-top:8px}
.gitem span{font-family:var(--fd);font-weight:700;color:var(--red)}

/* bio */
.bio-in{display:grid;grid-template-columns:380px 1fr;gap:48px;align-items:start}
.bio-ph{margin:0;position:sticky;top:calc(var(--hd) + 20px)}
.bio-ph img{width:100%;aspect-ratio:1;object-fit:cover;object-position:center top;border:1.5px solid var(--line)}
.bio-ph figcaption{font-size:11px;color:var(--mute);margin-top:8px;font-family:var(--fd);letter-spacing:.1em}
.bio-name{font-family:var(--fd);font-weight:800;font-size:34px;margin:0 0 6px;letter-spacing:-.02em}
.bio-name span{font-size:14px;font-weight:700;color:var(--mute);letter-spacing:.1em}
.bio-lead{font-weight:700;margin:0 0 14px;font-size:16px}
.bio-t p{margin:0 0 12px;font-size:14px}

/* contact */
.contact-in{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.contact-mail{grid-column:1/-1;border:1.5px solid var(--line);padding:22px 26px;background:#fff}
.contact-mail b{font-family:var(--fd);font-size:12px;letter-spacing:.16em;color:var(--red);display:block;margin-bottom:6px}
.contact-mail a.mail{font-family:var(--fd);font-weight:700;font-size:clamp(18px,2.6vw,26px);text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--red)}
.contact-mail p{margin:6px 0 0;font-size:13px;color:#333}
.snslist,.related{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--line)}
.snslist li a,.related li a{display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--line2);font-family:var(--fd);font-weight:700;letter-spacing:.06em;transition:.2s}
.snslist li a:hover,.related li a:hover{background:var(--bg2);padding-left:10px}
.snslist svg{width:18px;height:18px;fill:currentColor;flex:none}
.snslist small,.related small{font-family:var(--fb);font-weight:400;color:var(--mute);font-size:12px;margin-left:auto}
.related li a{font-size:13px}

/* footer */
.ft{background:#111;color:#fff;padding:56px 0 40px;border-top:1.5px solid var(--line);position:relative;overflow:hidden}
.ft-wm{position:absolute;right:-6%;bottom:-30%;width:min(40vw,520px);opacity:.06;pointer-events:none}
.ft-in{position:relative}
.ft-in{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.ft-logo{width:110px}
.ft-word{width:120px}
.ft-sns{display:flex;gap:8px}
.ft-sns a{border-color:#fff}
.ft-sns a:hover{background:var(--red);border-color:var(--red)}
.copy{margin:10px 0 0;font-family:var(--fd);font-size:11px;letter-spacing:.16em;color:#aaa}
.pagetop{font-family:var(--fd);font-weight:700;font-size:11px;letter-spacing:.16em;color:#fff;border:1.5px solid #fff;padding:8px 16px;transition:.2s}
.pagetop:hover{background:#fff;color:#111}

/* player */
.player{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:auto 1fr auto minmax(120px,320px) auto auto;align-items:center;gap:14px;padding:10px 18px;background:#fff;border-top:1.5px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,.08)}
.player[hidden]{display:none}
.player img{width:44px;height:44px;object-fit:cover;border:1px solid var(--line2)}
.pl-t{overflow:hidden}
.pl-t b{display:block;font-family:var(--fd);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-t span{font-family:var(--fd);font-weight:700;font-size:10px;letter-spacing:.16em;color:var(--red)}
.pl-btn{width:38px;height:38px;border-radius:50%;background:var(--red);color:#fff;font-size:13px}
.pl-bar{height:4px;background:#e5e5e5;position:relative;cursor:pointer}
.pl-bar i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--red);transition:width .25s linear}
.pl-time{font-family:var(--fd);font-weight:700;font-size:12px;letter-spacing:.06em;color:var(--mute);min-width:36px;text-align:right}
.pl-close{font-size:20px;color:var(--mute);width:28px}
body.has-player{padding-bottom:70px}

/* reveal */
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
.nomotion .rv{opacity:1;transform:none;transition:none}
.nomotion *{animation:none!important;transition:none!important}

/* ---- responsive ---- */
@media (max-width:1000px){
  .nav{display:none}
  .hdsns{display:none}
  .burger{display:flex}
  .nav.open{display:flex;position:fixed;top:var(--hd);left:0;right:0;bottom:0;background:#fff;flex-direction:column;gap:0;padding:12px 24px;margin:0;font-size:18px;z-index:49}
  .nav.open a{padding:16px 0;border-bottom:1px solid var(--line2)}
  .nav.open a::after{display:none}
  .hero-in{grid-template-columns:1fr;gap:28px}
  .hero-art{order:-1}
  .tiles-in{grid-template-columns:repeat(2,1fr)}
  .tile{border-left:0!important;border-right:0;border-bottom:1px solid var(--line2);padding:14px 4px}
  .tile:nth-child(odd){border-right:1px solid var(--line2);padding-right:12px}
  .tile:nth-child(even){padding-left:12px}
  .rel-feat{grid-template-columns:1fr;gap:20px;padding:18px}
  .disco{grid-template-columns:repeat(2,1fr);gap:14px}
  .vid-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .live-card{grid-template-columns:1fr;gap:20px;padding:18px}
  .live-card img{max-width:320px}
  .bio-in{grid-template-columns:1fr;gap:26px}
  .bio-ph{position:static;max-width:420px}
  .contact-in{grid-template-columns:1fr;gap:26px}
  .goods .soon{grid-template-columns:1fr;gap:16px;text-align:center}
  .goods .soon img{max-width:180px;margin:0 auto}
}
@media (max-width:560px){
  .tile b{font-size:11px;letter-spacing:.08em}
  .tile img{width:48px;height:48px}
  .tile span{font-size:11px}
  :root{--gut:16px;--hd:56px}
  body{font-size:14px}
  .brand img{width:80px}
  .brand .mark{width:30px}
  .hero-t{border-left-width:4px;padding-left:14px}
  .hero-art img{box-shadow:8px 8px 0 var(--red)}
  .hero-art{padding-right:8px;padding-bottom:8px}
  .hero{padding:24px 0 28px}
  .hero-title{font-size:clamp(40px,12vw,56px)}
  .hero-btns .btn{width:100%;justify-content:space-between}
  .sec{padding:44px 0}
  .h2{font-size:34px;margin-bottom:22px}
  .h2 small{display:none}
  .news a,.news .row{grid-template-columns:1fr;gap:4px;padding:12px 2px}
  .news .cat{justify-self:start}
  .news time{font-size:12px}
  .tracks{columns:1}
  .disco{grid-template-columns:repeat(2,1fr);gap:10px}
  .card{padding:8px}
  .card .tt{font-size:13px}
  .card .links{display:none}
  .vid-grid{grid-template-columns:1fr 1fr;gap:10px}
  .vth .cap{padding:8px;font-size:12px}
  .live-past li{grid-template-columns:1fr;gap:2px}
  .player{grid-template-columns:auto 1fr auto auto;gap:10px;padding:8px 12px}
  .pl-bar{grid-column:1/-1;margin-top:2px}
  .pl-time{display:none}
  .pl-t span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ft{padding:40px 0 30px}
}

/* ===== v0.5 動き ===== */
.ch,.w{font-style:normal}
.w{display:inline-block;white-space:nowrap}
.hero-title .w,.h2>span .w{overflow:hidden;vertical-align:top;padding-bottom:.06em}
/* スクロール進捗（赤い線） */
.sprog{position:fixed;left:0;top:0;height:3px;width:0;background:var(--red);z-index:60;pointer-events:none}

/* 見出し: 赤帯ワイプ → 文字せり上がり → 番号ラベル → 罫線 */
.h2>span{position:relative;display:inline-block;overflow:hidden;padding:.05em .06em 0 0;line-height:1.02}
.h2>span .ch{display:inline-block;transform:translateY(112%);opacity:0}
.h2>span .ch.sp{width:.28em}
.h2>span .wipe{position:absolute;inset:0;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:2;pointer-events:none}
.h2.in>span .ch{animation:chUp .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.22s + var(--i)*.045s)}
.h2.in>span .wipe{animation:wipe .9s cubic-bezier(.7,0,.2,1) both}
.h2::before{transform:rotateX(90deg);transform-origin:top;opacity:0}
.h2.in::before{animation:flipIn .5s cubic-bezier(.2,.8,.2,1) .55s both}
.h2::after{transform:translateY(-.35em) scaleX(0);transform-origin:left}
.h2.in::after{animation:lineGrow .8s cubic-bezier(.2,.8,.2,1) .5s both}
.h2 small{opacity:0;transform:translateX(-8px)}
.h2.in small{animation:smallIn .5s ease .8s both}
@keyframes chUp{to{transform:none;opacity:1}}
@keyframes wipe{0%{transform:scaleX(0);transform-origin:left}45%{transform:scaleX(1);transform-origin:left}55%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
@keyframes flipIn{to{transform:none;opacity:1}}
@keyframes lineGrow{to{transform:translateY(-.35em) scaleX(1)}}
@keyframes smallIn{to{opacity:1;transform:none}}

/* ヒーロー読込 */
.hero-title{overflow:hidden;padding-bottom:.06em}
.hero-title .ch{display:inline-block;transform:translateY(110%);opacity:0}
.hero-title .ch.sp{width:.25em}
body.loaded .hero-title .ch{animation:chUp .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.25s + var(--i)*.04s)}
.hero-t{--bl:0}
.hero-t::before{content:"";position:absolute;left:-6px;top:0;width:6px;height:100%;background:var(--bg);transform:scaleY(1);transform-origin:bottom}
.hero-t{position:relative}
body.loaded .hero-t::before{animation:barUncover .9s cubic-bezier(.7,0,.2,1) .1s both}
@keyframes barUncover{to{transform:scaleY(0)}}
.kicker,.hero-note,.hero-sub,.hero-btns{opacity:0;transform:translateY(12px)}
body.loaded .kicker{animation:fadeUp .6s ease .35s both}
body.loaded .hero-note{animation:fadeUp .6s ease .75s both}
body.loaded .hero-sub{animation:fadeUp .6s ease .9s both}
body.loaded .hero-btns{animation:fadeUp .6s ease 1.05s both}
.hero-art img{clip-path:inset(0 100% 0 0);box-shadow:0 0 0 var(--red)}
body.loaded .hero-art img{animation:artWipe 1s cubic-bezier(.7,0,.2,1) .2s both,artShadow .5s ease 1.1s both}
@keyframes artWipe{to{clip-path:inset(0 0 0 0)}}
@keyframes artShadow{to{box-shadow:12px 12px 0 var(--red)}}
@media (max-width:560px){@keyframes artShadow{to{box-shadow:8px 8px 0 var(--red)}}}
@keyframes fadeUp{to{opacity:1;transform:none}}
.hero-wm{will-change:transform}

/* 段違い出現（グリッドの子） */
.stag>*{opacity:0;transform:translateY(16px)}
.stag.in>*{animation:fadeUp .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*70ms)}
.news.stag>*{transform:translateX(-14px)}

/* ホバーの傾き・拡大 */
.card:hover{transform:translateY(-4px) rotate(-.6deg)}
.vth:hover{transform:translateY(-4px) rotate(.6deg)}
.tile img{transition:transform .3s}
.tile:hover img{transform:scale(1.08) rotate(-2deg)}
.live-card img{transition:transform .4s}
.live-card a:hover img{transform:scale(1.02)}
.news a:hover time{color:var(--red)}
.news .tx{position:relative;transition:padding-left .25s}
.news a:hover .tx{padding-left:14px}
.news .tx::before{content:"→";position:absolute;left:0;top:0;color:var(--red);opacity:0;transform:translateX(-6px);transition:.25s}
.news a:hover .tx::before{opacity:1;transform:none}
.nav a{transition:transform .2s}
.nav a:hover{transform:translateY(-2px)}
.pagetop{transition:.2s}
.pagetop:hover{transform:translateY(-3px)}

/* 再生ボタン: ホバーで回る点線リング */
.play{position:relative}
.play::after{content:"";position:absolute;inset:-6px;border:1.5px dashed var(--red);border-radius:50%;opacity:0;transition:opacity .3s}
.play:hover::after,.play.on::after{opacity:1;animation:spin 7s linear infinite}
@keyframes spin{to{transform:rotate(1turn)}}

/* フッターの狼: ゆっくり浮く */
.ft-wm{animation:float 9s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(-1.5deg)}}

/* BIO ロゴ: 小さく右寄せ */
.bio-logo{width:64px;margin:22px 0 0 auto;display:block;opacity:.9}

/* 動きを止める */
.nomotion .h2>span .ch,.nomotion .hero-title .ch,.nomotion .kicker,.nomotion .hero-note,.nomotion .hero-sub,.nomotion .hero-btns,.nomotion .stag>*,.nomotion .h2::before,.nomotion .h2 small{opacity:1!important;transform:none!important;animation:none!important}
.nomotion .h2::after{transform:translateY(-.35em) scaleX(1)!important;animation:none!important}
.nomotion .hero-art img{clip-path:none!important;box-shadow:12px 12px 0 var(--red)!important;animation:none!important}
.nomotion .hero-t::before{display:none}
.nomotion .h2>span .wipe{display:none}
@media (prefers-reduced-motion:reduce){
  .h2>span .ch,.hero-title .ch,.kicker,.hero-note,.hero-sub,.hero-btns,.stag>*,.h2::before,.h2 small{opacity:1!important;transform:none!important;animation:none!important}
  .h2::after{transform:translateY(-.35em) scaleX(1)!important;animation:none!important}
  .hero-art img{clip-path:none!important;box-shadow:12px 12px 0 var(--red)!important;animation:none!important}
  .hero-t::before,.h2>span .wipe{display:none}
  .ft-wm,.play::after{animation:none!important}
}

/* ===== v0.5b 再生ゲージ・黒いプレイヤー ===== */
.play,.tp{--p:0}
.play::before,.tp::before{content:"";position:absolute;inset:-5px;border-radius:50%;background:conic-gradient(var(--red) calc(var(--p)*1%),rgba(0,0,0,.12) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));opacity:0;transition:opacity .3s}
.play.on::before,.tp.on::before{opacity:1}
.play.on{animation:none;box-shadow:none}
.play.on::after{opacity:0}
.tp{position:relative}
.tp::before{inset:-4px;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px))}
.sec.dark .play::before{background:conic-gradient(var(--red) calc(var(--p)*1%),rgba(255,255,255,.2) 0)}

/* 下部プレイヤー: 黒ベース */
.player{background:#111;color:#fff;border-top:1.5px solid #111;box-shadow:0 -10px 30px rgba(0,0,0,.25);grid-template-columns:auto auto 1fr auto minmax(120px,320px) auto auto}
.player::before{content:"";position:absolute;left:0;top:-1.5px;height:3px;width:var(--pw,0%);background:var(--red);transition:width .25s linear}
.player img{border:1.5px solid #fff;width:46px;height:46px}
.pl-t b{color:#fff}
.pl-t span{color:var(--red)}
.pl-btn{background:#fff;color:#111;transition:.2s}
.pl-btn:hover{background:var(--red);color:#fff}
.pl-bar{background:#333;height:3px}
.pl-bar i{background:var(--red)}
.pl-time{color:#aaa}
.pl-close{color:#888}
.pl-close:hover{color:#fff}
.eq{display:flex;align-items:flex-end;gap:2px;height:18px;width:18px}
.eq i{flex:1;background:var(--red);height:30%;transform-origin:bottom;animation:eq 1s ease-in-out infinite;animation-play-state:paused}
.eq i:nth-child(2){animation-delay:.2s}.eq i:nth-child(3){animation-delay:.4s}.eq i:nth-child(4){animation-delay:.1s}
body.is-playing .eq i{animation-play-state:running}
@keyframes eq{0%,100%{height:30%}50%{height:100%}}
@media (max-width:560px){
  .player{grid-template-columns:auto auto 1fr auto auto;gap:10px}
  .pl-bar{grid-column:1/-1}
}

/* ===== v0.6 ===== */
/* ヒーロー: 赤影が見えるように clip-path の最終形を影ぶん外へ広げる（14px） */
.hero-art img{box-shadow:0 0 0 var(--red)}
body.loaded .hero-art img{animation:artWipe 1s cubic-bezier(.7,0,.2,1) .2s both,artShadow .5s ease 1.1s both}
@keyframes artWipe{to{clip-path:inset(0 -20px -20px 0)}}
@keyframes artShadow{to{box-shadow:14px 14px 0 var(--red)}}
.hero-art{padding-right:14px;padding-bottom:14px}
.nomotion .hero-art img{clip-path:none!important;box-shadow:14px 14px 0 var(--red)!important}
@media (max-width:560px){@keyframes artShadow{to{box-shadow:10px 10px 0 var(--red)}}.hero-art{padding-right:10px;padding-bottom:10px}.nomotion .hero-art img{box-shadow:10px 10px 0 var(--red)!important}}

/* 黒地セクション（NEWS / BIOGRAPHY）の中身 */
.sec.dark .news{border-top-color:#fff}
.sec.dark .news li{border-bottom-color:#333}
.sec.dark .news a:hover{background:#1c1c1c;color:#fff}
.sec.dark .news .tx{color:#fff}
.sec.dark .news time{color:#fff}
.sec.dark .news a:hover time{color:var(--red)}
.sec.dark .more{border-color:#fff;color:#fff}
.sec.dark .more:hover{background:#fff;color:#111}
.sec.dark .bio-ph img{border-color:#fff}
.sec.dark .bio-ph figcaption,.sec.dark .bio-name span{color:#aaa}
.sec.dark .bio-t p{color:#eee}
.sec.dark .bio-lead{color:#fff}
.sec.dark .h2 small{color:#aaa}
.sec.dark .tile{color:#fff}

/* RELEASE: ジャケが浮かび上がる（ホバー傾きは廃止） */
.card:hover{transform:none;box-shadow:0 10px 24px rgba(0,0,0,.08)}
.card .cov,.rel-feat .cov{opacity:0;transform:translateY(46px) rotate(-4deg) scale(.9)}
.stag.in .card .cov,.rel-feat.in .cov,.stag.in .rel-feat .cov{animation:covUp .9s cubic-bezier(.2,.8,.2,1) both,bob 6s ease-in-out infinite;animation-delay:calc(var(--i,0)*90ms),calc(.9s + var(--i,0)*90ms)}
@keyframes covUp{to{opacity:1;transform:none}}
@keyframes bob{0%,100%{opacity:1;transform:translateY(0)}50%{opacity:1;transform:translateY(-7px)}}
.card .cov img,.rel-feat .cov img{box-shadow:0 14px 28px -12px rgba(0,0,0,.35)}
.nomotion .card .cov,.nomotion .rel-feat .cov{opacity:1!important;transform:none!important;animation:none!important}
@media (prefers-reduced-motion:reduce){.card .cov,.rel-feat .cov{opacity:1!important;transform:none!important;animation:none!important}}

/* 再生ボタンの装飾: 白の隙間＋黒のフチ、外側にゲージ／点線リング */
.play{box-shadow:0 0 0 2.5px #fff,0 0 0 4px #111}
.play:hover{background:var(--red2);transform:scale(1.04)}
.play::before{inset:-10px;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px))}
.play::after{inset:-10px;border:1.5px dashed #111}
.play.sm::before,.play.sm::after{inset:-8px}
.sec.dark .play{box-shadow:0 0 0 2.5px #111,0 0 0 4px #fff}
.sec.dark .play::after{border-color:#fff}
.player .pl-btn{box-shadow:0 0 0 2px #111,0 0 0 3.5px #fff}
.tp{border:1.5px solid #111;box-shadow:0 0 0 1.5px #fff,0 0 0 2.5px #111;background:#fff}
.tp:hover,.tp.on{background:var(--red);border-color:var(--red);color:#fff}
.tp::before{inset:-7px}

/* ===== v0.6b YouTube ホバー無音プレビュー ===== */
.yt iframe.pv{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none;opacity:0;transform:scale(1.32);transition:opacity .5s}
.yt.pv-ready iframe.pv{opacity:1}
.yt img{transition:opacity .5s,transform .3s}
.yt.pv-ready img{opacity:0}
.yt .pb{z-index:2}
.yt.pv-ready .pb i{transform:scale(.72);opacity:.9}
.yt.pv-ready::after{content:"MUTED PREVIEW · CLICK TO PLAY";position:absolute;left:12px;bottom:12px;z-index:2;background:#111;color:#fff;font-family:var(--fd);font-weight:700;font-size:10px;letter-spacing:.16em;padding:4px 8px;border-left:3px solid var(--red)}
.yt.pv-on::before{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--red);z-index:2;animation:pvLoad 1.4s ease-out forwards}
.yt.pv-ready::before{display:none}
@keyframes pvLoad{to{width:100%}}

/* ===== v0.7 予約モーダル ===== */
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px}
.modal[hidden]{display:none}
.modal-bg{position:absolute;inset:0;background:rgba(0,0,0,.72);animation:fadeIn .25s}
.modal-box{position:relative;width:min(760px,100%);height:min(86vh,900px);background:#fff;border:1.5px solid #111;box-shadow:14px 14px 0 var(--red);display:flex;flex-direction:column;animation:popIn .35s cubic-bezier(.2,.8,.2,1)}
.modal-hd{display:flex;align-items:center;gap:14px;padding:12px 14px 12px 18px;border-bottom:1.5px solid #111;background:#111;color:#fff}
.modal-hd b{font-family:var(--fd);font-weight:800;letter-spacing:.14em;font-size:13px;border-left:4px solid var(--red);padding-left:10px}
.modal-hd a{margin-left:auto;font-family:var(--fd);font-weight:700;font-size:11px;letter-spacing:.1em;color:#fff;text-decoration:underline;text-underline-offset:3px}
.modal-hd button{font-size:24px;line-height:1;color:#fff;width:32px}
.modal-body{flex:1;min-height:0}
.modal-body iframe{width:100%;height:100%;border:0;background:#fff}
@keyframes fadeIn{from{opacity:0}}
@keyframes popIn{from{opacity:0;transform:translateY(18px) scale(.98)}}
body.modal-open{overflow:hidden}
.btn.res,.lk.res{background:var(--red);border-color:var(--red);color:#fff}
.lk.res:hover{background:#111;border-color:#111}
@media (max-width:560px){.modal{padding:0}.modal-box{width:100%;height:100%;box-shadow:none;border:0}}

/* ===== v0.8 本人資料の反映 ===== */
.soonTag{font-style:normal;background:var(--red);color:#fff;font-size:10px;letter-spacing:.16em;padding:2px 7px;margin-left:8px;vertical-align:middle}
.leadbox{margin:16px 0 0;border:1.5px solid #111;border-left:6px solid var(--red);padding:12px 16px;background:#fff}
.leadbox b{display:block;font-family:var(--fd);font-size:12px;letter-spacing:.14em;margin-bottom:6px}
.leadbox p{margin:0;font-size:13px;color:#333}
.rel-feat .tracks{columns:2}
.rel-feat .tracks li{align-items:flex-start}
.rel-feat .tracks .tp{margin-top:2px}
.tracks .pr{display:block;font-size:10.5px;color:var(--mute);letter-spacing:.04em;line-height:1.3}
.lk.soon{border-style:dashed;color:var(--mute);cursor:default}
.lk.soon:hover{background:none;color:var(--mute)}
.live-card .mute{color:var(--mute);font-size:12px}
.lineup{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 20px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line2)}
.lineup .lg b{display:block;font-family:var(--fd);font-size:11px;letter-spacing:.16em;color:var(--red)}
.lineup .lg span{font-size:13px;line-height:1.6}
.live-card{grid-template-columns:320px 1fr}
.bio-ph img{aspect-ratio:2/3}
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:34px}
.gallery a{display:block;overflow:hidden;border:1.5px solid #fff}
.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;transition:transform .5s}
.gallery a:hover img{transform:scale(1.06)}
@media (max-width:1000px){.gallery{grid-template-columns:repeat(3,1fr)}.rel-feat .tracks{columns:1}.live-card{grid-template-columns:1fr}.lineup{grid-template-columns:1fr}}
@media (max-width:560px){.gallery{grid-template-columns:repeat(3,1fr);gap:6px}}

/* ===== 曲リスト開閉（スマホのみ） ===== */
.trk-btn{display:none}
@media (max-width:700px){
  .trk{border:1.5px solid #111;margin-top:14px}
  .trk-btn{display:flex;width:100%;align-items:center;justify-content:space-between;padding:11px 14px;font-family:var(--fd);font-weight:800;font-size:12px;letter-spacing:.14em;background:#111;color:#fff}
  .trk-btn i{font-style:normal;color:var(--red);transition:transform .25s}
  .trk.open .trk-btn i{transform:rotate(180deg)}
  .trk .tracks{display:none;margin:0;padding:6px 12px 10px}
  .trk.open .tracks{display:block;animation:fadeUp .3s ease both}
}

/* ===== v0.9 歌詞・フライヤー動画 ===== */
.lyb{margin-left:auto;flex:none;font-family:var(--fd);font-weight:800;font-size:9px;letter-spacing:.14em;border:1.5px solid #111;padding:2px 6px;transition:.2s;align-self:center}
.lyb:hover{background:#111;color:#fff}
.tracks li{align-items:center}
.lyrics{padding:26px 28px 34px;overflow:auto;height:100%}
.lyrics h4{margin:0 0 16px;font-family:var(--fd);font-size:22px;letter-spacing:-.01em;border-left:6px solid var(--red);padding-left:12px}
.lyrics pre{margin:0;white-space:pre-wrap;font-family:var(--fb);font-size:14.5px;line-height:2;letter-spacing:.02em}
.lyrics .lyc{margin:26px 0 0;font-family:var(--fd);font-size:11px;letter-spacing:.12em;color:var(--mute)}
.lvid{position:relative}
.lvid video{width:100%;aspect-ratio:9/16;object-fit:cover;border:1px solid var(--line2);background:#eee;display:block}
.lvid-img{position:absolute;left:10px;bottom:10px;background:#111;color:#fff;font-family:var(--fd);font-weight:700;font-size:10px;letter-spacing:.12em;padding:4px 8px;border-left:3px solid var(--red)}
.lvid-img:hover{background:var(--red);color:#fff}
@media (max-width:1000px){.live-card .lvid{max-width:320px}}
@media (max-width:560px){.lyrics{padding:18px 16px 30px}.lyrics pre{font-size:14px}}
