:root{
  --paper:#faf8f3;
  --card:#ffffff;
  --ink:#1d1b16;
  --ink2:#6f6a60;
  --ink3:#9a948a;
  --line:#e0dbd1;
  --line2:#efebe2;
  --accent:#b1432b;
  --accent2:#356b86;
  --gold:#9d7b22;
  --maxw:1500px;
  --group-min:700px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Archivo","Noto Sans SC",system-ui,sans-serif;
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 30px}
.serif{font-family:"Newsreader","Noto Serif SC",Georgia,serif}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
.dim{color:var(--ink2)}.dim3{color:var(--ink3)}
.invisible{display:none!important}
.masthead{border-bottom:2px solid var(--ink);padding:32px 0 18px}
.mast-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.mk{font-size:11px;letter-spacing:.16em;color:var(--accent);font-weight:600;margin-bottom:8px}
.mast-title{font-family:"Newsreader","Noto Serif SC",serif;font-weight:600;font-size:clamp(40px,6.4vw,76px);line-height:.94;letter-spacing:-.01em;margin:0}
.mast-title .yr{color:var(--accent);font-weight:500;margin-right:.12em}
.mast-sub{font-size:13.5px;color:var(--ink2);max-width:380px;text-align:right;line-height:1.6}
.mast-strip{display:flex;gap:0;margin-top:22px;border-top:1px solid var(--line)}
.fact{flex:1;padding:12px 16px 4px 0;border-right:1px solid var(--line);margin-right:16px;min-width:105px}
.fact:last-child{border-right:none}
.fact .n{font-family:"Newsreader",serif;font-size:30px;font-weight:500;line-height:1}
.fact .l{font-size:12px;letter-spacing:.04em;color:var(--ink2);margin-top:3px}
.legend{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;padding:14px 0 4px;font-size:13px;color:var(--ink2)}
.legend b{color:var(--ink);font-weight:600}
.lg{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.pip{width:11px;height:11px;display:inline-block;flex:none}
.pip.w{background:var(--accent)}
.pip.ru{background:var(--accent);opacity:.45}
.pip.q3{border:1.5px dashed var(--accent)}
.pip.out{border:1px solid var(--line)}
.loadstate{margin:28px 0 0;border:1px dashed var(--line);background:var(--card);border-radius:4px;padding:18px 20px;color:var(--ink2);font-size:13.5px}
.loadstate.error{border-color:var(--accent);color:var(--accent)}
section{padding:44px 0 8px}
.shead{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-bottom:1px solid var(--ink);padding-bottom:9px;margin-bottom:6px}
.shead h2{font-family:"Newsreader","Noto Serif SC",serif;font-weight:600;font-size:29px;margin:0;letter-spacing:.01em}
.shead .smeta{font-size:13px;color:var(--ink2);text-align:right;line-height:1.6}
.sectiontools{display:flex;justify-content:flex-start;align-items:center;gap:10px;margin-top:12px;font-size:12px;color:var(--ink3)}
.togglebuttons{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.34)}
.togglebuttons button{border:0;background:transparent;color:var(--ink2);font:inherit;font-weight:600;padding:3px 10px;cursor:pointer}
.togglebuttons button+button{border-left:1px solid var(--line)}
.togglebuttons button.on{background:var(--ink);color:var(--paper)}
.snote{font-size:14px;color:var(--ink2);margin:14px 0 24px;max-width:900px;line-height:1.75}
.groupgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--group-min),1fr));gap:30px 36px;margin-top:24px}
.glabel{display:flex;align-items:baseline;gap:10px;margin-bottom:9px}
.glabel .gl{font-family:"Newsreader","Noto Serif SC",serif;font-size:21px;font-weight:600}
.glabel .gst{font-size:12px;color:var(--ink3)}
.glabel .gq{margin-left:auto;font-size:12px;color:var(--ink3);letter-spacing:.02em}
.glabel .gq b{color:var(--ink2);font-weight:600}
table.ct{border-collapse:collapse;width:100%;font-size:13px}
table.ct th,table.ct td{padding:0;text-align:center;height:36px;border:1px solid var(--line2)}
table.ct thead th{font-weight:600;font-size:11px;color:var(--ink2);height:32px}
.ct .corner{text-align:left;border:none}
.ct .ch-team{cursor:default;width:54px;padding:2px}
.ct .ch-team .chflag{font-size:15px;line-height:1}
.ct .ch-team .chab{font-size:10.5px;color:var(--ink2);font-weight:600;white-space:nowrap}
.ct .ch-stat{width:32px;color:var(--ink3);font-weight:600}
.ct .ch-stat.rk{width:28px}
.ct .ch-stat.pts{color:var(--ink)}
.ct td.tm{text-align:left;border-left:none;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);border-right:1px solid var(--line);padding-left:8px;width:182px}
.tmcell{display:flex;align-items:center;gap:8px;line-height:1.08;padding-right:6px}
.tmcell .qbar{width:3px;height:26px;flex:none;border-radius:1px;background:transparent}
.tmcell .qbar.w{background:var(--accent)}
.tmcell .qbar.ru{background:var(--accent);opacity:.42}
.tmcell .qbar.q3{background:repeating-linear-gradient(180deg,var(--accent) 0 3px,transparent 3px 6px)}
.tmcell .flag{font-size:17px;line-height:1;flex:none}
.tmcell .tmtxt{min-width:0;flex:1}
.tmcell .nm{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.tmcell .dest{font-size:10px;color:var(--ink3);font-family:"IBM Plex Mono",monospace;letter-spacing:.02em;margin-top:1px}
.tmcell .pot{margin-left:10px;padding:0 6px 0 8px;flex:none;align-self:center;color:var(--ink3);font-size:10.5px;font-weight:400;white-space:nowrap}
.tmcell.outrow .nm{color:var(--ink2)}
td.cell{font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--ink2);cursor:default}
td.cell.win .sc{color:var(--ink);font-weight:600}
td.cell.los .sc{color:var(--ink3)}
td.cell.drw .sc{color:var(--ink)}
td.cell.np{padding:0;cursor:default}
td.cell.np .np-main{display:block;line-height:1.05;color:var(--ink3);font-family:"Noto Sans SC",sans-serif;font-size:12px;font-weight:400}
td.cell.np .np-main.soon{font-weight:500}
td.cell.np .np-num{color:var(--accent);font-family:"IBM Plex Mono",monospace;font-size:13px;font-weight:500}
td.cell.np .np-main.soon .np-num{font-weight:700}
td.cell.np .np-d{display:block;font-size:8.5px;line-height:1;color:var(--ink3);font-family:"IBM Plex Mono",monospace;margin-top:1px;letter-spacing:-.3px}
td.cell.np .np-d.soon{color:var(--ink);font-weight:700}
td.cell .cell-time{display:block;font-size:8.5px;line-height:1;color:var(--ink3);font-family:"IBM Plex Mono",monospace;margin-top:1px;letter-spacing:-.3px}
td.diag{background:repeating-linear-gradient(135deg,var(--line2) 0 1px,transparent 1px 7px);border:1px solid var(--line2)}
td.stat{font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:var(--ink2)}
td.stat.rk{color:var(--ink3)}
td.stat.pts{color:var(--ink);font-weight:600}
td.stat.gd.pos{color:var(--ink)}
td.stat.gd.neg{color:var(--ink3)}
.qcols{display:grid;grid-template-columns:1.34fr 1fr;gap:46px;margin-top:24px;align-items:start}
.qsub{font-family:"Newsreader","Noto Serif SC",serif;font-size:18px;font-weight:600;margin:0 0 4px}
.qsubn{font-size:13px;color:var(--ink2);margin:0 0 14px;line-height:1.6}
table.path,table.third{border-collapse:collapse;width:100%;font-size:13px}
table.path th{font-size:11px;letter-spacing:.04em;color:var(--ink2);font-weight:600;text-align:left;padding:6px 8px;border-bottom:1px solid var(--ink)}
table.path td{padding:7px 8px;border-bottom:1px solid var(--line2);vertical-align:middle}
table.path .gcol{font-family:"Newsreader",serif;font-weight:600;font-size:16px;width:30px}
.slotcell{display:flex;align-items:center;gap:7px}
.mtag{font-family:"IBM Plex Mono",monospace;font-size:10px;color:var(--ink3);min-width:30px}
table.third th{font-size:11px;letter-spacing:.02em;color:var(--ink2);font-weight:600;text-align:right;padding:6px 7px;border-bottom:1px solid var(--ink)}
table.third th.l{text-align:left}
table.third td{padding:7px;border-bottom:1px solid var(--line2);text-align:right;font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
table.third td.l{text-align:left;font-family:"Archivo","Noto Sans SC"}
table.third tr.cut td{border-bottom:2px solid var(--accent)}
table.third tr.outq td{color:var(--ink3)}
table.third tr.outq .tname{color:var(--ink3)}
.thrank{color:var(--ink3)}
.qmark{color:var(--accent);font-weight:700}
.midnote{border:1px dashed var(--line);background:transparent;border-radius:4px;padding:18px 20px;color:var(--ink2);font-size:13.5px;line-height:1.7;margin-top:14px}
.tk{display:inline-flex;align-items:center;gap:6px;cursor:default;border-radius:2px;padding:1px 4px;margin:-1px -1px;transition:background .12s,color .12s}
.tk .tf{font-size:15px;line-height:1}
.tk .tn{font-size:13px}
.brkscroll{overflow-x:auto;padding:30px 0 6px;margin-top:18px}
.bracket{min-width:1180px;--bh:1320px;height:var(--bh)}
.bracket-linear{display:flex;height:100%}
.bracket-split{display:none}
.round{display:flex;flex-direction:column;justify-content:space-around;flex:1 1 0;position:relative;list-style:none;margin:0;padding:0}
.round.r32{flex-grow:1.18}
.round.fin{flex-grow:.92}
.rhead{position:absolute;top:-22px;left:18px;font-size:11px;letter-spacing:.06em;color:var(--ink2);font-weight:600;white-space:nowrap}
.match{position:relative;display:flex;flex-direction:column;justify-content:center;flex:1 1 0;margin:0 18px;min-height:0}
.mbox{border:1px solid var(--line);background:var(--card);border-radius:3px;overflow:hidden}
.mbox .mh{font-size:9.5px;color:var(--ink3);padding:3px 9px;display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--line2);letter-spacing:.01em;font-family:"IBM Plex Mono",monospace}
.mh-id{flex:none;color:var(--ink);font-weight:700;padding-right:8px;border-right:1px solid var(--line);letter-spacing:.02em}
.mh-when{flex:none;white-space:nowrap}
.mh-ven{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:"Noto Sans SC",sans-serif}
.mh-by{flex:none;color:var(--accent);font-weight:600;font-family:"Noto Sans SC",sans-serif}
.slot{display:flex;align-items:center;gap:7px;padding:5px 8px;font-size:12.5px;line-height:1.1}
.slot+.slot{border-top:1px solid var(--line2)}
.slot .seed{font-family:"IBM Plex Mono",monospace;font-size:9px;color:var(--ink3);width:42px;flex:none;white-space:nowrap}
.slot .sc{margin-left:auto;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:12.5px;white-space:nowrap;flex:none;padding-left:4px}
.slot .tf{font-size:15px;line-height:1;flex:none}
.slot .tn{font-size:12px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slot.tbd .tn{color:var(--ink3)}
.slot.lost{opacity:.5}
.slot.won .tn{color:var(--ink);font-weight:600}
.slot.won .sc{color:var(--accent)}
.round:not(.fin) .match::after{content:"";position:absolute;left:100%;top:50%;width:18px;border-top:1.5px solid var(--line)}
.round:not(.r32) .match::before{content:"";position:absolute;right:100%;top:50%;width:18px;border-top:1.5px solid var(--line)}
.round:not(.fin) .match:nth-child(even)::after{height:var(--half);border-right:1.5px solid var(--line);border-top:1.5px solid var(--line);border-radius:0 3px 0 0}
.round:not(.fin) .match:nth-child(odd)::after{top:auto;bottom:50%;height:var(--half);border-right:1.5px solid var(--line);border-top:none;border-bottom:1.5px solid var(--line);border-radius:0 0 3px 0}
.bracket-split .bracket-side{display:flex;min-width:0;height:100%}
.bracket-split .bracket-side.left{justify-content:flex-end}
.bracket-split .bracket-side.right{justify-content:flex-start;transform:scaleX(-1)}
.bracket-split .bracket-side.right .mbox,
.bracket-split .bracket-side.right .rhead{transform:scaleX(-1)}
.bracket-split .round>.rhead{left:0;right:0;text-align:center}
.bracket-split .bracket-center{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;height:100%}
.bracket-split .bracket-center>.rhead{top:-22px;left:0;right:0;text-align:center;transform:none}
.bracket-split .bracket-center .match{width:100%;max-width:none;flex:none;margin:0 18px}
.bracket-split .bracket-center .final-match::before,
.bracket-split .bracket-center .final-match::after{content:"";position:absolute;top:50%;width:18px;border-top:1.5px solid var(--line)}
.bracket-split .bracket-center .final-match::before{right:100%}
.bracket-split .bracket-center .final-match::after{left:100%}
.bracket-split .round{min-width:0}
.bracket-split .round.r32{flex-grow:1.22}
.bracket-split .round.fin{flex-grow:1}
.bracket-split .round.sf .match::after{top:50%;bottom:auto;height:0;border-right:none;border-bottom:none;border-top:1.5px solid var(--line);border-radius:0}
.third-final{position:absolute;top:calc(50% + 106px);left:0;right:0}
.third-final .rhead{position:static;margin:0 18px 6px}
.third-final .match{width:auto;margin:0 18px;flex:none}
.bracket-split .bracket-center .third-final{display:flex;flex-direction:column;align-items:center}
.bracket-split .bracket-center .third-final .rhead{position:static;margin:0 18px 6px;text-align:center}
.bracket-split .bracket-center .third-final .match{width:100%;margin:0 18px}
.round.fin .third-final .match::before,
.round.fin .match.m103::before{display:none}
.finale{margin-top:30px;display:block}
.champcard{border:2px solid var(--ink);background:var(--card);padding:22px 26px;display:flex;flex-direction:column;justify-content:center}
.champcard .ck{font-size:11px;letter-spacing:.14em;color:var(--accent);font-weight:600}
.champcard .cname{font-family:"Newsreader","Noto Serif SC",serif;font-size:46px;font-weight:600;line-height:1;margin:8px 0 4px;display:flex;align-items:center;gap:14px}
.champcard .cname .cf{font-size:42px}
.champcard .cline{font-size:13.5px;color:var(--ink2)}
.pinbar{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:30px;font-size:13px;display:none;align-items:center;gap:12px;z-index:50;box-shadow:0 6px 24px rgba(0,0,0,.22)}
.pinbar.show{display:flex}
.pinbar .pt{font-weight:600}
.pinbar button{background:none;border:1px solid rgba(255,255,255,.4);color:var(--paper);border-radius:20px;font:inherit;font-size:11px;padding:2px 9px;cursor:pointer}
footer{border-top:2px solid var(--ink);margin-top:54px;padding:22px 0 64px;font-size:13px;color:var(--ink2);line-height:1.75}
footer .fcols{display:grid;grid-template-columns:1.4fr 1fr;gap:34px}
footer b{color:var(--ink);font-weight:600}
.footnote{margin-top:10px}
body.tracing .tk:not(.trp):not(.tra):not(.trah):not(.trb):not(.trbh),
body.tracing .slot:not(.trp):not(.tra):not(.trah):not(.trb):not(.trbh){opacity:.28}
.tk.trp,.slot.trp,.ch-team.trp{background:var(--accent)!important;border-radius:2px}
.tk.tra,.slot.tra,.ch-team.tra{background:var(--accent2)!important;border-radius:2px}
.tk.trb,.slot.trb,.ch-team.trb{background:var(--gold)!important;border-radius:2px}
.cname.trp{background:var(--accent)!important;border-radius:3px;padding:2px 10px}
.tk.trp *,.slot.trp *,.ch-team.trp *,.cname.trp,.cname.trp *,
.tk.tra *,.slot.tra *,.ch-team.tra *,
.tk.trb *,.slot.trb *,.ch-team.trb *{color:#fff!important}
.tk.trah,.slot.trah,.ch-team.trah{box-shadow:inset 0 0 0 1.5px var(--accent2)!important;border-radius:2px}
.tk.trbh,.slot.trbh,.ch-team.trbh{box-shadow:inset 0 0 0 1.5px var(--gold)!important;border-radius:2px}
.tk.trah .tn,.tk.trah .chab,.slot.trah .tn,.slot.trah .sc,.slot.trah .seed,.ch-team.trah .chab{color:var(--accent2)!important;font-weight:600}
.tk.trbh .tn,.tk.trbh .chab,.slot.trbh .tn,.slot.trbh .sc,.slot.trbh .seed,.ch-team.trbh .chab{color:var(--gold)!important;font-weight:600}
.tmcell.trp .nm{color:var(--accent)!important;font-weight:600}
.tmcell.tra .nm,.tmcell.trah .nm{color:var(--accent2)!important;font-weight:600}
.tmcell.trb .nm,.tmcell.trbh .nm{color:var(--gold)!important;font-weight:600}
.tmcell.trp .qbar{background:var(--accent)!important}
td.cell.hlcol,td.cell.hlrow{background:rgba(177,67,43,.10)}
td.cell.hlrow.hlcol{background:rgba(177,67,43,.16)}
tr.hlrow td.tm{background:rgba(177,67,43,.06)}
@media(max-width:1040px){
  .qcols,footer .fcols{grid-template-columns:1fr}
  .groupgrid{grid-template-columns:1fr}
}
@media(min-width:2000px){
  :root{--maxw:1940px}
  .bracket{min-width:1880px;--bh:760px;height:var(--bh)}
  .bracket-linear{display:none}
  .bracket-split{display:grid;grid-template-columns:minmax(0,4.22fr) minmax(0,1fr) minmax(0,4.22fr);height:100%}
}
@media(min-width:2232px){
  :root{--maxw:2232px}
  .groupgrid{grid-template-columns:repeat(3,minmax(var(--group-min),1fr))}
}
@media(min-width:2968px){
  :root{--maxw:2968px}
  .groupgrid{grid-template-columns:repeat(4,minmax(var(--group-min),1fr))}
}
@media(max-width:760px){
  .wrap{padding:0 16px}
  .mast-sub{text-align:left;max-width:none}
  .mast-strip{overflow-x:auto}
  .shead{display:block}
  .shead .smeta{text-align:left;margin-top:8px}
  .sectiontools{justify-content:flex-start}
  .group{overflow-x:auto}
  .group table{min-width:700px}
  .champcard .cname{font-size:34px}
}
