/* ============================================================
   ARAKI — OFFICIAL PORTAL
   modern editorial / monochrome  ▓ King Gnu「TGU」inspired
   漆黒 × ボーンホワイト × 極細ハイライン / 強いタイポグラフィ
   （クラス名は従来のまま・3カラム維持）
   ============================================================ */
:root{
  --ink:#0a0a0c; --ink2:#0f0f12;
  --panel:#121216; --panel-2:#17171c;
  --cream:#f4f1ea; --cream-dim:rgba(244,241,234,.60); --cream-faint:rgba(244,241,234,.34);
  --line:rgba(244,241,234,.12); --line-2:rgba(244,241,234,.24);
  --accent:#f4f1ea;                 /* 差し色は基本ボーンホワイト（モノクロ） */
  /* legacy alias（旧ルール・terms用）をモノクロに再配線 */
  --gold:#f4f1ea; --gold-lt:#ffffff; --gold-soft:rgba(244,241,234,.08);
  /* 素材種別（彩度を落とした上品なトーン） */
  --c-inst:#cdd6dc; --c-karaoke:#bcd0c0; --c-lyrics:#d8cba8;
  --c-midi:#c4bdd6; --c-image:#d8b8c4; --c-movie:#d8c2a8; --c-other:#9aa0a6;
  /* type */
  --font-sans:'Zen Kaku Gothic New',sans-serif;
  --font-display:'Anton','Zen Kaku Gothic New',sans-serif;
  --font-en:'Archivo',sans-serif;
  --font-mincho:'Archivo','Zen Kaku Gothic New',sans-serif;
  --font-mono:'Archivo','Zen Kaku Gothic New',sans-serif;
  --maxw:1200px; --header-h:64px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;scrollbar-gutter:stable}
body{
  font-family:var(--font-sans);
  color:var(--cream);
  background:var(--ink);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  letter-spacing:.01em;
}
/* 微かなグレイン＋上品な明暗 */
body::before{
  content:'';position:fixed;inset:0;z-index:-4;
  background:
    radial-gradient(100% 60% at 50% -10%, rgba(244,241,234,.05), transparent 60%),
    linear-gradient(180deg,#0c0c0f 0%,#0a0a0c 60%,#070709 100%);
}
body::after{
  content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
#bg-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:-3;pointer-events:none;opacity:.9}

/* 最前面フィルムグレイン（全要素の上・クリック透過・微かに揺れる） */
.fx-grain{position:fixed;inset:0;z-index:9990;pointer-events:none;opacity:.14;mix-blend-mode:screen;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0.6 0.6 0.6 0 -0.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;animation:grainShift 4s steps(4) infinite}
.fx-grain.is-static{animation:none}
@keyframes grainShift{
  0%{background-position:0 0}
  25%{background-position:-5px 4px}
  50%{background-position:4px -5px}
  75%{background-position:-4px -3px}
  100%{background-position:0 0}
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--cream);color:var(--ink)}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px;position:relative;z-index:1}

/* ---------- スクロールリビール ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- 共通タイポ ---------- */
.eyebrow{
  font-family:var(--font-en);font-weight:600;
  font-size:.7rem;letter-spacing:.42em;text-transform:uppercase;
  color:var(--cream-dim);display:inline-flex;align-items:center;gap:.7em;
}
.eyebrow::before{content:'';width:26px;height:1px;background:var(--cream-dim)}
.sec-head{margin-bottom:1.8rem}
.sec-title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.7rem,4.4vw,2.6rem);letter-spacing:.04em;line-height:1;text-transform:uppercase;
  margin-top:.6rem;
}
.sec-count{font-family:var(--font-en);color:var(--cream-faint);font-size:.8rem;margin-top:.5rem;letter-spacing:.1em}
/* 数字は等幅(tabular)で揃える */
.link-row::before,.ix-no,.now-meta,.work-type,.work-status,.card-meta,.sec-count,.live-year,.live-meta,.card-title-en,.copyright{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* ---------- ローディング（000 → 100%） ---------- */
.fx-loader{position:fixed;inset:0;z-index:9999;background:var(--ink);display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;transition:opacity .6s ease}
.fx-loader.done{opacity:0;pointer-events:none}
.fx-loader-num{font-family:var(--font-display);font-size:clamp(4rem,18vw,9rem);line-height:.9;
  letter-spacing:.02em;color:var(--cream)}
.fx-loader-num small{font-size:.32em;vertical-align:.8em;margin-left:.1em;color:var(--cream-dim)}
.fx-loader-label{font-family:var(--font-en);font-size:.7rem;letter-spacing:.5em;text-transform:uppercase;color:var(--cream-faint)}
.fx-loader-bar{width:min(260px,60vw);height:1px;background:var(--line-2);position:relative;overflow:hidden}
.fx-loader-bar i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--cream)}

/* ---------- マーキー（流れるテキスト） ---------- */
.fx-marquee{position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:rgba(244,241,234,.02)}
.fx-marquee-track{display:inline-flex;white-space:nowrap;will-change:transform;animation:marq 26s linear infinite}
.fx-marquee:hover .fx-marquee-track{animation-play-state:paused}
.fx-marquee span{font-family:var(--font-display);font-size:.92rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cream-dim);padding:.55em 0;display:inline-flex;align-items:center}
.fx-marquee span::after{content:'✦';margin:0 1.6em;color:var(--cream-faint);font-size:.7em}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- ヘッダー ---------- */
.site-header{
  position:sticky;top:0;z-index:60;height:var(--header-h);
  background:rgba(10,10,12,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);gap:1rem}
.brand{display:flex;flex-direction:column;line-height:1}
.brand-en{font-family:var(--font-display);font-weight:400;font-size:1.5rem;letter-spacing:.16em;color:var(--cream)}
.brand-sub{font-family:var(--font-en);font-size:.56rem;letter-spacing:.34em;color:var(--cream-faint);text-transform:uppercase;margin-top:.25em}
.header-nav{display:flex;gap:1.6rem;align-items:center}
.header-nav a{font-family:var(--font-en);font-weight:500;font-size:.74rem;letter-spacing:.22em;color:var(--cream-dim);
  text-transform:uppercase;transition:.2s;position:relative;padding:.4em 0}
.header-nav a::after{content:'';position:absolute;left:0;bottom:.1em;width:0;height:1px;background:var(--cream);transition:width .25s ease}
.header-nav a:hover{color:var(--cream)}
.header-nav a:hover::after{width:100%}

/* MENU トリガー（fx.js注入） */
.fx-menu-btn{font-family:var(--font-en);font-weight:600;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--cream);background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:.6em;padding:.4em 0}
.fx-menu-btn .bars{display:inline-flex;flex-direction:column;gap:3px;width:20px}
.fx-menu-btn .bars i{height:1.5px;background:var(--cream);width:100%;transition:.25s}
.fx-menu-btn:hover .bars i:nth-child(1){transform:translateX(3px)}
.fx-menu-btn:hover .bars i:nth-child(2){transform:translateX(-2px)}

/* ---------- ボタン ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-en);font-weight:600;
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;padding:.95em 1.7em;
  border:1px solid var(--cream);transition:.22s;cursor:pointer;white-space:nowrap;
}
.btn-primary{background:var(--cream);color:var(--ink)}
.btn-primary:hover{background:transparent;color:var(--cream)}
.btn-ghost{color:var(--cream);border-color:var(--line-2);background:transparent}
.btn-ghost:hover{border-color:var(--cream)}
.btn.is-pending{opacity:.4;cursor:default;border-color:var(--line)}

/* ============================================================
   HUB — 3カラム（編集的レイアウト）
   ============================================================ */
/* ---- IDENTITY バンド（全幅・トップ・センター・コンパクト） ---- */
.hub-id-band{position:relative;padding:clamp(2rem,4.5vw,3.4rem) 0 clamp(1.2rem,2.5vw,1.8rem);text-align:center;overflow:clip}
.hub-id-band::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(58% 85% at 50% 42%,rgba(255,42,109,.085),transparent 70%)}
.hub-id-band .wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;container-type:inline-size}
.hub-bgword{position:absolute;z-index:0;top:50%;left:50%;transform:translate(-50%,-52%);
  font-family:var(--font-display);font-weight:400;font-size:40vw;line-height:.78;
  letter-spacing:.02em;color:rgba(244,241,234,.05);white-space:nowrap;pointer-events:none;user-select:none}
@media (min-width:780px){
  .hub-id-band{text-align:left}
  .hub-id-band .wrap{align-items:flex-start}
  .hub-id-band::before{background:radial-gradient(46% 95% at 28% 46%,rgba(255,42,109,.1),transparent 70%)}
}
.hub-name{line-height:0;margin:0}
.hub-logo{width:min(280px,50vw);height:auto;margin:0 auto;
  filter:drop-shadow(0 3px 16px rgba(0,0,0,.5));transform-origin:center;will-change:transform}
/* 慣性強めのボヨヨン（長め・減衰オシレーション） */
.hub-logo.boing{animation:logoBoing 1.25s cubic-bezier(.22,.9,.3,1)}
@keyframes logoBoing{
  0%{transform:scale(1,1)}
  10%{transform:scale(1.18,.82)}
  22%{transform:scale(.86,1.14)}
  34%{transform:scale(1.11,.9)}
  46%{transform:scale(.93,1.08)}
  58%{transform:scale(1.06,.95)}
  70%{transform:scale(.96,1.04)}
  80%{transform:scale(1.03,.98)}
  90%{transform:scale(.99,1.01)}
  100%{transform:scale(1,1)}
}

/* 汗💦（イースターエッグ用） */
.fx-sweat{position:fixed;z-index:7;pointer-events:none;transform:translate(-50%,-50%)}
.fx-sweat span{position:absolute;left:0;top:0;line-height:1;opacity:0;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));animation:fxSweat .8s ease-out forwards}
@keyframes fxSweat{
  0%{transform:translate(0,0) scale(.4) rotate(0);opacity:0}
  20%{opacity:1}
  100%{transform:translate(var(--dx),var(--dy)) scale(1) rotate(20deg);opacity:0}
}

/* 砂埃パフ（イースターエッグ用） */
.fx-dust{position:fixed;z-index:6;pointer-events:none;transform:translate(-50%,-50%)}
.fx-dust span{position:absolute;left:0;top:0;border-radius:50%;
  background:radial-gradient(circle at 40% 35%, rgba(225,222,214,.5), rgba(160,158,150,.25) 70%, transparent);
  filter:blur(1px);animation:fxDust .85s ease-out forwards}
@keyframes fxDust{
  0%{transform:translate(0,0) scale(.3);opacity:0}
  18%{opacity:.6}
  100%{transform:translate(var(--dx),var(--dy)) scale(1.5);opacity:0}
}
.hub-tagline{font-family:var(--font-sans);font-weight:700;font-size:clamp(.9rem,2.8cqw,1.15rem);letter-spacing:.03em;
  color:var(--cream);margin-top:.9rem;line-height:1.45}
.hub-desc{color:var(--cream-dim);font-size:clamp(.6rem,2.9cqw,.92rem);margin-top:.45rem;line-height:1.5}

/* ---- 3カラム ---- */
.hub-grid{
  max-width:var(--maxw);margin:0 auto;padding:clamp(1rem,2vw,1.8rem) 26px clamp(2.4rem,6vw,4rem);
  display:grid;grid-template-columns:1fr;gap:clamp(2.2rem,4vw,3rem);position:relative;z-index:1;
}
@media (min-width:1000px){
  .hub-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);
    grid-template-areas:"sns links spot" "sns games spot";
    gap:clamp(2rem,3.2vw,3.4rem);align-items:start}
  .col-sns{grid-area:sns}
  .col-main{grid-area:links}
  .col-side{grid-area:spot}
  .col-games{grid-area:games}
}

/* カラム見出しの赤マーカー（真っ赤・蛍光ペンワイプ）
   赤帯は疑似要素。左→右に scaleX で伸ばす。transitionなので最終状態は必ず「表示」に着地 */
.col-head .ch-mark{position:relative;display:inline;padding:0 .1em;isolation:isolate}
.col-head .ch-mark::before{content:'';position:absolute;left:0;right:0;top:56%;bottom:0;
  background:#ff1f1f;z-index:-1;transform-origin:left center;transform:scaleX(1);
  transition:transform .7s cubic-bezier(.6,0,.25,1);transition-delay:var(--d,0s)}
/* reduced-motion 以外は 0 から始めて、.draw が付いたら 1 へワイプ */
@media (prefers-reduced-motion:no-preference){
  .col-head .ch-mark::before{transform:scaleX(0)}
  .col-head .ch-mark.draw::before{transform:scaleX(1)}
}
.col-head .ch-mark.shown::before{transform:scaleX(1)}

/* GAMES */
.games-list{display:flex;flex-direction:column;gap:.6rem;margin-top:1.4rem}
.game-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  border:1px solid var(--line);padding:1rem 1.1rem;background:#101014;transition:.25s}
.game-row:hover{border-color:var(--cream);transform:translateY(-2px)}
.game-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.game-title{font-family:var(--font-mincho);font-weight:700;font-size:1.05rem;letter-spacing:.02em;line-height:1.35}
.game-sub{font-family:var(--font-en);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-faint)}
.game-play{flex:0 0 auto;display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-en);font-weight:700;
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--cream);
  padding:.62em 1.05em;transition:.2s}
.game-row:hover .game-play{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 1px var(--cream)}
.gp-arrow{transition:.2s}
.game-row:hover .gp-arrow{transform:translate(2px,-2px)}
.col{min-width:0}
.col-inner{position:relative}

/* ---- 大きいセクション見出し（海外サイト風タイポ） ---- */
.col-head{font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.7rem,2.8vw,2.4rem);letter-spacing:.05em;text-transform:uppercase;line-height:1;
  color:var(--cream);padding-bottom:.7rem;margin-bottom:1.3rem;border-bottom:1px solid var(--line-2)}

/* ---- SNS（アイコン付き） ---- */
.sns-links{display:flex;flex-direction:column;gap:.15rem}
.sns-link{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;gap:.85em;
  padding:.6em .5em;color:var(--cream-dim);border-bottom:1px solid var(--line);transition:color .25s}
.sns-links .sns-link:last-child{border-bottom:0}
/* ホバー：白面が左から伸びて、アイコン＋文字が反転（ink） */
.sns-link::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--cream);
  transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.6,0,.25,1)}
.sns-link:hover{color:var(--ink)}
.sns-link:hover::before{transform:scaleX(1)}
.sns-ico{flex:0 0 auto;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:currentColor}
.sns-ico svg{width:18px;height:18px;display:block}
.sns-name{font-family:var(--font-en);font-weight:500;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase}
.sns-arrow{margin-left:auto;font-size:.82em;color:var(--cream-faint);transition:.2s}
.sns-link:hover .sns-arrow{color:var(--ink);transform:translate(2px,-2px)}

/* ---- NOW（現在の公演・作品 / 固定サイズのバナーホルダー） ---- */
.now-list{display:flex;flex-direction:column;gap:1.1rem;margin-top:1.4rem}
.now-card{display:block;border:1px solid var(--line);transition:.25s;background:#101014}
.now-card:hover{border-color:var(--cream);transform:translateY(-2px)}
.now-banner{height:128px;overflow:hidden;background:#0c0c10;display:flex;align-items:center;justify-content:center}
.now-banner img{width:100%;height:100%;object-fit:cover;display:block;transition:.4s}
.now-card:hover .now-banner img{transform:scale(1.04)}
.now-banner .thumb-ph{font-family:var(--font-display);font-size:2rem;color:var(--cream-faint)}
.now-info{padding:.85rem 1rem 1rem}
.now-label{display:block;font-family:var(--font-mincho);font-weight:700;font-size:1rem;letter-spacing:.02em;line-height:1.3}
.now-meta{display:block;font-family:var(--font-en);font-size:.7rem;letter-spacing:.14em;color:var(--cream-faint);margin-top:.35rem;text-transform:uppercase}
.now-card.is-pending{opacity:.4}

.section-index{margin-top:2rem;display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:1.2rem}
.index-label{font-family:var(--font-en);font-weight:600;font-size:.62rem;letter-spacing:.4em;color:var(--cream-faint);
  text-transform:uppercase;margin-bottom:.8rem}
.section-index a{font-family:var(--font-en);font-weight:500;font-size:.9rem;letter-spacing:.14em;color:var(--cream-dim);
  display:flex;align-items:baseline;gap:.9em;padding:.6em 0;border-bottom:1px solid var(--line);text-transform:uppercase;transition:.2s}
.section-index a:last-child{border-bottom:0}
.section-index a:hover{color:var(--cream);padding-left:.5em}
.ix-no{font-family:var(--font-en);color:var(--cream-faint);font-size:.72rem;letter-spacing:.05em}

/* ---- 主要導線（編集的リスト） ---- */
.links-sec{padding:0}
.primary-links{display:flex;flex-direction:column;margin-top:1.4rem;counter-reset:lnk;border-top:1px solid var(--line)}
.link-row{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.25rem .4rem 1.25rem 2.8rem;border-bottom:1px solid var(--line);transition:.25s;counter-increment:lnk;
}
.link-row::before{
  content:'0' counter(lnk);position:absolute;left:.2rem;top:50%;transform:translateY(-50%);
  font-family:var(--font-en);font-weight:500;font-size:.74rem;color:var(--cream-faint);letter-spacing:.05em;transition:.25s;
}
.link-row:hover{padding-left:3.1rem;background:linear-gradient(90deg,rgba(244,241,234,.04),transparent)}
.link-row:hover::before{color:var(--cream)}
.link-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.link-main{font-family:var(--font-mincho);font-weight:700;font-size:1.18rem;letter-spacing:.02em}
.link-sub{font-family:var(--font-en);font-size:.66rem;color:var(--cream-faint);margin-top:.35rem;letter-spacing:.18em;text-transform:uppercase}
.link-arrow{font-family:var(--font-en);font-size:1.1rem;color:var(--cream-dim);flex:0 0 auto;transition:.25s}
.link-row:hover .link-arrow{transform:translateX(6px);color:var(--cream)}
.link-row.is-pending{opacity:.35}
.link-row.is-pending .link-arrow{font-size:.64rem;letter-spacing:.2em}
.link-row.is-pending:hover{padding-left:2.8rem;background:none}
/* アクセント：タイトル色（薄め・読みやすさ重視）＋ホバー左線を同色に */
.link-row{border-left:2px solid transparent}
/* アクセント色を1変数に集約 */
.acc-fc       {--acc:#e58a8a}   /* FANCLUB 赤 */
.acc-ec       {--acc:#8fcde0}   /* EC 水色 */
.acc-inst     {--acc:#e3d488}   /* inst 黄 */
.acc-cover    {--acc:#e8aacf}   /* カバー ピンク */
.acc-original {--acc:#98d2a6}   /* オリジナル 緑 */
.acc-live     {--acc:#dd8fd2}   /* トリセツ マゼンタ */
.acc-other,.acc-yt,.acc-x,.acc-news{--acc:var(--cream)}
.link-row .link-main{color:var(--acc,var(--cream))}
.link-row:hover{border-left-color:var(--acc,var(--cream))}
/* ホバー：アクセント色の下線が左から伸びる */
.link-row::after{content:'';position:absolute;left:2.8rem;right:.4rem;bottom:-1px;height:2px;
  background:var(--acc,var(--cream));transform:scaleX(0);transform-origin:left;
  transition:transform .35s cubic-bezier(.6,0,.25,1)}
.link-row:hover::after{transform:scaleX(1)}

/* ---- その他SNS ---- */
.social-wrap{margin-top:2rem;display:flex;align-items:baseline;gap:1.4rem;flex-wrap:wrap}
.social-label{font-family:var(--font-en);font-weight:600;font-size:.62rem;letter-spacing:.4em;color:var(--cream-faint);text-transform:uppercase}
.social-links{display:flex;gap:1.4rem;flex-wrap:wrap}
.social-link{font-family:var(--font-en);font-weight:500;font-size:.8rem;letter-spacing:.12em;color:var(--cream-dim);
  text-transform:uppercase;position:relative;padding-bottom:.2em;transition:.2s}
.social-link::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--cream);transition:width .25s}
.social-link:hover{color:var(--cream)}
.social-link:hover::after{width:100%}
.s-arrow{font-size:.8em;margin-left:.4em;color:var(--cream-faint);transition:.2s}
.social-link:hover .s-arrow{color:var(--cream);transform:translate(2px,-2px)}

/* ---- BROADCAST / WORKS（右） ---- */
.works-sec{padding:0}
.latest-card{position:relative;border:1px solid var(--line-2);padding:1.5rem 1.4rem 1.6rem;margin-bottom:2rem;
  background:linear-gradient(160deg,rgba(244,241,234,.04),transparent)}
.latest-eyebrow{font-family:var(--font-en);font-weight:600;font-size:.62rem;letter-spacing:.4em;color:var(--cream-faint);text-transform:uppercase}
.latest-title{font-family:var(--font-mincho);font-weight:700;font-size:1.2rem;letter-spacing:.02em;margin:.7rem 0 .4rem;line-height:1.3}
.latest-text{font-family:var(--font-en);color:var(--cream-dim);font-size:.78rem;margin-bottom:1.2rem;letter-spacing:.04em;line-height:1.7}
.works-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:1.4rem}
.works-grid--rail{grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
.works-grid--rail .work-card{border:0;border-bottom:1px solid var(--line);padding:1.1rem .2rem}
.work-card{display:flex;gap:1rem;border:1px solid var(--line);padding:1rem;transition:.25s;align-items:center}
.work-card:hover{border-color:var(--line-2);background:rgba(244,241,234,.03)}
.works-grid--rail .work-card:hover{padding-left:.6rem}
.work-thumb{flex:0 0 64px;width:64px;height:64px;overflow:hidden;border:1px solid var(--line);
  background:#141418;display:flex;align-items:center;justify-content:center}
.work-thumb img{width:100%;height:100%;object-fit:cover}
.thumb-ph{font-family:var(--font-display);font-size:1.7rem;color:var(--cream-faint)}
.work-body{display:flex;flex-direction:column;gap:.18rem;min-width:0}
.work-type{font-family:var(--font-en);font-weight:600;font-size:.6rem;letter-spacing:.24em;color:var(--cream-faint);text-transform:uppercase}
.work-title{font-family:var(--font-mincho);font-weight:700;font-size:1rem;letter-spacing:.02em}
.work-title-ja{font-family:var(--font-en);font-size:.72rem;color:var(--cream-faint)}
.work-status{font-family:var(--font-en);font-size:.6rem;color:var(--cream-dim);border:1px solid var(--line-2);
  padding:.1em .7em;align-self:flex-start;margin-top:.4rem;letter-spacing:.16em;text-transform:uppercase}
.work-card.is-pending{opacity:.4}

/* YouTube 埋め込み */
.yt-block{margin-bottom:2rem}
.yt-block .eyebrow{margin-bottom:.8rem}
.yt-frame{position:relative;aspect-ratio:16/9;border:1px solid var(--line-2);overflow:hidden;background:#000}
.yt-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* アーカイブ導線 */
.archive-link{display:inline-flex;align-items:center;gap:.5em;margin-top:1.4rem;
  font-family:var(--font-en);font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--cream-dim);border-bottom:1px solid var(--line-2);padding-bottom:.3em;transition:.2s}
.archive-link:hover{color:var(--cream);border-color:var(--cream)}

/* ============================================================
   INST 置き場（共有スキン）
   ============================================================ */
.hero{padding:clamp(1.8rem,5vw,3rem) 0 clamp(1.4rem,3vw,2.2rem)}
.hero-title{margin:1.1rem 0 1.3rem}
.hero-title .ja{display:block;font-family:var(--font-display);font-weight:400;
  font-size:clamp(2rem,7vw,3.4rem);letter-spacing:.03em;line-height:1.04;word-break:keep-all;overflow-wrap:break-word}
.hero-title .en{display:block;font-family:var(--font-en);font-weight:600;font-size:clamp(.78rem,2.4vw,1rem);
  letter-spacing:.34em;color:var(--cream-dim);margin-top:.6rem;text-transform:uppercase}
.hero-lead{max-width:60ch;color:var(--cream-dim);font-size:clamp(.76rem,2.1vw,.84rem);margin-bottom:1.8rem;line-height:1.8}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}

.toolbar-sec{padding:.5rem 0 0}
.toolbar{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1.4rem}
.search-box{position:relative;flex:1;min-width:220px;max-width:380px}
.search-ico{position:absolute;left:2px;top:50%;transform:translateY(-50%);width:18px;height:18px;
  fill:none;stroke:var(--cream-dim);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#searchInput{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-2);color:var(--cream);
  font-family:var(--font-en);font-size:.9rem;padding:.7em 1em .7em 2.4em;letter-spacing:.08em;text-transform:uppercase}
#searchInput:focus{outline:none;border-bottom-color:var(--cream)}
#searchInput::placeholder{color:var(--cream-faint);text-transform:none;letter-spacing:.02em}
.filter-chips{display:flex;gap:1.2rem;flex-wrap:wrap}
.chip{font-family:var(--font-en);font-weight:500;font-size:.74rem;letter-spacing:.16em;color:var(--cream-faint);
  background:none;border:0;padding:.4em 0;cursor:pointer;transition:.2s;text-transform:uppercase;position:relative}
.chip::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--cream);transition:width .25s}
.chip:hover{color:var(--cream-dim)}
.chip.is-active{color:var(--cream)}
.chip.is-active::after{width:100%}

.songs-sec{padding:clamp(2rem,5vw,3.2rem) 0}
.song-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:0;border-top:1px solid var(--line)}
.song-card{display:flex;gap:1.1rem;border-bottom:1px solid var(--line);padding:1.3rem .3rem;transition:.25s}
.song-card:hover{padding-left:.6rem;background:linear-gradient(90deg,rgba(244,241,234,.03),transparent)}
.card-thumb{flex:0 0 76px;width:76px;height:76px;overflow:hidden;border:1px solid var(--line);
  background:#141418;display:flex;align-items:center;justify-content:center}
.card-thumb img{width:100%;height:100%;object-fit:cover}
.card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.6rem}
.card-title{font-family:var(--font-mincho);font-weight:700;font-size:1.12rem;letter-spacing:.02em;line-height:1.3}
.card-title-en{font-family:var(--font-en);font-size:.7rem;color:var(--cream-faint);margin-top:.15rem;letter-spacing:.18em;text-transform:uppercase}
.card-feat{font-family:var(--font-sans);font-weight:500;font-size:.76rem;letter-spacing:.04em;color:var(--cream-dim);margin-top:.25rem}
.card-meta{font-family:var(--font-en);font-size:.66rem;color:var(--cream-faint);margin-top:.4rem;
  display:flex;align-items:center;gap:.7em;flex-wrap:wrap;letter-spacing:.12em;text-transform:uppercase}
.card-status{font-size:.6rem;border:1px solid var(--line-2);padding:.12em .6em;color:var(--cream-dim);letter-spacing:.1em}
.card-status.all-ready{border-color:var(--cream);color:var(--cream)}

/* セット内容＋ZIPダウンロードボタン（曲ごと1個） */
.card-contents{font-family:var(--font-en);font-size:.74rem;letter-spacing:.04em;color:var(--cream-dim);margin:.5rem 0 .2rem}
.card-contents .cc-label{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream-faint);margin-right:.6em}
.card-dl{margin-top:auto;padding-top:.7rem;display:flex;flex-direction:column;align-items:flex-start;gap:.65rem}
.dl-btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--font-en);font-weight:600;
  font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:.7em 1.2em;cursor:pointer;
  background:var(--cream);color:var(--ink);border:1px solid var(--cream);transition:.2s}
.dl-btn:hover{background:transparent;color:var(--cream)}
.dl-ico{font-size:1.05em}
.dl-ext{font-size:.72em;letter-spacing:.06em;border-left:1px solid currentColor;padding-left:.55em;margin-left:.1em;opacity:.7}
.dl-btn.is-pending{background:transparent;color:var(--cream-faint);border-color:var(--line-2);border-style:dashed;cursor:default}
.dl-btn.is-pending:hover{background:transparent;color:var(--cream-faint)}

/* 補助アクション（原曲リンク / クレジットコピー） */
.card-subactions{display:flex;flex-wrap:wrap;gap:.5rem}
.card-source,.card-credit{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-en);
  font-weight:500;font-size:.72rem;letter-spacing:.04em;color:var(--cream-dim);background:transparent;
  border:1px solid var(--line-2);padding:.55em .9em;cursor:pointer;transition:.2s;line-height:1}
.card-source:hover,.card-credit:hover{border-color:var(--cream);color:var(--cream)}
.card-credit.is-copied{border-color:var(--cream);color:var(--cream);background:rgba(244,241,234,.06)}
.cs-arrow{color:var(--cream-faint);transition:.2s}
.card-source:hover .cs-arrow{color:var(--cream);transform:translate(2px,-2px)}
.cc-ico{font-size:1.02em}

.card-assets{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto}
.asset{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-en);font-weight:500;
  font-size:.74rem;letter-spacing:.08em;padding:.45em .9em;border:1px solid var(--line-2);transition:.2s;text-transform:uppercase}
.asset:hover{border-color:var(--cream);background:rgba(244,241,234,.04)}
.ass-ico{font-size:.9em;color:var(--cream-dim)}
.ass-ext{font-size:.62rem;opacity:.6;letter-spacing:.08em;border-left:1px solid var(--line-2);padding-left:.5em}
.asset.is-pending{opacity:.4;cursor:default;border-style:dashed}
.asset.is-pending:hover{border-color:var(--line-2);background:none}
.no-asset,.empty-msg{font-family:var(--font-en);color:var(--cream-faint);font-size:.82rem;letter-spacing:.06em}
.empty-msg{text-align:center;padding:2.4rem 0;text-transform:uppercase}
/* 種別マーカー（極細左線のみ・モノクロ寄り） */
.asset{border-left-width:2px}
.k-inst{border-left-color:var(--c-inst)}
.k-karaoke{border-left-color:var(--c-karaoke)}
.k-lyrics{border-left-color:var(--c-lyrics)}
.k-midi{border-left-color:var(--c-midi)}
.k-image{border-left-color:var(--c-image)}
.k-movie{border-left-color:var(--c-movie)}
.k-other{border-left-color:var(--c-other)}

/* ---------- LIVE ARCHIVE ---------- */
.live-list{border-top:1px solid var(--line);margin-top:1.6rem}
.live-row{display:flex;align-items:baseline;gap:clamp(1rem,3vw,2rem);padding:1.7rem .3rem;
  border-bottom:1px solid var(--line);transition:.25s;text-decoration:none}
.live-row:hover{padding-left:.7rem;background:linear-gradient(90deg,rgba(244,241,234,.03),transparent)}
.live-year{font-family:var(--font-en);font-weight:600;font-size:.82rem;letter-spacing:.1em;
  color:var(--cream-faint);flex:0 0 3.4em}
.live-main{flex:1;min-width:0}
.live-name{display:block;font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.3rem,4vw,2.1rem);letter-spacing:.03em;text-transform:uppercase;line-height:1.08}
.live-meta{display:block;font-family:var(--font-en);font-size:.72rem;letter-spacing:.14em;
  color:var(--cream-faint);margin-top:.45rem;text-transform:uppercase}
.live-status{font-family:var(--font-en);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cream-dim);border:1px solid var(--line-2);padding:.15em .7em;align-self:center;white-space:nowrap}
.live-link{flex:0 0 auto;align-self:center;font-family:var(--font-en);font-weight:600;font-size:.72rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--cream-dim);transition:.2s}
.live-row:hover .live-link{color:var(--cream)}
@media (max-width:560px){
  .live-status{display:none}
  .live-link{font-size:.66rem}
}

.sp-br{display:none}
/* モバイル：SNS / LINKS を2カラム（2個ずつ） */
@media (max-width:620px){
  .header-nav{display:none}      /* 狭い画面はヘッダーナビを隠す（本文LINKS/フローティングで代替） */
  .sp-br{display:inline}
  .sns-links{display:grid;grid-template-columns:1fr 1fr;column-gap:1.1rem;row-gap:.1rem}
  .sns-links .sns-link{border-bottom:0}
  .primary-links{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .7rem}
  .primary-links .link-row{padding:.8rem .45rem .8rem 1.7rem;border-bottom:1px solid var(--line)}
  .primary-links .link-row::before{left:.45rem;top:.85rem;transform:none}
  .link-main{font-size:.9rem;line-height:1.25}
  .link-sub{font-size:.56rem}
  .link-arrow{display:none}
}

/* 利用規約バンド */
.terms-band{padding:clamp(2rem,5vw,3rem) 0}
.terms-band-inner{display:flex;align-items:center;justify-content:space-between;gap:1.6rem;flex-wrap:wrap;
  border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:2rem 0}
.terms-lead{color:var(--cream-dim);font-size:.88rem;margin-top:.7rem;max-width:48ch;line-height:1.8}

/* ---------- 利用規約モーダル ---------- */
.terms-modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem)}
.terms-modal[hidden]{display:none}
.tm-backdrop{position:absolute;inset:0;background:rgba(2,4,8,.78);backdrop-filter:blur(4px)}
.tm-panel{position:relative;width:min(720px,100%);max-height:88vh;display:flex;flex-direction:column;
  background:var(--ink2);border:1px solid var(--line-2);box-shadow:0 30px 80px -20px rgba(0,0,0,.7);animation:tmIn .25s ease}
@keyframes tmIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.tm-bar{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.4rem;
  border-bottom:1px solid var(--line);flex:0 0 auto}
.tm-eyebrow{font-family:var(--font-en);font-weight:600;font-size:.66rem;letter-spacing:.32em;color:var(--cream-faint);text-transform:uppercase}
.tm-close{font-family:var(--font-en);font-weight:600;font-size:.72rem;letter-spacing:.18em;color:var(--cream);
  background:none;border:0;cursor:pointer;padding:.4em .2em;transition:.2s}
.tm-close:hover{color:var(--cream-dim)}
.tm-body{overflow-y:auto;padding:clamp(1.4rem,3vw,2.2rem);scrollbar-width:none;-ms-overflow-style:none}
.tm-body::-webkit-scrollbar{display:none;width:0;height:0}
.tm-title{font-family:var(--font-mincho);font-weight:700;font-size:clamp(1.2rem,3vw,1.5rem);letter-spacing:.04em;line-height:1.3}
.tm-updated{font-family:var(--font-en);font-size:.74rem;color:var(--cream-faint);margin:.5rem 0 1.3rem;letter-spacing:.06em}
.tm-body p{color:var(--cream-dim);font-size:.9rem;line-height:1.85;margin:.6rem 0}
.tm-body strong{color:var(--cream)}
.tm-body h3{font-family:var(--font-mincho);font-weight:600;font-size:1.04rem;letter-spacing:.03em;
  margin:1.9rem 0 .7rem;padding-left:.7em;border-left:3px solid var(--cream)}
.tm-body ul{list-style:none;margin:.5rem 0}
.tm-body li{position:relative;padding-left:1.5em;color:var(--cream-dim);font-size:.88rem;line-height:1.7;margin:.45rem 0}
.tm-body li::before{content:'—';position:absolute;left:0;color:var(--cream-faint)}
.tm-ok li::before{content:'○';color:#7fcf9a}
.tm-ng li::before{content:'×';color:#e58aa0}
.tm-callout{background:rgba(244,241,234,.05);border:1px solid var(--line-2);padding:1.1rem 1.3rem;margin:1.5rem 0}
.tm-callout strong{color:var(--cream)}
.tm-callout p{margin-top:.5rem}
.tm-mail{color:var(--cream);border-bottom:1px solid var(--line-2);transition:.2s}
.tm-mail:hover{border-color:var(--cream)}
.tm-note{font-size:.8rem;color:var(--cream-faint)}
.tm-hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
.tm-body a[href^="http"]{color:var(--cream-dim);border-bottom:1px solid var(--line-2)}
.tm-body a[href^="http"]:hover{color:var(--cream)}

/* TOPに戻る（フッター） */
.to-top{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-en);font-weight:600;
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream-dim);
  border:1px solid var(--line-2);padding:.7em 1.4em;transition:.2s}
.to-top:hover{color:var(--ink);background:var(--cream);border-color:var(--cream)}

/* ---------- フッター ---------- */
.site-footer{border-top:1px solid var(--line);margin-top:2rem;padding:2.6rem 0}
.footer-inner{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.footer-brand{display:flex;align-items:baseline;gap:1.2rem;flex-wrap:wrap}
.footer-brand .brand-en{font-size:1.3rem}
.credit-note{font-family:var(--font-en);font-size:.72rem;color:var(--cream-faint);letter-spacing:.08em}
.footer-nav{display:flex;gap:1.4rem}
.footer-nav a{font-family:var(--font-en);font-size:.76rem;color:var(--cream-dim);letter-spacing:.14em;text-transform:uppercase;transition:.2s}
.footer-nav a:hover{color:var(--cream)}
.copyright{font-family:var(--font-en);font-size:.7rem;color:var(--cream-faint);letter-spacing:.14em}

/* ============================================================
   全画面 MENU（MENU ⇄ CLOSE）／ モバイル・フローティング
   ============================================================ */
.fx-jump{position:fixed;right:18px;bottom:18px;z-index:210;width:58px;height:58px;
  display:none;align-items:center;justify-content:center;border:1px solid var(--cream);
  background:var(--ink);color:var(--cream);cursor:pointer}
.fx-jump.is-close{background:var(--cream);color:var(--ink)}
.fx-jump svg{width:22px;height:22px;fill:none;stroke:var(--cream);stroke-width:1.6;stroke-linecap:round}
.fx-jump.is-close svg{stroke:var(--ink);stroke-width:2}
@media (max-width:999px){.fx-jump{display:flex}}

.fx-menu{position:fixed;inset:0;z-index:200;background:var(--ink);display:none;
  flex-direction:column;padding:clamp(1.4rem,4vw,2.4rem) clamp(1.4rem,5vw,4rem)}
.fx-menu.open{display:flex}
.fx-menu-top{display:flex;align-items:center;justify-content:space-between;height:var(--header-h)}
.fx-menu-top .m-brand{font-family:var(--font-display);font-size:1.4rem;letter-spacing:.16em}
.fx-menu-close{font-family:var(--font-en);font-weight:600;font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--cream);background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:.7em}
.fx-menu-close::before{content:'✕';font-size:1.1em}
.fx-menu-body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.1rem;
  max-width:var(--maxw);width:100%;margin:0 auto}
.fx-menu-body h4{font-family:var(--font-en);font-weight:600;font-size:.62rem;letter-spacing:.4em;color:var(--cream-faint);
  text-transform:uppercase;margin:1.4rem 0 .6rem}
.fx-menu-body h4:first-child{margin-top:0}
.fx-menu-body a{font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem,6vw,2.8rem);letter-spacing:.03em;
  text-transform:uppercase;color:var(--cream-dim);display:flex;align-items:baseline;gap:.7em;padding:.18em 0;transition:.22s;line-height:1.1}
.fx-menu-body a:hover{color:var(--cream);padding-left:.4em}
.fx-menu-body a .m-no{font-family:var(--font-en);font-size:.9rem;color:var(--cream-faint);letter-spacing:.05em}
.fx-menu-body a .m-arrow{font-family:var(--font-en);font-size:1rem;color:var(--cream-faint);margin-left:auto}
.fx-menu.open .fx-menu-body a{animation:menuIn .5s both}
.fx-menu.open .fx-menu-body a:nth-child(2){animation-delay:.05s}
.fx-menu.open .fx-menu-body a:nth-child(3){animation-delay:.1s}
.fx-menu.open .fx-menu-body a:nth-child(4){animation-delay:.15s}
.fx-menu.open .fx-menu-body a:nth-child(n+5){animation-delay:.2s}
@keyframes menuIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- レスポンシブ ---------- */
@media (max-width:560px){
  .header-nav .nav-anchor{display:none}      /* 小画面はMENUに集約 */
  .song-grid{grid-template-columns:1fr}
  .works-grid{grid-template-columns:1fr}
}

/* ============================================================
   切り抜きガイドライン・ピル（SNS下／マーキー）
   ============================================================ */
.pill-marquee{display:block;position:relative;overflow:hidden;margin-top:1.3rem;
  border:1px solid var(--line-2);border-radius:999px;background:rgba(244,241,234,.03);padding:.78em 0}
.pill-marquee:hover{border-color:var(--cream);background:rgba(244,241,234,.06)}
.pm-track{display:inline-flex;white-space:nowrap;will-change:transform;animation:pmScroll 15s linear infinite}
.pill-marquee:hover .pm-track{animation-play-state:paused}
.pm-track span{font-family:var(--font-sans);font-weight:700;font-size:.82rem;letter-spacing:.06em;
  color:var(--cream);display:inline-flex;align-items:center}
.pm-track span::after{content:'';display:inline-block;width:13px;height:13px;margin:0 1.5em;vertical-align:middle;opacity:.5;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f4f1ea'%3E%3Cpath d='M12 8c-1.1-1.3-2.6-1.9-4-1.5C6 7 4.6 9 4.6 11.7c0 3.7 2.3 7.5 4.5 7.5.9 0 1.4-.5 2.3-.5h.2c.9 0 1.4.5 2.3.5 2.2 0 4.5-3.8 4.5-7.5 0-2.7-1.4-4.7-3.4-5.2-1.4-.4-2.9.2-4 1.5z'/%3E%3Cpath d='M12.4 7.2c.2-1.8 1.6-3.2 3.4-3.2-.1 1.8-1.5 3.2-3.4 3.2z'/%3E%3C/svg%3E") no-repeat center/contain}
@keyframes pmScroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .pm-track{animation:none}
}

/* ============================================================
   ドキュメントページ（切り抜きガイドライン本文）
   ============================================================ */
.doc-hero{padding:clamp(1.4rem,4vw,2.6rem) 0 0}
.doc-hero-img{border:1px solid var(--line-2);overflow:hidden;background:#0c0c10}
.doc-hero-img img{width:100%;height:auto;display:block}

.doc-sec{padding:clamp(1.8rem,4vw,2.8rem) 0 clamp(2.4rem,6vw,4rem)}
.doc{max-width:820px}
.doc-title{font-family:var(--font-mincho);font-weight:700;font-size:clamp(1.3rem,4vw,1.95rem);
  letter-spacing:.02em;line-height:1.45;margin:.7rem 0 .2rem}
.doc-asof{font-family:var(--font-sans);font-size:.76rem;letter-spacing:.08em;color:var(--cream-faint);
  margin-top:.5rem;font-variant-numeric:tabular-nums}
.doc-jump{font-family:var(--font-en);font-size:.78rem;letter-spacing:.12em;color:var(--cream-faint);
  text-transform:uppercase;margin-top:.7rem}
.doc-divider{border:0;border-top:1px solid var(--line-2);margin:clamp(1.6rem,4vw,2.4rem) 0}
.doc-lead-title{font-family:var(--font-display);font-weight:400;font-size:clamp(1.5rem,4.5vw,2.2rem);
  letter-spacing:.03em;line-height:1.15;margin-bottom:1.2rem}
.doc p{color:var(--cream-dim);font-size:.9rem;line-height:1.95;margin:.7rem 0}
.doc strong{color:var(--cream)}
/* 見落とし防止のマーカー強調（重要ルール） */
.doc .doc-em{font-weight:700;color:#fff;
  background:linear-gradient(transparent 58%, rgba(229,138,160,.5) 58%);
  -webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .14em}
.doc-note{font-size:.82rem;color:var(--cream-faint);line-height:1.85}
.doc-sub{font-size:.82rem;color:var(--cream-faint)}
.doc-h{display:flex;align-items:center;gap:.7em;font-family:var(--font-mincho);font-weight:700;
  font-size:clamp(1.05rem,2.6vw,1.25rem);letter-spacing:.02em;line-height:1.4;
  margin:2.5rem 0 .9rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.doc-h-no{flex:0 0 auto;width:1.9em;height:1.9em;display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-en);font-weight:600;font-size:.78em;color:var(--ink);background:var(--cream);border-radius:50%}
.doc-list{list-style:none;margin:.8rem 0;display:flex;flex-direction:column;gap:.7rem}
.doc-list li{position:relative;padding-left:1.4em;color:var(--cream-dim);font-size:.88rem;line-height:1.8}
.doc-list li::before{content:'—';position:absolute;left:0;color:var(--cream-faint)}
.doc-ng li::before{content:'×';color:#e58aa0}
.doc a{color:var(--cream);border-bottom:1px solid var(--line-2);word-break:break-all;transition:.2s}
.doc a:hover{border-color:var(--cream)}

/* リンクボタン（対象コンテンツ・事前登録など） */
.doc-btns{display:flex;flex-wrap:wrap;gap:.5rem;margin:.7rem 0 .2rem}
.doc .doc-btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-en);font-weight:600;
  font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cream);
  border:1px solid var(--line-2);border-radius:3px;padding:.62em 1.05em;transition:.2s;word-break:normal}
.doc .doc-btn:hover{border-color:var(--cream);background:rgba(244,241,234,.05)}
.doc-btn .db-arrow{color:var(--cream-faint);transition:.2s}
.doc-btn:hover .db-arrow{color:var(--cream);transform:translate(2px,-2px)}

/* 対象コンテンツ：テキスト左・ボタン右で1行 */
.doc-srclist{list-style:none;margin:.9rem 0;display:flex;flex-direction:column}
.doc-srclist li{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.85rem 0;border-bottom:1px solid var(--line)}
.doc-srclist li:last-child{border-bottom:0}
.ds-text{color:var(--cream-dim);font-size:.86rem;line-height:1.55;min-width:0}
.doc .doc-btn-icon{flex:0 0 auto}
.doc-btn-icon .db-ico{display:inline-flex;align-items:center}
.doc-btn-icon .db-ico svg{width:15px;height:15px;display:block}
@media (max-width:520px){
  .doc-srclist li{gap:.7rem}
  .ds-text{font-size:.8rem}
  .doc .doc-btn-icon{padding:.55em .8em}
  .doc-btn-icon .db-label{display:none}   /* 狭い画面はアイコン＋矢印だけにして1行を死守 */
}

/* 事前登録：目立つ塗りつぶしCTA */
.doc-cta-row{margin:1rem 0 .3rem}
.doc .doc-cta{display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-en);font-weight:700;
  font-size:.86rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--cream);
  border:1px solid var(--cream);border-radius:3px;padding:1em 1.9em;transition:.2s;word-break:normal;
  box-shadow:0 8px 24px -10px rgba(244,241,234,.4)}
.doc .doc-cta:hover{background:transparent;color:var(--cream);box-shadow:none}
.doc-cta .cta-arrow{transition:.2s}
.doc .doc-cta:hover .cta-arrow{transform:translate(3px,-3px)}
.doc-end{text-align:center;font-family:var(--font-en);letter-spacing:.34em;color:var(--cream-faint);margin:2.2rem 0 0}
.doc-provider{font-size:.84rem;color:var(--cream-faint);line-height:1.9}

/* クレジットのコピー枠 */
.doc-credit-wrap{margin:1.2rem 0 .5rem;border:1px solid var(--line-2);background:rgba(244,241,234,.03)}
.doc-copy{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-en);font-weight:600;
  font-size:.72rem;letter-spacing:.06em;color:var(--ink);background:var(--cream);border:0;
  padding:.65em 1.15em;cursor:pointer;transition:.2s;margin:.9rem .9rem 0}
.doc-copy:hover{opacity:.82}
.doc-copy.is-copied{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 1px var(--cream)}
.doc-credit{font-family:var(--font-mono);font-size:.78rem;line-height:1.85;color:var(--cream-dim);
  white-space:pre-wrap;word-break:break-word;padding:.9rem;margin:.7rem;border-top:1px solid var(--line)}
