
:root{
  color-scheme:dark;
  --bg:#08080a; --bg2:#0f0f12; --surface:#141418; --surface-2:#1e1e24; --ink:#ffffff; --ink2:#b4b4bd; --ink3:#8a8a94; --line:#25252c; --line-hi:#4a4a55;
  /* 黒とロゴの赤のテーマ(U-NEXT 風)。--pink は名前だけ前のままで、中身はアクセントの赤 */
  --pink:#ff4458; --pink-fill:#d91f36; --pink-deep:#ff8591; --pink-tint:rgba(255,68,88,.16); --pink-line:#5e2128; --grad-a:#1a1a21; --grad-b:#2e2e38;
  /* ヘッダー・フッターの帯(名前は前のまま。白テーマ・黒テーマのどちらでも黒) */
  --navy:#0b0b0e; --navy-2:#050506; --on-navy:#ffffff; --on-navy-2:#a9a9b3; --brand-pink:#ff2e7e;
  --card-r:8px; --shadow-hi:0 14px 34px rgba(0,0,0,.55); --hero-fade:#08080a;
  --st-cancel:#ff8a80; --st-cancel-bg:#3a1a18; --st-plan:#8cb8ee; --st-plan-bg:#16263a; --st-post:#e9c46a; --st-post-bg:#33280f;
  --st-unk:#b9b8c0; --st-unk-bg:#26262b; --unl:#e3cf95; --unl-bg:#2b2616; --unl-line:#4a4128;
  --font:'Noto Sans JP','Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic','Meiryo',sans-serif;
  --num:'Teko','Noto Sans JP',sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:var(--pink-deep)}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--pink);outline-offset:2px;border-radius:6px}
/* キーボードで操作する人がメニューを飛ばして本文へ行けるリンク(フォーカスしたときだけ見える) */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--pink-fill);color:#fff;font-weight:700;padding:10px 16px;border-radius:0 0 8px 0;text-decoration:none}
.skip:focus{left:0}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tabnum,.num{font-variant-numeric:tabular-nums}
.num{font-family:var(--num);font-weight:600;letter-spacing:.01em}

/* ヘッダー */
.brand{display:flex;align-items:center;gap:8px 28px;flex-wrap:wrap;padding:10px 0 0}
/* 公式サイトの帯とヘッダー(紺の帯)。白テーマ・黒テーマのどちらでも紺にする */
.official{background:var(--navy-2);color:var(--on-navy-2);font-size:12px;line-height:1.4;border-bottom:1px solid rgba(255,255,255,.06)}
.official .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:32px}
.official-t{display:flex;align-items:center;gap:8px;min-width:0}
.official-t::before{content:"";flex:0 0 auto;width:4px;height:14px;border-radius:1px;background:var(--pink)}
.official a.lang{flex:0 0 auto;color:#fff;font-weight:700;text-decoration:none;border:1px solid rgba(255,255,255,.4);border-radius:4px;padding:4px 10px;font-size:12px;line-height:1.3}
.official a.lang:hover{background:rgba(255,255,255,.12);border-color:#fff}
.top{position:sticky;top:0;z-index:20;background:rgba(11,11,14,.96);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);color:var(--on-navy);border-bottom:1px solid rgba(255,255,255,.08)}
.home{display:flex;align-items:center;gap:10px;color:var(--on-navy);text-decoration:none;padding-bottom:10px}
.topnav{display:flex;gap:16px;margin-left:auto;align-self:stretch;align-items:stretch}
.topnav a{display:flex;align-items:center;font-size:14px;font-weight:500;letter-spacing:.03em;color:var(--on-navy-2);transition:color .15s;text-decoration:none;white-space:nowrap;padding:8px 0 10px;border-bottom:3px solid transparent}
.topnav a:hover{color:#fff}
.topnav a[aria-current]{color:#fff;font-weight:700;border-bottom-color:var(--pink)}
.topnav a:focus-visible,.home:focus-visible,.official a:focus-visible{outline:2px solid #fff;outline-offset:2px}
.brand .theme-btn{align-self:center;margin-bottom:10px}
/* どのページにもあるヘッダーの検索欄(トップページは写真の上の大きな検索欄を使う) */
.hsearch{display:flex;align-self:center;margin-bottom:10px;width:180px;background:#fff;border-radius:6px;overflow:hidden}
.hsearch input{flex:1;min-width:0;border:0;background:transparent;color:#16161a;font-size:14px;padding:8px 4px 8px 12px}
.hsearch input::placeholder{color:#6b6b75}
.hsearch input:focus{outline:none}
.hsearch:focus-within{box-shadow:0 0 0 3px var(--pink)}
.hsearch button{flex:0 0 auto;width:38px;border:0;background:var(--pink-fill);color:#fff;cursor:pointer;display:grid;place-items:center}
.hsearch button:hover{filter:brightness(1.12)}
.hsearch svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.vtr{font-size:13px;line-height:1.5;color:var(--ink2);margin-top:2px}
.mt{font-size:10.5px;color:var(--ink3);border:1px solid var(--line);border-radius:4px;padding:0 5px;margin-left:4px;white-space:nowrap}
.orig{font-size:12px;color:var(--ink3);margin-top:-4px}
/* 白ベース。初めて来た人は端末の設定に合わせ、トップページ右上のボタンで選ぶとその色を覚える(data-theme はページ先頭のスクリプトが付ける) */
:root[data-theme="light"]{
    color-scheme:light;
    --bg:#f6f6f8; --bg2:#ffffff; --surface:#ffffff; --surface-2:#ececf0; --ink:#121216; --ink2:#4a4a55; --ink3:#6b6b75; --line:#e2e2e8; --line-hi:#b5b5c0;
    --pink:#c8102e; --pink-fill:#c8102e; --pink-deep:#a50d26; --pink-tint:rgba(200,16,46,.08); --pink-line:#f0bcc4; --grad-a:#2a2a33; --grad-b:#4a4a56;
    --navy:#0b0b0e; --navy-2:#050506; --shadow-hi:0 12px 28px rgba(18,18,22,.18); --hero-fade:rgba(8,8,10,.7);
    --st-cancel:#b3261e; --st-cancel-bg:#fdecea; --st-plan:#1d4f91; --st-plan-bg:#e7effa; --st-post:#7a5500; --st-post-bg:#fdf3d6;
    --st-unk:#4a4a55; --st-unk-bg:#efeff2; --unl:#6e5200; --unl-bg:#fff6dc; --unl-line:#ecd79a;
}
.theme-btn{flex:0 0 auto;width:32px;height:32px;display:inline-grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:transparent;color:var(--on-navy);cursor:pointer}
.theme-btn:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.theme-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.theme-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.theme-btn .i-moon,:root[data-theme="light"] .theme-btn .i-sun{display:block}
.theme-btn .i-sun,:root[data-theme="light"] .theme-btn .i-moon{display:none}

.logo-mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--grad-a),var(--grad-b));display:grid;place-items:center;
  font-family:var(--num);font-weight:600;font-size:26px;color:#fff;line-height:1;padding-top:4px;box-shadow:0 0 18px rgba(255,46,126,.45)}
.logo-type{font-family:var(--num);font-weight:600;font-size:30px;letter-spacing:.06em;line-height:1;padding-top:5px}
.logo-type .ac{color:var(--brand-pink)}
.logo-img{display:block;height:54px;width:auto}
.logo-img+.logo-type{font-size:22px;padding-top:14px}

/* トップの大きな写真と検索欄。写真は assets/hero.json(photo_gallery.py の HERO_PHOTOS)から開くたびに1枚選ぶ */
.jhero{position:relative;overflow:hidden;background:linear-gradient(120deg,#0b0b0e,#2a2a33);color:#fff}
.jhero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;opacity:0;transition:opacity .5s ease}
.jhero-img.on{opacity:1}
.jhero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,10,.88) 0%,rgba(8,8,10,.6) 50%,rgba(8,8,10,.25) 100%)}
.jhero-in{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:440px;padding-top:56px;padding-bottom:64px}
.jhero h1{margin:0 0 10px;font-size:42px;font-weight:900;line-height:1.25;letter-spacing:.02em;max-width:16em;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.jlead{margin:0 0 22px;font-size:15px;color:#e4e9f3;max-width:56em}
.jlead .num{color:#fff;font-size:21px;margin:0 2px}
.jhero .searchrow{max-width:700px}
.jhero .searchrow input{border:0;border-radius:6px;padding:15px 18px;font-size:17px;background:#fff;color:#16161a;box-shadow:0 8px 28px rgba(0,0,0,.35)}
.jhero .searchrow input::placeholder{color:#6b6b75}
.jhero .searchrow input:focus{outline:none;box-shadow:0 0 0 4px var(--pink),0 8px 28px rgba(0,0,0,.35)}
.jhero .hint{color:#e8edf6;margin-top:8px;display:block;width:fit-content;max-width:100%;background:rgba(8,8,10,.62);padding:3px 8px;border-radius:6px}
.jcredit{position:absolute;right:12px;bottom:10px;max-width:calc(100% - 24px);font-size:11.5px;line-height:1.5;color:#fff;background:rgba(0,0,0,.55);border-radius:4px;padding:5px 9px;text-decoration:none}
.jcredit:hover{text-decoration:underline}
.jcredit:focus-visible{outline:2px solid #fff;outline-offset:2px}
.jcredit[hidden]{display:none}
/* トップページ:メニューを特集の写真の上に透明で重ね、下へスクロールすると黒い帯にする(html.overlay と --hdr-h はスクリプトが付ける) */
html.overlay .jhero{margin-top:calc(-1 * var(--hdr-h,0px))}
html.overlay .jhero-in{padding-top:calc(48px + var(--hdr-h,0px))}
html.overlay .top{transition:background-color .3s,border-color .3s}
html.overlay .top.see-through{background:transparent;border-bottom-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
/* 特集(最近の大会・これからの大会・新しい写真を ‹ › で切り替える。自動では動かない) */
.jhero-scrim{background:linear-gradient(to top,var(--hero-fade) 0,rgba(8,8,10,0) 38%),linear-gradient(to bottom,rgba(8,8,10,.65) 0,rgba(8,8,10,0) 160px),linear-gradient(90deg,rgba(8,8,10,.85) 0%,rgba(8,8,10,.5) 50%,rgba(8,8,10,.1) 100%)}
.jhero .jhero-in{min-height:640px;justify-content:flex-start}
.jhero h1{font-size:28px;font-weight:700;letter-spacing:.04em;margin-bottom:6px}
.jlead{font-size:14px;margin-bottom:18px}
.feat{margin-top:auto;padding-top:48px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px 28px;flex-wrap:wrap}
.feat-main{min-width:0;max-width:760px}
.feat .badge-l{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;background:var(--pink-fill);color:#fff;border-radius:4px;padding:2px 9px;margin-bottom:12px}
.feat .fn{display:block;font-size:38px;font-weight:700;line-height:1.3;letter-spacing:.02em;color:#fff;text-decoration:none;text-shadow:0 2px 18px rgba(0,0,0,.45);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-wrap:balance}
.feat .fm{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;margin-top:10px;font-size:14px;color:#e4e4ea}
.feat .fm .num{font-size:20px;color:#fff;margin-right:1px}
.feat .cta{display:inline-flex;align-items:center;gap:8px;margin-top:18px;background:#fff;color:#0b0b0e;font-weight:700;font-size:14px;padding:11px 22px;border-radius:6px;text-decoration:none}
.feat .cta::before{content:"";width:0;height:0;border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent var(--pink-fill)}
.feat .cta:hover{background:#e9e9ee}
.feat .ctas{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.feat .ctas .cta{margin-top:18px}
.feat .cta2{margin-top:18px;display:inline-flex;align-items:center;padding:10px 20px;border-radius:6px;border:1px solid rgba(255,255,255,.6);background:rgba(8,8,10,.35);color:#fff;font-weight:700;font-size:14px;text-decoration:none}
.feat .cta2:hover{background:rgba(255,255,255,.14);border-color:#fff}
.feat .cta2:focus-visible{outline:3px solid #fff;outline-offset:3px}
/* 開催中の大会の印(赤い点が光る) */
.feat .badge-l.live::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#fff;margin-right:6px;vertical-align:1px;animation:live-dot 1.4s ease-in-out infinite}
@keyframes live-dot{50%{opacity:.25}}
.feat .cta:focus-visible,.fnav button:focus-visible,.feat .fn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.fnav{display:flex;align-items:center;gap:10px}
.fnav .fb{width:42px;height:42px;display:grid;place-items:center;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:rgba(8,8,10,.4);color:#fff;font-size:22px;line-height:1;cursor:pointer;padding:0 0 3px}
.fnav .fb:hover{background:rgba(255,255,255,.16);border-color:#fff}
.fdots{display:flex;gap:6px}
.fdots button{width:22px;height:22px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.fdots button::before{content:"";width:8px;height:8px;border-radius:999px;background:rgba(255,255,255,.4);transition:width .2s,background .2s}
.fdots button[aria-current="true"]::before{width:22px;background:#fff}
/* 検索・絞り込みをしているときは特集をしまって、結果をすぐ見せる */
.jhero.compact .jhero-in{min-height:0;padding-bottom:40px}
.jhero.compact .feat{display:none}

/* 検索・絞り込み */
.searchbox{padding:14px 0 4px}
.searchrow input{width:100%;border:1px solid var(--surface-2);border-radius:10px;padding:13px 16px;font-size:16px;background:var(--surface);color:var(--ink)}
.searchrow input:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 3px var(--pink-tint)}
.hint{margin:6px 2px 0;font-size:12px;color:var(--ink3)}
.ftoggle{display:inline-flex;align-items:center;gap:6px;margin-top:12px;min-height:40px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.ftoggle::after{content:"▾";font-size:12px;transition:transform .2s}
.ftoggle[aria-expanded="true"]::after{transform:rotate(180deg)}
.filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:8px;margin-top:12px;align-items:end}
.filters:not(.open){display:none}
.filters label{display:flex;flex-direction:column;font-size:11.5px;color:var(--ink2);gap:3px;min-width:0}
.filters select{border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--surface);color:var(--ink);min-width:0;width:100%}
.filters .check{flex-direction:row;align-items:center;gap:8px;padding:8px 2px;font-size:13px;color:var(--ink);white-space:nowrap}
.filters .check input{width:18px;height:18px;accent-color:var(--pink)}
.status{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;font-size:13px}
.status .count{font-weight:700}
.chip{display:inline-flex;align-items:center;gap:4px;background:var(--pink-tint);color:var(--pink-deep);border-radius:999px;padding:2px 10px;font-size:12px}
.chip button{border:0;background:none;color:inherit;cursor:pointer;padding:0 2px;font-size:14px;line-height:1}
.clear{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 12px;cursor:pointer;font-size:12px}
.clear:focus-visible,.chip button:focus-visible,.conflict button:focus-visible,details.more-info summary:focus-visible{outline:2px solid var(--pink);outline-offset:2px}
.conflict{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:8px 12px;border-radius:8px;background:var(--unl-bg);border:1px solid var(--unl-line);color:var(--unl);font-size:12.5px}
.conflict button{border:1px solid var(--unl-line);background:var(--surface);color:var(--ink);border-radius:999px;padding:3px 12px;cursor:pointer;font-size:12px}
.kinds{font-size:11.5px;color:var(--ink2)}
.kinds b{font-weight:500;color:var(--ink)}
.noser{margin:4px 0 0;font-size:12.5px;color:var(--ink3)}
/* トップの検索で一致した選手 */
.psec{margin-bottom:26px}
.pcards{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.pcards a{display:flex;flex-direction:column;gap:2px;height:100%;box-sizing:border-box;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-decoration:none}
.pcards a:hover{border-color:var(--line-hi);background:var(--surface-2)}
.pcards .pn{font-weight:700;font-size:15px}
.pcards .pk,.pcards .pcl{font-size:12.5px;color:var(--ink3)}
.pcards .olym{display:inline-block;vertical-align:2px;margin-left:4px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:18px;
  color:#fff;background:linear-gradient(90deg,var(--grad-a),var(--grad-b));border:1px solid var(--pink);white-space:nowrap}
details.more-info{margin:8px 0 4px;font-size:13px}
details.more-info summary{cursor:pointer;color:var(--ink2);font-size:12.5px}
details.more-info .facts{margin-top:8px}
.lk.matched{border-color:transparent;color:var(--ink3);padding:0}

main{padding:10px 0 60px}

/* ヒーローバナー */
.hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:340px;border-radius:16px;overflow:hidden;
  padding:30px 28px;margin:18px 0 30px;text-decoration:none;color:#fff;background:linear-gradient(120deg,var(--grad-a),var(--grad-b))}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.28) 55%,rgba(0,0,0,.05) 100%)}
.hero .rings{position:absolute;top:-40px;right:-40px;opacity:.35}
.hero .rings circle{fill:none;stroke:#fff}
.hero > *:not(img):not(.scrim):not(.rings){position:relative}
.hero .badge-l{display:inline-block;width:fit-content;font-size:11.5px;font-weight:700;background:var(--pink-fill);color:#fff;border-radius:4px;padding:1px 8px;margin-bottom:10px}
.hero .hn{font-size:32px;font-weight:700;letter-spacing:.02em;line-height:1.35;max-width:720px;text-shadow:0 1px 10px rgba(0,0,0,.3)}
.hero .hm{font-size:13px;opacity:.92;margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.hero .hm .num{font-size:18px}
.hero .cta{margin-top:18px;display:inline-block;background:var(--pink-fill);color:#fff;font-weight:700;font-size:13px;padding:9px 18px;border-radius:999px;width:fit-content}
.hero:hover .cta{filter:brightness(1.12)}

/* 横並びの棚 */
.shelf{margin:0 0 30px}
.shelf h2,.section h2{font-size:19px;font-weight:700;margin:0 0 12px;letter-spacing:.04em}
.shelf .sub{font-weight:400;font-size:12px;color:var(--ink3);margin-left:8px}
.shelf-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.shelf-h h2{margin-bottom:4px}
.shelf .all{flex:0 0 auto;border:0;background:none;padding:4px 0;font:inherit;font-size:13px;color:var(--ink2);text-decoration:none;cursor:pointer;white-space:nowrap}
.shelf .all:hover{color:var(--ink)}
.rowwrap{position:relative}
.rbtn{position:absolute;top:10px;z-index:3;width:52px;aspect-ratio:auto;height:var(--rb-h,146px);border:0;padding:0;cursor:pointer;color:var(--ink);font-size:40px;line-height:1;opacity:0;transition:opacity .2s}
.rbtn.prev{left:-8px;background:linear-gradient(90deg,var(--bg) 20%,transparent)}
.rbtn.next{right:-8px;background:linear-gradient(270deg,var(--bg) 20%,transparent)}
.rowwrap:hover .rbtn,.rbtn:focus-visible{opacity:1}
.rbtn[disabled]{display:none}
@media (hover:none){.rbtn{display:none}}
.thumb.photo{background:var(--surface-2)}
.row{display:grid;grid-auto-flow:column;grid-auto-columns:260px;gap:14px;overflow-x:auto;padding:10px 2px 14px;scroll-snap-type:x proximity;scrollbar-width:none}
.row::-webkit-scrollbar{display:none}
.tile{scroll-snap-align:start;text-align:left;display:block;min-width:0;color:inherit;text-decoration:none}
.thumb{position:relative;aspect-ratio:16/9;border-radius:var(--card-r);overflow:hidden;background:linear-gradient(120deg,var(--grad-a),var(--grad-b));transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s}
.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.thumb .ph{position:absolute;inset:0;display:flex;align-items:flex-end;padding:10px 11px;color:#fff;font-weight:700;font-size:12.5px;line-height:1.4;
  background:linear-gradient(to top,rgba(0,0,0,.45),rgba(0,0,0,0) 70%)}
.thumb img~.ph{display:none}
.thumb .rk{position:absolute;top:8px;left:9px;z-index:2;font-family:var(--num);font-size:15px;color:#fff;background:rgba(0,0,0,.45);border-radius:6px;padding:0 7px}
.tile .tt{font-weight:500;font-size:13.5px;line-height:1.5;margin-top:10px;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tile .tm{font-size:12px;color:var(--ink3);margin-top:2px}
.tile .tm .num{font-size:14px;color:var(--pink)}
.tile:hover .thumb,.tile:focus-visible .thumb{transform:scale(1.04);box-shadow:var(--shadow-hi)}
.tile:hover .tt{color:var(--ink)}
.tile:focus-visible{outline:none}
.tile:focus-visible .thumb{outline:3px solid var(--pink);outline-offset:2px}

/* 大会一覧 */
.listhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.listhead h2{margin:0}
.listhead select{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--surface);color:var(--ink)}
.slist{display:flex;flex-direction:column;gap:8px}
.series{background:var(--surface);border:1px solid var(--line);border-left:3px solid transparent;border-radius:var(--card-r);overflow:hidden;transition:border-color .15s}
.series:hover{border-color:var(--line-hi)}
.series.open{border-color:var(--pink);border-left-color:var(--pink)}
.shead{width:100%;display:flex;gap:12px;align-items:center;text-align:left;background:none;border:0;padding:14px 16px;cursor:pointer}
.shead:hover{background:var(--surface-2)}
.shead .body{flex:1;min-width:0}
.shead .sthumb{flex:0 0 168px}
.shead .sthumb .thumb{border-radius:8px}
.shead .sthumb .ph{font-size:11px}
.shead .mark{flex:0 0 auto;font-size:22px;line-height:1;color:var(--ink3);font-weight:300;transition:transform .2s ease}
.series.open .shead .mark{transform:rotate(45deg);color:var(--pink)}
.sname{display:block;font-size:15.5px;font-weight:700;line-height:1.45;word-break:break-word}
.smeta{font-size:12px;color:var(--ink3);margin-top:4px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.smeta .why{color:var(--pink-deep)}
.pill{display:inline-flex;align-items:baseline;gap:2px;background:var(--pink-tint);color:var(--pink);border-radius:999px;padding:0 9px;font-weight:500}
.pill .num{font-size:14px}
.tag{display:inline-block;font-size:11px;border:1px solid var(--line);border-radius:4px;padding:0 6px;color:var(--ink2)}
.tag.unlisted{border-color:var(--unl-line);color:var(--unl);background:var(--unl-bg)}
.sbody{padding:2px 16px 20px;border-top:1px solid var(--line)}
.aliases{font-size:12px;color:var(--ink3);margin:12px 0 0}
.pagelink{margin:10px 0 0;font-size:13px}
.chlabel{font-size:11px;color:var(--ink2);border:1px solid var(--line);border-radius:4px;padding:0 6px}

/* 開催年の年表 */
.rail{display:flex;overflow-x:auto;padding:16px 2px 8px;margin:4px 0 12px}
.yr{position:relative;flex:0 0 auto;min-width:66px;border:0;padding:0 6px;cursor:pointer;text-align:center;color:var(--ink);
  background:linear-gradient(var(--pink-line),var(--pink-line)) 0 12px/100% 3px no-repeat}
.yr .dot{display:block;width:16px;height:16px;margin:6px auto;border-radius:50%;background:var(--pink);border:3px solid var(--surface);box-shadow:0 0 0 2px var(--pink)}
.yr .y{display:block;font-family:var(--num);font-weight:600;font-size:19px;line-height:1.1}
.yr .n{display:block;font-size:11px;color:var(--ink3)}
.yr.none .dot{background:var(--surface);box-shadow:0 0 0 2px var(--line)}
.yr.cancelled .dot{background:var(--surface);box-shadow:0 0 0 2px var(--st-cancel)}
.yr.cancelled .y{text-decoration:line-through;color:var(--st-cancel)}
.yr.scheduled .dot{background:var(--surface);box-shadow:0 0 0 2px var(--st-plan)}
.yr.unverified .dot{background:var(--unl-line);box-shadow:0 0 0 2px var(--unl)}
.yr[aria-pressed="true"] .dot{width:24px;height:24px;margin:2px auto;background:linear-gradient(120deg,var(--grad-a),var(--grad-b));box-shadow:0 0 0 3px var(--pink)}
.yr[aria-pressed="true"] .y{color:var(--pink)}

/* 開催回パネル */
.event{border-radius:var(--card-r);background:var(--bg2);padding:16px 18px;border:1px solid var(--line)}
.event h3{margin:0 0 4px;font-size:18px;line-height:1.45;font-weight:700}
.badge{display:inline-block;font-size:11.5px;font-weight:700;border-radius:4px;padding:1px 8px;margin-left:6px;vertical-align:2px}
.badge.cancelled{color:var(--st-cancel);background:var(--st-cancel-bg)}
.badge.scheduled{color:var(--st-plan);background:var(--st-plan-bg)}
.badge.postponed{color:var(--st-post);background:var(--st-post-bg)}
.badge.unverified{color:var(--st-unk);background:var(--st-unk-bg)}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:3px 14px;margin:10px 0 0;font-size:13px}
.facts dt{color:var(--ink3)}
.facts dd{margin:0;min-width:0;word-break:break-word}
.sessions{margin:0;padding-left:1.2em}
.notes{margin:12px 0 0;padding:10px 12px;background:var(--surface);border-radius:8px;font-size:12px;color:var(--ink2)}
.notes p{margin:0}
.notes p+p{margin-top:4px}
.sources{margin:0;padding:0;list-style:none}
.sources li{font-size:12px;word-break:break-all}
.sources .st{color:var(--ink3);margin-right:6px;word-break:normal}

.vgroup{margin-top:20px}
.vgroup h3,.vgroup h4{margin:0 0 8px;font-size:14px;font-weight:700;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.vgroup h3 small,.vgroup h4 small{font-weight:400;color:var(--ink3);font-size:12px}
.vlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.v{display:grid;grid-template-columns:176px 1fr;gap:16px;padding:8px;border-radius:var(--card-r)}
.v:hover{background:var(--surface)}
.v .thumb{border-radius:6px}
.v:hover .thumb{box-shadow:var(--shadow-hi)}
.v .vt{font-size:14px;line-height:1.5;word-break:break-word}
.v .vt a{color:var(--ink);text-decoration:none}
.v .vt a:hover{color:var(--pink);text-decoration:underline}
.v .vm{font-size:12px;color:var(--ink3);display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;margin-top:3px}
.v .vm .d{color:var(--pink);font-weight:500}
.v .basis{font-size:11.5px;color:var(--ink3);margin-top:3px}
.lk{font-size:10.5px;border-radius:4px;padding:0 6px;border:1px solid var(--line);color:var(--ink2)}
.lk.manual{border-color:var(--pink-line);color:var(--pink)}
.lk.candidate,.lk.series_only,.lk.unmatched{border-color:var(--unl-line);color:var(--unl);background:var(--unl-bg)}
.more{margin-top:8px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 16px;cursor:pointer;font-size:13px}
.more:hover{border-color:var(--pink);color:var(--pink)}
.empty{padding:24px 0;color:var(--ink2)}
.empty strong{color:var(--ink)}
details.loose{margin-top:30px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 16px}
details.loose summary{cursor:pointer;font-weight:700}
footer{font-size:12px}
footer p{margin:0 0 6px;max-width:76ch}
.site-foot{background:var(--navy-2);color:var(--on-navy-2);border-top:1px solid rgba(255,255,255,.08);margin-top:40px}
.site-foot .wrap{padding-top:28px;padding-bottom:44px}
.site-foot a{color:#fff;text-underline-offset:3px}
.site-foot p:first-child{font-size:13.5px;font-weight:500;color:var(--on-navy-2);margin-bottom:16px;line-height:2}
.loading{padding:60px 0;text-align:center;color:var(--ink3)}

.series,.event,.vgroup{scroll-margin-top:72px}
@media (max-width:760px){
  .official-t{font-size:11px}
  .brand{gap:0 12px;padding-top:8px}
  .home{padding-bottom:6px}
  .brand .theme-btn{order:3;width:30px;height:30px;margin:0 0 6px auto}
  /* 項目が5つになったので、狭い画面では横にはみ出さず2行に折り返す */
  .brand .topnav{order:4;flex-basis:100%;margin-left:0;gap:0 14px;flex-wrap:wrap;padding-top:2px}
  .topnav a{font-size:13px;padding:6px 0 8px;letter-spacing:0}
  .hsearch{order:5;width:100%;margin:2px 0 10px}
  .top{position:static}
  .hsearch input{font-size:16px;padding:9px 4px 9px 12px}
  .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filters .check{grid-column:1/-1}
  .hero{min-height:200px;padding:22px 20px}
  .top{position:relative}
  .jhero-in,.jhero .jhero-in{min-height:0;padding-top:26px;padding-bottom:46px}
  html.overlay .jhero-in{padding-top:calc(22px + var(--hdr-h,0px))}
  .jhero h1{font-size:20px;margin-bottom:6px}
  .feat{padding-top:30px;gap:16px}
  .feat .fn{font-size:22px}
  .feat .fm{font-size:12.5px}
  .feat .fm .num{font-size:17px}
  .feat .cta{margin-top:14px;padding:10px 18px;font-size:13.5px}
  .fnav .fb{width:36px;height:36px;font-size:19px}
  .jlead{font-size:12.5px;margin-bottom:14px}
  .jlead .num{font-size:17px}
  .jhero .searchrow input{padding:13px 14px;font-size:16px}
  .jhero .hint{font-size:11.5px}
  .jcredit{font-size:10.5px;right:8px;bottom:7px;max-width:calc(100% - 16px);padding:6px 9px}
  .jcredit .jl{display:none}
  .hero .hn{font-size:21px}
  .row{grid-auto-columns:41%;gap:10px}
  .sbody{padding:2px 12px 16px}
  .shead .sthumb{flex-basis:112px}
  .shead{gap:10px;padding:10px}
  .logo-type{font-size:24px}
  .logo-mark{width:28px;height:28px;font-size:21px}
  .logo-img{height:44px}
  .logo-img+.logo-type{font-size:19px;padding-top:11px}
  .hero{min-height:260px}
  .event{padding:14px 12px}
  .v{grid-template-columns:128px 1fr;gap:10px;padding:6px 2px}
  .facts{grid-template-columns:1fr}
  .facts dt{margin-top:6px}
}
/* 入口の演出(トップページ・ブラウザを開いて最初の1回だけ。html に intro が付いたときだけ動く) */
@keyframes jh-zoom{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes jh-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
html.intro .jhero-img.on{animation:jh-zoom 7s cubic-bezier(.2,.6,.2,1) both}
html.intro .jhero h1{animation:jh-rise .7s .1s cubic-bezier(.2,.7,.2,1) both}
html.intro .jlead{animation:jh-rise .7s .3s cubic-bezier(.2,.7,.2,1) both}
html.intro .jhero .searchrow{animation:jh-rise .7s .5s cubic-bezier(.2,.7,.2,1) both}
html.intro .jhero .hint{animation:jh-rise .7s .65s cubic-bezier(.2,.7,.2,1) both}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.bk-n{font-size:14px;font-weight:500;color:var(--ink3);margin-left:6px}
.bk-cats{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px}
.bk-cats a{display:inline-flex;gap:6px;align-items:center;padding:6px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-size:14px;background:var(--surface)}
.bk-cats a:hover{border-color:var(--pink)}
.bk-cats small{color:var(--ink3);font-size:12px}
.bk-shelf{list-style:none;margin:10px 0 0;padding:0 0 4px;display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:22px 16px;border-bottom:6px solid var(--surface-2)}
.bk-shelf.bk-small{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));border-bottom:0}
.bk-shelf li{min-width:0}
.bk-shelf a{display:flex;flex-direction:column;gap:6px;color:var(--ink);text-decoration:none}
.bk-shelf a:hover .bk-cover{transform:translateY(-3px);box-shadow:var(--shadow-hi)}
.bk-shelf a:hover .bk-t{color:var(--pink)}
.bk-cover{position:relative;display:block;aspect-ratio:2/3;max-width:100%;border-radius:3px;overflow:hidden;background:linear-gradient(150deg,var(--grad-a),var(--grad-b));box-shadow:0 2px 6px rgba(0,0,0,.35);transition:transform .2s,box-shadow .2s}
.bk-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--surface)}
.bk-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:10px;text-align:center;font-size:12px;font-weight:700;line-height:1.5;color:#fff;overflow:hidden}
.bk-t{font-size:13px;font-weight:500;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bk-a{font-size:12px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-detail{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:start;margin:6px 0 10px}
@media (max-width:600px){.bk-detail{grid-template-columns:120px minmax(0,1fr);gap:16px}.bk-page h1{font-size:20px}}
.bk-big{box-shadow:0 8px 24px rgba(0,0,0,.4)}
.bk-info h1{margin-top:0}
.bk-comment{margin:0;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);max-width:70ch}
.bk-desc{max-width:70ch;color:var(--ink2)}
.bk-desc p{margin:0 0 .9em}
.bk-players{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.bk-players a{display:inline-block;padding:6px 14px;border:1px solid var(--pink-line);border-radius:999px;color:var(--pink);text-decoration:none;font-weight:700;font-size:14px}

.contact{padding-bottom:44px}
.contact .direct{max-width:640px;margin:4px 0 22px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--pink);border-radius:8px}
.contact .direct span{display:block;font-size:12px;color:var(--ink3)}
.contact .direct a{font-size:17px;font-weight:700;text-decoration:none;word-break:break-all}
.cform{max-width:640px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px 22px 24px}
.cform .field{margin-bottom:18px}
.cform label{display:block;font-weight:700;font-size:14px;margin-bottom:6px}
.cform .req{display:inline-block;margin-left:8px;padding:0 7px;border-radius:4px;background:var(--pink-fill);color:#fff;font-size:11px;font-weight:700;vertical-align:1px}
.cform .fhint{font-size:12px;color:var(--ink3);margin:6px 0}
.cform input[type=text],.cform input[type=email],.cform select,.cform textarea{width:100%;box-sizing:border-box;font:inherit;font-size:16px;padding:11px 13px;border:1px solid var(--surface-2);border-radius:10px;background:var(--bg2);color:var(--ink)}
.cform textarea{min-height:170px;resize:vertical}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 3px var(--pink-tint)}
.cform button{display:block;width:100%;margin-top:14px;padding:13px;border:0;border-radius:999px;background:var(--pink-fill);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.cform button:hover{filter:brightness(1.12)}
.cform button:disabled{opacity:.6;cursor:wait}
.cform .hp{position:absolute;left:-9999px}
.cresult{display:none;margin-top:14px;padding:12px 14px;border-radius:8px;font-size:14px}
.cresult.ok{display:block;background:#12301f;border:1px solid #2f6b47}
:root[data-theme="light"] .cresult.ok{background:#e6f4ea;border-color:#9ccfab}
.cresult.ng{display:block;background:var(--st-cancel-bg);border:1px solid var(--st-cancel)}
@media (max-width:520px){.cform{padding:18px 14px 20px}}
.page{padding-top:18px}
.policy{padding-bottom:44px}
.policy .upd{font-size:13px;color:var(--ink3);margin:0 0 8px}
.policy h2{font-size:18px;font-weight:700;margin:28px 0 8px;padding-left:10px;border-left:3px solid var(--pink)}
.policy p,.policy ul{max-width:70ch}
.policy li{margin:0 0 8px}
.ptable{border-collapse:collapse;font-size:14px;margin:4px 0 12px;max-width:70ch;width:100%}
.ptable th,.ptable td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.ptable th{background:var(--surface);font-weight:700}
.crumbs ol{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:4px;font-size:12px;color:var(--ink3)}
.crumbs li+li::before{content:"/";margin-right:4px;color:var(--line)}
.crumbs a{color:var(--ink2);text-decoration:none}.crumbs a:hover{color:var(--pink)}
.page h1{font-size:28px;font-weight:700;line-height:1.35;margin:0 0 8px;letter-spacing:.03em}
.page h1 .yr-h{font-family:var(--num);font-weight:600;font-size:1.25em;color:var(--pink);letter-spacing:.02em}
.lead{color:var(--ink2);margin:0 0 14px;max-width:70ch}
.page .facts{font-size:14px;margin-bottom:6px}
.page .vgroup h3{margin:0 0 8px;font-size:16px;font-weight:700;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.page .vgroup h3 small{font-weight:400;color:var(--ink3);font-size:12px}
.vgroup{margin-top:26px}
a.yr{text-decoration:none}
.yr[aria-current] .dot{width:24px;height:24px;margin:2px auto;background:linear-gradient(120deg,var(--grad-a),var(--grad-b));box-shadow:0 0 0 3px var(--pink)}
.yr[aria-current] .y{color:var(--pink)}
.yr.off{cursor:default;opacity:.55}
.rail{margin:14px 0 4px;scrollbar-width:thin}
.more-box{margin-top:28px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 16px}
.more-box summary{cursor:pointer;font-weight:700}
.more-box .facts{margin-top:12px}
.sources .url{display:block;color:var(--ink3);font-size:11px}
.sources li+li{margin-top:6px}
.elinks{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.elink{display:inline-block;padding:8px 18px;border:1px solid var(--pink-line);border-radius:999px;color:var(--pink);text-decoration:none;font-size:14px;font-weight:700}
.elink:hover{border-color:var(--pink)}
.elink.primary{background:var(--pink-fill);border-color:var(--pink-fill);color:#fff}
.elink.primary:hover{filter:brightness(1.12)}
.tosearch-line{margin:26px 0 0;font-size:13px}
.page .section{margin-top:24px}
.page .aliases{margin:0 0 6px}
.occ{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.occ a,.occ .off>div{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-radius:var(--card-r);transition:background .15s,border-color .15s;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none}
.occ a:hover{border-color:var(--line-hi);background:var(--surface-2)}
.occ .off>div{opacity:.6}
.occ .oy{font-family:var(--num);font-weight:600;font-size:26px;line-height:1;color:var(--pink)}
.occ .off .oy{color:var(--ink3)}
.occ .ob{min-width:0;display:flex;flex-direction:column}
.occ .od{font-size:14px}
.occ .ov{font-size:12px;color:var(--ink3)}
.occ .on{font-size:12px;color:var(--ink3);white-space:nowrap}
.occ .on .num{font-size:18px;color:var(--ink);margin-right:1px}
.slist-static a{grid-template-columns:1fr auto}
.slist-static .sname{font-weight:700}
.slist-static .tag{margin-left:4px}
.egrid{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 16px}
.egrid .tile .tt{font-weight:700;font-size:14.5px}
.egrid .tile .tm{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:4px}
.egrid .tile .tm .num{font-size:16px}
.egrid .thumb .ph{font-size:13px}
.egrid .pmark{position:absolute;top:7px;right:8px;z-index:2;font-size:12px;line-height:1;background:rgba(0,0,0,.55);border-radius:4px;padding:4px 6px}
@media (max-width:980px){.egrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.egrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 10px}.egrid .tile .tt{font-size:13.5px}}
.chlist{list-style:none;margin:0 0 30px;padding:0;display:flex;flex-direction:column;gap:6px}
.chlist a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-radius:10px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none}
.chlist a:hover{border-color:var(--line-hi);background:var(--surface-2)}
.chlist .cn{font-weight:700;min-width:0}
.chlist .cm{font-size:12px;color:var(--ink3);display:flex;align-items:center;gap:8px;white-space:nowrap;flex:0 0 auto}
.chlist .cm .num{font-size:16px;color:var(--ink);font-family:var(--num)}
@media (max-width:520px){
  .page .catcards{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .page .catcards a{padding:10px 12px;gap:2px}
  .page .catcards .cn{font-size:14px}
  .page .catcards .cd{display:none}
  .page .catcards .cc .num{font-size:18px}
  .chlist a{flex-direction:column;align-items:flex-start;gap:6px}
  .chlist .cm{white-space:normal}
}
.v .ch{color:var(--ink2);text-decoration:none}
.v .chlabel{font-size:11px;color:var(--ink2);border:1px solid var(--line);border-radius:4px;padding:0 6px}
.v .ch:hover{color:var(--pink)}
.v .catlink{font-size:11px;border:1px solid var(--pink-line);color:var(--pink-deep);border-radius:4px;padding:0 7px;text-decoration:none}
.v .catlink:hover{border-color:var(--pink)}
.catnav{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 10px;margin:4px 0 8px;scrollbar-width:thin}
.catnav a{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:5px;font-size:13px;color:var(--ink);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:6px 14px;background:var(--surface)}
.catnav a b{font-family:var(--num);font-weight:600;font-size:15px;color:var(--ink3)}
.catnav a:hover{border-color:var(--pink)}
.catnav a[aria-current]{background:var(--pink-fill);border-color:var(--pink-fill);color:#fff}
.catnav a[aria-current] b{color:#fff}
.catcards{list-style:none;margin:10px 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.catcards a{display:flex;flex-direction:column;gap:4px;height:100%;padding:14px 16px;border-radius:12px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;border-top:3px solid var(--pink)}
.catcards a:hover{border-color:var(--line-hi);background:var(--surface-2)}
.catcards .cn{font-weight:700;font-size:16px}
.catcards .cd{font-size:12px;color:var(--ink3);line-height:1.55;flex:1}
.catcards .cc{font-size:12px;color:var(--ink3)}
.catcards .cc .num{font-size:20px;color:var(--pink);margin-right:2px}
.page h2.vh{margin:0 0 8px;font-size:17px;font-weight:700;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.page h2.vh small{font-weight:400;color:var(--ink3);font-size:12px}
.v .thumb img{width:100%;height:100%}
@media (max-width:760px){
  .page h1{font-size:22px}
  .logo-type{font-size:21px;white-space:nowrap}
  .page .facts{grid-template-columns:max-content 1fr}
  .page .facts dt{margin-top:0}
  .occ a,.occ .off>div{grid-template-columns:56px 1fr auto;gap:10px;padding:10px 12px}
  .occ .oy{font-size:22px}
}

.soon{padding-bottom:48px}
.soon .soon-badge{display:inline-block;margin:10px 0 4px;padding:3px 12px;border-radius:999px;font-size:12px;font-weight:700;
  letter-spacing:.12em;color:#fff;background:linear-gradient(90deg,var(--grad-a),var(--grad-b))}
.soon h1{margin-top:4px}
.soon .soon-when{font-size:22px;font-weight:700;color:var(--pink);margin:0 0 10px}
.soon .soon-list{list-style:none;padding:0;margin:18px 0;display:grid;gap:10px;max-width:640px}
.soon .soon-list li{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--pink);border-radius:10px;padding:12px 16px}
.soon .soon-list b{display:block;font-size:16px}
.soon .soon-list span{font-size:13px;color:var(--ink3)}
.soon .soon-note{font-size:14px;color:var(--ink2)}
.page h1 .kana{font-size:.5em;font-weight:500;color:var(--ink3);margin-left:10px}
.olys{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 12px}
.olys .oly{display:inline-flex;align-items:center;gap:7px;padding:4px 14px 4px 10px;border-radius:999px;font-size:13px;font-weight:700;
  color:#fff;background:linear-gradient(90deg,var(--grad-a),var(--grad-b));border:1px solid var(--pink)}
.olys .oly::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pink);flex:0 0 auto}
/* 世界選手権・U23 は白抜き(オリンピックを目立たせる)。紺の枠は黒テーマで見えにくいので、テーマごとに色が変わる --st-plan を使う */
.olys .oly.wc{color:var(--ink);background:transparent;border:1.5px solid var(--st-plan)}
.olys .oly.wc::before{background:var(--st-plan)}
#plist .olym{display:inline-block;vertical-align:2px;margin-left:6px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:18px;
  color:#fff;background:linear-gradient(90deg,var(--grad-a),var(--grad-b));border:1px solid var(--pink);white-space:nowrap}
.psearch{margin:8px 0 6px}
.psearch input{width:100%;box-sizing:border-box;font-size:16px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.psearch input:focus{outline:2px solid var(--pink);outline-offset:1px}
.psearch .pcount{margin:6px 2px 0;font-size:13px;color:var(--ink3)}
.pgroup{margin:0;border-bottom:1px solid var(--line)}
.pgroup:first-child{border-top:1px solid var(--line)}
.pgroup summary{display:flex;align-items:baseline;gap:10px;padding:14px 4px;cursor:pointer;list-style:none;font-size:16px;font-weight:700}
.pgroup summary::-webkit-details-marker{display:none}
.pgroup summary::after{content:"+";margin-left:auto;align-self:center;display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line-hi);border-radius:999px;color:var(--ink2);font-size:20px;font-weight:400;line-height:1}
.pgroup[open] summary::after{content:"−";color:var(--pink);border-color:var(--pink)}
.pgroup summary:hover .pg-n{color:var(--pink)}
.pgroup .pg-c{font-size:13px;font-weight:500;color:var(--ink3)}
.pgroup ol{margin:0 0 14px}
#plist{margin-top:10px}
#plist .occ a{grid-template-columns:1fr auto}
.pgroup[hidden],#plist li[hidden]{display:none}
.optout{margin-top:28px;padding-top:14px;border-top:1px solid var(--line);font-size:13px;color:var(--ink3)}
table.winners{border-collapse:collapse;width:100%;font-size:14px}
table.winners th{width:64px;padding:8px 10px 8px 0;text-align:left;vertical-align:top;color:var(--ink3);font-weight:500;white-space:nowrap;border-bottom:1px solid var(--line)}
table.winners td{padding:6px 0;border-bottom:1px solid var(--line)}
table.winners .wr{display:inline-block;margin:2px 14px 2px 0}
table.winners .wr b{color:var(--pink);font-weight:700;margin-right:2px}
table.winners .wr small{color:var(--ink3);font-size:12px}
.winners-box h3{font-size:15px;margin:14px 0 4px}
.rtable{overflow-x:auto;margin:8px 0 22px}
table.results{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}
table.results th,table.results td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
table.results th{color:var(--ink3);font-weight:500;font-size:12px}
table.results td b{color:var(--pink)}
.pager{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 4px}
.pager button{min-width:38px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;font-size:14px;cursor:pointer}
.pager button[aria-current]{background:var(--pink-fill);border-color:var(--pink-fill);color:#fff}
.pager button:disabled{opacity:.35;cursor:default}
.pager .pg-n{font-size:12px;color:var(--ink3);margin-left:4px}
.uww-pl{scroll-margin-top:72px}
.uww-pl .v[hidden]{display:none}

.cal{padding-bottom:40px}
.cal-bar{display:flex;align-items:center;gap:10px;margin:14px 0 8px;flex-wrap:wrap}
.cal-bar h2{margin:0;min-width:150px;text-align:center;font-size:22px}
.cal-nav,.cal-today,.cal-all{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:999px;cursor:pointer}
.cal-nav{width:40px;height:40px;font-size:22px;line-height:1}
.cal-today,.cal-all{padding:7px 14px;font-size:13px}
.cal-nav:hover,.cal-today:hover,.cal-all:hover{border-color:var(--pink)}
.cal-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink3);margin:0 0 10px}
.cal-legend .lg::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:0}
.lg.vid::before{background:var(--pink)}.lg.sch::before{background:#5b8def}.lg.can::before{background:#6b6a73}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line);gap:1px}
.cal-grid .wd{background:var(--bg2);text-align:center;font-size:12px;color:var(--ink3);padding:6px 0}
.cal-grid .wd.sun{color:#ff6a8a}.cal-grid .wd.sat{color:#7aa6ff}
.cal-grid .day{background:var(--surface);min-height:104px;padding:5px;display:flex;flex-direction:column;gap:3px;cursor:pointer;border:0;text-align:left;font:inherit;color:inherit}
.cal-grid .day.out{background:var(--bg2);opacity:.45;cursor:default}
.cal-grid .day.today{box-shadow:inset 0 0 0 2px var(--pink)}
.cal-grid .day.sel{background:var(--surface-2)}
.cal-grid .dn{font-size:13px;font-weight:700;color:var(--ink2)}
.cal-grid .day.sun .dn{color:#ff6a8a}.cal-grid .day.sat .dn{color:#7aa6ff}
.cal-grid .chip{display:block;font-size:11px;line-height:1.35;padding:2px 5px;min-height:24px;box-sizing:border-box;padding-top:4px;border-radius:5px;color:#fff;text-decoration:none;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip.vid{background:var(--pink-fill)}.chip.sch{background:#2f4f8f}.chip.can{background:#3a3a42;text-decoration:line-through}
.cal-grid .cal-more{font-size:11px;color:var(--ink3)}
.cal-grid .dots{display:none;gap:3px;flex-wrap:wrap}
.cal-grid .dots i{width:7px;height:7px;border-radius:50%}
.dots i.vid{background:var(--pink)}.dots i.sch{background:#5b8def}.dots i.can{background:#6b6a73}
.cal-listhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:26px 0 6px;flex-wrap:wrap}
.cal-listhead h2{margin:0;font-size:18px}
.cal-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.cal-list li{display:grid;grid-template-columns:88px 1fr auto;gap:12px;align-items:center;padding:11px 4px;border-bottom:1px solid var(--line)}
.cal-list .cd{font-weight:700;font-size:14px;color:var(--ink2)}
.cal-list .cn{font-size:15px;line-height:1.45}
.cal-list .cn small{display:block;font-size:12px;color:var(--ink3)}
.cal-list .cn a{color:var(--ink);text-decoration:none}
.cal-list .cn a:hover{color:var(--pink)}
.cal-list .cb{font-size:11px;padding:2px 9px;border-radius:999px;white-space:nowrap}
.cal-list .vid .cb{background:var(--pink-tint);color:var(--pink)}
.cal-list .sch .cb{background:rgba(91,141,239,.16);color:#8fb0ff}
.cal-list .can .cb{background:#26262c;color:var(--ink3)}
[data-theme="light"] .cal-grid .wd.sun,[data-theme="light"] .cal-grid .day.sun .dn{color:#c62850}
[data-theme="light"] .cal-grid .wd.sat,[data-theme="light"] .cal-grid .day.sat .dn{color:#1d5bbf}
[data-theme="light"] .cal-list .sch .cb{background:#e7effa;color:#1d4f91}[data-theme="light"] .cal-list .can .cb{background:#ececf0}
[data-theme="light"] .lg.can::before,[data-theme="light"] .dots i.can{background:#9a9aa3}[data-theme="light"] .chip.can{background:#6b6b75}
.cal-list .can .cn{text-decoration:line-through;color:var(--ink3)}
.cal-list .cal-empty{display:block;color:var(--ink3);padding:16px 4px}
.cal-list .addc{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.cal-list .addc a{font-size:12px;font-weight:700;color:var(--pink);border:1px solid var(--pink-line);border-radius:999px;padding:4px 10px;text-decoration:none}
.cal-list .addc a:hover{border-color:var(--pink)}
@media (max-width:640px){
  .cal-grid .day{min-height:54px;align-items:center}
  .cal-grid .chip,.cal-grid .cal-more{display:none}
  .cal-grid .dots{display:flex;justify-content:center}
  .cal-list li{grid-template-columns:70px 1fr;}
  .cal-list .cb{grid-column:2;justify-self:start}
}

.photos{margin-top:26px}
.pgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.pgrid li{margin:0;min-width:0}
.pgrid a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:var(--surface);border:1px solid var(--line)}
.pgrid a:hover,.pgrid a:focus-visible{border-color:var(--pink);outline:none}
.pgrid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}
.pgrid a:hover img{transform:scale(1.03)}
.pcap{margin:6px 2px 0;font-size:12px;line-height:1.5;color:var(--ink2)}
.pcredit{display:block;font-size:11px;color:var(--ink3)}
.palbum{display:block;width:max-content;max-width:100%;margin:12px auto 0;padding:9px 22px;border:1px solid var(--pink-line);border-radius:999px;color:var(--pink);text-decoration:none;font-size:14px;font-weight:700}
.palbum:hover{border-color:var(--pink)}
.ptakedown{margin:14px 0 0;text-align:center;font-size:11.5px;color:var(--ink3)}
.ptakedown a{color:inherit}
.palbum-c{margin:4px 0 0;text-align:center;font-size:11.5px;color:var(--ink3)}
.pcredit-all{margin:-4px 0 10px;font-size:12px;color:var(--ink3)}
.pshow{display:block;margin:12px auto 0;padding:9px 22px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.pshow:hover{border-color:var(--pink);color:var(--pink)}
.pshow:focus-visible{outline:2px solid var(--pink);outline-offset:2px}
.plb{padding:0;border:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh;color:#fff}
.plb::backdrop{background:rgba(0,0,0,.92)}
.plb figure{margin:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 56px 20px;box-sizing:border-box}
.plb img{max-width:100%;max-height:calc(100% - 60px);object-fit:contain;border-radius:6px}
.plb figcaption{max-width:70ch;text-align:center;font-size:14px;color:#d8d7de}
.plb figcaption .pcredit{color:#a9a8b2}
.plb figcaption .pcredit{margin-top:2px}
.plb button{position:absolute;border:1px solid #3a3a42;background:rgba(22,22,26,.85);color:#fff;border-radius:999px;width:44px;height:44px;font-size:24px;line-height:1;cursor:pointer}
.plb button:hover{border-color:var(--pink);color:var(--pink)}
.plb-x{top:10px;right:10px}
.plb-p{left:8px;top:50%;transform:translateY(-50%)}
.plb-n{right:8px;top:50%;transform:translateY(-50%)}
.plb.one .plb-p,.plb.one .plb-n{display:none}
@media (max-width:520px){
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .plb figure{padding:56px 8px 16px}
  .plb-p,.plb-n{top:auto;bottom:12px;transform:none}
}

.pcards{list-style:none;margin:18px 0 32px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.pcards li{margin:0;min-width:0}
.pcards a{display:flex;flex-direction:column;gap:3px;height:100%;padding:0 0 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none;overflow:hidden}
.pcards a:hover,.pcards a:focus-visible{border-color:var(--pink);outline:none}
.pc-img{display:block;aspect-ratio:4/3;overflow:hidden;margin-bottom:8px;background:var(--surface)}
.pc-img img{display:block;width:100%;height:100%;object-fit:cover}
.pc-t,.pc-s,.pc-c{padding:0 12px}
.pc-t{font-weight:700;font-size:15px;line-height:1.4}
.pc-s{font-size:12.5px;color:var(--ink2)}
.pc-c{font-size:11.5px;color:var(--ink3)}
.badge.ph{background:var(--pink-tint);color:var(--pink-deep)}
.pback{margin:22px 0 32px;justify-content:center}
.pmark{margin-left:6px;font-size:.9em;text-decoration:none}

.champ .section h2{font-size:19px;margin:0 0 6px}
.ctable{overflow-x:auto;margin:6px 0 20px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
table.champs{border-collapse:separate;border-spacing:0;font-size:13px;min-width:100%}
table.champs caption{caption-side:top;text-align:left;padding:8px 12px 6px;font-size:12px;color:var(--ink3)}
table.champs th,table.champs td{padding:8px 10px;border-top:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}
table.champs thead th{color:var(--ink2);font-weight:600;font-size:15px;font-family:var(--num);letter-spacing:.03em}
table.champs tbody th{position:sticky;left:0;z-index:1;background:var(--surface);font-family:var(--num);font-weight:600;font-size:18px;color:var(--pink);border-right:1px solid var(--line)}
table.champs thead th:first-child{position:sticky;left:0;z-index:2;background:var(--surface);border-right:1px solid var(--line)}
table.champs tbody th a{color:var(--pink);text-decoration:none}
table.champs tbody th a:hover{text-decoration:underline}
table.champs td .cw{display:block;font-weight:700}
table.champs td .cw+.cw{margin-top:6px}
table.rank tbody th{text-align:center;min-width:3em}
table.rank td.rn{font-weight:700;font-size:15px}
table.rank td.rc b{font-family:var(--num);font-size:20px;color:var(--pink);margin-right:2px}
table.rank td.rs,table.rank td.ry{color:var(--ink2)}
table.champs td a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--pink-line);text-underline-offset:3px}
table.champs td a:hover{color:var(--pink)}
table.champs td small{display:block;font-weight:400;font-size:11px;color:var(--ink3)}
table.champs td.none{color:var(--ink3)}
.csrc ul{margin:6px 0 0;padding-left:1.2em;font-size:13px}
.csrc li+li{margin-top:4px}
.csrc b{font-family:var(--num);font-weight:600;font-size:15px;margin-right:6px}
.champ-link{margin:4px 0 0}
.champ-link a{display:inline-block;padding:8px 18px;border:1px solid var(--pink-line);border-radius:999px;color:var(--pink);text-decoration:none;font-size:14px;font-weight:700}
.champ-link a:hover{border-color:var(--pink)}
.champ-list a{grid-template-columns:1fr auto}

.uww{padding-bottom:44px}
.uww h2{font-size:19px;margin:26px 0 10px}
.uww-cards{list-style:none;margin:0 0 6px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.uww-cards a{display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--pink);border-radius:10px;text-decoration:none;color:var(--ink)}
.uww-cards a:hover{border-color:var(--line-hi);background:var(--surface-2)}
.uww-cards .uc-n{font-size:20px;font-weight:700}
.uww-cards .uc-c{font-size:15px;font-weight:700;color:var(--pink)}
.uww-cards .uc-s{font-size:12px;color:var(--ink3)}
.uww-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}
.uww-tabs a{padding:6px 14px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-weight:700;font-size:14px;color:var(--ink)}
.uww-tabs a[aria-current]{background:var(--pink-fill);border-color:var(--pink-fill);color:#fff}
.uww-count{font-size:13px;color:var(--ink3);margin:0 0 8px}
.uww-g{margin:10px 0;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.uww-g summary{cursor:pointer;font-weight:700;font-size:16px}
.uww-g summary small{margin-left:8px;font-weight:400;font-size:12px;color:var(--ink3)}
.uww-g .vlist{margin-top:10px}
.uww-who{font-size:13px;margin-top:4px;color:var(--ink2)}
.uww-who a{margin-right:10px;font-weight:700}
.vm .uww-ev{font-weight:700;color:var(--ink2)}

.nw{--bg:#f2f3f5;--surface:#ffffff;--surface-2:#eef0f4;--ink:#1d1f23;--ink2:#4a4f58;--ink3:#626873;--line:#e2e4e8;--line-hi:#c4c8d0;
  --pink:#c8102e;--pink-deep:#a50d26;--pink-line:#f0bcc4;--link:#0b57c2;background:var(--bg);color:var(--ink);padding:18px 0 48px;color-scheme:light}
.nw-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
@media (max-width:860px){.nw-grid{grid-template-columns:1fr}}
.nw-main{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:22px 28px 28px;min-width:0}
@media (max-width:520px){.nw-main{padding:16px 16px 22px}}
.nw .crumbs a{color:var(--ink2)}
.nw h1{font-size:26px;line-height:1.5;margin:4px 0 10px;font-weight:700;letter-spacing:.01em;text-wrap:balance}
@media (max-width:520px){.nw h1{font-size:21px}}
.nw-cat{display:inline-block;margin:0;font-size:12px;font-weight:700;color:var(--pink)}
.nw-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--ink3);margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.nw-meta b{color:var(--ink)}
.nw-body{font-size:16px;line-height:1.95;max-width:680px}
.nw-body p{margin:0 0 1.2em}
.nw-body a{color:var(--link);text-decoration:none}
.nw-body a:hover{text-decoration:underline}
.nw-body h2{font-size:17px;line-height:1.5;margin:1.8em 0 .7em;padding-left:10px;border-left:4px solid var(--pink)}
.nw-tbl{overflow-x:auto;border:1px solid var(--line);border-radius:4px;margin:0 0 1.2em}
.nw-tbl table{border-collapse:collapse;width:100%;min-width:520px;font-size:14px;line-height:1.6}
.nw-tbl th,.nw-tbl td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.nw-tbl th{background:var(--surface-2);color:var(--ink2);font-weight:500;font-size:12.5px;white-space:nowrap}
.nw-tbl td:first-child{white-space:nowrap;color:var(--ink2);font-variant-numeric:tabular-nums}
/* スマートフォンでは表を1行ずつのカードにする(横にはみ出さない) */
@media (max-width:520px){.nw-tbl{border:0;overflow:visible}.nw-tbl table{min-width:0}.nw-tbl thead{display:none}
  .nw-tbl tr{display:block;border:1px solid var(--line);border-radius:4px;padding:8px 12px;margin-bottom:8px}
  .nw-tbl td{display:flex;gap:10px;border:0;padding:2px 0}
  .nw-tbl td::before{content:attr(data-l);flex:0 0 4.5em;color:var(--ink3);font-size:12px;padding-top:2px}
  .nw-tbl td:nth-child(2){font-weight:700}}
.nw-tags{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 0}
.nw-tags span{background:var(--surface-2);font-size:12.5px;padding:3px 10px;border-radius:999px;color:var(--ink2)}
.nw-side{display:grid;gap:16px;min-width:0}
.nw-side section{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px 16px}
.nw-side h3{font-size:14px;margin:0 0 6px;padding-bottom:8px;border-bottom:2px solid var(--pink)}
.nw-side ul{list-style:none;margin:0;padding:0}
.nw-side li+li{border-top:1px solid var(--line)}
.nw-side a{display:block;padding:9px 0;color:var(--ink);text-decoration:none;font-size:14px;line-height:1.55}
.nw-side a:hover{color:var(--link)}
.nw-side small{display:block;color:var(--ink3);font-size:12px}
.nw-lead{color:var(--ink2);margin:0 0 10px}
.nw-list{list-style:none;margin:0;padding:0}
.nw-list li{border-top:1px solid var(--line)}
.nw-list a{display:grid;gap:3px;padding:14px 0;color:var(--ink);text-decoration:none}
.nw-list a:hover .nw-t{color:var(--link);text-decoration:underline}
.nw-list .nw-t{font-size:17px;font-weight:700;line-height:1.5}
.nw-list .nw-l{font-size:14px;color:var(--ink2);line-height:1.7}
.nw-list time{font-size:12.5px;color:var(--ink3)}
.nw :focus-visible{outline-color:var(--pink)}
