/* 試合記事「ピッチが舞台」（?stage=1）。docs/article-stage-spec.md の「v2」/ docs/design-history/proposals/2026-10-11-article-redesign/r4-b-stage/ の見た目。
   クラブの色は :root の --h / --a 系（stage-page.ts が試合ごとに書く）。
   スマホ（〜760px）は transform / opacity だけを動かす。transition の対象を増やすときは PC だけの @media (min-width:761px) に入れる（test/stage-css.test.ts が検査する）。 */
:root{color-scheme:light only;--bg:#f4f4f1;--paper:#fff;--ink:#16181d;--ink2:#2c3038;--mute:#5b6069;--faint:#8b9099;--line:#d7d8d2;
--pitch:#eef1ea;--pline:#c4c9bc;--red:#d6261c;--ylw:#f2c200;
--ease:cubic-bezier(.2,.7,.2,1);--mv:.5s;--num:"Barlow Condensed","DIN Alternate","Avenir Next Condensed","Roboto Condensed",system-ui,sans-serif}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
.num{font-family:var(--num);font-feature-settings:"tnum";letter-spacing:0}
button{font:inherit;color:inherit}


body.v2{overflow-x:hidden}
/* サイトの足元（説明・プライバシー）は、最後のカード「この記事について」に移した。ページ全体が 1 画面に収まるように */
body.v2 .site-foot{display:none}
.stage [hidden]{display:none!important}

/* ===== 全体の割り付け（v2）: 舞台は画面いっぱい、字幕とカードは舞台の上に浮かぶ（PC。下の「PC: 舞台は画面いっぱい」）、下 = 帯。ページ全体が 1 画面 ===== */
.theatre{position:relative;width:100%;height:100vh;height:100svh;overflow:hidden}
.stage{--col:440px;position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) var(--col);grid-template-rows:minmax(0,1fr) 64px;grid-template-areas:"left side" "bar bar";overflow:hidden;
  background:radial-gradient(120% 70% at 50% 100%,#e9ece4 0%,var(--bg) 60%),var(--bg)}
@media (max-width:1279px){.stage{--col:400px}}
@media (max-width:1099px){.stage{--col:360px}}
.left{grid-area:left;position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;padding-top:52px}
.side{grid-area:side;position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;padding-top:52px;background:var(--paper);border-left:1px solid var(--line);z-index:3}

/* ヘッダー: 画面の上の端に重ねて出す（position: fixed。出しても舞台は動かない。staging の帯があるときはその下）。再生中は隠れる */
.mast{position:absolute;left:0;right:0;top:0;z-index:30;display:flex;align-items:center;gap:14px;height:52px;padding:0 24px;background:#fffffff2;border-bottom:1px solid var(--line);font-size:13px;color:var(--mute);
  transition:transform .25s var(--ease),opacity .25s}
.mast.hid{transform:translateY(-100%);opacity:0;pointer-events:none}
.mast a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none}
.mast .logo{font-weight:800;letter-spacing:.04em;white-space:nowrap}
.mast .site{color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mast .round-name:not(:empty)::before{content:" ・ "}
.mast .site:hover,.mast .logo:hover{text-decoration:underline}
.mast .ai{margin-left:auto;flex:none;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--ink2);white-space:nowrap}
/* 「記事で読む」（?stage=0 の記事ページへ）。2026-10-16 オーナー指示の相互リンク。
   【2026-10-16 決定】PC だけに出す（ヘッダーの札と下の帯）。スマホでは 3 か所とも隠す（下の @media (max-width:760px)）。
   押す所は 44px 以上。ただしヘッダーの札だけは帯の高さに合わせた 32px（PC のマウス操作だけに出る例外。仕様の表にも明記）。 */
.toart{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--ink);border-radius:999px;
  font-size:13px;font-weight:800;color:var(--ink);text-decoration:none;white-space:nowrap;background:var(--paper)}
.toart:hover{background:var(--ink);color:var(--paper)}
.mast .toart{min-height:32px;font-size:12px;padding:0 12px}

/* ===== 舞台の上: スコアボード ===== */
.sky{position:relative;display:flex;justify-content:center;padding:8px 24px 4px;z-index:4;min-width:0}
.sky::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--h) 7%,transparent),transparent 40%,transparent 70%,color-mix(in srgb,var(--aTrk) 11%,transparent));pointer-events:none}
.arena{position:relative;flex:1 1 0;min-width:0;min-height:0;padding:0 16px}
/* 答え合わせの章とハーフタイムは、自分の字幕・丸・棒で説明が足りるのでスコアボードを省き、ピッチを広く使う（指摘8・10・14・16） */
.stage.sky-off .sky{display:none}
/* 評点の章は見出し（「評点」）だけ残し、長い説明（色の意味）だけ省く。見出しまで消すと章の意味が分からなくなる（指摘15） */
.stage.rate-scene #capin p{display:none}

.board{position:relative;display:flex;align-items:center;gap:14px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:8px 16px;box-shadow:0 6px 20px #16181d0f;min-width:0}
.board .tm{display:flex;align-items:center;gap:9px;font-weight:800;font-size:15px;white-space:nowrap}
.board .tm small{display:block;font-weight:500;font-size:12px;color:var(--mute)}
.board .tm i{display:block;width:4px;height:34px;border-radius:2px;background:var(--h)}
.board .tm .sn{display:none}
.board .tm.a{text-align:right}
.board .tm.a i{background:var(--aSw)}
.theatre .board .g{flex:none;display:inline-block;height:56px;overflow:hidden;font-family:var(--num);font-weight:700;font-size:58px;line-height:56px;width:.6em;text-align:center}
.theatre .board .g .roll{display:flex;flex-direction:column;transition:transform .6s cubic-bezier(.3,1.4,.5,1)}
.theatre .board .g .roll i{font-style:normal;display:block;height:56px}
.clock{position:relative;isolation:isolate;min-width:84px;text-align:center;font-family:var(--num);font-weight:700;font-size:24px;line-height:1;padding:7px 10px;border-radius:10px;background:#f1f2ee;color:var(--ink)}
.clock .ckbg{position:absolute;inset:0;border-radius:10px;background:var(--ink);opacity:0;transition:opacity .3s;z-index:-1}
/* 21: 時計の時刻に小さな再生印（再生中だけ）。ピッチの絵の側からも「いま演出が動いている」が分かるように。opacity だけで出し入れする */
.clock .playing{position:absolute;top:3px;right:5px;font-size:8px;line-height:1;color:var(--mute);opacity:0;transition:opacity .2s}
.stop .clock .playing{color:#fffc}
.stage[data-phase="play"] .clock .playing{opacity:1}
.clock small{display:block;white-space:nowrap;font-family:"Zen Kaku Gothic New","Hiragino Sans",sans-serif;font-size:11px;font-weight:700;color:var(--mute);margin-top:3px;letter-spacing:.02em}
.stop .clock{color:#fff}
.stop .clock .ckbg{opacity:1}
.stop .clock small{color:#fffc}
.clock::after{content:"";position:absolute;inset:-4px;border-radius:13px;border:2px solid var(--ink);opacity:0}
.stop .clock::after{animation:ck 1.4s var(--ease) infinite}
.stop.var .clock .ckbg{background:var(--red)}
.stop.var .clock::after{border-color:var(--red)}
.stop.var .mk i{background:var(--red)}
.stop.var .mk i::after{border-color:var(--red)}
@keyframes ck{0%{opacity:.7;transform:scale(.96)}100%{opacity:0;transform:scale(1.18)}}
@media (min-width:761px){
  .clock{transition:color .3s}
  .clock small{transition:color .3s}
}

.pw{position:relative;overflow:hidden;width:100%;height:100%}
/* 指摘1（2026-10-13）: 再生中に次へ／前へで章の最後へ飛ぶ間だけ、丸・線などの transition を止めて瞬間で切り替える（stage.js の jumpToEnd） */
.pw.no-anim,.pw.no-anim *{transition:none !important}
.cam{position:absolute;left:0;top:0;transform-origin:0 0;transition:opacity .6s}
.pt .cam{transition:transform .7s var(--ease),opacity .6s}
.cam svg{position:absolute;left:0;top:0;overflow:visible}
#gTrack{transition:opacity .4s}
.strip{position:absolute;display:none;transition:transform var(--mv) var(--ease),opacity .5s}
.pt .strip{display:block}
.strip.h{background:linear-gradient(0deg,color-mix(in srgb,var(--h) 17%,transparent),color-mix(in srgb,var(--h) 8%,transparent));transform-origin:0 100%}
.strip.a{background:linear-gradient(180deg,color-mix(in srgb,var(--aTrk) 27%,transparent),color-mix(in srgb,var(--aTrk) 15%,transparent));transform-origin:0 0}
.strip.b{height:2px;background:#16181d70;transform-origin:0 0}
.net.rip{animation:rip 1.4s var(--ease)}
@keyframes rip{0%{opacity:1}15%{opacity:.2}30%{opacity:1}45%{opacity:.35}100%{opacity:1}}
.seg{transition:opacity .25s}
.nw{white-space:nowrap}
.paint{transition:opacity .45s;font-family:var(--num);font-weight:700}
.paint.jp{font-family:"Zen Kaku Gothic New","Hiragino Sans",sans-serif;font-weight:800}

.layer{position:absolute;inset:0}
.theatre .flash{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 5px var(--h);opacity:0}
.theatre .flash.aw{box-shadow:inset 0 0 0 5px var(--aTrk)}
.theatre .flash.r{box-shadow:inset 0 0 0 6px var(--red)}
.theatre .flash.on{animation:fl 1.2s var(--ease)}
@keyframes fl{0%{opacity:0}20%{opacity:1}100%{opacity:0}}

/* ピッチの外周の時計: 針・旗・目盛り */
.theatre .mk{position:absolute;left:0;top:0;z-index:6;transition:opacity .3s;pointer-events:none}
.theatre .mk i{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--ink);border:3px solid #fff;box-shadow:0 1px 4px #16181d55}
.theatre .mk i::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid var(--ink);opacity:0}
.stop .mk i::after{animation:ring 1.4s infinite}
.mkl{position:absolute;left:0;top:0;z-index:6;font-family:var(--num);font-weight:700;font-size:17px;color:var(--ink);white-space:nowrap;transform-origin:0 0;
  text-shadow:0 0 3px var(--bg),0 0 3px var(--bg),0 0 4px var(--bg);transition:opacity .3s;pointer-events:none}
.mkl span{display:block;transform:translate(-50%,-50%)}
.tkl{position:absolute;left:0;top:0;z-index:5;font-family:var(--num);font-weight:700;font-size:12px;color:var(--mute);white-space:nowrap;pointer-events:none;text-shadow:0 0 3px var(--bg),0 0 3px var(--bg)}
.tkl span{display:block;transform:translate(-50%,-50%)}
.flag{position:absolute;left:0;top:0;z-index:5;opacity:0;transition:opacity .3s;pointer-events:none}
.flag i{position:absolute;display:block;transform:scale(var(--fk,1));transition:transform .45s cubic-bezier(.3,1.5,.5,1)}
.flag.fy i{width:10px;height:13px;margin:-6.5px 0 0 -5px;border-radius:1.5px;background:var(--ylw);box-shadow:0 1px 2px #0005}
.flag.fr i{width:10px;height:13px;margin:-6.5px 0 0 -5px;border-radius:1.5px;background:var(--red);box-shadow:0 1px 2px #0005}
.flag.fg i{width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;border:3.5px solid var(--ink);box-shadow:0 0 0 2px #fff,0 1px 4px #16181d66}
.flag.fv i{width:13px;height:13px;margin:-6.5px 0 0 -6.5px;border-radius:3px;background:var(--paper);border:3px solid var(--red);box-shadow:0 1px 3px #16181d55}
.flag.fm i{width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--paper);border:3px dashed var(--ink);box-shadow:0 1px 3px #16181d55}
.flag.fv b{color:var(--red)}
.flag.up i{--fk:1.6}
.flag b{position:absolute;left:0;top:0;white-space:nowrap;font-size:13px;font-weight:800;color:var(--ink);opacity:0;transition:opacity .3s;
  text-shadow:0 0 3px var(--bg),0 0 3px var(--bg),0 0 4px var(--bg)}
.flag.fr b{color:var(--red)}
.flag.up b{opacity:1}

/* 選手 */
.theatre #dots .dot{position:absolute;left:0;top:0;--k:1;transition:transform var(--mv) var(--ease),opacity .5s;will-change:transform;z-index:3}
.theatre #dots .dot{cursor:pointer}
.theatre #dots .dot.inactive{pointer-events:none}
.theatre #dots .dot::before{content:"";position:absolute;inset:-22px;z-index:1}
.theatre #dots .dot:hover,.theatre #dots .dot:focus-visible{z-index:9}
.theatre #dots .dot.sel{z-index:9}
.theatre #dots .dot.sel .c{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--ink),0 3px 6px #16181d38}
.theatre #dots .dot:focus-visible .c{outline:3px solid var(--ink);outline-offset:4px}
.theatre #dots .dot .hover-name{position:absolute;left:0;top:calc(var(--d)*.65 + 9px);transform:translateX(-50%) translateY(4px);opacity:0;pointer-events:none;white-space:nowrap;z-index:10;padding:5px 9px;border:1px solid var(--line);border-radius:5px;background:var(--paper);box-shadow:0 3px 12px #16181d26;font-size:13px;font-weight:800;color:var(--ink);line-height:1.25;transition:transform .18s,opacity .18s}
.theatre #dots .dot .hover-name small{display:block;font-size:11px;font-weight:600;color:var(--mute)}
@media (hover:hover) and (pointer:fine){.theatre #dots .dot:hover .hover-name{opacity:1;transform:translateX(-50%) translateY(0)}}
.theatre #dots .dot:focus-visible .hover-name{opacity:1;transform:translateX(-50%) translateY(0)}
.theatre #dots .dot .c{position:absolute;left:0;top:0;width:var(--d);height:var(--d);margin:calc(var(--d)/-2) 0 0 calc(var(--d)/-2);border-radius:50%;display:grid;place-items:center;
  font-family:var(--num);font-weight:700;font-size:calc(var(--d)*.48);background:var(--h);color:var(--hT);box-shadow:0 3px 6px #16181d38;transform:scale(var(--k));transition:transform .45s var(--ease),opacity .4s}
.theatre #dots .dot.a .c{background:var(--aSw);color:var(--aT)}

.pcard-box.stage-pcard{max-height:calc(100svh - 16px);overflow:auto;--c:var(--hInk);border-top-color:var(--c)}
.stage-pcard .pc-h{padding-right:25px}
.stage-pcard .pc-h small{letter-spacing:0}
.stage-pcard .pcard-x{width:44px;height:44px;top:2px;right:2px}
.stage-pcard .stage-pcaption{margin-top:12px;font-size:11px;font-weight:800;color:var(--mute)}
.stage-pcard .stage-pstats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:5px}
.stage-pcard .stage-pstats.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stage-pcard .stage-pstats.c1{grid-template-columns:minmax(0,1fr)}
.stage-pcard .stage-pstats em{display:block;margin-top:1px;font-style:normal;font-size:10.5px;font-weight:700;color:var(--mute)}
.stage-pcard .stage-pstats span{min-width:0;padding:6px 9px;background:linear-gradient(125deg,color-mix(in srgb,var(--c) 9%,#fff),#fff);border-left:2px solid var(--c);border-radius:3px}
.stage-pcard .stage-pstats small{display:block;color:var(--ink2);font-size:11px;line-height:1.25}
.stage-pcard .stage-pstats b{display:block;font-family:var(--num);font-size:24px;line-height:1.1}
.stage-pcard .stage-pempty{margin:8px 0;color:var(--mute);font-size:12px}
.stage-pcard .stage-pstyle{margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.stage-pcard .stage-pstyle b{font-size:11px;color:var(--mute)}
.stage-pcard .stage-pstyle p{margin:2px 0 0;max-height:3.2em;overflow:hidden;line-height:1.6}
.stage-pcard .stage-pstyle small{display:block;margin-top:2px;color:var(--mute);font-size:10px}
@media (max-width:760px){.stage-pcard{max-height:min(65svh,540px)}.stage-pcard .stage-pstats b{font-size:22px}.theatre #dots .dot .hover-name{display:none}}
.theatre #dots .dot .lb{position:absolute;left:0;top:calc(var(--d)*var(--k)/2 + 7px);transform:translateX(-50%) scale(.8);opacity:0;white-space:nowrap;font-size:var(--fs);font-weight:800;color:var(--ink);text-align:center;line-height:1.2;
  text-shadow:0 0 3px var(--pitch),0 0 3px var(--pitch),0 0 4px var(--pitch),0 0 4px var(--pitch);transition:opacity .3s,transform .4s var(--ease)}
.theatre #dots .dot .lb small{display:block;font-size:12px;font-weight:700;color:var(--ink2)}
.theatre #dots .dot:not(.named) .lb{pointer-events:none}
.theatre #dots .dot.named .lb{opacity:1;transform:translateX(-50%) scale(1)}
.theatre #dots .dot.side .lb{left:calc(var(--d)*var(--k)/2 + 7px);top:0;transform:translate(0,-50%) scale(.8)}
.theatre #dots .dot.side.named .lb{transform:translate(0,-50%) scale(1)}
/* low L6（2026-10-16 レビュー round 9）: クラブカラーが黄色のチーム（ビジャレアルなど）では、丸の上の黄色い札が
   同系色で見分けられなかった（影だけで輪郭が無い）。色を増やさず、黒い細い輪郭（文字と同じ黒）で縁取る。 */
.theatre #dots .dot .cd{position:absolute;left:calc(var(--d)*.26);top:calc(var(--d)*-.66);width:calc(var(--d)*.34);height:calc(var(--d)*.46);border-radius:2px;background:var(--ylw);box-shadow:0 0 0 1.2px #16181dd9,0 1px 3px #0004;transform:scale(0) rotate(12deg);transition:transform .4s var(--ease)}
.theatre #dots .dot .cd.on{transform:scale(var(--k)) rotate(12deg)}
.theatre #dots .dot .cd.r{background:var(--red)}
.theatre #dots .dot .cd.v::after{content:"VAR";position:absolute;left:100%;top:50%;margin-left:3px;transform:translateY(-50%);font-family:var(--num);font-weight:800;font-size:calc(var(--d)*.3);line-height:1;color:var(--red);background:var(--paper);border:1.5px solid var(--red);border-radius:3px;padding:1px 3px}
.theatre #dots .dot.dim .c{opacity:.22}
.theatre #dots .dot.dim .cd{opacity:.3}
.theatre #dots .dot.hot{z-index:5}
.theatre #dots .dot.top{z-index:6}
.theatre #dots .dot.hot .c{transform:scale(calc(var(--k)*1.25))}
.theatre #dots .dot.hot .c::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--h);opacity:0;animation:ring 1.6s infinite}
.theatre #dots .dot.a.hot .c::after{border-color:var(--aInk)}
@keyframes ring{0%{transform:scale(.85);opacity:.8}100%{transform:scale(1.6);opacity:0}}
.hole{position:absolute;left:0;top:0;z-index:2;transition:transform var(--mv) var(--ease),opacity .5s;opacity:0}
.hole i{transform:scale(var(--hs,1));position:absolute;width:calc(var(--d)*1.1);height:calc(var(--d)*1.1);margin:calc(var(--d)*-.55) 0 0 calc(var(--d)*-.55);border-radius:50%;border:2px dashed var(--red);background:#d6261c0f}
.hole span{position:absolute;left:0;top:calc(var(--d)*.55 + 6px);transform:translateX(-50%);white-space:nowrap;font-size:var(--fs);font-weight:800;color:var(--red);text-align:center;line-height:1.25;
  text-shadow:0 0 3px var(--pitch),0 0 3px var(--pitch),0 0 4px var(--pitch)}

/* 止めの線・ボール・判（位置データの無い模式） */
.ray.pass{background:var(--h);height:3px;margin-top:-1.5px}
.ray.shot{background:var(--h);height:4px;margin-top:-2px}
.ray.pass.a,.ray.shot.a{background:var(--aInk)}
/* M3（2026-10-16 レビュー round 7）: 印は transform:translate(x,y) scale(s) で置く。transform-origin が既定（枠の中央）だと、
   s < 1 のとき印の中心が計算した点から (枠の半分)×(1−s) だけ右下へずれる（実測: 拡大率 0.12 で 4.4px）。
   ゴールの口は小さい（スマホで 33×11px 前後）ので、このずれだけで枠内の印が口の外に出ていた。原点を左上に固定して、
   描かれる中心＝計算した点にする（.in の負の margin が、その点を中心にする役目を持つ）。 */
.em{position:absolute;left:0;top:0;transform-origin:0 0;z-index:4;opacity:0;font-family:var(--num);font-weight:700;line-height:1;transition:opacity .3s}
.em .in{display:block;transform:scale(.3);transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.em.on .in{transform:scale(1)}
.em.bk .in{font-size:26px;color:var(--red);margin:-14px 0 0 -8px}
.ball{position:absolute;left:0;top:0;width:13px;height:13px;margin:-6.5px 0 0 -6.5px;border-radius:50%;background:#fff;border:2.5px solid var(--ink);z-index:6;opacity:0;transition:opacity .25s}
.ball.ghost{border-style:dashed;border-color:var(--red)}
.stamp{position:absolute;left:0;top:0;z-index:7;opacity:0;transition:opacity .35s;pointer-events:none}
.stamp span{display:inline-block;font-weight:900;font-size:22px;letter-spacing:.1em;color:var(--red);border:3px solid var(--red);border-radius:8px;padding:3px 14px;background:#fffe;transform:translate(-50%,-50%) rotate(-7deg) scale(1.6);transition:transform .35s cubic-bezier(.3,1.5,.5,1);white-space:nowrap}
.stamp.on span{transform:translate(-50%,-50%) rotate(-7deg) scale(1)}
.moshiki{position:absolute;left:10px;bottom:10px;z-index:7;opacity:0;transition:opacity .3s;pointer-events:none;font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:1px 9px;background:#fffc}
.moshiki.br{left:auto;right:10px}
.moshiki.tl{bottom:auto;top:10px}
.moshiki.tr{left:auto;right:10px;bottom:auto;top:10px}

/* ちょうつがい: 手前の 2 本の帯（1 マス = 1 分）。ピッチは帯の分だけ縮む */
.hbands{position:absolute;left:10px;right:10px;bottom:8px;z-index:8;display:flex;flex-direction:column;gap:5px;pointer-events:none;opacity:0;will-change:transform,opacity}
.hb{display:flex;align-items:center;gap:10px}
.hn{flex:none;width:72px;display:flex;align-items:baseline;justify-content:center;gap:4px;font-weight:800;line-height:1}
.hn b{font-size:24px;font-weight:700;min-width:.6em;text-align:center}
.hn b.h{color:var(--hInk)}
.hn b.a{color:var(--aInk)}
.hn i{font-style:normal;font-size:12px;color:var(--mute)}
.hc{flex:1;min-width:0}
.theatre .hbands .hl{display:block;font-size:12px;font-weight:700;color:var(--ink2);line-height:1.2;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hcells{display:flex;gap:2px;height:10px}
.hcell{position:relative;flex:1 1 0;min-width:0;background:#16181d14;border-radius:2px;overflow:hidden}
.hcell i{position:absolute;inset:0}
.hcell i.h{background:var(--hTrk)}
.hcell i.a{background:var(--aTrk)}
.hcell i.n{background:#9a9e95}

/* 退場者の跡の名前（スマホは丸の横） */
.hole.side span{left:calc(var(--d)*.55 + 6px);top:0;transform:translateY(-50%);text-align:left}

/* 床の上の線（各列のつなぎ） */
.ray{position:absolute;left:0;top:0;width:100px;height:2px;margin-top:-1px;transform-origin:0 50%;border-radius:2px;z-index:2;opacity:0;transition:transform var(--mv) var(--ease),opacity .4s}
.ray.chain.h{background:color-mix(in srgb,var(--h) 31%,transparent)}
.ray.chain.a{background:color-mix(in srgb,var(--aInk) 38%,transparent)}


/* ===== 字幕（PC は右の欄の上、スマホは舞台の上） ===== */
.theatre #cap{position:relative;flex:none;min-height:0;min-width:0;padding:14px 22px 10px;display:flex;flex-direction:column;align-items:flex-start}
.capin{display:flex;flex-direction:column;min-width:0;max-width:100%;transition:opacity .3s,transform .5s var(--ease)}
.capin.out{opacity:0;transform:translateY(6px)}
.capin .k{font-family:var(--num);font-weight:700;font-size:15px;color:var(--mute);letter-spacing:.02em}
.capin h2{margin:2px 0 6px;font-size:calc(30px*var(--fz,1));line-height:1.2;font-weight:900;letter-spacing:.01em;overflow-wrap:anywhere}
.capin h2:empty{display:none}
.capin h2.ms{--fz:.88}
.capin h2.sm{--fz:.76}
.capin h2.xs{--fz:.64}
.capin h2 b{font-family:var(--num);font-size:1.22em;font-weight:700;display:inline-block;min-width:.6em}
.capin h2 b.h{color:var(--hInk)}
.capin h2 b.a{color:var(--aInk)}
.capin p{margin:0;font-size:15px;line-height:1.55;color:var(--ink2);min-height:1.5em}
.rep{display:none;gap:8px;margin-top:8px;font-size:13.5px;line-height:1.5;color:var(--ink2);opacity:0;transition:opacity .4s}
.rep.on{display:flex;opacity:1}
.rep b{flex:none;align-self:flex-start;margin-top:2px;font-size:11px;font-weight:800;color:#fff;background:var(--mute);border-radius:4px;padding:1px 6px;letter-spacing:.06em}
.again{margin-top:6px;padding:0 14px 0 0;min-height:44px;background:none;border:0;cursor:pointer;font-size:13px;font-weight:700;color:var(--mute)}
.again:hover{color:var(--ink)}
.cnote{flex:1;min-height:0;margin:4px 22px 22px;padding:24px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,var(--paper),#f1f3ed);font-size:14px;line-height:1.7;color:var(--ink2)}
.cnote>b{display:block;font-size:13px;color:var(--mute);margin-bottom:8px}
.cnote p{margin:0 0 22px;max-width:28em}
.note-key{display:flex;gap:12px 20px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line);font-size:12px;font-weight:700}
.note-key span{display:inline-flex;align-items:center;gap:6px}
.note-key i{display:inline-block;width:30px;height:10px;border-radius:3px;background:var(--hTrk)}
.note-key i.a{background:var(--aTrk)}
@media (min-width:761px){
  .stage[data-ch="0"] #cap{display:none}
}
.pbar{position:absolute;left:22px;right:22px;bottom:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:0 0;opacity:.35}
.rate-legend{display:none;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:0 22px 8px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:6px 10px;font-size:12px;font-weight:700;color:var(--ink2)}
.rate-legend.on{display:flex}
.rate-legend span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.rate-legend em{font-style:normal}
.rate-legend i{width:12px;height:12px;border:2px solid var(--h);border-radius:50%;display:inline-block}
.rate-legend .filled{background:var(--h)}
.rate-legend .filled.a{background:var(--aSw);border-color:var(--aInk)}

/* ===== カード（章に結び付いた読み） ===== */
.cards{position:relative;flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 22px;transition:opacity .3s}
.cards.st-hide{opacity:0;pointer-events:none}
.rchip,.cards>.tl,.intro-head{display:none}
.cn-sp{display:none}
.cardhost{padding:0}
.sp-figure{display:none}
/* v6（2026-10-15・R2）: 2枚目以降の図（rx-figs）。実機のスマホだけ page.js が中身を描く（PC は空のまま＝何も無い） */
.card .rx-figs:empty{display:none}
.card .rx-figs{margin:0 0 4px}
.card .rx-figs .fg{margin-top:14px;padding-top:8px}
.card .rx-figs .fg+.fg{margin-top:16px}
.cardhost.pn-reads{background:transparent;overflow:visible}
.card{padding:4px 0 8px;color:var(--ink)}
.card .ck{display:flex;align-items:baseline;justify-content:space-between;gap:4px 10px;margin:0 0 4px;font-size:12.5px;font-weight:700;color:var(--mute);letter-spacing:.02em}
.card .ck>span:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0}
.card .cz{font-weight:800;color:var(--ink2);padding:0 8px;border-left:2px solid var(--line)}
.card .cno{display:none}   /* 読みの番号（01・02…）はスマホのカードだけで出す。PC の見え方は変えない */
.card .ct{margin:0 0 10px;font-size:21px;line-height:1.4;font-weight:900;letter-spacing:.01em}
.card .rx-intro{margin:0 0 12px;font-size:15px;line-height:1.8;color:var(--ink2)}
.card .c3{margin:0 0 12px;padding-left:1.2em;font-size:15px;line-height:1.8;color:var(--ink2)}
.card .aib{display:inline-block;margin:2px 0 8px;font-size:12px;font-weight:800;color:var(--ink);border:1px solid var(--ink);border-radius:999px;padding:2px 10px}
.card.intro .ct.long{font-size:17px;line-height:1.55}
.card .hint{margin:6px 0 0;font-size:13px;color:var(--mute);line-height:1.6}
.card .lead-wrap{position:relative;margin:0 0 6px}
.card .rx-lead:empty{display:none}
.card.dup .lead-wrap{display:none}   /* 数字と順位の章: 舞台の階段と同じ中身の順位表は、カードの頭では出さない（本文の中の 1 枚としてだけ出す） */
.card .rx-lead .fg.rv.in .rv-b,.card .rx-lead .fg.rv.in .rv-z,.card .rx-lead .fg.rv.in .rv-s,.card .rx-lead .fg.rv.in .rv-p,.card .rx-lead .fg.rv.in .rv-t,.card .rx-lead .fg.rv.in .rv-d{transition-duration:0s!important;transition-delay:0s!important}
.card .rx-lead .fg.rv.in .sw-nd{display:none}
.card .rx-lead .fg.rv.in .sw-sc>span,.card .rx-lead .fg.rv.in .sw-lb>span{animation:none!important}
.card .rx-lead .fg.rv.in .sw-sc>span:not(.last),.card .rx-lead .fg.rv.in .sw-l1{display:none}
.card .rx-lead .fg.rv.in .sw-sc>span.last,.card .rx-lead .fg.rv.in .sw-l2{opacity:1}
.card .bigbtn{position:absolute;right:0;top:-6px;z-index:2;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fffffff0;font-size:12px;font-weight:700;color:var(--ink);cursor:pointer}
.card .bigbtn:hover{border-color:var(--ink)}
.card .rx-body{padding-top:6px}   /* PC の間隔は 282a875 のまま。スマホの読みのカードだけ、下の @media (max-width:760px) で 8px 空ける */
.card .cn{flex:none;font-family:var(--num);font-weight:700;font-size:15px;color:var(--mute)}
.card .fine{margin:12px 0 0;font-size:12.5px;line-height:1.85;color:var(--mute)}
.card .fine summary{cursor:pointer;min-height:32px}
.card h4{margin:14px 0 6px;font-size:13px;color:var(--ink)}
.card .srcs{margin:0;padding-left:1.2em;font-size:12.5px;line-height:1.85;color:var(--mute)}
.card .srcs a{color:var(--mute)}
.card .howto-in p{margin:0 0 8px}
.card .foot{display:flex;flex-wrap:wrap;gap:4px 16px;margin:14px 0 0;font-size:12px;color:var(--mute)}
.card .foot a{color:var(--mute);text-decoration:underline;text-underline-offset:3px}
.card .outs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.card .outl{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);font-size:13.5px;font-weight:700;text-decoration:none;cursor:pointer}
.card .rtable{margin:0 0 14px}
.card .rtable .rtd>summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;cursor:pointer;list-style:none;font-size:13.5px;font-weight:700;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:0 16px}
.card .rtable .rtd>summary::-webkit-details-marker{display:none}
.card .rtable .rtd>summary::before{content:"▸";color:var(--mute)}
.card .rtable .rtd[open]>summary::before{content:"▾"}
.card .rtable .rcols{margin-top:12px}
.card .rcols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.card .rt h4{margin:0 0 6px;font-size:13px;color:var(--ink)}
.card .rt>div{display:flex;justify-content:space-between;gap:6px;border-bottom:1px solid var(--line);padding:2px 0;font-size:13px;color:var(--ink2)}
.card .rt-name{display:block;min-width:8em;word-break:keep-all;overflow-wrap:normal}
.card .rt-short{display:none}
@media (max-width:760px){.card .rt-name{min-width:0}.card .rt-long:has(+ .rt-short){display:none}.card .rt-short{display:inline}}
.card .rt b{font-family:var(--num);font-weight:700;font-size:15px;color:var(--ink)}
.card .rt small{display:block;color:var(--mute);font-size:11.5px;white-space:nowrap}
/* 交代で退いた選手の評点（別スライド。指摘20） */
.card.subout .soc-list{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.card.subout .soc-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:10px;padding:9px 12px;border-radius:9px;border-left:3px solid var(--h);background:linear-gradient(90deg,color-mix(in srgb,var(--h) 10%,transparent),transparent 65%)}
.card.subout .soc-row.a{border-left-color:var(--aInk);background:linear-gradient(90deg,color-mix(in srgb,var(--aSw) 10%,transparent),transparent 65%)}
.card.subout .soc-r{font-family:var(--num);font-weight:700;font-size:21px;color:var(--ink);min-width:1.4em;text-align:right}
.card.subout .soc-nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;color:var(--ink)}
.card.subout .soc-m{font-size:11.5px;color:var(--mute);white-space:nowrap}
#seo{display:none}
.stage-warn{margin:14px 0 0;padding:8px 12px;border:1px dashed var(--line);border-radius:8px;font-size:12px}
.theatre .fmk{position:absolute;left:0;top:0;z-index:6;opacity:0;transition:opacity .3s;pointer-events:none}
.theatre .fmk i{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:2px;background:var(--ink);transform:rotate(45deg);box-shadow:0 0 0 2px #fff}

/* ===== 下の帯: 前へ・目次・ⓘ 見方・次へ ===== */
.bar0{grid-area:bar;position:relative;z-index:6;display:flex;align-items:stretch;gap:10px;min-width:0;padding:8px 20px;background:var(--paper);border-top:1px solid var(--line)}
/* 21: 再生中は帯の上辺に細い進行バー（transform: scaleX のみ・opacity で出し入れ）。止まると消える */
.bar0p{position:absolute;left:0;right:0;top:0;height:3px;background:var(--ink);transform:scaleX(0);transform-origin:0 0;opacity:0;transition:opacity .2s}
.stage[data-phase="play"] .bar0p{opacity:.9}
.nb{flex:none;min-height:48px;border:0;border-radius:999px;font-size:15px;font-weight:800;cursor:pointer;white-space:nowrap}
.nb.prev{width:96px;background:var(--bg);color:var(--ink);border:1px solid var(--line)}
.nb.next{width:128px;background:var(--ink);color:#fff}
.nb:disabled{opacity:.35;cursor:default}
.nb:focus-visible,.acts button:focus-visible,.infob:focus-visible,.card button:focus-visible,.card summary:focus-visible,.again:focus-visible,.tocb:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.theatre .nav{flex:1 1 0;display:flex;align-items:stretch;min-width:0}
.acts{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none}
.acts::-webkit-scrollbar{display:none}
.acts button{position:relative;flex:1 0 auto;min-width:44px;min-height:48px;background:none;border:0;border-top:3px solid #16181d14;padding:5px 8px 0;cursor:pointer;white-space:nowrap;color:var(--faint);font-size:13px;text-align:center}
.acts button.done{color:var(--ink2);border-top-color:#16181d8c}
.acts button.on{color:var(--ink);font-weight:800;border-top-color:var(--ink)}
.acts .goal-mark{font-size:9px;color:var(--red)}
.bar0 .bar-toart{align-self:center}
/* 2026-10-16: その章の分に出たイエローの小さな印（下の帯・目次）。押す所ではなく印だけ（押す所は章のボタン自体） */
.warn-mark{display:inline-block;width:6px;height:8px;border-radius:1.5px;background:var(--ylw);box-shadow:0 1px 2px #16181d33;vertical-align:1px}
.acts .cdot{display:block;font-style:normal;font-size:10.5px;line-height:1.3;font-weight:700;color:var(--mute)}
.acts button.on .cdot{color:var(--ink)}
/* 24b: 「時間だけ」の章は薄く小さく、「出来事」の章と見分ける（押す所の大きさは変えない） */
.acts button.time-only{color:var(--faint);font-size:11px}
.acts button.time-only.done{color:#8b90999c}
.acts button.time-only.on{color:var(--ink2)}
.tocb{display:none}
.theatre .lgd{flex:none;align-self:center;font-size:12px;color:var(--mute);white-space:nowrap}
.theatre .lgd i{display:inline-block;width:14px;height:6px;border-radius:2px;margin:0 3px 1px 6px;vertical-align:middle}
.infob{flex:none;align-self:center;min-height:44px;padding:0 12px;border:0;background:none;font-size:13px;font-weight:700;color:var(--ink2);cursor:pointer;white-space:nowrap}
.infob:hover{color:var(--ink)}

/* 目次のシート（スマホ）・図の見方・図を大きく見る */
.toc{display:none}
.howto{position:absolute;right:20px;bottom:72px;z-index:22;width:min(520px,calc(100% - 40px));max-height:min(60%,520px);overflow:auto;padding:14px 18px 6px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px #16181d29;font-size:13px;line-height:1.8;color:var(--ink2);opacity:0;transform:translateY(10px);transition:opacity .25s,transform .3s var(--ease)}
.howto.on{opacity:1;transform:none}
.howto p{margin:0 0 8px}
.howto-x,.big-x{position:sticky;top:0;float:right;min-width:44px;min-height:44px;border:0;background:none;font-size:20px;line-height:1;cursor:pointer;color:var(--ink)}
.big{position:absolute;inset:0;z-index:25;background:#16181d59}
.big-in{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:880px;max-width:94%;max-height:90%;overflow:auto;padding:12px 24px 24px;background:var(--paper);border-radius:14px;box-shadow:0 14px 40px #16181d40}
.big-x{float:none;position:sticky;top:0;display:block;margin-left:auto;font-size:14px;font-weight:700;padding:0 6px}
.big-fig.pn-reads{background:transparent}
.fg-xg .l .nw{display:block}

/* ===== 試合の後の床: 答え合わせ・糸・評点・数字・順位（段 4）===== */
.ray.vs{height:3px;margin-top:-1.5px;background:var(--h);transition:opacity .3s}
.ray.vs.a{background:var(--aInk)}
.ray.vs.w{height:3px;margin-top:-1.5px;opacity:.75}
.ray.vs.b{background:#8b9099}
.ray.vs.x{background:#b3b6ae;height:2px;margin-top:-1px}
.em.sv .in{width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;border:3.5px solid var(--h);background:var(--paper)}
.em.sv.a .in{border-color:var(--aInk)}
.em.wd .in{width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:var(--h);opacity:.55}
.em.wd.a .in{background:var(--aInk)}
.em.wd.x .in{background:#8b9099}
.em.bk .in{font-size:26px;color:var(--ink2)}
.plb{position:absolute;left:0;top:0;z-index:5;opacity:0;pointer-events:none;transition:opacity .4s;text-align:center;line-height:1.15;white-space:nowrap}
.plb>div{transform:translate(-50%,-50%)}
.plb b{display:block;font-family:var(--num);font-weight:700;font-size:46px;line-height:1;color:var(--ink)}
.plb.h b{color:var(--hInk)}
.plb.a b{color:var(--aInk)}
.plb span{display:block;font-size:14px;font-weight:800;color:var(--ink2);margin-top:2px}
.plb small{display:block;font-size:11px;font-weight:700;color:var(--mute)}
.plb small[hidden]{display:none}
.plb,.plb *{text-shadow:0 0 3px var(--pitch),0 0 3px var(--pitch),0 0 4px var(--pitch)}
.fnum{position:absolute;left:0;top:0;z-index:5;opacity:0;pointer-events:none;transition:opacity .45s;white-space:nowrap}
.fnum>div{transform:translate(-50%,-50%);text-align:center;line-height:1.1}
.fnum.v{font-family:var(--num);font-weight:700;font-size:42px}
.fnum.v.h{color:var(--hInk)}
.fnum.v.a{color:var(--aInk)}
.fnum.l{font-size:13px;font-weight:800;color:var(--ink2)}
.fnum,.plb{text-shadow:0 0 3px var(--pitch),0 0 3px var(--pitch)}
/* 評点: 丸の中の数字・名前の線。退いた人の評点は「交代で退いた選手の評点」カードにまとめ、同じピッチの丸には重ねない（指摘20） */
.theatre #dots .dot .ln{position:absolute;left:0;top:0;width:1px;height:1px;background:var(--ink2);transform-origin:0 0;opacity:0;transition:opacity .3s}
.theatre #dots .dot.rm .lb{left:0;top:0;text-align:left;line-height:1.2}
.theatre #dots .dot.rm .lb small{font-size:12px;font-weight:700;color:var(--ink2)}
.hole i{display:grid;place-items:center;font-style:normal;font-family:var(--num);font-weight:700;font-size:calc(var(--d)*.48);color:var(--red)}
.hole.rm span{left:0;top:0;transform:none;text-align:left}
.hole .ln{position:absolute;left:0;top:0;width:1px;height:1px;background:var(--ink2);transform-origin:0 0;opacity:0;transition:opacity .3s}
/* 順位の階段 */
.ladder{position:absolute;pointer-events:none;opacity:0;transition:opacity .5s;z-index:6}
.ladder .cols{position:absolute;left:0;right:0;bottom:30px;top:34px;display:flex;align-items:flex-end;gap:4px}
.ladder .st{position:relative;flex:1 1 0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.ladder .bar{width:100%;border-radius:3px 3px 0 0;background:#c9ccc4;transform-origin:50% 100%;transform:scaleY(0);transition:transform .6s var(--ease)}
.ladder .st.h .bar{background:var(--hTrk)}
.ladder .st.a .bar{background:var(--aTrk)}
.ladder .st.top:not(.h):not(.a) .bar{background:#8b9099}
.ladder .pt{position:absolute;left:0;right:0;text-align:center;bottom:calc(var(--s)*100% + 3px);font-family:var(--num);font-weight:700;font-size:13px;color:var(--mute);opacity:0;transition:opacity .4s}
.ladder .st.h .pt,.ladder .st.a .pt,.ladder .st.top .pt{font-size:20px;color:var(--ink)}
.ladder .vn{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);writing-mode:vertical-rl;white-space:nowrap;font-size:14px;font-weight:800;letter-spacing:.06em;opacity:0;transition:opacity .4s .5s}
.ladder .vn.out{bottom:calc(var(--s)*100% + 26px)}
.ladder .st.h .vn.out,.ladder .st.a .vn.out{bottom:calc(var(--s)*100% + 32px)}
.ladder .rk{position:absolute;bottom:-22px;font-family:var(--num);font-weight:700;font-size:12px;color:var(--mute)}
.ladder .gap{position:absolute;border-left:2px solid var(--ink);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);width:9px;opacity:0;transition:opacity .4s}
.ladder .gapL{position:absolute;font-family:var(--num);font-weight:700;font-size:24px;color:var(--ink);opacity:0;transition:opacity .4s;white-space:nowrap}
.ladder .gapL small{font-family:"Zen Kaku Gothic New","Hiragino Sans",sans-serif;font-size:12px;font-weight:800;margin-left:3px}
.ladder.on{opacity:1}
.ladder.on .bar{transform:scaleY(var(--s))}
.ladder.on .pt,.ladder.on .vn,.ladder.on .gap,.ladder.on .gapL{opacity:1}

/* 幅の狭い PC・タブレット（761〜1099px）: スコアボードは短い名前にし、外周の色の見本は出さない */
@media (max-width:1279px){.theatre .lgd{display:none}}
@media (max-width:1099px){
  .sky{padding:8px 12px 4px}
  .board{width:100%;justify-content:space-between;padding:6px 10px;gap:6px;min-width:0}
  .board .tm{font-size:13px;gap:6px;min-width:0}
  .board .tm>div{min-width:0}
  .board .tm small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
  .board .tm .cch,.board .tm .lg2,.board .tm .nm{display:none}
  .board .tm .sn{display:inline}
  .board .tm .sn.long{font-size:11px;letter-spacing:-.05em}
  .board .tm i{height:28px;width:3px}
  .theatre .board .g{height:44px;line-height:44px;font-size:46px}
  .theatre .board .g .roll i{height:44px}
  .clock{font-size:21px;min-width:64px;padding:5px 4px}
}
/* ===== PC: 舞台は画面いっぱい。字幕・読みのカード・見方の札は、舞台の上に浮かべ、置き場所は stage.js の placeFloats が決める（丸・止めの線・得点・札にかからない空きを選ぶ）。
   図だけを見せたい読み（stage-model.ts の FULL_FIGS）は、舞台を奥へ下げて図を大きく出す（.stage.fig-full）。PC は動きの制限なし ===== */
@media (min-width:761px){
  .stage{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 60px;grid-template-areas:"left" "bar"}
  .bar0{padding:5px 20px}
  .nb{min-height:48px}
  .left{padding-top:0}
  .side{grid-area:left;position:relative;display:block;padding:0;background:none;border:0;pointer-events:none;overflow:hidden;z-index:6}
  .side>*{pointer-events:none}
  .side>.cards:not(.st-hide){pointer-events:auto}
  .theatre #cap,.cnote,.rate-legend,.cards{position:absolute;left:0;top:0;margin:0;transition:transform .45s var(--ease),opacity .3s}
  .theatre #cap{width:min(380px,34%);padding:12px 18px 10px;border:1px solid var(--line);border-radius:14px;background:#fffffff2;box-shadow:0 8px 26px #16181d1f;z-index:2}
  .capin h2{font-size:calc(26px*var(--fz,1))}
  .capin p{font-size:14px;min-height:0}
  /* この章をもう一度: 字幕の角の小さな丸いボタン（↻。字は読み上げ用に残す）。小見出しにかからない */
  .again{position:absolute;right:2px;top:0;margin:0;padding:0;width:44px;height:44px;font-size:0;border-radius:50%;color:var(--mute)}
  .again::before{content:"↻";font-size:21px;line-height:44px}
  .capin .k{padding-right:40px}
  .cnote{width:min(300px,28%);flex:none;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fffffff2;box-shadow:0 8px 26px #16181d1f;font-size:13px;line-height:1.65;z-index:1}
  .cnote p{margin:0 0 12px}
  .rate-legend{display:none;margin:0;border-radius:14px;box-shadow:0 8px 26px #16181d1f;max-width:min(360px,30%);z-index:1}
  .rate-legend.on{display:flex}
  .cards{width:min(400px,36%);max-height:calc(100% - 24px);padding:6px 20px 8px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 12px 40px #16181d2e;z-index:3;opacity:1}
  .cards.compact{width:min(320px,28%);padding:4px 16px 6px}
  @media (max-width:1300px){.cards:has(.card[data-card="intro"]){width:min(240px,21%)}}
  .cards.compact .card .ct{font-size:17px}
  .cards.compact .card .rx-intro{font-size:13.5px;line-height:1.65}
  /* 小さい形: 見出しと本文の頭だけ。図は「図を大きく」で、続きは広い形で */
  .cards.mini:not(.wide) .card .lead-wrap .rx-lead{display:none}
  .cards.mini .card .lead-wrap{margin:2px 0 4px}
  .cards.mini .card .bigbtn{position:static;display:inline-flex;align-items:center}
  .cards.st-hide{opacity:0;pointer-events:none;visibility:hidden;transition:transform .45s var(--ease),opacity .25s,visibility 0s .25s}
  .card .ct{font-size:20px}
  .card .rx-intro,.card .c3{font-size:14.5px;line-height:1.75}
  /* 図を大きく（舞台を奥へ）: 舞台は薄く小さく下がり、カードが画面の幅いっぱいに広がって、図を左右の 2 段で出す */
  .side>*:not(.placed){transition:none!important}
  .stage .pw{transition:opacity .5s var(--ease),transform .6s var(--ease),filter .5s}
  .stage.fig-full .pw{opacity:.08;transform:scale(.96);filter:blur(3px);pointer-events:none}
  .stage.fig-full .rate-legend,.stage.fig-full .cnote{display:none}
  .stage.fig-full #cap{display:none}
  .cards.wide{width:min(1380px,calc(100% - 32px));max-height:calc(100% - 16px);padding:10px 30px 14px;background:#ffffffee;border-radius:18px;box-shadow:0 16px 60px #16181d33}
  .cards.wide .card{display:grid;grid-template-columns:minmax(230px,290px) minmax(0,1fr);gap:0 30px;align-items:start}
  .cards.wide .card>*{grid-column:1}
  .cards.wide .card .lead-wrap{grid-column:2;grid-row:1 / span 7;margin:0}
  .cards.wide .card .rx-body,.cards.wide .card .fine,.cards.wide .card .outs,.cards.wide .card .foot,.cards.wide .card .rtable{grid-column:1 / -1}
  .cards.wide .card .ct{font-size:24px}
  .cards.wide .card{position:relative;padding-top:46px}
  .cards.wide .card .lead-wrap{position:static}
  .cards.wide .card .bigbtn{top:4px;right:0}   /* 「舞台を見る」は図の外（カードの右上の角）。図の線にかからない */
  .cards.wide .card .rx-lead{transform-origin:0 0}
  .cards.wide .card .rx-lead{display:block}
  .card .bigbtn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
}
@media (min-width:761px) and (max-width:1099px){.left{padding-top:52px}}
@media (min-width:761px) and (min-width:1100px){
  /* ヘッダーは、スコアボードの両わきの上の端に透けて出す（舞台の高さを取らない）。押せるのは字の所だけ */
  .mast{height:80px;padding:0 24px;background:transparent;border:0;pointer-events:none;align-items:flex-start;padding-top:8px}
  .mast a,.mast .ai{pointer-events:auto;background:#ffffffe6;border-radius:999px;padding:0 14px;min-height:36px;border:1px solid var(--line)}
  .mast .ai{margin-left:auto;display:inline-flex;align-items:center}
  .mast .site{display:none}
}
@media (min-width:761px) and (min-width:1280px){.mast .site{display:inline-flex}}
/* ===== スマホ: ピッチは平らで縦。動くのは transform / opacity だけ ===== */
@media (max-width:760px){
  /* 舞台は画面いっぱい。スコアボード・字幕・下のボタン・読みの札は、舞台に重ねて出す（ピッチはそれらを避けた範囲に収まる。stage.js の topRes・BOT・PEEK） */
  .stage{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);grid-template-areas:"left"}
  .left{padding-top:0}
  .mast{height:48px;padding:0 16px;gap:10px}
  .mast .site{font-size:12px}
  .mast .league-name{display:none}
  .mast .round-name{display:inline}
  .mast .round-name:not(:empty)::before{content:none}
  .mast .ai{font-size:11px;padding:2px 8px}
  .sky{position:absolute;left:0;right:0;top:0;padding:8px 12px 2px;z-index:9;transition:transform .3s var(--ease)}
  .stage.mast-on .sky{transform:translateY(50px)}
  .board{width:100%;justify-content:space-between;padding:6px 10px;border-radius:12px;gap:6px}
  .board .tm{font-size:13px;gap:6px;min-width:0}
  .board .tm>div{min-width:0}
  .board .tm small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
  .board .tm .cch,.board .tm .lg2,.board .tm .nm{display:none}
  .board .tm .sn{display:inline}
  .board .tm .sn.long{font-size:11px;letter-spacing:-.05em}
  .board .tm i{height:28px;width:3px}
  .theatre .board .g{height:36px;line-height:36px;font-size:38px}
  .theatre .board .g .roll i{height:36px}
  .clock{font-size:21px;min-width:64px;padding:5px 4px}
  .clock small{font-size:11px;letter-spacing:0}
  .theatre #cap{position:absolute;left:0;right:0;top:var(--sky,64px);z-index:8;min-height:0;height:90px;padding:4px 16px 0;align-items:stretch;overflow:hidden;pointer-events:none;background:linear-gradient(var(--bg) 80%,transparent)}
  .stage.mast-on #cap{top:calc(var(--sky,64px) + 50px)}
  /* スコアボードを省いた章（指摘14・16）は、字幕をスコアボードの分だけ上へ詰める。topRes() の確保と合わせる */
  .stage.sky-off #cap{top:0}
  .stage.sky-off.mast-on #cap{top:50px}
  /* 評点の章は見出しだけの短い字幕なので、固定 90px を自然な高さに縮める（指摘15） */
  .stage.rate-scene #cap{height:auto;max-height:64px}
  .stage[data-ch="0"] #cap{visibility:hidden}
  /* 開始の章だけ、ピッチの上（スコアボードの下）に記事の見出しを小さく重ねる（mid 2。カードが出たら隠す） */
  .stage[data-ch="0"]:not(.has-card) .intro-head{display:block;position:absolute;left:0;right:0;top:var(--sky,64px);z-index:8;padding:6px 16px 10px;pointer-events:none;background:linear-gradient(var(--bg) 78%,transparent)}
  .stage.mast-on[data-ch="0"] .intro-head{top:calc(var(--sky,64px) + 50px)}
  .intro-head b{display:block;font-size:14px;line-height:1.35;font-weight:800;color:var(--ink)}
  .intro-head .ih-l{display:block}   /* 行は stage.headLines が折ったもの（1 行 20 字前後）。切らずにすべて出す */
  .capin .k{font-size:13px}
  .capin h2{font-size:calc(22px*var(--fz,1));margin:1px 0 3px}
  .capin p{font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  #cap:has(.rep.on) .capin .k{font-size:11px;line-height:1.1}
  #cap:has(.rep.on) .capin h2{font-size:calc(20px*var(--fz,1));line-height:1.12;margin:1px 0}
  #cap:has(.rep.on) .capin p{font-size:12px;line-height:1.25;min-height:0;-webkit-line-clamp:1}
  .again,.pbar{display:none}
  .arena{padding:0 8px}
  /* 報道の 1 行は字幕の下に置き、ピッチの選手と札を隠さない */
  .rep{position:static;flex:none;margin:2px 0 0;max-height:28px;overflow:hidden;padding:0;font-size:11px;line-height:1.25;pointer-events:none}
  .rep span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .rate-legend{position:absolute;left:8px;right:8px;bottom:calc(var(--bot,56px) + 8px);z-index:7;margin:0;justify-content:center;flex-wrap:nowrap;gap:3px 6px;font-size:10px;padding:4px 6px;border-radius:999px;pointer-events:none}
  .rate-legend i{width:10px;height:10px;border-width:1.5px}
  .rate-legend span{gap:3px}
  .rate-legend em{display:none}
  .stage.has-card .rate-legend{bottom:calc(var(--bot,56px) + 52px)}
  .moshiki:not(.tl):not(.tr){bottom:calc(var(--bot,56px) + 10px)}
  .stage.has-card .moshiki:not(.tl):not(.tr){bottom:calc(var(--bot,56px) + 54px)}
  .moshiki.tl,.moshiki.tr{top:calc(var(--sky,64px) + 98px)}
  /* ピッチとカードは左右に並ぶスライド */
  .side{position:absolute;left:0;right:0;top:0;bottom:var(--bot,56px);padding:0;background:none;border:0;pointer-events:none;z-index:9;overflow:hidden}
  .cards{position:absolute;left:0;right:0;top:var(--sky,64px);bottom:0;flex:none;padding:0 16px 8px;background:var(--paper);transform:translateX(100%);transition:transform .3s var(--ease);pointer-events:none;z-index:6;overflow-y:auto;overflow-x:hidden;touch-action:auto}
  .cards.st-hide{opacity:1;visibility:hidden}
  .cards.is-current{pointer-events:auto}
  .cards.slide-ghost{pointer-events:none}
  .cards>.tl{display:block;position:relative;height:18px;flex:none;margin:8px 0 12px;border-radius:4px;background:#16181d12;overflow:hidden}
  .cards>.tl[hidden]{display:none}
  .cards>.tl[hidden]{display:none}
  .cards>.tl i{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0}
  .cards .tll{background:#16181d2e}
  .cards .tlf::before{content:"";display:block;width:2px;height:100%;background:var(--ink)}
  .cards>.tl span{position:absolute;left:2px;top:0;font:10px/18px var(--num);color:var(--ink2)}
  .cards>.tl .tl-mid{left:0}
  .cards>.tl .tl-end{left:auto;right:2px}
  .cards.no-tr,.arena.no-tr{transition:none}
  .arena{transition:transform .3s var(--ease)}
  .stage.has-card #cap{opacity:0;pointer-events:none}
  .stage.has-card .rate-legend,.stage.has-card .moshiki,.stage.has-card .pressure-key,.stage.has-card .hbands{opacity:0;pointer-events:none}
  .stage.mast-on .cards{top:calc(var(--sky,64px) + 50px)}
  .card.dup .sp-figure{display:block}
  .theatre .cards .card button,.theatre .cards .card summary,.theatre .cards .card input{min-width:44px;min-height:44px}
  .card .fine summary{min-height:44px}
  .card .cn{display:none}
  .card .cn-sp{display:block;text-align:right;margin-top:auto;padding-top:12px;font-family:var(--num);font-weight:700;color:var(--mute)}
  .card .cn-sp[hidden]{display:none}
  .cardhost,.cardhost>.card{min-height:100%}
  .cardhost>.card{display:flex;flex-direction:column}
  .card .ct{font-size:18px;margin-bottom:8px}
  .card .rx-intro{font-size:14.5px;line-height:1.75}
  @media (max-width:375px){.cards .card .rx-intro{font-size:14px;line-height:1.6}}

  /* ===== v6 R3（2026-10-15 オーナー指示「交代と采配の読みのカードをもっとリッチで格好良く」）=====
     物差しは docs/design-references.md §2・§4。文字は 3 段（見出し 33px／小見出し 20px／ラベル 12px）に
     本文 14px を添える（33 ÷ 14 = 2.36 倍で、2.3 倍以上を満たす）。大きい字は字間を詰め（-.02em）、
     小さいラベルは空ける（+.05em）。余白は 8 の倍数、行間は 1.6〜1.8。囲まず 1px の線で区切る。
     数字は等幅（tabular-nums）。**この塊は 760px 以下だけなので PC の見え方は変わらない。** */
  /* 節の頭: 番号（01…）＋時間帯のラベル＋1px の線（§2-8） */
  .cards .card[data-n] .ck{gap:0 8px;margin:0 0 8px;padding:0 0 8px;font-size:12px;line-height:1.6;letter-spacing:.05em;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
  .cards .card[data-n] .cno{display:inline-block;margin-right:8px;font-family:var(--num);font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--ink)}
  /* 見出し（大）: 本文の 2.36 倍。大きい字は字間と行間を詰める */
  .cards .card[data-n] .ct{margin:0 0 16px;font-size:33px;line-height:1.18;font-weight:900;letter-spacing:-.02em;color:var(--ink)}
  @media (max-width:375px){.cards .card[data-n] .ct{font-size:30px}}
  /* リード（つかみ）は本文と、大きさ（15px ↔ 14px）・行間（1.8 ↔ 1.75）・濃さ（ink ↔ ink2）の 3 つで分ける */
  .cards .card[data-n] .rx-intro{margin:0 0 16px;font-size:15px;line-height:1.8;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
  @media (max-width:375px){.cards .card[data-n] .rx-intro{font-size:15px;line-height:1.8}}
  /* 本文（残りの文・采配・根拠）。段落の間は 16px、節の間は 24px（8 の倍数） */
  .cards .card[data-n] .rx-body{padding-top:0;margin-top:8px;font-size:14px;line-height:1.75;color:var(--ink2);font-variant-numeric:tabular-nums}
  .cards .card[data-n] .rx-body:empty{display:none}
  .cards .card[data-n] .rx-body .tx{margin:16px 0 0;font-size:14px;line-height:1.75}
  .cards .card[data-n] .rx-body>.tx:first-child{margin-top:0}
  .cards .card[data-n] .rx-body .note{margin:8px 0 0;font-size:12px;line-height:1.6;letter-spacing:.03em;color:var(--mute)}
  /* 選手の囲みの文も本文と同じ段にそろえる（11px の名残を作らない） */
  .cards .card[data-n] .rx-body .bx-pl{margin-top:24px;padding-top:8px}
  .cards .card[data-n] .rx-body .bx-pl p{margin-top:8px;font-size:14px;line-height:1.75}
  .cards .card[data-n] .rx-body .bx-pl .mt,.cards .card[data-n] .rx-body .bx-pl .how{font-size:12px;letter-spacing:.03em}
  /* 「行を押すと中身が開きます」は舞台では当てはまらない（中身は最初から出ている）ので出さない */
  .cards .card[data-n] .rx-body .note:has(+.evs){display:none}
  /* ---- 交代と采配の行 ----
     囲み（枠・塗り・影）をやめ、1px の線だけで区切る。行の頭は「分（20px・等幅・黒）＋クラブカラーの短い線」で、
     右に「チーム名（12px のラベル）＋何をしたか（14px）」。中身（小さなピッチ・入れ替え・評点・その後）は
     カードの幅いっぱいに置いて、1 行の字数を増やす。押して開く仕掛けは舞台には無いので、矢印は出さない。
     クラブカラーは「線」だけに使い、文字は黒にする（docs/design-references.md §2-6）。 */
  .cards .card[data-n] .evs{display:block;margin:24px 0 0}
  .cards .card[data-n] .ev.dc{display:grid;grid-template-columns:minmax(56px,max-content) minmax(0,1fr);column-gap:8px;width:100%;margin:0;
    padding:16px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:none;box-shadow:none;
    font:inherit;color:inherit;text-align:left;-webkit-appearance:none;appearance:none}
  .cards .card[data-n] .ev.dc:first-child{border-top:0;padding-top:8px}
  /* 分: 等幅・右は揃える。下の短い線がクラブカラー（どちらのチームの交代かを色で示す） */
  .cards .card[data-n] .ev.dc .mn{font-family:var(--num);font-size:20px;line-height:1.2;font-weight:800;
    letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
  .cards .card[data-n] .ev.dc .mn::after{content:"";display:block;width:24px;height:2px;margin-top:8px;background:var(--c)}
  /* 分の無い「試合前の判断」の行は、分の代わりに 12px のラベルが入る（字の大きさの段を増やさない） */
  .cards .card[data-n] .ev.dc .k{grid-column:1;grid-row:1;font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--ink2);white-space:nowrap}
  .cards .card[data-n] .ev.dc .cv{display:none}
  /* 分・一行の説明・中身を、そのまま行の升目に並べる（分の欄は長いラベル「84・88'」でも重ならない max-content） */
  .cards .card[data-n] .ev.dc .bd{display:contents}
  .cards .card[data-n] .ev.dc .mn{grid-column:1;grid-row:1}
  .cards .card[data-n] .ev.dc .one{grid-column:2;grid-row:1;min-width:0;display:block;font-size:14px;line-height:1.75;font-weight:700;color:var(--ink);white-space:normal}
  /* チーム名は 12px のラベルにして、文の上に置く（クラブカラーの字はやめる） */
  .cards .card[data-n] .ev.dc .one b{display:block;margin:0 0 4px;font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--ink2)!important}
  /* 中身はカードの幅いっぱい（升目の 2 列ぶん）。1 行の字数が 21 字から 25 字に増える */
  .cards .card[data-n] .ev.dc .det{grid-column:1/-1;grid-row:2;min-width:0;display:block;margin:8px 0 0;font-size:14px;line-height:1.75}
  /* 図・評点・その後の前に入る <br> は空行になって間が空きすぎるので落とす（文は変えない） */
  .cards .card[data-n] .ev.dc .det svg+br{display:none}
  .cards .card[data-n] .ev.dc .det br:has(+.dc-rt),.cards .card[data-n] .ev.dc .det br:has(+.x){display:none}
  .cards .card[data-n] .ev.dc .det s{color:var(--mute);text-decoration-thickness:1px}
  .cards .card[data-n] .ev.dc .det .in{font-weight:800;color:var(--ink)}
  /* M4（2026-10-16 レビュー round 7）: 交代 7 件に同じ形のピッチが 225px ずつ入り、カード 1 枚が 4,079px（画面 6.2 枚分）に
     なっていた。ピッチを 180px 幅（高さ 113px 前後）に縮めて左に置き、入れ替えと評点をその右に並べる。
     長い文（監督の説明・その後）は float を解いて下に置き、1 行 21〜25 字を保つ（文は隠さない）。 */
  .cards .card[data-n] .ev.dc .dc-pitch{display:block;float:left;overflow:visible;width:180px;max-width:50%;height:auto;margin:4px 14px 16px 0}
  /* N2（2026-10-16 レビュー round 8）: SVG の字は viewBox の倍率で縮むので、font-size の値（9・9.5）ではなく、画面での
     大きさで見ると、179px 幅のピッチでは背番号 6.7px・「攻撃 →」7.1px だった（下限 11px 未満）。この広さで背番号を
     11px にすると丸からあふれるので、**ミニのピッチでは背番号を出さない**（入った選手＝クラブカラーの塗りの丸、
     出た選手＝破線の丸、動いた選手＝矢印で見分ける。だれが入れ替わったかは、右の文に 14px の名前で出ている）。
     向きの印だけは 16 単位＝画面で 11.9px にして、帯からはみ出す分を下の余白（margin-bottom 16px）で受ける。 */
  .cards .card[data-n] .ev.dc .dc-pitch .dc-no{display:none}
  /* M4（2026-10-16 レビュー round 9）: 16 単位だと 360px の画面でピッチが 160px に縮み、画面での字が 10.9px になって
     下限 11px を割っていた（390px では 11.9px で通っていた）。17 単位にして 360px でも 11.6px にする。 */
  .cards .card[data-n] .ev.dc .dc-pitch .atk-w{font-size:17px;transform:translateY(6px)}
  .cards .card[data-n] .ev.dc .det::after{content:"";display:block;clear:both}
  .cards .card[data-n] .ev.dc .det .x{clear:both}
  /* 評点: ラベルは 12px の薄い字、数字は 14px の等幅の黒 */
  .cards .card[data-n] .ev.dc .dc-rt{margin:8px 0 0;font-size:12px;line-height:1.7;letter-spacing:.03em;color:var(--mute)}
  .cards .card[data-n] .ev.dc .dc-rt b{font-family:var(--num);font-size:14px;font-weight:800;color:var(--ink)}
  .cards .card[data-n] .ev.dc .dc-rt small{font-size:12px}
  /* 「その後」は本文の調子で、頭に 1px の線を添えて段と分ける */
  .cards .card[data-n] .ev.dc .x{display:block;margin:8px 0 0;padding-left:12px;border-left:1px solid var(--line);
    font-size:14px;line-height:1.8;font-weight:400;color:var(--ink2)}
  /* 根拠の札は節の終わりに。1px の線で区切る */
  .cards .card[data-n] .rf{margin:24px 0 0;padding-top:8px;border-top:1px solid var(--line)}
  .cards .card[data-n] .rf .chip{font-size:12px;letter-spacing:.05em}
  .card .bigbtn{position:relative;top:auto;right:auto;display:flex;margin:4px 0 8px auto;align-items:center;min-width:44px}
  .card .rcols{grid-template-columns:1fr;gap:14px}
  .bar0{position:absolute;left:0;right:0;bottom:0;z-index:12;height:calc(56px + env(safe-area-inset-bottom));padding:4px 10px calc(4px + env(safe-area-inset-bottom));gap:8px;background:linear-gradient(to top,var(--bg) 62%,transparent);border:0;pointer-events:none}
  .bar0>*{pointer-events:auto}
  .nb.prev{display:flex;flex:0 0 44px;min-width:44px;padding:0;align-items:center;justify-content:center}
  .nb.next{display:flex;flex:0 0 96px;min-width:96px;padding:0 8px;align-items:center;justify-content:center;font-size:13px}
  .nb.prev span{display:none}
  /* 【2026-10-16 オーナー決定】スマホでは「記事で読む」（舞台 → 記事）を一旦出さない。
     ヘッダーの札（.mast .toart）・下の帯（.bar-toart）・目次の 1 行（.toc-toart）の 3 か所すべてを隠す。
     ヘッダーの札を外すことで、360px 幅で「編集部 · AIによる分析を含む」が画面の外へ出る不具合も消える。
     記事 → 舞台（「演出で見る」）はスマホでも残すので、記事 → 舞台 → ブラウザの戻る で戻れる（記事が既定）。 */
  .theatre .nav,.theatre .lgd,.infob,.bar0 .bar-toart,.mast .toart,.toc-toart{display:none}
  .tocb{display:flex;flex:1 1 0;min-width:0;min-height:40px;align-items:center;justify-content:center;gap:6px;padding:0 8px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 2px 8px #16181d1f;font-size:14px;cursor:pointer}
  .tocb b{min-width:0;overflow:hidden;white-space:nowrap;font-weight:800}
  /* 指摘2（レビュー3回目）: 章名が詰めても入りきらないとき、font-size でなく transform: scale で縮める（スマホは transform / opacity だけ）。
     縮めずに入るときは等倍のまま。中の span だけを縮めるので、.tocb b 自体の幅（フレックスで決まる）は変わらない */
  .tocb b span{display:inline-block;transform-origin:0 50%}
  .tocb small{flex:none;white-space:nowrap;font-family:var(--num);font-weight:700;font-size:14px;color:var(--mute)}
  .tocb i{flex:none}
  .tocb i{font-style:normal;color:var(--mute)}
  .tocb:has(#swipeHint:not([hidden])){flex-wrap:wrap;align-content:center;gap:0 5px}
  #swipeHint{flex:0 0 100%;font-size:10px;line-height:13px;font-weight:700;color:var(--mute)}
  /* 読みの札（high 1）: 下の帯の中、目次ボタンの右隣。ピッチの凡例と図に重ねない */
  .rchip{display:flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:92px;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:12.5px;font-weight:800;white-space:nowrap}
  .rchip[hidden]{display:none}
  /* 目次のシート */
  .toc{display:block;position:absolute;left:0;right:0;top:0;bottom:0;z-index:21;pointer-events:none}
  .toc-in{position:absolute;left:0;right:0;bottom:var(--bot,56px);max-height:80%;overflow:auto;padding:6px 14px 14px;background:var(--paper);border-radius:16px 16px 0 0;box-shadow:0 -6px 24px #16181d33;transform:translateY(110%);transition:transform .3s var(--ease);pointer-events:auto}
  .toc.on .toc-in{transform:none}
  .toc-top{display:flex;align-items:center;gap:6px;position:sticky;top:0;background:var(--paper);padding:2px 0}
  .toc-top a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:700;color:var(--ink);text-decoration:none;white-space:nowrap}
  .toc-x{margin-left:auto;min-width:44px;min-height:44px;border:0;background:none;font-size:20px;cursor:pointer}
  /* 目次の上の「時間で探す」帯（2026-10-16）。章が 30 を超えたので、時間からも章へ入れるようにする。
     押す所は 15 分ごとの区切り（帯の高さいっぱい＝58px。幅は時計に比例して 390px で 50px 以上）。
     得点・退場・交代・イエローの印は目印だけで、押す所にはしない（オーナー指示） */
  .toc-time{margin-top:8px}
  .toc-time .tt-h{margin:0;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.05em;color:var(--mute)}
  .toc-time .tt-bar{position:relative;height:58px;margin-top:2px}
  .toc-time .tt-marks{position:absolute;left:7px;right:7px;top:0;height:36px}
  .toc-time .tt-ax{position:absolute;left:0;right:0;top:17px;height:1px;background:#16181d2e}
  .toc-time .tm{position:absolute;transform:translateX(-50%);border-radius:1px}
  .toc-time .tm.h{bottom:19px}
  .toc-time .tm.a{top:19px}
  .toc-time .tm:not(.h):not(.a){top:14px}
  .toc-time .tm.goal{width:9px;height:9px;border-radius:50%;background:var(--mute);box-shadow:0 0 0 1.5px var(--paper)}
  .toc-time .tm.goal.h{background:var(--h)}
  .toc-time .tm.goal.a{background:var(--aSw)}
  .toc-time .tm.red{width:4px;height:12px;background:var(--red)}
  .toc-time .tm.sub{width:2px;height:8px;background:#16181d66}
  .toc-time .tm.warn{width:3px;height:7px;background:var(--ylw)}
  .toc-time .tt-segs{position:absolute;inset:0;display:flex;align-items:flex-end}
  .toc-time .tt-seg{position:relative;min-width:44px;min-height:44px;height:100%;display:flex;align-items:flex-end;padding:0 0 2px 4px;border:0;border-left:1px solid var(--line);background:none;cursor:pointer}
  .toc-time .tt-seg:first-child{border-left:0}
  .toc-time .tt-seg span{font-family:var(--num);font-size:12px;font-weight:700;color:var(--mute)}
  .toc-time .tt-seg.on span{color:var(--ink);font-weight:800}
  .toc-time .tt-seg.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ink)}
  .toc-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
  /* 前半・ハーフタイム・後半・試合終了後のまとまり（囲まず、12px の見出しと 1px の線で区切る） */
  .toc-grid .toc-sec{grid-column:1/-1;display:flex;align-items:baseline;gap:8px;margin:12px 0 0;padding-bottom:4px;border-bottom:1px solid var(--line)}
  .toc-grid .toc-sec:first-child{margin-top:2px}
  .toc-grid .toc-sec span{font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--ink)}
  .toc-grid .toc-sec small{font-size:12px;font-weight:700;color:var(--faint)}
  .toc-grid button{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);font-size:14px;text-align:left;cursor:pointer}
  .toc-grid button.on{border-color:var(--ink);font-weight:800}
  .toc-grid button.done{color:var(--ink2)}
  /* 24b: 「時間だけ」の章は薄く小さく */
  .toc-grid button.time-only{color:var(--faint);font-size:12.5px}
  .toc-grid button.time-only .no{color:var(--faint)}
  .toc-grid .no{flex:none;width:22px;font-size:15px;color:var(--mute)}
  /* 分の範囲を上の行に、章名を下の行に（章名は 2 行まで。1 行で切ると「前半・バルセロナの…」で終わっていた） */
  .toc-grid .tx{flex:1;min-width:0}
  .toc-grid .mn{display:block;font-size:12px;line-height:15px;font-weight:700;color:var(--mute);letter-spacing:.02em}
  .toc-grid button.on .mn{color:var(--ink2)}
  .toc-grid button.time-only .mn{color:var(--faint)}
  .toc-grid .nm{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:0;white-space:normal;line-height:1.28;font-size:13.5px}
  /* カードの枚数は、章名の行の途中ではなく分の行の高さに置く（名前が 2 行に折れたとき、
     「交代・警告（4 ［カード 1］ 件）」のように文の途中へ割り込んで見えていた） */
  .toc-grid .cdot{align-self:flex-start;margin:3px 0 0 auto;flex:none;white-space:nowrap;font-style:normal;font-size:11px;color:var(--faint)}
  .toc-grid button{gap:4px;padding:5px 8px}
  .toc-grid .no{width:18px}
  .toc-foot{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
  .toc-foot .wide{flex:1 0 100%}
  .toc-foot button{flex:1;min-height:48px;border:1px solid var(--ink);border-radius:999px;background:var(--paper);font-size:14px;font-weight:700;cursor:pointer}
  .howto{left:8px;right:8px;width:auto;bottom:calc(56px + env(safe-area-inset-bottom) + 8px);z-index:23}
  .theatre .mk i{width:13px;height:13px;margin:-6.5px 0 0 -6.5px;border-width:2.5px}
  .hbands{left:6px;right:6px;bottom:calc(var(--bot,56px) + 6px);gap:4px}
  .stage.has-card .hbands{bottom:calc(var(--bot,56px) + 52px)}
  .hn{width:60px}
  .hn b{font-size:20px}
  .hcells{height:9px;gap:1px}
  .mkl{font-size:15px}
  .tkl{font-size:11px}
  .flag.fy i{width:7px;height:10px;margin:-5px 0 0 -3.5px}
  .flag.fr i{width:8px;height:11px;margin:-5.5px 0 0 -4px}
  .flag.fg i{width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-width:2px}
  .flag.fv i{width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-width:2.5px}
  .flag.fm i{width:12px;height:12px;margin:-6px 0 0 -6px;border-width:2.5px}
  .flag b{font-size:12px}
  .stamp span{font-size:16px;padding:2px 10px}
  .plb b{font-size:36px}
  .plb span{font-size:12px}
  .fnum.v{font-size:30px}
  .fnum.l{font-size:12px}
  .ladder .cols{gap:2px;bottom:22px;top:30px}
  .ladder .pt{font-size:11px}
  .ladder .st.h .pt,.ladder .st.a .pt,.ladder .st.top .pt{font-size:16px}
  .ladder .rk{font-size:11px;bottom:-18px}
  .ladder .vn{font-size:11.5px;letter-spacing:-.04em;bottom:4px}
}
/* M10: 360px だと、前へ・目次・読みの札・次へが並んで章名（.tocb b）に残る幅が足りず「評.」まで潰れる。
   狭い画面だけ、帯の詰め（gap・余白）と読みの札・次への幅を絞って、章名の取り分を広げる
   （レビュー3回目・指摘2: 390px は 375px の外で詰めが効かず、360px より章名の取り分が少なかった。390px も含める） */
@media (max-width:400px){
  .bar0{gap:5px;padding:4px 6px calc(4px + env(safe-area-inset-bottom))}
  .tocb{gap:4px;padding:0 6px;font-size:13px}
  .tocb small{font-size:12.5px}
  .rchip{min-width:44px;padding:0 6px;font-size:11px}
  .rchip .rc-w{display:none}   /* 「読み」を省いて「1枚 ▸」のように詰める（指摘2・レビュー3回目） */
  .nb.next{flex:0 0 68px;min-width:68px;padding:0 4px;font-size:11.5px}
}
@media (max-width:370px){
  #tocNo{display:none}   /* 360px はここまで詰めても長い章名が入りきらないことがあるので、現在地の分数（X/Y）を省いて章名の取り分にする */
}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01s!important;animation:none!important}}
/* 読みの図の寸法（カードの幅は PC でもスマホと同じ） */
.card .fg-tbl .tr.hd span{word-break:keep-all;overflow-wrap:break-word}   /* 表の見出し（デュエル勝利 など）は、語の切れ目（<wbr>）だけで折り返す */
.card .fg-xg{column-gap:6px}
.card .fg-xg .v{font-size:32px}
.card .fg-xg .l{min-width:0}
.card .fg-xg .l .nw{display:block;font-size:11px;letter-spacing:-.02em;white-space:nowrap}


/* r7: 交代は出る名前と入る名前を一緒に読む。最高評点は字幕から丸へ線をつなぐ。 */
.sub-off,.sub-on{display:inline-block;white-space:nowrap}
.sub-arrow{display:inline-block;margin:0 8px;color:var(--mute)}
.sub-tag{display:inline-block;font-style:normal;font-size:.62em;font-weight:800;letter-spacing:.02em;padding:1px 5px 1px 4px;margin-right:5px;border-radius:4px;vertical-align:.12em;color:#fff}
.sub-tag.out{background:#b3261e}.sub-tag.in{background:#1b6f3a}
.sub-off .num,.sub-on .num{font-family:var(--num);font-weight:800;margin-right:2px}
.theatre #dots .dot.ev-out .lb::before{content:"▼ "}
.theatre #dots .dot.ev-in .lb::before{content:"▲ "}
.theatre #dots .dot.ev-out .lb{color:#b3261e}.theatre #dots .dot.ev-in .lb{color:#1b6f3a}
.stage.event-hold #cap{z-index:12}
/* 最高評点: 太い輪だけでなく、クラブカラーの柔らかい光と小さな星の印で目立たせる（エンブレムは使わない。指摘9） */
.theatre #dots .dot.rating-best .c{box-shadow:0 0 0 2px var(--paper),0 0 0 4px color-mix(in srgb,var(--h) 55%,transparent),0 4px 14px color-mix(in srgb,var(--h) 45%,transparent)}
.theatre #dots .dot.a.rating-best .c{box-shadow:0 0 0 2px var(--paper),0 0 0 4px color-mix(in srgb,var(--aSw) 55%,transparent),0 4px 14px color-mix(in srgb,var(--aSw) 45%,transparent)}
.theatre #dots .dot.rating-best .c::after{content:"★";position:absolute;inset:calc(var(--d)*.02) calc(var(--d)*.02) auto auto;width:calc(var(--d)*.34);height:calc(var(--d)*.34);border:0;border-radius:50%;background:var(--h);color:#fff;display:grid;place-items:center;font-size:calc(var(--d)*.22);box-shadow:0 1px 3px #16181d38;animation:none;transform-origin:center;opacity:1}   /* ★は丸の縁の内側に小さく付ける（外へはみ出して隣の丸・名前に重ならない。ラウンド 2） */
.theatre #dots .dot.a.rating-best .c::after{background:var(--aSw)}
/* 最高評価の選手が交代で退いているとき、退いた位置に出す薄い丸（点線の縁）。押せない */
.theatre #dots .dot.ghost{pointer-events:none}
.theatre #dots .dot.ghost::before{display:none}
.theatre #dots .dot.ghost .c{outline:2px dashed color-mix(in srgb,var(--h) 80%,transparent);outline-offset:3px}
.theatre #dots .dot.a.ghost .c{outline-color:color-mix(in srgb,var(--aSw) 80%,transparent)}
/* M9: 隣の丸・名前・ピッチの線にかぶらないよう輪を小さくし（3px/6px→2px/4px）、★ の脈打ちは 2 回で止める（無限ループにしない） */
@keyframes bestpop{0%,100%{transform:scale(1)}50%{transform:scale(1.22)}}
.ray.rating-guide{height:2px;background:var(--ink);opacity:0;z-index:1;transform-origin:0 50%;pointer-events:none}
.pressure-key{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);z-index:7;display:flex;gap:16px;align-items:center;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:#fffffff0;font-size:12px;font-weight:800;white-space:nowrap;pointer-events:none;transition:opacity .2s}
.pressure-key span{display:flex;align-items:center;gap:5px}
.pressure-key i{width:18px;height:5px;background:var(--hTrk);border-radius:2px}
.pressure-key i.a{background:var(--aTrk)}
@media(max-width:760px){
  .pressure-key{bottom:calc(var(--bot,48px) + 3px);font-size:10px;gap:8px;padding:2px 8px}
  .stage.has-card .pressure-key{bottom:calc(var(--bot,48px) + 47px)}
  .stage.event-hold .capin h2{font-size:18px;line-height:1.15;margin:1px 0}
  .stage.event-hold .capin p{font-size:11px;line-height:1.2}
  .stage.event-hold #cap{height:130px}
  .tocb{min-height:44px}
}

/* r7b: 名前の位置は計算した座標にそろえ、最高評点の輪の外へ出す。 */
.theatre #dots .dot.rm .lb{top:0;left:0}
.ray.rating-guide{transition:opacity .3s}
.em.sv.goal .in{background:var(--h);border-color:var(--ink);box-shadow:0 0 0 3px var(--paper)}
.em.sv.goal.a .in{background:var(--aInk)}
/* 長いカードは下の案内を残し、途中だと分かるようにする。 */
.card-scroll-hint{position:sticky;bottom:-8px;margin:0 -8px -8px;padding:20px 8px 8px;background:linear-gradient(transparent,var(--paper) 55%);text-align:center;font-size:12px;font-weight:800;pointer-events:none;z-index:5}
.theatre .lgd{display:none}
@media(max-width:760px){
 .stage.shots-scene #cap{height:120px}
 .stage.shots-scene .capin p{font-size:12px;-webkit-line-clamp:3}
 .stage.event-hold #cap{height:130px}
}

@media(max-width:760px){.stage.event-hold .dot .lb{font-size:12px}}

.stamp.own-goal span{font-size:16px;color:var(--ink);border-color:var(--ink);letter-spacing:0;padding:4px 10px}
/* 畳んだ staging の右端のつまみを、選手カードの閉じるボタンが避ける。 */
@media(max-width:760px){
 body.stg-off .stage-pcard .pcard-x{right:34px}
 body.stg-off .stage-pcard .pc-h{padding-right:68px}
}

/* シュートの口の枠（スマホ）。#floor の中の <polygon>（ゴールの口の 4 点を投影）。#cam の CSS transform で
   ピッチの線・ゴールの網と同じカメラの動きに乗るので、ここでは位置・大きさを一切指定しない（13. 指摘対応）。
   網目はゴールの網と同じ #hatch パターンを薄く重ねる */
/* M8: #cam は寄るほど拡大する CSS transform が乗るので、stroke-width をそのままにすると縁が太って見える。
   vector-effect:non-scaling-stroke で、画面上の太さを寄り引きによらず一定にする */
.shot-mouth-poly{fill:url(#hatch);fill-opacity:.55;stroke:var(--ink2);stroke-width:2;vector-effect:non-scaling-stroke;opacity:0;pointer-events:none;transition:opacity .2s}
.goal-minute{position:absolute;left:16px;top:-7px;white-space:nowrap;font-family:var(--num);font-size:11px;font-weight:800;color:var(--ink);text-shadow:0 0 3px var(--paper),0 0 3px var(--paper)}
.shot-scorer{display:inline-block;white-space:nowrap}
/* round8（2026-10-16）: .88em だと sp390 の枠内（.shots-scene .capin p: 12px）で 10.56px になり下限 11px を割る。
   得点者の行との釣り合いは大きさではなく色（var(--mute)）・太さで付ける */
.shot-scorer.own{font-size:1em;font-weight:700;color:var(--mute)}
@media(max-width:760px){.stage.shots-scene #gGoal{opacity:0}.goal-minute{display:none}}

/* 開始の章（スマホ・R-A）: スコアボードは出さず、ピッチを横いっぱいまで寄せる。外周の時計・目盛り・旗は消し、名前は丸の真下（stage.js の stageOpenPlace） */
.open-teams{position:absolute;left:0;top:0;width:100%;height:0;opacity:0;pointer-events:none;z-index:7;transition:opacity .3s}
.open-teams .ot{position:absolute;left:50%;top:0;display:flex;align-items:center;gap:7px;height:22px;padding:0 11px;border-radius:11px;background:var(--paper);box-shadow:0 1px 4px #16181d26;font-size:13px;font-weight:800;color:var(--ink);white-space:nowrap;transition:opacity .35s}
.open-teams .ot i{width:10px;height:10px;border-radius:50%;background:var(--h)}
.open-teams .ot.a i{background:var(--aSw)}
.open-teams .ot span{font-size:12px;font-weight:700;color:var(--ink2)}
@media(min-width:761px){.open-teams{display:none}}
@media(max-width:760px){
  .stage.open-pt #gTrack,.stage.open-pt .tkl,.stage.open-pt .mk,.stage.open-pt .mkl,.stage.open-pt .flag,.stage.open-pt .moshiki{opacity:0!important}
  .stage.open-pt .theatre #dots .dot .lb,.stage.open-pt #dots .dot .lb{left:0;top:0}
  .stage.open-pt .theatre #dots .dot.hot .c{transform:scale(calc(var(--k)*1.08))}
  .stage.open-pt #dots .dot .c{font-size:calc(var(--d)*.58)}   /* 丸が小さい画面でも、背番号は 11px 以上（丸の直径の 0.58 倍×--k＝直径が 20px 以上なら 11.6px 以上） */
  .stage.sky-off[data-ch="0"]:not(.has-card) .intro-head{top:0}
  .stage.sky-off.mast-on[data-ch="0"] .intro-head{top:50px}
}

/* まとめた章（交代・警告）の、終わった件の一覧: 4 件以上は 2 列 */
.capin h2.sum{font-size:inherit;line-height:1.3;margin:2px 0 0;letter-spacing:0}
.capin .sub-sum{display:grid;gap:1px 8px;font-weight:800;line-height:1.3}
.capin .sub-sum.two{grid-template-columns:1fr 1fr;font-size:12px}
.capin .sub-sum.one{grid-template-columns:1fr;font-size:13.5px;gap:1px}
.capin .sub-sum .sub-pair{white-space:normal;overflow:visible}   /* 名前が長いときは折り返す（欠けない） */
.capin .sub-sum .sub-arrow{margin:0 3px}
.capin .sub-sum .sub-min{font-family:var(--num);font-weight:700;color:var(--mute)}
.capin .sub-sum .num{font-family:var(--num);font-weight:800}
@media(max-width:760px){.stage.light-sum #cap{height:auto;min-height:90px;max-height:178px}}
/* まとめた章の止まった絵: 入った選手の丸に残す小さな緑の▲ */
.theatre #dots .dot.sub-in .c::before{content:"";position:absolute;inset:calc(var(--d)*-.14) calc(var(--d)*-.12) auto auto;width:calc(var(--d)*.42);height:calc(var(--d)*.38);background:#1b6f3a;clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 0 1px #fff);pointer-events:none}
.theatre .board .g .roll.nojump{transition:none}

/* ハーフタイム（スマホ）の終わりの小さな表: 4 項目を字幕の位置に並べる */
.capin h2.tbl{font-size:inherit;line-height:1.3;margin:2px 0 3px}
.capin .ht-tbl{display:grid;gap:1px;font-size:14px;font-weight:800;color:var(--ink)}
.capin .ht-tbl .r{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,6.4em) minmax(0,6.4em);align-items:baseline;column-gap:6px}
.capin .ht-tbl .l{font-size:14px;font-weight:700;color:var(--ink2)}
.capin .ht-tbl .h,.capin .ht-tbl .a{text-align:right;font-family:var(--num);font-size:16px}
.capin .ht-tbl .h{color:var(--hInk)}.capin .ht-tbl .a{color:var(--aInk)}
.capin .ht-tbl .hd .h,.capin .ht-tbl .hd .a{font-family:inherit;font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}   /* 長いチーム名は 1 行で省略記号（単語の途中で折らない） */
@media(max-width:760px){.stage.ht-scene #cap{height:auto;min-height:150px;max-height:252px}   /* v6 M9: 6 項目（モデルの上限）の表と注記が必ず収まる高さ。もとの 210px は 6 項目で下が切れる恐れがあった（中身の高さ。ピッチは topRes で空けた分だけ引く） */}
/* スマホ: 見える字は 11px 以上（凡例・小さな札・終了の章の丸の背番号）。順位の章はピッチを出さず棒を広く */
@media(max-width:760px){
  .pressure-key{font-size:11px}
  .rate-legend{font-size:11px}
  .plb small{font-size:12px}
  .stage.end-scene #dots .dot .c{font-size:calc(var(--d)*.6)}
  .stage.tab-scene .cam,.stage.tab-scene #fx,.stage.tab-scene #dots{opacity:0}
}
/* 縞の説明（最初に縞が出る章だけ）: 字幕を少し高くする */
.capin .strip-note{font-size:12px;line-height:1.35;font-weight:600;color:var(--ink2);margin-top:3px}
@media(max-width:760px){.stage.strip-intro #cap{height:132px}.stage.strip-intro.event-hold #cap{height:168px}}
/* スマホ: 丸の背番号は、丸が小さい画面（低い画面・遠い全景）でも見た目 11px 以上。丸の直径の 0.7 倍までに収める */
@media(max-width:760px){
  .theatre #dots .dot .c{font-size:calc(min(max(var(--d)*.48,11px/var(--k)),var(--d)*.7))}
  .stage.end-scene #dots .dot .c{font-size:calc(min(max(var(--d)*.6,11px/var(--k)),var(--d)*.72))}
  .stage.open-pt #dots .dot .c{font-size:calc(var(--d)*.58)}
}

/* 終了の章（スマホ）: 最終スコアの下に得点者の一覧。左がホーム・右がアウェイ。字幕は中身の高さ（ピッチは topRes で空けた分だけ引く） */
.capin .end-sc{display:grid;grid-template-columns:1fr 1fr;column-gap:12px;margin-top:6px}
.capin .end-col{display:flex;flex-wrap:wrap;align-content:flex-start;gap:2px 10px;min-width:0;font-size:13px;line-height:1.3;font-weight:700;color:var(--ink2)}
.capin .end-col.a{justify-content:flex-end;text-align:right}
.capin .end-sc-i{white-space:nowrap;font-family:var(--num)}
.capin .end-sc-i b{font-family:inherit;font-weight:800;color:var(--hInk)}
.capin .end-col.a .end-sc-i b{color:var(--aInk)}
@media(max-width:760px){.stage.end-scene #cap{height:auto;min-height:90px;max-height:190px}.stage.end-scene .capin p:empty{display:none}}

/* 評点の章（スマホ）の「最高は◯◯ 8.39」の 1 行 */
.capin h2.rb{font-size:calc(17px*var(--fz,1));line-height:1.25;margin:0 0 2px;font-weight:800}
.capin h2.rb b{font-size:1.1em}

/* シュートの線の始まりの点 */
.sdot{position:absolute;left:0;top:0;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--h);pointer-events:none;transition:opacity .3s}
.sdot.a{background:var(--aInk)}
.sdot.b{background:#8b9099}
.sdot.x{background:#b3b6ae}
/* シュートの章（スマホ）の、両チームの枠外・枠内・ブロックの小さな表（字幕の中） */
.capin .shot-tbl{display:grid;gap:1px;margin-top:3px;font-size:12.5px;font-weight:800}
.capin .shot-tbl .r{display:grid;grid-template-columns:minmax(0,1fr) 3.4em 3.4em 3.9em;align-items:baseline;column-gap:4px}
.capin .shot-tbl .r b{text-align:right;font-family:var(--num);font-weight:800}
.capin .shot-tbl .r b.l{text-align:left;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.capin .shot-tbl .r.hd b{font-family:inherit;font-weight:700;font-size:11.5px;color:var(--mute)}
.capin .shot-tbl .r.h b.l{color:var(--hInk)}.capin .shot-tbl .r.a b.l{color:var(--aInk)}
@media(max-width:760px){.stage.shots-scene #cap{height:auto;min-height:120px}}

/* v6（A2）: スマホ専用の分析（終了・シュート・押し込みの時間帯などに重ねる表）。棒はホーム・アウェイの比（くらべた値。量そのものではない行は棒を出さない） */
.capin .an-tbl{display:grid;gap:2px;font-size:13px;font-weight:800;color:var(--ink);margin-top:3px}
.capin .an-tbl .r{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,5.6em) minmax(0,5.6em);align-items:baseline;column-gap:6px;line-height:1.15}
.capin .an-tbl .l{font-size:12.5px;font-weight:700;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.capin .an-tbl .h,.capin .an-tbl .a{text-align:right;font-family:var(--num);font-size:13.5px}
.capin .an-tbl .h{color:var(--hInk)}.capin .an-tbl .a{color:var(--aInk)}
.capin .an-tbl .hd .l,.capin .an-tbl .hd .h,.capin .an-tbl .hd .a{font-family:inherit;font-size:11.5px;font-weight:800;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.capin .an-tbl .an-bar{grid-column:1/-1;display:block;height:3px;border-radius:1.5px;background:var(--aTrk);margin:0 0 1px}
.capin .an-tbl .an-bar::before{content:"";display:block;height:100%;width:var(--ph);background:var(--hTrk);border-radius:1.5px 0 0 1.5px}
.capin .an-tbl.gk{gap:4px}
.capin .an-tbl.gk .gk-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:2px 0 2px 7px;border-left:3px solid var(--h)}
.capin .an-tbl.gk .gk-row.a{border-left-color:var(--a)}
.capin .an-tbl.gk .gk-row .nm{font-size:12.5px;font-weight:800;color:var(--ink)}
.capin .an-tbl.gk .gk-row .gk-st{font-size:12px;font-weight:700;color:var(--ink2)}
/* シュートの章は丸の印とゴール口がすぐ下にあり、字幕が高いと口が小さくなって印がはみ出す（ゴール口の判定は字幕の高さに連動）。
   撃った人は多いと 10 人近いので、2 列に流して縦の高さを抑える */
.capin .an-tbl.shooters{display:block;column-count:2;column-gap:14px}
.capin .an-tbl.shooters .r{grid-template-columns:minmax(0,1fr) minmax(0,4.4em);break-inside:avoid}
.capin .an-tbl.shooters .v{text-align:right;font-family:var(--num);font-size:13px;color:var(--ink2)}
/* v6（A2）: 「このスタッツは誰が良かったか」（kind:'leaders'）。カテゴリ（左）× 選手名＋数字（右、本人のチーム色） */
.capin .an-tbl.leaders .r{grid-template-columns:minmax(0,1fr) minmax(0,9.5em)}
.capin .an-tbl.leaders .r b.h,.capin .an-tbl.leaders .r b.a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px}
@media(max-width:760px){.stage.ana-scene #cap{height:auto;min-height:120px;max-height:255px}
/* 評点の章（.rate-scene）はスコアボードを畳んでいて字幕が高い位置から始まるため、ほかの章より詰めた上限にする（丸の名前ラベルと重ならないように。anaLeadersTable 側も件数を絞る） */
.stage.rate-scene.ana-scene #cap{max-height:170px}}

/* ===== v6 M9（2026-10-15 オーナー指示）: スマホの分析の章（scene.type="panel"）は、ピッチを消して画面いっぱいを図にする =====
   左＝ホーム・右＝アウェイ。クラブカラーの帯で比べる。PC は今までどおり布陣のまま（.anafull は PC では display:none）。
   動かすのは transform（帯の伸び scaleX）と opacity（数字の出現）だけ。 */
.anafull{display:none}
@media(max-width:760px){
  .anafull{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:0;bottom:var(--bot,56px);z-index:7;
    padding:10px 14px 2px;opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}
  .anafull[hidden]{display:none}
  .stage.ana-full .anafull{opacity:1;pointer-events:auto}
  .stage.ana-full.mast-on .anafull{padding-top:58px}
  /* 図に画面を渡す: ピッチ・字幕・凡例は消す（opacity だけ） */
  .stage.ana-full .pw,.stage.ana-full #cap,.stage.ana-full .pressure-key,.stage.ana-full .rate-legend,.stage.ana-full .hbands{opacity:0;pointer-events:none}
  /* L2（2026-10-16 レビュー round 7）: 隠れている間も、中の無限の演出（選手の丸の輪・外周の針の輪）は回り続ける
     （CSS では祖先の opacity:0 が子の animation を止めない）。e7bab19（隠れている間は計算しない）と同じ考えで止める。 */
  .stage.ana-full #dots .dot.hot .c::after,.stage.ana-full .pw .mk i::after{animation:none}
  .stage.ana-full.has-card .anafull{opacity:0;pointer-events:none}

  /* 見出し */
  .af-head{flex:none}
  .af-k{display:block;font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--mute)}
  /* M5（2026-10-16 レビュー round 7）: 見出しは 30〜32px（docs/design-references.md §4-1。本文 12.5px の 2.4 倍以上。
     読みのカードの見出し 33px と階層をそろえる）。長い章名は 2 行に折り返す（折り返しても図が画面に収まることを実測した） */
  .af-t{margin:1px 0 0;font-size:31px;line-height:1.14;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
  .af-t b{font-family:var(--num)}
  /* 左＝ホーム・右＝アウェイ。クラブカラーは細い印と帯だけ（面で塗らない） */
  .af-teams{flex:none;display:flex;justify-content:space-between;align-items:center;gap:8px;margin:7px 0 2px;
    font-size:12.5px;font-weight:800;color:var(--ink2)}
  .af-teams .tm{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .af-teams .tm i{flex:none;width:12px;height:12px;border-radius:3px;background:var(--h)}
  .af-teams .tm.a{color:var(--ink2)}
  .af-teams .tm.a i{background:var(--aSw)}

  /* 行（項目ごとの左右の帯） */
  /* class 名は af- で始める（#big の .big、字幕の .dense など、ほかの決まりと取り違えないため） */
  .af-rows{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:space-evenly;gap:12px;padding:6px 0}
  .af-rows.af-sm{gap:8px}
  /* 行が少ない章（3 行まで）は、帯と数字を大きくして余白を埋める */
  .af-rows.af-lg{gap:26px}
  .af-rows.af-lg .af-bar{height:30px;border-radius:15px}
  .af-rows.af-lg .af-bar .af-fill{border-radius:15px 4px 4px 15px}
  .af-rows.af-lg .af-bar i.a .af-fill{border-radius:4px 15px 15px 4px}
  .af-rows.af-lg .af-rl{margin-bottom:6px}
  .af-rows.af-lg .af-rl .v .n{font-size:40px}
  .af-rows.af-lg .af-rl .v .u{font-size:14px}
  .af-rows.af-lg .af-rl .l{font-size:14.5px}
  .af-row{display:block}
  .af-rl{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;margin-bottom:4px}
  .af-rl .l{flex:1 1 auto;min-width:0;text-align:center;font-size:13px;font-weight:700;color:var(--ink2);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .af-rl .v{flex:none;display:flex;align-items:baseline;gap:1px;font-weight:800;line-height:1}
  .af-rl .v .n{font-family:var(--num);font-size:25px;letter-spacing:-.01em}
  .af-rl .v .u{font-size:12px;font-weight:700;margin-left:1px}
  .af-rl .v.h{color:var(--hInk)}
  .af-rl .v.a{color:var(--aInk)}
  .af-rows.af-sm .af-rl .v .n{font-size:21px}
  /* 帯: 中央から左右へ。足して 100% 未満のときは真ん中が中立（どちらでもない分） */
  .af-bar{display:flex;align-items:stretch;height:15px;border-radius:8px;background:#16181d12;overflow:hidden}
  .af-bar.thin{height:7px;margin-bottom:3px;opacity:.55}
  .af-bar i{display:block;height:100%;min-width:0}
  .af-bar i.a{margin-left:auto}
  .af-bar .af-fill{display:block;width:100%;height:100%;background:var(--hTrk);border-radius:8px 3px 3px 8px;transform-origin:0 50%}
  .af-bar i.a .af-fill{background:var(--aTrk);border-radius:3px 8px 8px 3px;transform-origin:100% 50%}
  /* 前後半: 細い帯（前半）→ 太い帯（後半） */
  .af-legend{flex:none;display:flex;align-items:center;justify-content:center;gap:5px;margin:2px 0 0;font-size:12px;font-weight:700;color:var(--mute)}
  .af-legend i{display:inline-block;width:16px;border-radius:3px;background:var(--mute)}
  .af-legend i.b1{height:4px;opacity:.5}
  .af-legend i.b2{height:9px;margin-left:8px}
  .af-rows.hv .af-rl .v{align-items:baseline;gap:2px}
  .af-rows.hv .af-rl .v .bf{font-family:var(--num);font-size:13.5px;font-weight:700;color:var(--mute)}
  .af-rows.hv .af-rl .v .ar{font-style:normal;font-size:12px;font-weight:700;color:var(--faint);margin:0 1px}
  .af-rows.hv .af-rl .v .n{font-size:22px}
  .af-rows.hv .af-rl .l{font-size:12.5px}
  /* GK の仕事: 両 GK を左右に並べる。帯はホームが左から・アウェイが右から伸びて、画面の真ん中で向き合う */
  .af-gk{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center;padding:10px 0 2px}
  .af-gkin{display:flex;align-items:flex-start;gap:16px}
  .af-gkc{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px}
  .af-gkc.a{text-align:right}
  .gk-nm{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:18px;font-weight:800;color:var(--ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .af-gkc.a .gk-nm{flex-direction:row-reverse}
  .gk-nm i{flex:none;width:4px;height:18px;border-radius:2px;background:var(--h)}
  .af-gkc.a .gk-nm i{background:var(--aSw)}
  .gk-row{display:flex;align-items:baseline;gap:5px;margin-top:16px}
  .af-gkc.a .gk-row{flex-direction:row-reverse}
  .gk-v{font-size:34px;font-weight:800;line-height:1;color:var(--hInk)}
  .af-gkc.a .gk-v{color:var(--aInk)}
  .gk-l{min-width:0;font-size:13px;font-weight:700;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .af-bar.gkb{height:11px;border-radius:6px;margin-top:5px}
  .af-bar.gkb .af-fill{border-radius:6px}
  /* 決定機と枠内シュート: 1 回を 1 つの印に（塗った丸＝決定機、輪郭だけの丸＝逃した決定機、短い棒＝枠内シュート） */
  .af-ch{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:space-evenly;gap:14px;padding:6px 0}
  .ch-row{display:block}
  .ch-l{margin:0 0 7px;text-align:center;font-size:13.5px;font-weight:700;color:var(--ink2)}
  .ch-line{display:flex;align-items:center;gap:8px}
  .ch-ax{flex:none;width:2px;height:30px;border-radius:1px;background:#16181d1f}
  .ch-line .v{flex:none;display:flex;align-items:baseline;font-weight:800;line-height:1}
  .ch-line .v .n{font-family:var(--num);font-size:30px}
  .ch-line .v .u{font-size:12px;font-weight:700;margin-left:1px}
  .ch-line .v.h{color:var(--hInk)}
  .ch-line .v.a{color:var(--aInk)}
  .ch-mk{flex:1 1 0;min-width:0;display:flex;flex-wrap:wrap;align-content:center;gap:5px 5px}
  .ch-mk.h{justify-content:flex-end}
  .ch-mk.a{justify-content:flex-start}
  .ch-mk .m{display:block;width:15px;height:15px;border-radius:50%;background:var(--h)}
  .ch-mk.a .m{background:var(--aSw)}
  .ch-mk .m.ring{background:none;border:2.5px solid var(--h)}
  .ch-mk.a .m.ring{border-color:var(--aSw)}
  .ch-mk .m.bar{width:8px;height:20px;border-radius:4px}
  /* 押し込みの時間帯: 軸は画面の真ん中に固定し、ホームは左へ・アウェイは右へ伸ばす（行ごとに軸が動かない） */
  .af-bar.p15{background:none;overflow:visible;gap:0}
  .p15-hf{flex:1 1 0;min-width:0;display:flex;height:100%;background:#16181d12}
  .p15-hf.h{justify-content:flex-end;border-radius:8px 0 0 8px}
  .p15-hf.a{border-radius:0 8px 8px 0}
  /* アウェイの帯も中央の軸から右へ伸ばす（.af-bar i.a の margin-left:auto を打ち消す。
     打ち消さないと帯が画面の右端から出て、中央の軸との間が空いて見える。2026-10-15 オーナー指摘） */
  .p15-hf i{display:block;height:100%;min-width:0}
  .p15-hf i.a{margin-left:0}
  .p15-hf.h i .af-fill{border-radius:4px 0 0 4px;transform-origin:100% 50%}
  .p15-hf.a i .af-fill{background:var(--aTrk);border-radius:0 4px 4px 0;transform-origin:0 50%}
  /* 真ん中の軸: 図の上から下まで 1 本の線（行の帯はその上に重なる） */
  .af-rows.p15w{position:relative}
  .af-rows.p15w::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:#16181d24}
  .p15-ax{flex:none;width:2px}
  /* 数字が良かった選手: スタッツのチップ → ミニのピッチで本人が光る → 名前・チーム・値 */
  .af-hint{flex:none;margin:7px 0 0;font-size:12px;font-weight:700;color:var(--mute)}
  .af-chips{flex:none;display:flex;flex-wrap:wrap;gap:7px;margin:6px 0 2px}
  .af-chip{flex:0 1 auto;min-width:44px;min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:22px;
    background:var(--paper);font-size:13px;font-weight:800;color:var(--ink2);cursor:pointer;
    transition:transform .18s var(--ease),opacity .18s}
  .af-chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
  /* ミニのピッチ（選手を出す場）。左がホーム、右がアウェイ */
  /* L3（2026-10-16 レビュー round 7）: 緑 2 色を足すと、この画面の色数が 3 を超える（docs/design-references.md §4-2）。
     ピッチの枠と線は、クラブカラー 2 色と同じ黒の濃淡（#16181d の薄い重なり）で描く。 */
  .af-pitch{position:relative;flex:1 1 auto;min-height:148px;margin:8px 0 4px;
    border:1.5px solid #16181d1f;border-radius:10px;background:#16181d08}
  .af-pitch .pt-mid{position:absolute;left:50%;top:0;bottom:0;width:1.5px;margin-left:-.75px;background:#16181d1f}
  .af-pitch .pt-circ{position:absolute;left:50%;top:50%;width:74px;height:74px;margin:-37px 0 0 -37px;border:1.5px solid #16181d1f;border-radius:50%}
  .af-pitch .pt-bx{position:absolute;top:23%;height:54%;width:50px;border:1.5px solid #16181d1f}
  .af-pitch .pt-bx.h{left:-1px;border-left:0;border-radius:0 6px 6px 0}
  .af-pitch .pt-bx.a{right:-1px;border-right:0;border-radius:6px 0 0 6px}
  .af-pl{position:absolute;opacity:.3;transform:translate(-50%,-50%);transition:transform .28s var(--ease),opacity .28s}
  .af-pl.on{opacity:1;transform:translate(-50%,-50%) scale(1.16)}
  .af-pl .c{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:var(--h);color:var(--hT);
    font-weight:700;font-size:17px;box-shadow:0 3px 6px #16181d38}
  .af-pl.a .c{background:var(--aSw);color:var(--aT)}
  .af-pl.on .c{box-shadow:0 0 0 3px var(--paper),0 0 0 6px color-mix(in srgb,var(--h) 50%,transparent),0 6px 18px color-mix(in srgb,var(--h) 40%,transparent)}
  .af-pl.on.a .c{box-shadow:0 0 0 3px var(--paper),0 0 0 6px color-mix(in srgb,var(--aSw) 50%,transparent),0 6px 18px color-mix(in srgb,var(--aSw) 40%,transparent)}
  .af-pl .nm{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);opacity:0;
    white-space:nowrap;font-style:normal;font-size:12.5px;font-weight:800;color:var(--ink);
    text-shadow:0 0 3px var(--paper),0 0 3px var(--paper),0 0 4px var(--paper);transition:opacity .2s}
  .af-pl.on .nm{opacity:1}
  /* 選んだ項目の 1 行（名前・チーム・値）。全部の項目をあらかじめ重ねて置き、選んだものだけを出す */
  .af-liw{position:relative;flex:none;height:62px;margin-top:4px}
  .af-li{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;
    align-items:center;column-gap:12px;opacity:0;transition:opacity .2s}
  .af-li.on{opacity:1}
  .af-li .k{grid-area:1/1;font-size:12.5px;font-weight:800;color:var(--mute)}
  .af-li .who{grid-area:2/1;display:flex;align-items:baseline;gap:7px;min-width:0}
  .af-li .who .nm{font-size:23px;font-weight:800;line-height:1.1;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .af-li .who .tm{flex:none;font-size:12.5px;font-weight:700;color:var(--ink2)}
  .af-li .v{grid-area:1/2/3/3;display:flex;align-items:baseline;font-size:46px;font-weight:700;line-height:1;color:var(--hInk)}
  .af-li .v .u{font-size:14px;font-weight:800;margin-left:2px}
  .af-li.a .v{color:var(--aInk)}
  .af-note{flex:none;margin:6px 0 2px;font-size:12px;line-height:1.35;font-weight:600;color:var(--mute);
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  /* M3（2026-10-16 レビュー round 9）: 実機のブラウザは上下の帯の分だけ低い（390×844 の機種で 664px 前後）。
     「数字が良かった選手」はミニのピッチの最低の高さ（148px）と答えの行（62px）で縮みきらず、
     図が 620px になって画面（608px）に収まっていなかった。低い画面だけ、この 2 つを詰める（字の大きさは変えない）。 */
  @media (max-height:720px){
    .af-pitch{min-height:116px;margin:6px 0 2px}
    .af-liw{height:56px}
  }
}
@media(max-width:380px){
  .anafull{padding-left:10px;padding-right:10px}
  .af-t{font-size:30px}
  .af-rl .v .n{font-size:22px}
  /* 狭い画面はミニのピッチも狭いので、丸を小さくして区分どうしをぶつけない */
  .af-pl .c{width:32px;height:32px;font-size:15px}
}

/* ===== PC の分析の章（2026-10-16 オーナー決定「できるだけスマホと合わせたい。全部 PC にも出していいよ」
   「PC は演出をスマホより強くできる。スマホに引っ張られてグレードダウンさせたくない」）=====
   スマホの節（上の @media(max-width:760px)）は 1 行も変えていない。ここは PC だけの作り直しで、
   スマホの縮小コピーにはしない。PC は画面が広いので:
     ・図を横幅いっぱい（最大 1180px）に広げ、左右の対比・15 分の帯を横長に、GK の対比を大きくする。
     ・文字は 3 段（見出し 38〜52px / 小見出し 16〜17px / ラベル 13〜14px）。数字は主役として 46〜72px。
       docs/design-references.md §4-1 の 1・2（本文の 2.3 倍以上・数字は等幅で右揃え・単位は小さく直下）。
     ・色は 3 色まで（クラブカラー 2 色＋黒の濃淡）。囲まず 1px の線と余白で区切る（§4-1 の 3・6）。
   動き（CLAUDE.md §6 の「transform / opacity だけ」はスマホだけの制限。PC は他のプロパティも使ってよい）:
     ・章に入った瞬間、図の面が下から上がる（translateY 14px → 0。420ms。§4-3「章が変わった瞬間」）。
     ・帯が上から 1 本ずつ伸びる（scaleX。afStep が PC だけ長めにずらす）。
     ・主役の数字が 0 から数え上がる（afStep。PC だけ。§4-3「数値は数え上げ」）。桁は --d の min-width で固定。
     ・チップはマウスに反応する（背景と枠の色。PC の入力に合わせた反応。§4-1 の 10）。
   同時に動かすのはこの順（面 → 帯 → 数字）の 1 本の流れだけ。意味のない動き・常時ループは足さない（§4-2 の 5）。 */
@media (min-width:761px){
  /* 舞台の絵と同じ升（grid-area:left）に重ねる。下の帯（bar）は残す */
  .anafull{display:flex;flex-direction:column;grid-area:left;min-width:0;min-height:0;overflow:hidden;z-index:7;
    padding:36px clamp(28px,4.5vw,92px) 14px;opacity:0;pointer-events:none;transform:translateY(14px);
    transition:opacity .3s var(--ease),transform .42s var(--ease)}
  .anafull[hidden]{display:none}
  .stage.ana-full .anafull{opacity:1;transform:none;pointer-events:auto}
  .stage.ana-full.mast-on .anafull{padding-top:92px}
  /* 図に画面を渡す: ピッチ・字幕・図の見方・読みのカード・凡例は引っ込める */
  .stage.ana-full .pw,.stage.ana-full #cap,.stage.ana-full .pressure-key,.stage.ana-full .rate-legend,.stage.ana-full .hbands,.stage.ana-full .cards{opacity:0;pointer-events:none}
  /* スコアボードも引っ込める（1 画面 1 メッセージ。スマホは sky-off で既に出ていない）。
     display ではなく opacity で消す（display を切ると #pw の大きさを測り直すことになり、前後の章の絵が動く） */
  .stage.ana-full .sky{opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}
  .stage.ana-full .cnote{display:none}
  /* 隠れている間、ピッチの中の無限の演出（丸の輪・外周の針）を回し続けない（スマホと同じ直し） */
  .stage.ana-full #dots .dot.hot .c::after,.stage.ana-full .pw .mk i::after{animation:none}

  /* 【字の段】2026-10-16（round-11 PC 担当 low L4）: 15 / 17 / 18px を 16px に、14px を 13px にまとめ、
     名前（GK 30px・注目の選手 36px）を 32px に揃えた。PC の分析の章で使う字の段は次の 4 つだけにする:
       章名 clamp(38–52px) ／ 名前 32px ／ ラベル・単位 16px ／ 注と小見出し 13px
     （主役の数字は「字」ではなく図の一部として別に決める。docs/design-references.md §4-1）。
     新しい大きさを足さない。足したくなったら、この 4 つのどれかに寄せる。 */
  /* --- 見出しの帯: 小見出し（13px）→ 章名（大きく）→ 左＝ホーム・右＝アウェイ → 1px の線 --- */
  .anafull .af-head{flex:none}
  .anafull .af-k{display:block;font-size:13px;font-weight:800;letter-spacing:.06em;color:var(--mute)}
  .anafull .af-t{margin:4px 0 0;font-size:clamp(38px,3.3vw,52px);line-height:1.06;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
  .anafull .af-t b{font-family:var(--num)}
  .anafull .af-teams{flex:none;display:flex;justify-content:space-between;align-items:center;gap:20px;
    margin:16px 0 0;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:16px;font-weight:800;color:var(--ink2)}
  .anafull .af-teams .tm{display:flex;align-items:center;gap:9px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .anafull .af-teams .tm i{flex:none;width:16px;height:16px;border-radius:4px;background:var(--h)}
  .anafull .af-teams .tm.a i{background:var(--aSw)}
  /* 数え上げる数字は桁の位置を固定する（数え上がっても左右に揺れない。§4-2 の 3）。
     --d ＝ 数字（と符号）の桁数、--dp ＝ 小数点などの細い区切りの数（stage.js の afCtVars が書く）。
     実測（Barlow Condensed）: 1ch は数字の送り幅より 2.3% 狭く、小数点は 0.45ch・マイナスは 0.72ch。
     ここは JS が無いとき（数え上げも起きないとき）の下地で、JS があるときは stage.js の afPinWidths が
     実測の幅を min-width に上書きする（ch の見込みでは字送り・字間の分だけ 1〜2px 足りないため）。
     tabular-nums は、数字の幅が揃わないフォントに替わったときの保険。 */
  .anafull .af-ct{display:inline-block;min-width:calc(var(--d,1) * 1ch + var(--dp,0) * .5ch);text-align:right;
    font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

  /* --- 行（球際と拾った数・パスの前進・守備の数・押し込みの時間帯） --- */
  .anafull .af-rows{flex:1 1 auto;min-height:0;width:100%;max-width:1180px;margin:0 auto;
    display:flex;flex-direction:column;justify-content:space-evenly;gap:18px;padding:20px 0 8px}
  .anafull .af-rows.af-sm{gap:12px}
  .anafull .af-rows.af-lg{gap:40px}
  .anafull .af-row{display:block}
  .anafull .af-rl{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:10px}
  .anafull .af-rl .l{flex:1 1 auto;min-width:0;text-align:center;font-size:16px;font-weight:700;color:var(--ink2);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .anafull .af-rl .v{flex:none;display:flex;align-items:baseline;gap:2px;font-weight:800;line-height:1}
  .anafull .af-rl .v .n{font-family:var(--num);font-size:46px;letter-spacing:-.01em}
  .anafull .af-rl .v .u{font-size:16px;font-weight:700;margin-left:3px}
  .anafull .af-rl .v.h{color:var(--hInk)}
  .anafull .af-rl .v.a{color:var(--aInk)}
  .anafull .af-rows.af-sm .af-rl .v .n{font-size:38px}
  .anafull .af-rows.af-lg .af-rl .v .n{font-size:58px}
  .anafull .af-rows.af-lg .af-rl .l{font-size:16px}
  /* 帯: 中央から左右へ。PC は太く長く（左右の対比を広く） */
  .anafull .af-bar{display:flex;align-items:stretch;height:26px;border-radius:13px;background:#16181d12;overflow:hidden}
  .anafull .af-rows.af-lg .af-bar{height:36px;border-radius:18px}
  .anafull .af-bar.thin{height:10px;margin-bottom:5px;border-radius:5px;opacity:.55}
  .anafull .af-bar i{display:block;height:100%;min-width:0}
  .anafull .af-bar i.a{margin-left:auto}
  .anafull .af-bar .af-fill{display:block;width:100%;height:100%;background:var(--hTrk);border-radius:13px 4px 4px 13px;transform-origin:0 50%}
  .anafull .af-bar i.a .af-fill{background:var(--aTrk);border-radius:4px 13px 13px 4px;transform-origin:100% 50%}
  .anafull .af-rows.af-lg .af-bar .af-fill{border-radius:18px 5px 5px 18px}
  .anafull .af-rows.af-lg .af-bar i.a .af-fill{border-radius:5px 18px 18px 5px}

  /* 行が多い章（af-sm ＝ 6 行以上。押し込みの時間帯の 7 行・前後半の 6 行）は、
     行の数だけ縦に伸びて画面からはみ出すので、字と帯を 1 段落として収める（行も中身も減らさない） */
  .anafull .af-rows.af-sm{gap:10px;padding:14px 0 4px}
  .anafull .af-rows.af-sm .af-rl{margin-bottom:6px}
  .anafull .af-rows.af-sm .af-rl .l{font-size:16px}
  .anafull .af-rows.af-sm .af-bar{height:20px;border-radius:10px}
  .anafull .af-rows.af-sm .af-bar .af-fill{border-radius:10px 3px 3px 10px}
  .anafull .af-rows.af-sm .af-bar i.a .af-fill{border-radius:3px 10px 10px 3px}
  .anafull .af-rows.af-sm .af-bar.thin{height:8px;margin-bottom:4px;border-radius:4px}
  .anafull .af-rows.af-sm .p15-hf.h{border-radius:10px 0 0 10px}
  .anafull .af-rows.af-sm .p15-hf.a{border-radius:0 10px 10px 0}

  /* --- 前後半の数字: 細い帯（前半）→ 太い帯（後半） --- */
  .anafull .af-legend{flex:none;display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 0;
    font-size:13px;font-weight:700;color:var(--mute)}
  .anafull .af-legend i{display:inline-block;width:24px;border-radius:3px;background:var(--mute)}
  .anafull .af-legend i.b1{height:5px;opacity:.5}
  .anafull .af-legend i.b2{height:12px;margin-left:14px}
  .anafull .af-rows.hv .af-rl .v{align-items:baseline;gap:3px}
  .anafull .af-rows.hv .af-rl .v .bf{font-family:var(--num);font-size:24px;font-weight:700;color:var(--mute)}
  .anafull .af-rows.hv .af-rl .v .ar{font-style:normal;font-size:16px;font-weight:700;color:var(--faint);margin:0 7px}
  .anafull .af-rows.hv .af-rl .v .n{font-size:42px}
  .anafull .af-rows.hv .af-rl .l{font-size:16px}
  .anafull .af-rows.hv.af-sm .af-rl .v .bf{font-size:19px}
  .anafull .af-rows.hv.af-sm .af-rl .v .ar{font-size:13px;margin:0 5px}
  .anafull .af-rows.hv.af-sm .af-rl .v .n{font-size:38px}   /* ほかの 6 行の章（af-sm）と同じ段。33px は中間の大きさだった（round-11 PC 担当 low L3） */

  /* --- GK の仕事: 両 GK を画面の左右いっぱいに離し、真ん中で向き合わせる（対比を大きく） --- */
  .anafull .af-gk{flex:1 1 auto;min-height:0;width:100%;max-width:1180px;margin:0 auto;
    display:flex;flex-direction:column;justify-content:center;padding:16px 0 6px}
  .anafull .af-gkin{display:flex;align-items:flex-start;gap:clamp(48px,9vw,150px)}
  .anafull .af-gkc{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px}
  .anafull .af-gkc.a{text-align:right}
  /* 片側にしか記録が無く GK が 1 人だけのとき（stage.js が .one を付ける）、PC は 1 列にする。
     2 列のままだと 1440px のうち 640px が空いたまま、帯だけが空の側まで通しで伸びて
     「どちらのチームの帯か」が図から読めない（round-11 PC 担当 M2）。
     列を真ん中に寄せ、帯の長さもその列の中に収める。記録の無い側は 0 で埋めない（数字を偽らない）。 */
  .anafull .af-gkin.one{justify-content:center}
  .anafull .af-gkin.one .af-gkc{flex:0 1 660px;max-width:660px}
  .anafull .gk-nm{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:32px;font-weight:800;color:var(--ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .anafull .af-gkc.a .gk-nm{flex-direction:row-reverse}
  .anafull .gk-nm i{flex:none;width:6px;height:32px;border-radius:3px;background:var(--h)}
  .anafull .af-gkc.a .gk-nm i{background:var(--aSw)}
  .anafull .gk-row{display:flex;align-items:baseline;gap:10px;margin-top:30px}
  .anafull .af-gkc.a .gk-row{flex-direction:row-reverse}
  .anafull .gk-v{font-size:62px;font-weight:800;line-height:1;color:var(--hInk)}
  .anafull .af-gkc.a .gk-v{color:var(--aInk)}
  .anafull .gk-l{min-width:0;font-size:16px;font-weight:700;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .anafull .af-bar.gkb{height:16px;border-radius:8px;margin-top:10px}
  .anafull .af-bar.gkb .af-fill{border-radius:8px}

  /* --- 決定機と枠内シュート: 1 回を 1 つの印に（塗った丸・輪郭だけの丸・短い棒） --- */
  /* 印が中央の軸のまわりに集まるので、数字が遠くに離れないよう少しだけ狭くする */
  .anafull .af-ch{flex:1 1 auto;min-height:0;width:100%;max-width:1020px;margin:0 auto;
    display:flex;flex-direction:column;justify-content:space-evenly;gap:22px;padding:20px 0 8px}
  .anafull .ch-row{display:block}
  .anafull .ch-l{margin:0 0 12px;text-align:center;font-size:16px;font-weight:700;color:var(--ink2)}
  .anafull .ch-line{display:flex;align-items:center;gap:18px}
  .anafull .ch-ax{flex:none;width:2px;height:54px;border-radius:1px;background:#16181d1f}
  .anafull .ch-line .v{flex:none;display:flex;align-items:baseline;font-weight:800;line-height:1}
  .anafull .ch-line .v .n{font-family:var(--num);font-size:52px}
  .anafull .ch-line .v .u{font-size:16px;font-weight:700;margin-left:3px}
  .anafull .ch-line .v.h{color:var(--hInk)}
  .anafull .ch-line .v.a{color:var(--aInk)}
  /* 印は 1 行に収める。折り返すと「点で数える」図の意味が弱くなるため（round-11 PC 担当 low L5。
     19732687 の決定機 13 個が 12 + 1 に折れていた）。印 1 つを格子の 1 列にして、
     入りきらないときは折り返さずに印のほうを小さくする。列の幅の上限は丸 24px・棒 13px なので、
     余裕があるときの見た目は今までと同じ。 */
  .anafull .ch-mk{flex:1 1 0;min-width:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,24px);align-items:center;gap:9px}
  .anafull .ch-mk.mk-bar{grid-auto-columns:minmax(0,13px)}
  .anafull .ch-mk.h{justify-content:end}
  .anafull .ch-mk.a{justify-content:start}
  .anafull .ch-mk .m{display:block;width:100%;aspect-ratio:1;border-radius:50%;background:var(--h)}
  .anafull .ch-mk.a .m{background:var(--aSw)}
  .anafull .ch-mk .m.ring{background:none;border:4px solid var(--h)}
  .anafull .ch-mk.a .m.ring{border-color:var(--aSw)}
  .anafull .ch-mk .m.bar{aspect-ratio:13/32;border-radius:6px}

  /* --- 押し込みの時間帯: 真ん中の軸を固定し、15 分の帯を横長に --- */
  .anafull .af-bar.p15{background:none;overflow:visible;gap:0}
  .anafull .p15-hf{flex:1 1 0;min-width:0;display:flex;height:100%;background:#16181d12}
  .anafull .p15-hf.h{justify-content:flex-end;border-radius:13px 0 0 13px}
  .anafull .p15-hf.a{border-radius:0 13px 13px 0}
  .anafull .p15-hf i{display:block;height:100%;min-width:0}
  .anafull .p15-hf i.a{margin-left:0}
  .anafull .p15-hf.h i .af-fill{border-radius:6px 0 0 6px;transform-origin:100% 50%}
  .anafull .p15-hf.a i .af-fill{background:var(--aTrk);border-radius:0 6px 6px 0;transform-origin:0 50%}
  .anafull .af-rows.p15w{position:relative}
  .anafull .af-rows.p15w::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:#16181d24}
  .anafull .p15-ax{flex:none;width:2px}

  /* --- 数字が良かった選手: スタッツのチップ → 広いピッチで本人が光る → 名前・チーム・値 --- */
  .anafull .af-hint{flex:none;margin:14px 0 0;font-size:13px;font-weight:700;color:var(--mute)}
  .anafull .af-chips{flex:none;display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 2px}
  .anafull .af-chip{flex:0 1 auto;min-width:46px;min-height:46px;padding:0 20px;border:1px solid var(--line);border-radius:23px;
    background:var(--paper);font-size:16px;font-weight:800;color:var(--ink2);cursor:pointer;
    transition:transform .15s var(--ease),background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}
  /* PC はマウスがあるので、押す前に「押せる」ことが分かる反応を付ける（入りは速く・170ms 前後） */
  .anafull .af-chip:hover:not(.on){background:#16181d0a;border-color:#16181d40;color:var(--ink)}
  .anafull .af-chip:active{transform:scale(.97)}
  .anafull .af-chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
  .anafull .af-pitch{position:relative;flex:1 1 auto;min-height:0;width:100%;max-width:1100px;margin:16px auto 10px;
    border:2px solid #16181d1f;border-radius:16px;background:#16181d08}
  .anafull .af-pitch .pt-mid{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:#16181d1f}
  .anafull .af-pitch .pt-circ{position:absolute;left:50%;top:50%;width:132px;height:132px;margin:-66px 0 0 -66px;border:2px solid #16181d1f;border-radius:50%}
  .anafull .af-pitch .pt-bx{position:absolute;top:23%;height:54%;width:112px;border:2px solid #16181d1f}
  .anafull .af-pitch .pt-bx.h{left:-2px;border-left:0;border-radius:0 10px 10px 0}
  .anafull .af-pitch .pt-bx.a{right:-2px;border-right:0;border-radius:10px 0 0 10px}
  .anafull .af-pl{position:absolute;opacity:.3;transform:translate(-50%,-50%);transition:transform .28s var(--ease),opacity .28s}
  .anafull .af-pl.on{opacity:1;transform:translate(-50%,-50%) scale(1.2)}
  .anafull .af-pl .c{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--h);color:var(--hT);
    font-weight:700;font-size:25px;box-shadow:0 4px 10px #16181d38}
  .anafull .af-pl.a .c{background:var(--aSw);color:var(--aT)}
  .anafull .af-pl.on .c{box-shadow:0 0 0 4px var(--paper),0 0 0 8px color-mix(in srgb,var(--h) 50%,transparent),0 8px 24px color-mix(in srgb,var(--h) 40%,transparent)}
  .anafull .af-pl.on.a .c{box-shadow:0 0 0 4px var(--paper),0 0 0 8px color-mix(in srgb,var(--aSw) 50%,transparent),0 8px 24px color-mix(in srgb,var(--aSw) 40%,transparent)}
  .anafull .af-pl .nm{position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);opacity:0;
    white-space:nowrap;font-style:normal;font-size:16px;font-weight:800;color:var(--ink);
    text-shadow:0 0 3px var(--paper),0 0 3px var(--paper),0 0 5px var(--paper);transition:opacity .2s}
  .anafull .af-pl.on .nm{opacity:1}
  .anafull .af-liw{position:relative;flex:none;height:92px;width:100%;max-width:1100px;margin:4px auto 0}
  .anafull .af-li{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;
    align-items:center;column-gap:24px;opacity:0;transition:opacity .2s}
  .anafull .af-li.on{opacity:1}
  .anafull .af-li .k{grid-area:1/1;font-size:13px;font-weight:800;color:var(--mute)}
  .anafull .af-li .who{grid-area:2/1;display:flex;align-items:baseline;gap:12px;min-width:0}
  .anafull .af-li .who .nm{font-size:32px;font-weight:800;line-height:1.1;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .anafull .af-li .who .tm{flex:none;font-size:16px;font-weight:700;color:var(--ink2)}
  .anafull .af-li .v{grid-area:1/2/3/3;display:flex;align-items:baseline;font-size:72px;font-weight:700;line-height:1;color:var(--hInk)}
  .anafull .af-li .v .u{font-size:16px;font-weight:800;margin-left:4px}
  .anafull .af-li.a .v{color:var(--aInk)}

  /* --- 注記（出所・数え方の但し書き） --- */
  .anafull .af-note{flex:none;width:100%;max-width:1180px;margin:14px auto 2px;font-size:13px;line-height:1.5;font-weight:600;color:var(--mute)}
}
/* 低い PC の画面（ノート PC など）は、いちばん大きい数字と見出しだけ 1 段落とす（行の数・中身は変えない） */
@media (min-width:761px) and (max-height:820px){
  .anafull .af-t{font-size:clamp(32px,2.8vw,42px)}
  .anafull .af-rl .v .n{font-size:38px}
  .anafull .af-rows.af-lg .af-rl .v .n{font-size:46px}
  .anafull .af-rows.hv .af-rl .v .n,.anafull .af-rows.hv.af-sm .af-rl .v .n{font-size:34px}
  .anafull .gk-v{font-size:50px}
  .anafull .gk-row{margin-top:20px}
  .anafull .ch-line .v .n{font-size:42px}
  .anafull .af-li .v{font-size:58px}
  /* 名前は 32px の段のまま（低い画面で落とすのは主役の数字だけ。字の段を増やさない） */
  .anafull .af-liw{height:80px}
  .anafull .af-pl .c{width:48px;height:48px;font-size:22px}
}

/* ===== v6 M9（§5 交代と采配。2026-10-15 オーナー指示「交代と采配の画面デザインもっとかっちょ良く」）=====
   スマホだけ、テレビ中継の帯のように見せる（大きな分・背番号・OUT / IN の対比・時間の軸の上の位置）。
   PC は今までどおりの一覧（.sub-sum）。動かすのは transform / opacity だけ（ここは静止の見た目のみ）。 */
.capin .sub-tv{display:grid;gap:2px;margin-top:2px}
/* 時間の軸: 得点の印を同じ軸に出すので、その交代が流れの変わり目の前か後かが読める */
.capin .sub-ax{position:relative;display:block;height:13px;margin:2px 0 5px}
.capin .sub-ax .sx-l{position:absolute;left:0;right:0;top:5.5px;height:2px;border-radius:1px;background:#16181d1f}
.capin .sub-ax .sx-ht{position:absolute;top:2px;width:1px;height:9px;background:#16181d33}
.capin .sub-ax .sx-g{position:absolute;top:2px;width:6px;height:9px;margin-left:-3px;border-radius:3px;background:var(--hTrk)}
.capin .sub-ax .sx-g.a{background:var(--aTrk)}
.capin .sub-ax .sx-y{position:absolute;top:3px;width:2px;height:7px;margin-left:-1px;border-radius:1px;background:var(--ylw)}
.capin .sub-ax .sx-now{position:absolute;top:0;width:3px;height:13px;margin-left:-1.5px;border-radius:2px;background:var(--ink)}
.capin .sub-tr{display:flex;align-items:center;gap:8px;padding:2px 0 2px 8px;border-left:3px solid var(--h)}
.capin .sub-tr.a{border-left-color:var(--aSw)}
.capin .sub-tr .mn{flex:none;min-width:2.7em;font-family:var(--num);font-size:18px;font-weight:800;line-height:1.1;color:var(--ink)}
.capin .sub-tr .sb{min-width:0;flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 9px}
.capin .sub-tv.two .sub-tr{padding-top:3px;padding-bottom:3px}
.capin .sub-tv.two .sub-tr .mn{font-size:22px}
.capin .sub-tv.two .sb{flex-direction:column;gap:2px}
.capin .sp{display:flex;align-items:baseline;gap:5px;min-width:0}
.capin .sp .tg{flex:none;font-style:normal;font-size:12px;font-weight:800;line-height:1.35;letter-spacing:.02em;color:#fff;background:#b3261e;border-radius:4px;padding:0 5px}
.capin .sp.in .tg{background:#1b6f3a}
.capin .sp .n{flex:none;font-family:var(--num);font-size:15px;font-weight:800;color:var(--ink2)}
.capin .sp .s{min-width:0;font-size:13.5px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.capin .sp.card{font-size:13.5px;font-weight:700;color:var(--ink2)}
.capin .sp.card .cd{flex:none;width:9px;height:13px;border-radius:2px;background:var(--ylw);box-shadow:0 1px 2px #16181d33;transform:translateY(2px)}
.capin .sp.card .cd.r{background:var(--red)}
/* 2026-10-16: 章に添えたイエロー（scene.warnNotes）の 1 行。字幕の下に小さく、うるさくしない */
.capin .warn-notes{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:10px;margin-left:10px;max-width:100%;overflow:hidden;vertical-align:baseline}
.capin .warn-notes .wn{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.capin .warn-notes .wn .cd{flex:none;width:7px;height:10px;border-radius:1.5px;background:var(--ylw);box-shadow:0 1px 2px #16181d33}
.capin .warn-notes .wn .num{font-family:var(--num);font-weight:800;color:var(--ink2)}
.capin .sub-tv.two .sp .s{font-size:17px}
.capin .sub-tv.two .sp .n{font-size:17px}
/* 1 件だけを見せている間（寄っている最中）は、いちばん大きく */
.capin .sub-big{display:grid;gap:3px;margin-top:1px}
.capin .sub-big .sp .s{font-size:20px}
.capin .sub-big .sp .n{font-size:20px}
.capin .sub-big .sp .tg{font-size:12.5px}
@media(max-width:760px){
  .stage.event-hold #cap{height:142px}
  /* 2026-10-16: まとめた章（light-sum）の字幕は、中身の高さに合わせる。
     これまでは、縞の説明が入る章（.stage.strip-intro #cap{height:132px}）や 1 件を見せている間
     （.stage.event-hold #cap{height:142px}）の「決まった高さ」が後から効いて、#cap が overflow:hidden のため
     説明の下 1 行（「ピッチの周りの縞は…」）が切れていた。4 つ並べた指定で、どの組み合わせでも height:auto を勝たせる。
     高さの上限は、実測でいちばん高い中身（交代 5 件 + 縞の説明 = 226px）が入る 232px。 */
  .stage.light-sum #cap,
  .stage.light-sum.strip-intro #cap,
  .stage.light-sum.event-hold #cap,
  .stage.light-sum.strip-intro.event-hold #cap{height:auto;min-height:90px;max-height:232px}
  /* まとめた章は説明文（c[3]）が無いことがある。空の <p> は min-height のぶん場所を取るので消す（終了の章と同じ扱い） */
  .stage.light-sum .capin p:empty{display:none}
}
