:root{
  --canvas:#14110f;        /* 照明の落ちたリングのキャンバス（青黒でなく暖かい黒） */
  --card:#1c1917;
  --card2:#232020;
  --chalk:#f3efe9;         /* スコアカードの紙 */
  --mute:#9a8f86;          /* 暖色に寄せたグレー（純グレーは"選んでいない"色） */
  --line:rgba(243,239,233,.13);
  --line2:rgba(243,239,233,.24);
  --red:#d22630;           /* 赤コーナー */
  --red-dim:rgba(210,38,48,.16);
  --blue:#3b7fe0;          /* 青コーナー */
  --blue-dim:rgba(59,127,224,.16);
  --belt:#c9a227;          /* 王座＝ベルトの金。⛔これ以外に使わない */
  --win:#4fb37c; --loss:#e0616e; --draw:#9a8f86;
  --sans:"Hiragino Sans","Yu Gothic Medium","Yu Gothic","Noto Sans JP",sans-serif;
  --disp:"Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Yu Gothic",monospace;
  --r:3px;
}
:root[data-theme="light"]{
  --canvas:#efeae1; --card:#fffdf9; --card2:#f6f1e8;
  --chalk:#17140f; --mute:#6f6559;
  --line:rgba(23,20,15,.14); --line2:rgba(23,20,15,.26);
  --red:#b81d27; --red-dim:rgba(184,29,39,.10);
  --blue:#2a63b8; --blue-dim:rgba(42,99,184,.10);
  --belt:#96761a; --win:#2c7f57; --loss:#b8404f;
}
/* 🔴OSのライト設定に自動追従しない＝この競技の世界（照明の落ちたリング）を既定に固定する。
   明るい版は右上の切り替えで出す。淡いベージュへ自動で落ちると競技の顔が消えるため、
   「両対応」ではなく**選んだ**世界にする。 */

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--chalk);font-family:var(--sans);
  line-height:1.7;-webkit-font-smoothing:antialiased;
  /* キャンバスの織り目（極薄）。ロゴでもグラデーションでもなく素材から取る */
  background-image:
    radial-gradient(1200px 560px at 50% -14%, rgba(243,239,233,.055), transparent 62%),
    repeating-linear-gradient(90deg, transparent 0 3px, rgba(0,0,0,.045) 3px 4px),
    repeating-linear-gradient(0deg, transparent 0 3px, rgba(0,0,0,.045) 3px 4px);
  background-attachment:fixed}
a{color:var(--chalk);text-decoration:underline;text-decoration-color:var(--mute);text-underline-offset:3px}
a:hover{text-decoration-color:var(--chalk)}
:focus-visible{outline:2px solid var(--belt);outline-offset:2px}
.wrap{width:min(1120px,100% - 28px);margin-inline:auto}
.mt{color:var(--mute)}

/* ---- ヘッダ ---- */
.hd{background:color-mix(in srgb,var(--canvas) 88%,#000);border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:50;backdrop-filter:saturate(1.2) blur(6px)}
.hd-in{display:flex;align-items:center;gap:16px;min-height:58px}
.brand{display:flex;flex-direction:column;line-height:1.1;color:var(--chalk)}
.brand:hover{text-decoration:none}
.brand-n{font-family:var(--disp);font-size:20px;font-weight:900;letter-spacing:.16em}
.brand-t{font-size:10px;color:var(--mute);letter-spacing:.14em;margin-top:3px}
.nav{display:flex;margin-left:auto}
.nav-i{position:relative}
.nav-i>a{display:block;padding:19px 14px;font-size:13px;font-weight:700;letter-spacing:.08em}
.nav-i>a::after{content:"";display:block;height:2px;background:var(--red);
  transform:scaleX(0);transition:transform .16s ease;margin-top:5px}
.nav-i:hover>a{text-decoration:none}
.nav-i:hover>a::after{transform:scaleX(1)}
.nav-d{display:none;position:absolute;top:100%;left:0;min-width:200px;background:var(--card);
  border:1px solid var(--line2);padding:5px;z-index:60}
.nav-i:hover .nav-d{display:block}
.nav-d a{display:block;padding:9px 12px;font-size:13px}
.nav-d a:hover{background:var(--card2);text-decoration:none}
.thm,.mbtn{margin-left:8px;border:1px solid var(--line2);background:transparent;color:var(--mute);
  border-radius:var(--r);width:36px;height:34px;cursor:pointer;font-size:14px}
.thm:hover,.mbtn:hover{color:var(--chalk);border-color:var(--chalk)}
.mbtn{display:none}
.dnav{display:none;flex-direction:column;background:var(--card);border-top:1px solid var(--line);
  padding:4px 16px 12px}
/* 🔴🔴ドロワーは position:sticky のヘッダーの**中**にある。高さの上限とスクロールを
   与えないと、リンクが画面の下へはみ出したまま**どうやっても届かない**
   （2026-08-05 ユーザー指摘「ハンバーガーを開いてスクロールしてもスクロールならん」。
    将棋側でも同じことが起きた＝同じ構造なら同じ壊れ方をする）。
   ⚠️`100vh` ではなく `100dvh`＝スマホはURLバーの出入りで可視高さが変わるため。
   ⚠️`overscroll-behavior:contain` が無いと、ドロワーの端で背後のページが動く。 */
.dnav.on{display:flex;max-height:calc(100dvh - 52px);overflow-y:auto;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.dnav a{padding:10px 2px;border-bottom:1px solid var(--line);font-size:14px}
.dnav a.sub{padding-left:18px;color:var(--mute);font-size:13px}
@media(max-width:880px){.nav{display:none}.mbtn{display:block;margin-left:auto}.thm{margin-left:0}}

/* ---- パンくず ---- */
.crumb{padding:12px 0 0;font-size:11px;color:var(--mute);display:flex;flex-wrap:wrap;gap:5px;
  align-items:center;letter-spacing:.05em}
.crumb i{font-style:normal;opacity:.5}
.crumb a{color:var(--mute)}

/* ---- 見出し ---- */
main{padding:10px 0 60px}
h1{font-family:var(--disp);font-weight:900;font-size:clamp(26px,6vw,40px);letter-spacing:.02em;
  margin:.35em 0 .1em;text-wrap:balance;line-height:1.2}
h2{font-family:var(--disp);font-weight:800;font-size:15px;letter-spacing:.14em;
  margin:2.4em 0 .8em;padding-bottom:.5em;border-bottom:1px solid var(--line2);
  display:flex;align-items:baseline;gap:10px}
h2 .en{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--mute);
  text-transform:uppercase;font-weight:400}
h3{font-size:15px;margin:1.4em 0 .5em;letter-spacing:.04em}
.lead{color:var(--mute);font-size:13.5px;margin:.3em 0 1.5em}

/* ---- カード ---- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:12px 0}
.grid{display:grid;gap:9px}
.g2{grid-template-columns:repeat(auto-fill,minmax(272px,1fr))}

/* ---- 選手カード（一覧）：左端に階級色でなく"コーナー"の帯は付けない（一覧は中立） ---- */
.pc{display:flex;gap:11px;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:10px 12px;color:var(--chalk);border-left:2px solid var(--line2)}
.pc:hover{border-left-color:var(--red);background:var(--card2);text-decoration:none}
.pc .av{flex:0 0 38px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--disp);font-weight:900;font-size:15px;color:var(--chalk);
  background:var(--card2);border:1px solid var(--line2)}
.pc>span:last-child{min-width:0}
.pc .nm{display:block;font-weight:700;font-size:14.5px;line-height:1.35}
.pc .src{border:1px solid var(--belt);color:var(--belt);border-radius:var(--r);font-size:8.5px;padding:0 4px;margin-left:6px;letter-spacing:.08em}
.pc .mt{display:block;font-size:11px;line-height:1.4;font-family:var(--mono)}

/* ---- 選手ヘッダ＝計量ボード ---- */
.tape{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--red);
  border-radius:var(--r);padding:20px;display:flex;gap:20px;flex-wrap:wrap;align-items:flex-start}
.tape .av{width:76px;height:76px;flex:0 0 76px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--disp);font-weight:900;font-size:30px;background:var(--card2);
  border:1px solid var(--line2)}
.facewrap{flex:0 0 92px;text-align:center}
.kolbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--mute);margin-top:6px}
/* ---- 注目の一戦（トップ最上段・手動で固定） ---- */
.bbs{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.bb{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--red);
  border-radius:var(--r);padding:16px 18px;display:flex;flex-direction:column;gap:7px}
.bb-d{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--mute);
  display:flex;flex-wrap:wrap;gap:10px}
.bb-v{color:var(--mute)}
.bb-t{font-size:12.5px;font-weight:700;color:var(--belt);letter-spacing:.03em}
.bb-vs{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bb-n{font-family:var(--disp);font-weight:900;font-size:clamp(19px,4.4vw,25px);line-height:1.2}
.bb-n a{color:var(--chalk);text-decoration:none;border-bottom:1px solid var(--line2)}
.bb-g{display:block;font-size:11px;color:var(--mute);font-weight:400;letter-spacing:.04em}
.bb-x{font-family:var(--mono);font-size:12px;color:var(--red);letter-spacing:.12em}
.bb-tbd{font-size:14px;color:var(--mute)}
.bb-facts{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 0;border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)}
.bb-f{font-family:var(--mono);font-size:11.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.bb-f b{color:var(--chalk);font-family:var(--disp);font-weight:700}
.bb-p{margin:0;padding-left:17px;display:flex;flex-direction:column;gap:5px}
.bb-p li{font-size:12.5px;color:var(--chalk);line-height:1.65}
.bb-m,.bb-b{font-size:12px;color:var(--mute);line-height:1.6}
.bb-s{display:flex;gap:10px}
.bb-s a{font-size:10.5px;color:var(--mute);font-family:var(--mono)}
/* 🆕注目の一戦からの導線（関連ニュース／コメント／選手ページ）。⛔カードを長くしない＝1行に小さく */
.bb-l{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;
  border-top:1px solid var(--line);padding-top:9px;font-size:12px}
.bb-l>a{color:var(--chalk);text-decoration:none;border-bottom:1px solid var(--line2)}
.bb-l>a:hover{border-color:var(--red)}
.bb-l .c{font-family:var(--mono);font-size:10.5px;color:var(--mute);margin-left:4px}
.bb-who{color:var(--mute);font-size:11.5px}
.bb-who a{color:var(--chalk)}
.bbcm{border:1px solid var(--line);border-radius:var(--r);background:var(--card);
  padding:0 13px;margin:10px 0}
.bbcm>summary{cursor:pointer;padding:12px 0;font-weight:700;font-size:14px}
.bbcm[open]>summary{border-bottom:1px solid var(--line);margin-bottom:10px}
.bbcm .cm{margin-bottom:13px}
.nnav{margin:14px 0 4px}
/* ---- 顔写真（Wikimedia Commons・自由ライセンスのみ） ----
   🔴クレジットは装飾ではなく**ライセンスの条件**なので、写真を出すページには必ず一緒に出す。 */
.facewrap.hasfoto{flex:0 0 132px}
.pfoto{width:132px;height:132px;object-fit:cover;object-position:50% 22%;border-radius:var(--r);
  border:1px solid var(--line2);background:var(--card2);display:block}
.pcred{font-size:9.5px;line-height:1.45;color:var(--mute);margin-top:6px;text-align:left;
  word-break:break-word}
.pcred a{color:var(--mute);text-decoration:underline;text-underline-offset:2px}
@media(max-width:520px){.facewrap.hasfoto{flex:0 0 108px}
  .pfoto{width:108px;height:108px}}
.face{display:block}
.face text{font-family:"Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif}
.pc .face{flex:0 0 40px}
.tape .body{flex:1;min-width:230px}
.rec{font-family:var(--mono);font-size:clamp(30px,7vw,44px);font-weight:700;letter-spacing:.02em;
  font-variant-numeric:tabular-nums;line-height:1.1;display:flex;align-items:baseline;gap:2px}
.rec b{font-weight:700;color:var(--win)} .rec i{font-style:normal;color:var(--loss)}
.rec s{text-decoration:none;color:var(--draw)}
.rec em{font-style:normal;color:var(--mute);font-size:.42em;letter-spacing:.16em;padding-left:10px}
.reclbl{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--mute);
  text-transform:uppercase;margin-bottom:2px}
.kobar{height:4px;background:var(--line);border-radius:2px;margin:12px 0 6px;overflow:hidden;max-width:320px}
.kobar span{display:block;height:100%;background:var(--red)}
.kotxt{font-family:var(--mono);font-size:11px;color:var(--mute);letter-spacing:.08em}
.badge{display:inline-block;font-size:11px;padding:3px 9px;border-radius:var(--r);
  border:1px solid var(--line2);color:var(--mute);margin:0 5px 5px 0;letter-spacing:.04em}
.badge.gold{border-color:var(--belt);color:var(--belt)}
.badge.cr{border-color:var(--red);color:var(--red)}

/* ---- 戦績＝取組表 ---- */
.bouts{display:flex;flex-direction:column;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.bout{background:var(--card);padding:12px 14px;display:grid;gap:8px;
  grid-template-columns:84px 1fr auto;align-items:center}
.bout:hover{background:var(--card2)}
.bout .d{font-family:var(--mono);font-size:11.5px;color:var(--mute);letter-spacing:.02em;white-space:nowrap}
.bout .r{font-family:var(--disp);font-weight:900;font-size:13px;letter-spacing:.1em;
  justify-self:end;padding:2px 9px;border-radius:var(--r)}
.bout .r.w{color:var(--win);border:1px solid var(--win)}
.bout .r.l{color:var(--loss);border:1px solid var(--loss)}
.bout .r.d{color:var(--draw);border:1px solid var(--line2)}
.bout .op{font-weight:700;font-size:15px;line-height:1.3}
.orec{font-family:var(--mono);font-size:11px;color:var(--belt);margin-left:7px;
  border:1px solid var(--belt);border-radius:var(--r);padding:0 5px;vertical-align:2px;
  font-variant-numeric:tabular-nums}
.bout .met{font-family:var(--mono);font-size:11.5px;color:var(--mute);letter-spacing:.03em}
.bout .sub{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px;align-items:center;
  font-family:var(--mono);font-size:11px;color:var(--mute)}
@media(max-width:520px){
  .bout{grid-template-columns:1fr auto}
  .bout .d{grid-column:1 / -1}
}

.acat{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  padding:2px 8px;border-radius:var(--r);border:1px solid var(--line2);color:var(--mute);
  margin-right:8px;vertical-align:1px}
.acat.cA{border-color:var(--blue);color:var(--blue)}
.acat.cB{border-color:var(--belt);color:var(--belt)}
.acat.cC{border-color:var(--win);color:var(--win)}
.acat.cD{border-color:var(--red);color:var(--red)}

.jbc{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--belt);
  border:1px solid var(--belt);border-radius:var(--r);padding:1px 6px}

/* ---- 🥊スコアカード（この競技だけの見せ場・3人のジャッジ） ---- */
.sc{display:inline-flex;gap:4px;flex-wrap:wrap;align-items:center}
.sc .j{display:inline-grid;grid-template-columns:auto auto;font-family:var(--mono);font-size:11.5px;
  border:1px solid var(--line2);border-radius:var(--r);overflow:hidden;font-variant-numeric:tabular-nums}
.sc .j span{padding:1px 7px}
.sc .j .a{border-right:1px solid var(--line2)}
.sc .j .a.hi{background:var(--red-dim);color:var(--red);font-weight:700}
.sc .j .b.hi{background:var(--blue-dim);color:var(--blue);font-weight:700}
.sc .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--mute);
  text-transform:uppercase}
/* 🔴審判ページ: 3人ぶんを並べた時に「この人の採点」を枠で示す */
.sc .j.me{border:2px solid var(--fg);box-shadow:0 0 0 2px var(--card)}
.sc .j.me::after{content:'この人';display:block;grid-column:1 / -1;font-size:8.5px;
  text-align:center;letter-spacing:.1em;color:var(--mute);border-top:1px solid var(--line2)}

/* ---- 審判員ページの指標カード（数字＋意味＋全体との比較を必ずセットで出す）---- */
.stat .why{font-size:12px;line-height:1.6;color:var(--sub);margin-top:6px}
.cmp{margin-top:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cbar{position:relative;flex:1;min-width:110px;height:6px;background:var(--line);
  border-radius:3px;overflow:visible}
.cbar i{display:block;height:100%;background:var(--belt);border-radius:3px}
.cbar u{position:absolute;top:-4px;width:2px;height:14px;background:var(--fg);opacity:.55;
  text-decoration:none}
.ctxt{font-family:var(--mono);font-size:10.5px;color:var(--mute);letter-spacing:.06em;
  white-space:nowrap}
.kinds{margin:14px 0 4px}
.kbar{display:flex;height:12px;border-radius:var(--r);overflow:hidden;background:var(--line)}
.kbar i{display:block}
.kbar .jd{background:var(--line2)} .kbar .tk{background:var(--red)}
.kbar .rs{background:var(--belt)} .kbar .ko{background:var(--blue)}
.kkeys{display:flex;flex-wrap:wrap;gap:10px;margin-top:7px;font-family:var(--mono);
  font-size:11px;color:var(--mute)}
.kkeys .k::before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;
  margin-right:5px;background:var(--line2)}
.kkeys .tk::before{background:var(--red)} .kkeys .rs::before{background:var(--belt)}
.kkeys .ko::before{background:var(--blue)}

/* ---- コーナー（赤/青）---- */
.cn{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;
  transform:translateY(-1px)}
.cn.red{background:var(--red)} .cn.blue{background:var(--blue)}

/* ---- 表（興行・ランキング）---- */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r)}
table{border-collapse:collapse;width:100%;font-size:13px;min-width:540px;background:var(--card)}
th,td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
th{background:var(--card2);font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  color:var(--mute);text-transform:uppercase;font-weight:400}
td.num,td.sc2{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--mute)}
td.w{color:var(--win);font-weight:700} td.l{color:var(--loss);font-weight:700} td.d{color:var(--draw)}
tbody tr:last-child td{border-bottom:0}
details.fold>summary{cursor:pointer;font-size:13px;color:var(--mute);margin:6px 0}

/* ---- 🥊試合テーブルのスマホ対応：横スクロールさせず 1試合=1カード に組み替える ----
   対象は .bt（興行の結果 .bt-r ／ 予定 .bt-s）だけ。ランキング等の表は従来どおり横スクロール。
   デスクトップは表のまま（この@media内しか効かない）。tdのクラスは build_cards/build_schedule が出す。 */
@media(max-width:640px){
  .tw.bw{overflow:visible;border:0;border-radius:0}
  table.bt{display:block;min-width:0;background:transparent}
  .bt thead{display:none}
  .bt tbody{display:grid;gap:10px}
  .bt tr{display:grid;align-items:center;column-gap:10px;row-gap:3px;
    background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:11px 13px}
  .bt td{display:block;border:0;padding:0;white-space:normal;min-width:0}
  .bt td:empty{display:none}
  .bt-r tr{grid-template-columns:auto 1fr auto;
    grid-template-areas:"no wc dec" "red red mk" "blue blue blue" "sc sc sc"}
  .bt-s tr{grid-template-columns:auto 1fr auto;
    grid-template-areas:"no wc rds" "red red red" "blue blue blue" "time time time"}
  .bt .bno{grid-area:no} .bt .bwc{grid-area:wc} .bt .bdec{grid-area:dec}
  .bt .bred{grid-area:red} .bt .bmk{grid-area:mk} .bt .bblue{grid-area:blue}
  .bt .bsc{grid-area:sc} .bt .brds{grid-area:rds} .bt .btime{grid-area:time}
  .bt .bno,.bt .bwc,.bt .brds,.bt .btime{font-family:var(--mono);font-size:11px;
    color:var(--mute);letter-spacing:.06em}
  .bt .bno::before{content:"#"}
  .bt .bdec{font-family:var(--mono);font-size:12px;text-align:right}
  .bt .brds{text-align:right}
  .bt .bred,.bt .bblue{font-size:15px;font-weight:700;line-height:1.5;margin-top:2px}
  .bt .bred::before,.bt .bblue::before{content:"";display:inline-block;width:8px;height:8px;
    border-radius:50%;margin-right:7px;transform:translateY(-1px)}
  .bt .bred::before{background:var(--red)} .bt .bblue::before{background:var(--blue)}
  .bt .bred .mt,.bt .bblue .mt{display:block;font-size:11px;font-weight:400;color:var(--mute);
    margin-left:15px}
  .bt .bred br,.bt .bblue br{display:none}
  .bt .bmk{font-size:16px;line-height:1}
  .bt .bsc{margin-top:7px;padding-top:8px;border-top:1px dashed var(--line);
    font-size:12px;color:var(--mute)}
  .bt .btime:not(:empty)::before{content:"開始予定 "}
  /* 🔴フィルタで隠した行。.bt tr{display:grid} が UA の [hidden]{display:none} を上書きして
     しまうため、明示的に消す（これが無いとスマホだけ絞り込みが効かない）。 */
  .bt tr[hidden]{display:none}
  /* 世界王者一覧（champions.html）＝獲得日・選手・団体・階級・防衛・在位終了 の6列 */
  .bt-c tr{grid-template-columns:1fr auto;
    grid-template-areas:"nm nm" "org wc" "won end" "def def"}
  .bt .cnm{grid-area:nm} .bt .corg{grid-area:org} .bt .cwc{grid-area:wc}
  .bt .cwon{grid-area:won} .bt .cend{grid-area:end} .bt .cdef{grid-area:def}
  .bt .cnm{font-size:15px;font-weight:700;line-height:1.5}
  .bt .corg{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--mute)}
  .bt .cwc{font-size:12.5px;text-align:right}
  .bt .cwon,.bt .cend{font-family:var(--mono);font-size:11px;color:var(--mute)}
  .bt .cwon::before{content:"獲得 "}
  .bt .cend{text-align:right}
  .bt .cend::before{content:"終了 "}
  .bt .cend.cnow::before{content:none}
  .bt .cdef{font-size:11px;color:var(--mute);margin-top:6px;padding-top:7px;
    border-top:1px dashed var(--line)}
  .bt .cdef::before{content:"防衛 "}
  .bt .cdef::after{content:"回"}
  /* パウンド・フォー・パウンド（p4p.html）＝順位・選手・王座・活動年・対戦数・スコア・偏差値 */
  .bt-p tr{grid-template-columns:auto 1fr auto;
    grid-template-areas:"rk nm nm" "org yr yr" "bo sc hs"}
  .bt .prk{grid-area:rk;font-family:var(--disp);font-weight:900;font-size:16px;color:var(--belt)}
  .bt .pnm{grid-area:nm;font-size:15px;font-weight:700;line-height:1.5}
  .bt .porg{grid-area:org;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--mute)}
  .bt .pyr{grid-area:yr;font-family:var(--mono);font-size:11px;color:var(--mute);text-align:right}
  .bt .pbo,.bt .psc,.bt .phs{font-family:var(--mono);font-size:11.5px;color:var(--mute);
    margin-top:7px;padding-top:8px;border-top:1px dashed var(--line)}
  .bt .pbo{grid-area:bo} .bt .psc{grid-area:sc;text-align:center} .bt .phs{grid-area:hs;text-align:right}
  .bt .pbo::before{content:"対戦 "} .bt .pbo::after{content:"戦"}
  .bt .psc::before{content:"スコア "} .bt .psc b{color:var(--chalk);font-size:13px}
  .bt .phs::before{content:"偏差値 "}
  /* 階級を考慮した総合評価（p4p_class.html）＝上記+階級・階級補正・補正後 */
  .bt-pc tr{grid-template-columns:auto 1fr auto;
    grid-template-areas:"rk nm nm" "org yr yr" "bo sc sc" "wc bn adj"}
  .bt .pwc,.bt .pbn,.bt .padj{font-family:var(--mono);font-size:11.5px;color:var(--mute);
    margin-top:7px;padding-top:8px;border-top:1px dashed var(--line)}
  .bt .pwc{grid-area:wc} .bt .pbn{grid-area:bn;text-align:center} .bt .padj{grid-area:adj;text-align:right}
  .bt .pbn::before{content:"補正 "}
  .bt .padj::before{content:"→ "} .bt .padj b{color:var(--belt);font-size:13px}
}

/* ---- 注記 ---- */
.note{font-size:12px;color:var(--mute);border-left:2px solid var(--line2);padding:8px 0 8px 14px;
  margin:14px 0;line-height:1.75}
.note.warn{border-left-color:var(--belt)}
.empty{color:var(--mute);font-size:13px;padding:22px;text-align:center;
  border:1px dashed var(--line2);border-radius:var(--r)}

/* ---- ヒーロー検索（このサイトに来る理由そのものを最初に置く）---- */
.hero{display:flex;gap:8px;margin:20px 0 22px;max-width:560px}
/* 🔴min-width:0 が無いと flex は「中身の最小幅」を割れず、代わりに**ボタン側が潰れる**。
   実測(2026-08-05 render_check): 320pxで「さがす」が幅15px×高さ62px＝1文字ずつ縦積みになっていた。 */
.hero input{flex:1 1 auto;min-width:0;padding:14px 16px;border:1px solid var(--line2);
  border-radius:var(--r);background:var(--card);color:var(--chalk);font-size:16px;font-family:inherit}
.hero input::placeholder{color:var(--mute)}
/* 🔴flex:0 0 auto＋white-space:nowrap＝ボタンは文字ぶんの幅を必ず確保する（縮む側は入力欄） */
.hero button{flex:0 0 auto;white-space:nowrap;padding:0 20px;border:0;border-radius:var(--r);
  background:var(--red);color:#fff;
  font-family:var(--disp);font-weight:800;font-size:14px;letter-spacing:.1em;cursor:pointer}
.hero button:hover{background:color-mix(in srgb,var(--red) 82%,#000)}

/* ---- 選手のフォロー ---- */
.pfbtn{margin-top:12px;padding:9px 16px;min-height:40px;border:1px solid var(--line2);
  border-radius:var(--r);background:transparent;color:var(--chalk);font-family:inherit;
  font-size:13.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.pfbtn:hover{border-color:var(--red)}
.pfbtn.on{background:var(--red);border-color:var(--red);color:#fff}
#oshi .ol,#oshi .ox{display:block;font-size:11.5px;color:var(--mute);margin-top:2px}
#oshi .ox{color:var(--red)}

/* ---- コメント欄（記事ページのみ・Pages Functions + D1）---- */
.cm{margin:26px 0 8px}
.cm-list{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.cm-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.cm-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin-bottom:4px}
.cm-nm{font-weight:700;color:var(--chalk)}
.cm-at{font-size:12px;color:var(--mute)}
/* 🔴投稿は読者の文章＝**改行を保ち、長い語も必ず折り返す**（URLは弾いているが人名の連続で崩れる） */
.cm-bd{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}
.cm-form{display:flex;flex-direction:column;gap:8px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);padding:14px}
.cm-form input,.cm-form textarea{padding:10px 12px;border:1px solid var(--line2);
  border-radius:var(--r);background:var(--bg);color:var(--chalk);font-size:16px;
  font-family:inherit;width:100%;box-sizing:border-box}
.cm-form textarea{min-height:96px;resize:vertical}
.cm-form .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* ⚠️ボタンは縮む側に回さない（.hero と同じ罠＝flexで文字が縦積みになる） */
.cm-form button{flex:0 0 auto;white-space:nowrap;padding:10px 20px;border:0;
  border-radius:var(--r);background:var(--red);color:#fff;font-family:var(--disp);
  font-weight:800;font-size:14px;letter-spacing:.08em;cursor:pointer;min-height:40px}
.cm-form button[disabled]{opacity:.5;cursor:default}
.cm-msg{font-size:13px;color:var(--mute)}
/* ハニーポット＝人には見えないが、機械には見える入力欄 */
.cm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---- 検索 ---- */
.sbox{display:flex;gap:10px;align-items:center;margin:16px 0}
.sbox input{flex:1;padding:11px 14px;border:1px solid var(--line2);border-radius:var(--r);
  background:var(--card);color:var(--chalk);font-size:15px;font-family:inherit}
.sbox input::placeholder{color:var(--mute)}
.sbox .cnt{font-family:var(--mono);font-size:11px;color:var(--mute);letter-spacing:.1em;white-space:nowrap}
/* 絞り込み（階級・年代）のドロップダウン。スマホでは2列で折り返す。 */
.sbox.fbox{flex-wrap:wrap}
.sbox select{flex:1 1 190px;min-width:0;padding:11px 12px;border:1px solid var(--line2);
  border-radius:var(--r);background:var(--card);color:var(--chalk);font-size:15px;
  font-family:inherit;-webkit-appearance:none;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--mute) 50%),
    linear-gradient(135deg,var(--mute) 50%,transparent 50%);
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}
.sbox select:focus{outline:2px solid var(--line2);outline-offset:1px}

/* ---- タグ列 ---- */
.tags{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.tags a{font-size:12.5px;padding:7px 13px;border:1px solid var(--line2);border-radius:var(--r);
  color:var(--chalk);letter-spacing:.03em}
.tags a:hover{border-color:var(--red);text-decoration:none}

/* ---- Instagramの公式カード（埋め込み）---- */
.igbox{margin:14px 0;padding:10px;background:var(--card);border:1px solid var(--line2);
  border-radius:var(--r);max-width:562px}

/* ---- SNS（本家のアイコン）---- */
.sns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.sns a{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid var(--line2);
  border-radius:var(--r);font-size:12.5px;font-family:var(--mono);color:var(--chalk)}
.sns a:hover{text-decoration:none;border-color:currentColor}
.sns svg{width:16px;height:16px;display:block;flex:0 0 16px}
.sns .x:hover{color:var(--chalk)}
.sns .ig:hover{color:#e1306c}
.sns .yt:hover{color:#ff0033}
.sns .fb:hover{color:#1877f2}
.sns .web:hover{color:var(--belt)}

/* ---- 外部ニュース（見出し＋配信元＋日付のみ。本文は持たない）2026-08-05 ---- */
.nlist{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:10px}
.nlist li{background:var(--card);border:1px solid var(--line2);border-radius:var(--r)}
.nlist li>div{padding:12px 14px}
.nlist a{color:var(--chalk);font-weight:700;font-size:14.5px;line-height:1.55}
.nlist a:hover{color:var(--red);text-decoration:none}
.nlist .meta{display:block;font-family:var(--mono);font-size:10.5px;color:var(--mute);
  margin-top:6px;font-weight:400}
/* サムネは配信元の og:image を**そのまま参照**（保存・加工なし）。取れない記事の方が多いので、
   無い時に崩れない作り＝画像は「在れば」右列に入る。onerror で親のクラスごと外れる。 */
.nlist li.nth{display:grid;grid-template-columns:1fr 96px;gap:0;align-items:start}
.nlist li.nth .th{width:96px;height:64px;object-fit:cover;border-radius:0 var(--r) var(--r) 0;
  background:var(--card2);display:block}
/* 一覧ページはサムネ上・見出し下のカード格子（見出しが長くても写真が離れない） */
.nlist.ngrid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}
.nlist.ngrid li,.nlist.ngrid li.nth{display:flex;flex-direction:column;padding:0;overflow:hidden}
.nlist.ngrid li.nth .th{order:-1;width:100%;height:auto;aspect-ratio:16/9;
  border-radius:0;border-bottom:1px solid var(--line2)}
/* 選手別の話題（news/players.html）。名前ごとのカードを並べる */
.ncards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:14px 0}
.ncard{background:var(--card2);border:1px solid var(--line2);border-radius:var(--r);padding:13px}
.ncard h3{margin:0 0 9px;font-size:15px}
.ncard .nlist{margin-bottom:0}
.nchips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.nchip{font:inherit;font-size:12.5px;padding:7px 12px;border:1px solid var(--line2);
  border-radius:var(--r);background:var(--card);color:var(--chalk);cursor:pointer}
.nchip:hover{border-color:var(--red)}
.nchip[aria-pressed=true]{border-color:var(--red);background:var(--card2)}
.nchip .c{font-family:var(--mono);font-size:10.5px;color:var(--mute);margin-left:6px}

/* ---- 関連ニュース ---- */
.news{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden}
.nw{display:block;background:var(--card);padding:11px 14px;color:var(--chalk)}
.nw:hover{background:var(--card2);text-decoration:none}
.nwt{display:block;font-size:14px;font-weight:700;line-height:1.45}
.nw .mt{display:block;font-family:var(--mono);font-size:10.5px;margin-top:3px}

/* ---- 次戦 ---- */
.next{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--belt);
  border-radius:var(--r);padding:15px 17px;margin:14px 0}
.next .nd{font-family:var(--mono);font-size:19px;letter-spacing:.04em;margin:2px 0 6px;
  font-variant-numeric:tabular-nums}
.next .no{font-size:19px;font-weight:800;line-height:1.4}

/* ---- 追う／カレンダー ---- */
.follow{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0}
.fbtn,.icsbtn{font-family:var(--disp);font-weight:800;font-size:13px;letter-spacing:.08em;
  padding:10px 16px;border-radius:var(--r);cursor:pointer;border:1px solid var(--red);
  background:transparent;color:var(--red)}
.fbtn.on{background:var(--red);color:#fff}
.icsbtn{border-color:var(--line2);color:var(--chalk)}
.icsbtn:hover,.fbtn:hover{text-decoration:none;border-color:var(--belt);color:var(--belt)}
.fbtn.on:hover{color:#fff}

/* ---- 会場周辺の宿 ---- */
.hotels{display:grid;gap:9px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:12px 0}
.hotel{display:block;background:var(--card);border:1px solid var(--line);border-left:2px solid var(--belt);
  border-radius:var(--r);padding:12px 14px;color:var(--chalk)}
.hotel:hover{border-color:var(--belt);text-decoration:none}
.hotel .ht{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--mute);
  text-transform:uppercase;margin-bottom:3px}
.hotel .hn{display:block;font-weight:700;font-size:14px;line-height:1.4}
.hotel .hp{display:block;font-family:var(--mono);font-size:13px;color:var(--belt);margin-top:4px;
  font-variant-numeric:tabular-nums}
.hotel .ha{display:block;font-size:11.5px;color:var(--mute);margin-top:3px}

/* ---- 「対戦相手の質」の表：狭い画面では印の3列を1列に畳む（2026-08-09）。
   由来＝ユーザー報告「はみ出てたり」。実測で390px幅に対して表が655pxあった。
   ⛔列を消して情報を減らすのではなく、○が付いた条件だけを言葉にして1マスに入れる。 ---- */
.mk{display:none}
/* 🔴🔴2026-08-09 はみ出しの**根本原因**＝`table{min-width:540px}` が全部の表に効いていて、
   390pxのスマホでは**どの表も必ず横スクロールになる**設定だった（ユーザー報告「はみ出てたり」）。
   ⇒ 狭い画面では下限を外す。
   ⛔`white-space:normal` を全セルに掛けてはいけない＝狭い列で**1文字ずつ縦に潰れる**
   （実測で `王者` が12×36px・`render_check` が致命11件で公開を止めた。1度やって直した）。
   ⇒ 折り返すのは**長い文が入る `.mk` だけ**にし、そこには潰れ防止の下限幅を入れる。 */
@media (max-width:560px){
  table{min-width:0;font-size:12px}
  th,td{padding:7px 8px}
  table .wide{display:none}
  table .mk{display:table-cell;font-size:10.5px;color:var(--mute);line-height:1.35;
    white-space:normal;min-width:62px;max-width:78px}
}

/* ---- 雑誌の定期購読（Fujisan・2026-08-08）。.hotel と同じ作りに揃える。
   🔴表紙の見本を1枚添える＝将棋側のユーザー指摘「文字だけだと雑誌だと分からない」への対応 ---- */
.mg{display:flex;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);
  border-left:2px solid var(--belt);border-radius:var(--r);padding:12px 14px;color:var(--chalk);margin:12px 0}
.mg:hover{border-color:var(--belt);text-decoration:none}
.mg-c{flex:0 0 auto;width:72px;height:auto;border:1px solid var(--line);border-radius:3px}
.mg-b{display:block;min-width:0}
.mg-n{display:block;font-weight:700;font-size:15px;line-height:1.4}
.mg-m{display:block;font-size:12px;color:var(--mute);margin-top:3px}
.mg-p{display:block;font-family:var(--mono);font-size:13px;color:var(--belt);margin-top:4px;
  font-variant-numeric:tabular-nums}

/* ---- 定義リスト ---- */
.dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:14px;margin:4px 0}
.dl dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--mute);
  text-transform:uppercase;padding-top:3px}
.dl dd{margin:0}

.prtag{display:inline-block;font-family:var(--mono);font-size:11px;color:var(--mute);
  border:1px solid var(--line2);border-radius:var(--r);padding:1px 6px;margin-right:7px}

/* ---- フッタ ---- */
.ft{border-top:1px solid var(--line);padding:28px 0 44px;margin-top:44px;font-size:12px;color:var(--mute)}
.ft-n{font-family:var(--disp);font-weight:900;font-size:15px;letter-spacing:.16em;color:var(--chalk);margin:0 0 10px}
.ft-l{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.ft-c{margin-top:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
