
:root{--bg:#f7f3ec;--bg2:#efe9df;--card:#fffdf9;--ink:#2c2926;--ink2:#6a6053;--line:#e4dccf;--accent:#9c8f79;--accent-d:#6f6353;--gold:#80652f}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;line-height:1.85;font-size:15px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.serif{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"MS PMincho",serif;font-weight:400}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--accent-d);outline-offset:2px;border-radius:3px}
.btn:focus-visible,.chip:focus-visible,.svc a:focus-visible,.linklist a:focus-visible,.nav a:focus-visible,.lang a:focus-visible,.hamb:focus-visible{outline-offset:3px}
/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(247,243,236,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:62px;position:relative}
.brand{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:19px;letter-spacing:.18em;white-space:nowrap}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;align-items:center}
.nav ul a{font-size:12.5px;letter-spacing:.14em;color:var(--ink2)}
.nav ul a:hover,.nav ul a.on{color:var(--ink)}
.hamb{display:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;width:42px;height:38px;font-size:18px;line-height:1;cursor:pointer;align-items:center;justify-content:center}
/* language switcher (globe dropdown) */
.langsel{position:relative;display:inline-block}
.langsel-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 13px;font-size:12px;letter-spacing:.06em;color:var(--ink2);cursor:pointer;font-family:inherit;line-height:1;transition:.2s}
.langsel-btn:hover{border-color:var(--accent-d);color:var(--ink)}
.langsel.open .langsel-btn{border-color:var(--ink);color:var(--ink)}
.langsel-btn .glb{width:14px;height:14px;flex:none}
.langsel-btn .caret{font-size:9px;opacity:.7}
.langsel-menu{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:60;display:none;grid-template-columns:1fr 1fr;gap:2px;min-width:312px;max-height:64vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 16px 38px rgba(80,70,55,.18)}
.langsel.open .langsel-menu{display:grid}
.langsel-opt{display:block;padding:9px 13px;border-radius:8px;font-size:12.5px;letter-spacing:.02em;color:var(--ink2);white-space:nowrap}
.langsel-opt:hover{background:var(--bg2);color:var(--ink)}
.langsel-opt.on{color:var(--ink);font-weight:600;background:var(--bg2)}
.btn{display:inline-block;border:1px solid var(--ink);border-radius:999px;padding:8px 18px;font-size:12px;letter-spacing:.14em;color:var(--ink);background:transparent;transition:.2s;cursor:pointer}
.btn:hover{background:var(--ink);color:var(--bg)}
.btn-sm{padding:6px 14px;font-size:11px}
.btn.on{background:var(--ink);color:var(--bg)}
/* hero */
.hero{padding:54px 0 30px}
.hero .banner{height:300px;border-radius:8px;background:#23201d url(hero-kv.jpg) center/cover;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.hero .banner::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 62% 72% at 50% 52%,rgba(18,16,14,.55),rgba(18,16,14,0) 72%)}
.hero .banner .t{position:relative;z-index:1;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:40px;letter-spacing:.3em;color:#f4efe6;text-shadow:0 2px 20px rgba(0,0,0,.55)}
.hero .sub{color:var(--ink2);margin:18px 2px 0;font-size:14px;max-width:680px}
/* section head */
.sh{display:flex;align-items:baseline;gap:14px;margin:46px 0 18px;border-bottom:1px solid var(--line);padding-bottom:10px}
.sh h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:400;font-size:22px;letter-spacing:.16em;margin:0}
.sh .more{margin-left:auto;font-size:12px;letter-spacing:.12em;color:var(--ink2)}
.sh .more:hover{color:var(--ink)}
/* songs list (2 col) */
.tools{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 20px}
.chip{border:1px solid var(--line);border-radius:999px;padding:7px 15px;font-size:11.5px;letter-spacing:.1em;color:var(--ink2);background:var(--card);cursor:pointer;font-family:inherit}
.chip.on{border-color:var(--ink);color:var(--ink)}
.chip:hover{border-color:var(--accent-d)}
.list{display:grid;grid-template-columns:1fr 1fr;gap:2px 40px}
.row{display:flex;align-items:center;gap:16px;padding:13px 4px;border-bottom:1px solid var(--line)}
.row img{width:60px;height:60px;border-radius:4px;object-fit:cover;background:#e8e0d4;flex:none}
.row .ti{flex:1;min-width:0}
.row .ti .ja{font-size:14.5px;letter-spacing:.02em}
.row .ti .en{font-size:11px;color:var(--ink2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .meta{font-size:11px;color:var(--ink2);text-align:right;flex:none}
.row:hover .ja{color:var(--accent-d)}
/* song detail */
.song{display:grid;grid-template-columns:340px 1fr;gap:40px;margin:40px 0 10px;align-items:start}
.song .cover{width:100%;border-radius:8px;box-shadow:0 8px 40px rgba(90,78,60,.16)}
.song h1{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:400;font-size:30px;letter-spacing:.08em;margin:2px 0 6px}
.song .en{color:var(--ink2);font-size:13px;letter-spacing:.04em}
.song .badges{margin:14px 0 18px;font-size:12px;color:var(--ink2);letter-spacing:.06em}
.song .badges span{border:1px solid var(--line);border-radius:999px;padding:3px 11px;margin-right:8px}
.desc{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px 22px;margin:8px 0 4px;white-space:pre-line;font-size:14px}
.embed{margin:22px 0;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.embed iframe{border:0;border-radius:8px;width:300px;max-width:100%;background:var(--card)}
.embed .open{align-self:flex-start}
.svc{display:flex;flex-wrap:wrap;gap:9px;margin:6px 0 8px}
.svc a{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:9px 16px;font-size:12px;letter-spacing:.04em;color:var(--ink);transition:.2s}
.svc a:hover{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.lyrics{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:24px 0}
.lyrics .col h3{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:400;font-size:15px;letter-spacing:.14em;color:var(--ink2);border-bottom:1px solid var(--line);padding-bottom:8px;margin:0 0 14px}
.lyrics .body{white-space:pre-line;font-size:14px;line-height:2.05}
.lyrics .pending{color:var(--ink2);font-size:12.5px;font-style:normal;opacity:.8}
.backlink{font-size:12px;color:var(--ink2);letter-spacing:.1em;margin:30px 0 6px;display:inline-block}
.backlink:hover{color:var(--ink)}
.crumbs{font-size:11.5px;color:var(--ink2);letter-spacing:.06em;margin:26px 0 0}
.crumbs a:hover{color:var(--ink)}
.crumbs span{color:var(--ink)}
/* about / listen */
.prose{max-width:720px;font-size:15px}
.prose p{margin:0 0 18px}
.profile{display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:start;margin:30px 0}
.profile .ph{height:240px;border-radius:8px;background:#ece4d6 url(about-kv.jpg) center/cover;box-shadow:0 6px 26px rgba(90,78,60,.12)}
.linklist{list-style:none;padding:0;margin:18px 0;display:grid;gap:10px;max-width:520px}
.linklist li{display:block}
.linklist a{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:15px 18px;font-size:14px;transition:.2s}
.linklist a:hover{border-color:var(--ink)}
.linklist a .ar{color:var(--ink2)}
/* footer */
.foot{border-top:1px solid var(--line);margin-top:70px;padding:30px 0 50px;color:var(--ink2);font-size:12px;letter-spacing:.06em}
.foot .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px}
.foot a{color:var(--ink2)}.foot a:hover{color:var(--ink)}
@media(max-width:820px){
 .list{grid-template-columns:1fr}
 .song{grid-template-columns:1fr;gap:22px}.song .cover{max-width:320px}
 .lyrics{grid-template-columns:1fr}
 .profile{grid-template-columns:1fr}.profile .ph{height:200px;max-width:340px}
 .hero{padding:30px 0 22px}.hero .banner{height:210px}.hero .banner .t{font-size:30px}
 .hamb{display:inline-flex}
 .nav ul{display:none;position:absolute;top:62px;right:0;left:0;flex-direction:column;align-items:stretch;gap:0;background:var(--card);border:1px solid var(--line);border-radius:0 0 10px 10px;padding:8px 0;box-shadow:0 14px 30px rgba(80,70,55,.12)}
 .nav ul.open{display:flex}
 .nav ul li{padding:0 20px}
 .nav ul li a{display:block;padding:13px 0;font-size:14px}
 .nav ul li .btn{display:inline-block;margin:8px 0}
 .langsel{display:block}
 .langsel-btn{width:100%;justify-content:flex-start}
 .langsel-menu{position:static;inset-inline-end:auto;min-width:0;width:100%;margin-top:8px;max-height:none;box-shadow:none}
}
@media(max-width:480px){
 .wrap{padding:0 18px}
 .langsel-menu{grid-template-columns:1fr}
 .brand{font-size:17px;letter-spacing:.12em}
 .hero .banner .t{font-size:25px;letter-spacing:.22em}
 .sh h2{font-size:19px}
}

/* Multilingual layout quality improvements */
[lang="vi"] {
  line-height: 1.7; /* Vietnamese diacritic line-height safety */
}
[lang="ko"] {
  word-break: keep-all; /* Korean word-break optimization */
  overflow-wrap: anywhere;
}
html:lang(ru) body,
html:lang(uk) body {
  font-family:"Segoe UI",Arial,system-ui,sans-serif;
}
:lang(ru) .hero .sub.serif,
:lang(uk) .hero .sub.serif,
:lang(ru) .profile .serif,
:lang(uk) .profile .serif {
  font-family:"Segoe UI",Arial,system-ui,sans-serif;
  letter-spacing:normal;
}
:lang(ru) .song h1,
:lang(uk) .song h1,
:lang(ru) .car-title,
:lang(uk) .car-title,
:lang(ru) .card .cja,
:lang(uk) .card .cja,
:lang(ru) .lf-title,
:lang(uk) .lf-title,
:lang(ru) .ld-title,
:lang(uk) .ld-title,
:lang(ru) .row .ti .ja,
:lang(uk) .row .ti .ja {
  font-family:Georgia,"Times New Roman",serif;
  letter-spacing:normal;
}
:lang(ru) .crumbs,
:lang(uk) .crumbs,
:lang(ru) .song .badges,
:lang(uk) .song .badges {
  letter-spacing:normal;
}
:lang(zh-Hans), :lang(zh-Hant), :lang(ko) {
  line-break: strict; /* CJK Line-break safety */
}
.desc, .lyrics .body, .row .ti, .crumbs, .profile, .prose {
  overflow-wrap: anywhere; /* Latin long-word overflow protection without word-break: break-all */
}

/* RTL & Hindi (Complex scripts) Styles */
[dir="rtl"] {
  text-align: right;
}
:lang(hi) {
  line-height: 1.9;
}
:lang(ar), :lang(he) {
  line-height: 1.9;
}
:lang(ar) {
  font-family: Tahoma, Geneva, "Segoe UI", system-ui, sans-serif;
}
:lang(he) {
  font-family: Arial, "Helvetica Neue", system-ui, sans-serif;
}
:lang(ar) * {
  letter-spacing: normal !important;
}
[dir="rtl"] .serif,
[dir="rtl"] .en,
[dir="rtl"] .brand,
[dir="rtl"] .row .ti,
[dir="rtl"] .song h1,
[dir="rtl"] .svc a,
[dir="rtl"] .linklist a,
[dir="rtl"] .crumbs a,
[dir="rtl"] .crumbs span,
[dir="rtl"] .backlink {
  unicode-bidi: isolate;
}
[dir="rtl"] .row .meta {
  text-align: left;
}
[dir="rtl"] .song .badges span {
  margin-right: 0;
  margin-left: 8px;
}
.linklist a, .svc a {
  overflow-wrap: anywhere;
}

/* =========================================================================
   日本語改行レイアウト最適化 (LQA) & ジャケットアスペクト比保護
   ========================================================================= */
body {
  line-break: strict;
}
.desc, .lyrics .body, .prose p, .hero .sub {
  text-wrap: pretty;
  word-break: auto-phrase;
}
h1, h2, h3, h4, .serif {
  text-wrap: balance;
  word-break: auto-phrase;
}
.song .cover {
  aspect-ratio: 1/1;
  height: auto; /* HTMLのheight=600属性を無効化し1:1を確実に適用(縦長化防止) */
  object-fit: cover;
}

/* 曲ページ: 各配信サービスの実埋め込みプレイヤー(タブ切り替え式) */
.ply{max-width:660px;margin:26px 0 6px}
.ply-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.ply-tab{border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:12px;letter-spacing:.06em;color:var(--ink2);background:var(--card);cursor:pointer;font-family:inherit;transition:.2s}
.ply-tab:hover{border-color:var(--accent-d)}
.ply-tab.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.ply-panel{display:none}
.ply-panel.on{display:block}
.ply-panel iframe{border:0;width:100%;background:var(--card)}
.pl-spotify{border-radius:12px}
.pl-apple{border-radius:10px;max-width:660px;overflow:hidden}
.pl-amazon{border-radius:12px;max-width:660px;overflow:hidden}
.pl-yt{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000}
.pl-yt iframe{position:absolute;inset:0;width:100%;height:100%}
.player-more{margin:14px 0 4px}

/* =========================================================================
   Hero carousel（ヘッダー直下・最新5曲）＋ ジャケットカード一覧
   ========================================================================= */
.hero-carousel{position:relative;margin:22px 0 8px;border-radius:12px;overflow:hidden;background:#23201d;box-shadow:0 10px 38px rgba(60,50,38,.16)}
.car-track{display:flex;transition:transform .55s cubic-bezier(.4,0,.2,1);will-change:transform}
.car-slide{position:relative;flex:0 0 100%;min-height:380px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-decoration:none}
.car-bgblur{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(30px) brightness(.5);transform:scale(1.2)}
.car-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,16,14,.74),rgba(18,16,14,.30))}
[dir="rtl"] .car-slide::after{background:linear-gradient(270deg,rgba(18,16,14,.74),rgba(18,16,14,.30))}
.car-inner{position:relative;z-index:2;display:flex;align-items:center;gap:34px;width:100%;max-width:780px;padding:34px 40px}
.car-cover{width:240px;height:240px;flex:none;border-radius:10px;object-fit:cover;box-shadow:0 14px 46px rgba(0,0,0,.5)}
.car-text{color:#f4efe6;min-width:0}
.car-kicker{font-size:11.5px;letter-spacing:.18em;color:#c7bda9;text-transform:uppercase}
.car-title{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:400;font-size:32px;line-height:1.32;letter-spacing:.06em;margin:8px 0 4px;color:#f7f2e8;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.car-sub{font-size:13px;color:#d9cfbd;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.car-cta{display:inline-block;margin-top:18px;border:1px solid rgba(244,239,230,.85);border-radius:999px;padding:9px 22px;font-size:12px;letter-spacing:.14em;color:#f4efe6;transition:.2s}
.car-slide:hover .car-cta{background:#f4efe6;color:#23201d}
.car-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;border:0;background:rgba(20,18,16,.45);color:#f4efe6;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
.car-arrow:hover{background:rgba(20,18,16,.78)}
.car-prev{inset-inline-start:14px}
.car-next{inset-inline-end:14px}
.car-dots{position:absolute;z-index:3;inset-inline:0;bottom:14px;display:flex;gap:8px;justify-content:center}
.car-toggle{position:absolute;z-index:4;inset-inline-end:14px;bottom:14px;width:44px;height:44px;border:1px solid rgba(244,239,230,.7);border-radius:50%;background:rgba(20,18,16,.55);color:#f4efe6;font-family:inherit;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
.car-toggle:hover{background:rgba(20,18,16,.82)}
.car-toggle-icon{display:block;line-height:1}
.car-dot{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(244,239,230,.42);cursor:pointer;transition:.2s}
.car-dot.on{background:#f4efe6;width:22px;border-radius:999px}
/* slim brand strip below carousel */
.hero-slim{padding:26px 0 6px}
.hero-slim .banner{height:170px}
.hero-slim .banner .t{font-size:32px}
/* jacket card grid */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(154px,1fr));gap:18px 16px;margin:4px 0}
.card{display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card);transition:transform .2s,box-shadow .2s,border-color .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(90,78,60,.18);border-color:var(--accent)}
.card .ar{aspect-ratio:1/1;overflow:hidden;background:#e8e0d4}
.card .ar img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.card:hover .ar img{transform:scale(1.05)}
.card .cb{padding:11px 12px 13px}
.card .cja{font-size:13.5px;letter-spacing:.02em;line-height:1.5}
.card .cen{font-size:10.5px;color:var(--ink2);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .cmeta{font-size:10.5px;color:var(--ink2);margin-top:5px;letter-spacing:.04em}
.card:hover .cja{color:var(--accent-d)}
/* DISCOGRAPHY 末尾の「すべて見る」CTAタイル(分かりやすく少し大きめ) */
.card-all{display:flex;align-items:center;justify-content:center;text-align:center;border:1.5px dashed var(--accent);background:var(--bg2);box-shadow:none}
.card-all .ca-inner{display:flex;flex-direction:column;align-items:center;gap:7px;padding:18px}
.card-all .ca-label{font-size:16px;letter-spacing:.1em;color:var(--ink);line-height:1.5}
.card-all .ca-arrow{font-size:24px;line-height:1;color:var(--accent-d)}
.card-all:hover{background:var(--accent-d);border-color:var(--accent-d);transform:translateY(-2px)}
.card-all:hover .ca-label,.card-all:hover .ca-arrow{color:#fff}
@media(max-width:560px){
 .car-inner{flex-direction:column;gap:18px;text-align:center;padding:26px 22px;max-width:none}
 .car-cover{width:178px;height:178px}
 .car-title{font-size:23px}
 .car-sub{white-space:normal}
 .car-slide{min-height:0}
 .car-arrow{width:38px;height:38px;font-size:20px}
 .cards{grid-template-columns:repeat(2,1fr);gap:14px 12px}
}
@media(prefers-reduced-motion:reduce){
 .car-track{transition:none}
 .card,.card .ar img{transition:none}
}

/* --- 公式MVフル動画(@DJMAMIN): 専用セクション & ギャラリー(クリック再生ファサード) --- */
.mv{max-width:960px;margin:8px 0 6px}
.mv-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000}
.mv-facade{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;cursor:pointer;display:block}
.mv-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s ease,opacity .3s}
.mv-frame:hover .mv-thumb{transform:scale(1.04);opacity:.92}
.mv-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:74px;height:52px;border-radius:14px;background:rgba(15,12,10,.62);display:flex;align-items:center;justify-content:center;transition:background .25s}
.mv-frame:hover .mv-play{background:var(--accent-d)}
.mv-play::before{content:"";width:0;height:0;border-style:solid;border-width:10px 0 10px 17px;border-color:transparent transparent transparent #fff;margin-left:4px}
.mv-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mvgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 28px;margin:18px 0 36px}
.mvg-item{min-width:0}
.mvg-cap{display:block;margin-top:12px;text-decoration:none}
.mvg-cap .cja,.mvg-cap .cen{display:block;unicode-bidi:plaintext}
.mvg-cap .cen{white-space:normal;font-size:14px;color:var(--ink2)}
.mvg-cap .cen:empty{display:none}
.mvg-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.mvg-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid var(--line);border-radius:999px;font-size:12px;letter-spacing:.06em;color:var(--ink);text-decoration:none;background:var(--card);transition:background .2s,border-color .2s}
.mvg-btn:hover{background:var(--bg2);border-color:var(--accent)}
.mvg-btn.yt{background:var(--ink);color:#fff;border-color:var(--ink)}
.mvg-btn.yt:hover{background:#000;border-color:#000}
.yt-ic{width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #fff}
.nav-tt{display:inline-flex;align-items:center;color:var(--ink2)}
.nav-tt:hover{color:var(--ink)}
.nav-tt svg{width:18px;height:18px;display:block}
.nav-tt-txt{display:none}
.nav ul li:has(.nav-tt)+li:has(.nav-tt){margin-left:-12px}
/* モバイル(ハンバーガー)では X / YouTube / TikTok をアイコンではなく文字ラベルで表示 */
@media(max-width:820px){
 .nav-tt svg{display:none}
 .nav-tt-txt{display:inline}
 .nav ul li:has(.nav-tt)+li:has(.nav-tt){margin-left:0}
}
@media(max-width:760px){.mvgrid{grid-template-columns:1fr;gap:24px}}


/* ホーム LATEST: 左に大ジャケット / 右にタイトル・情報・MVボタン・埋め込みプレーヤー(最新3曲) */
.latest3{display:flex;flex-direction:column;gap:46px;margin:6px 0 10px}
.lf{display:grid;grid-template-columns:300px minmax(0,1fr);gap:30px;align-items:start}
.lf-cover-link{display:block;line-height:0}
.lf-cover{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:12px;box-shadow:0 6px 22px rgba(44,41,38,.16)}
.lf-body{min-width:0}
.lf-tlink{text-decoration:none;color:inherit}
.lf-title{font-size:25px;letter-spacing:.03em;line-height:1.28}
.lf-tlink:hover .lf-title{color:var(--accent-d)}
.lf-sub{font-size:13px;color:var(--ink2);font-style:italic;margin-top:5px}
.lf-cat{font-size:11px;letter-spacing:.14em;color:var(--ink2);text-transform:uppercase;margin-top:7px}
.lf-mv{display:inline-flex;align-items:center;gap:9px;margin-top:14px;padding:9px 16px;border:1px solid var(--line);border-radius:999px;font-size:12px;letter-spacing:.12em;color:var(--ink);text-decoration:none;background:var(--card);transition:background .2s,border-color .2s}
.lf-mv:hover{background:var(--bg2);border-color:var(--accent)}
.lf-mv-ic{width:0;height:0;border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent var(--accent-d)}
.lf .ply{margin:18px 0 0;max-width:none}
/* ホーム 最新MV: 中央寄せ・バランスの2本 */
.home-mv{display:grid;grid-template-columns:repeat(2,1fr);gap:26px 24px;max-width:900px;margin:18px auto 30px}
.hmv-item{min-width:0}
.hmv-cap{display:block;margin-top:11px;text-decoration:none}
.hmv-cap .cja{display:block}.hmv-cap .cen{display:block;font-size:12px;color:var(--ink2)}
@media(max-width:760px){.lf{grid-template-columns:1fr;gap:16px}.lf-cover{max-width:340px}.lf-title{font-size:21px}.home-mv{grid-template-columns:1fr;max-width:560px}}
/* LISTEN: 曲別配信ディレクトリ(各曲を主要配信先へ直リンク・年でグループ) */
.linklist-inline{display:flex;flex-wrap:wrap;gap:9px;max-width:none}
.linklist-inline a{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 15px;font-size:12px;color:var(--ink);text-decoration:none;transition:.2s}
.linklist-inline a:hover{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.ld-year{margin-top:34px}
.listen-dir{display:flex;flex-direction:column}
.ld-item{display:grid;grid-template-columns:84px minmax(0,1fr);gap:18px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line)}
.ld-item:last-child{border-bottom:none}
.ld-cover-link{line-height:0;display:block}
.ld-cover{width:84px;height:84px;border-radius:9px;object-fit:cover;box-shadow:0 2px 9px rgba(44,41,38,.12)}
.ld-body{min-width:0}
.ld-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ld-tlink{text-decoration:none;color:inherit}
.ld-title{font-size:17px;letter-spacing:.03em}
.ld-tlink:hover .ld-title{color:var(--accent-d)}
.ld-sub{font-size:12px;color:var(--ink2);font-style:italic}
.ld-svc{margin-top:10px}
.ld-detail{display:inline-block;margin-top:11px;font-size:12px;letter-spacing:.08em;color:var(--ink2);text-decoration:none}
.ld-detail:hover{color:var(--ink)}
@media(max-width:560px){.ld-item{grid-template-columns:60px minmax(0,1fr);gap:13px}.ld-cover{width:60px;height:60px}}

/* ==========================================================================
   Readable Japanese typography contract overrides
   Desktop >=1024px | Tablet 600-1023px | Mobile <=599px
   Preserves existing colors, layout, and icon glyphs.
   ========================================================================== */

/* Major body/prose/description/lyrics copy: 18/17/16px */
body,
.prose, .prose p,
.desc,
.lyrics .body,
.hero .sub,
.linklist a {
  font-size: 18px;
}
body { line-height: 1.85; }
.lyrics .body { line-height: 1.8; }

/* Navigation, buttons, form/menu controls: never below 16px */
.nav ul li a,
.langsel-btn,
.langsel-opt,
.btn, .btn-sm,
.chip,
.svc a,
.ply-tab,
.car-cta,
.mvg-btn,
.lf-mv,
.linklist-inline a,
.sh .more,
.backlink,
.crumbs a,
.foot a,
.ld-detail,
.nav-tt-txt,
.car-dot,
.mv-facade {
  font-size: 16px;
}

/* Supporting copy / labels / meta / badges / tags: never below 14px */
.row .ti .en,
.row .meta,
.song .en,
.song .badges,
.lyrics .pending,
.crumbs, .crumbs span,
.foot,
.car-kicker,
.car-sub,
.card .cen,
.card .cmeta,
.lf-sub,
.lf-cat,
.hmv-cap .cen,
.mvg-cap .cen,
.ld-sub {
  font-size: 14px;
}
.lf-new{display:inline-flex;align-items:center;width:max-content;margin-bottom:8px;padding:4px 8px;border:1px solid var(--gold);border-radius:999px;color:var(--gold);font-size:14px;font-weight:700;letter-spacing:.09em;line-height:1.2}

/* Headings */
.song h1,
.hero .banner .t,
.hero-slim .banner .t,
.car-title {
  font-size: 40px;
  line-height: 1.3;
}
.sh h2,
.lf-title {
  font-size: 32px;
  line-height: 1.35;
}
.lyrics .col h3 {
  font-size: 24px;
  line-height: 1.4;
}
.card .cja,
.row .ti .ja,
.ld-title,
.mvg-cap .cja,
.hmv-cap .cja {
  font-size: 20px;
  line-height: 1.5;
}

/* Keep active nav button readable against dark background */
.nav ul a.btn.on,.nav ul a.btn.on:hover{color:var(--bg)}

/* Minimum 44px touch targets for interactive controls (no transform/zoom) */
.brand,
.langsel-btn,
.langsel-opt,
.btn, .btn-sm,
.chip,
.svc a,
.ply-tab,
.car-cta,
.mvg-btn,
.lf-mv,
.linklist-inline a,
.more,
.lf-tlink,
.foot a,
.crumbs a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.nav ul li a { min-height: 44px; }
.linklist a,
.hamb,
.car-arrow,
.car-toggle,
.car-dot, .car-dot.on {
  min-height: 44px;
}
.hamb, .car-arrow { width: 44px; height: 44px; }
.car-dot, .car-dot.on {
  width: 44px;
  height: 44px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
}
.car-dot::before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(244,239,230,.42);
  transition: .2s;
}
.car-dot.on::before {
  width: 22px;
  background: #f4efe6;
  border-radius: 999px;
}
@media (min-width: 821px) {
 .nav ul li a {
  display: inline-flex;
  align-items: center;
 }
}

/* Tablet */
@media (min-width: 600px) and (max-width: 1023px) {
 body,
 .prose, .prose p,
 .desc,
 .lyrics .body,
 .hero .sub,
 .linklist a {
  font-size: 17px;
 }
 .song h1,
 .hero .banner .t,
 .hero-slim .banner .t,
 .car-title {
  font-size: 36px;
 }
 .sh h2,
 .lf-title {
  font-size: 29px;
 }
 .lyrics .col h3 {
  font-size: 23px;
 }
 .card .cja,
 .row .ti .ja,
 .ld-title,
 .mvg-cap .cja,
 .hmv-cap .cja {
  font-size: 19px;
 }
}

/* Mobile */
@media (max-width: 599px) {
 body,
 .prose, .prose p,
 .desc,
 .lyrics .body,
 .hero .sub,
 .linklist a {
  font-size: 16px;
 }
 .song h1,
 .hero .banner .t,
 .hero-slim .banner .t,
 .car-title {
  font-size: 30px;
 }
 .sh h2,
 .lf-title {
  font-size: 26px;
 }
 .lyrics .col h3 {
  font-size: 22px;
 }
 .card .cja,
 .row .ti .ja,
 .ld-title,
 .mvg-cap .cja,
 .hmv-cap .cja {
  font-size: 18px;
 }
}

/* --- DJ MAMIN MV update components --- */
.mv-news{margin:42px 0 10px}
.mv-news .sh{margin-top:0}
.mv-news-list{list-style:none;max-width:760px;padding:0;margin:0;display:grid;gap:10px}
.mv-news-list li{margin:0}
.mv-news-list a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:52px;padding:13px 18px;border:1px solid var(--line);border-radius:8px;background:var(--card);font-size:18px;line-height:1.65}
.mv-news-list a:hover{border-color:var(--accent)}
.mv-news-arrow{color:var(--accent-d);font-size:24px;line-height:1;flex:none}
.mv-collection{max-width:960px;margin:52px auto 18px}
.mv-collection .sh{margin-top:0}
.mv-collection-desc{max-width:760px;margin:0 0 18px;color:var(--ink2);font-size:18px;line-height:1.8}
.mv-collection-frame{width:100%}
.mv-collection .mvg-btns{margin-top:14px}
.work-bgm-list{display:grid;gap:44px}
.work-bgm-item .mvg-btns{margin-top:14px}
.work-bgm-title{margin:0 0 10px;font-size:22px;line-height:1.5;font-weight:600}
.work-bgm-item .mv-collection-desc{margin-bottom:14px}
.about-portrait{display:block;width:240px;max-width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:8px;box-shadow:0 6px 26px rgba(90,78,60,.12)}
.about-bgm{max-width:780px;margin:38px 0}
.about-bgm p{font-size:18px;line-height:1.8;color:var(--ink2)}
.about-bgm .btn{margin-top:12px}
.about-social{margin:38px 0}
@media (min-width:600px) and (max-width:1023px){.about-bgm p{font-size:17px}}
@media (max-width:599px){.about-bgm p{font-size:16px}.about-portrait{margin-inline:auto}}
@media (min-width:821px) and (max-width:1023px){
 .hamb{display:inline-flex}
 .nav ul{display:none;position:absolute;top:62px;inset-inline:0;flex-direction:column;align-items:stretch;gap:0;background:var(--card);border:1px solid var(--line);border-radius:0 0 10px 10px;padding:8px 0;box-shadow:0 14px 30px rgba(80,70,55,.12)}
 .nav ul.open{display:flex}
 .nav ul li{padding:0 20px}
 .nav ul li a{display:block;padding:13px 0;font-size:16px}
 .nav ul li .btn{display:inline-flex;margin:8px 0}
 .langsel{display:block}
 .langsel-btn{width:100%;justify-content:flex-start}
 .langsel-menu{position:static;inset-inline-end:auto;min-width:0;width:100%;margin-top:8px;max-height:64vh;box-shadow:none}
}
@media (min-width:600px) and (max-width:1023px){
 .mv-news-list a,.mv-collection-desc{font-size:17px}
 .work-bgm-title{font-size:20px}
}
@media (max-width:599px){
 .mv-news{margin-top:34px}
 .mv-news-list a,.mv-collection-desc{font-size:16px}
 .mv-news-list a{padding:12px 14px}
 .mv-collection{margin-top:40px}
 .work-bgm-title{font-size:18px}
 .work-bgm-list{gap:36px}
}
