.koc-league-page{max-width:1024px;margin:0 auto;padding:32px 24px 64px}.koc-league-crumbs{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);align-items:center;gap:8px;margin-bottom:28px;font-size:11px;display:flex}.koc-league-crumbs a{color:var(--fg-muted);text-decoration:none;transition:color .12s}.koc-league-crumbs a:hover{color:var(--fg-base)}.koc-league-crumbs .sep{opacity:.6}.koc-league-crumbs .current{color:var(--fg-base)}.koc-league-head{border-bottom:1px solid var(--border-base);align-items:center;gap:22px;margin-bottom:22px;padding-bottom:22px;display:flex}.koc-league-head .logo{border:1px solid var(--border-base);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:68px;height:68px;padding:8px;display:inline-flex;overflow:hidden}.koc-league-head .logo img{object-fit:contain;width:100%;height:100%}.koc-league-head .logo.is-asset{background:0 0;padding:0}.koc-league-head .logo.is-asset img{object-fit:cover}.koc-league-head .logo .placeholder{width:100%;height:100%;font-family:var(--font-mono);color:#fff;letter-spacing:.04em;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.koc-league-head .info{flex:1;min-width:0}.koc-league-head h1{font-family:var(--font-display);letter-spacing:-.018em;color:var(--fg-base);margin:0 0 6px;font-size:clamp(28px,4.5vw,38px);font-weight:500;line-height:1.1}.lp[data-lang=ja] .koc-league-head h1{font-family:var(--font-jp);letter-spacing:-.012em}.koc-league-head h1 .season{color:var(--fg-muted);letter-spacing:-.01em;font-weight:400}.koc-league-head .meta{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);flex-wrap:wrap;gap:6px 12px;margin:0;font-size:11px;display:flex}.koc-league-head .meta .region{padding-left:12px;position:relative}.koc-league-head .meta .region:before{content:"·";color:var(--border-base);position:absolute;left:0}.koc-league-desc{color:var(--fg-muted);max-width:720px;margin:0 0 22px;font-size:15px;line-height:1.6}.koc-league-cta{border:1.5px solid var(--fg-base);background:var(--bg-surface);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:36px;padding:20px 22px;display:flex}.koc-league-cta .head{color:var(--fg-base);flex:1;min-width:220px;margin:0;font-size:14px;line-height:1.5}.koc-league-cta .actions{flex-shrink:0;gap:8px;display:flex}.koc-league-cta .primary{background:var(--accent-pitch);color:#fff;font-family:var(--font-display);white-space:nowrap;border-radius:5px;padding:10px 18px;font-size:13.5px;font-weight:500;text-decoration:none;transition:filter .15s}.dark .koc-league-cta .primary{color:#0a1f12}.koc-league-cta .primary:hover{filter:brightness(1.08)}.koc-league-cta .secondary{color:var(--fg-base);border:1px solid var(--border-base);font-family:var(--font-display);white-space:nowrap;background:0 0;border-radius:5px;padding:10px 18px;font-size:13.5px;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s}.koc-league-cta .secondary:hover{border-color:var(--fg-base);background:var(--bg-subtle)}.koc-league-section{margin-bottom:36px}.koc-league-section .empty-row{text-align:center;color:var(--fg-muted);border:1px dashed var(--border-base);border-radius:6px;margin:0;padding:28px 16px;font-size:13.5px}.koc-league-foot-note{color:var(--fg-muted);margin:12px 0 0;font-size:11.5px}.koc-knockout-rounds{flex-direction:column;gap:28px;display:flex}.koc-knockout-round{flex-direction:column;gap:12px;display:flex}.koc-knockout-round-h{border-bottom:1px solid var(--border-base);justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:8px;display:flex}.koc-knockout-round-h h3{font-family:var(--font-display);letter-spacing:-.008em;color:var(--fg-base);margin:0;font-size:16px;font-weight:500}.lp[data-lang=ja] .koc-knockout-round-h h3{font-family:var(--font-jp)}.koc-knockout-round-h .count{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted);font-size:11px}.koc-knockout-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.koc-bracket-card{border:1px solid var(--border-base);background:var(--bg-surface);border-radius:5px;flex-direction:column;gap:6px;padding:10px 12px;transition:border-color .12s,background .12s;display:flex;position:relative}.koc-bracket-card:hover{border-color:var(--fg-base)}.koc-bracket-side{grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;font-size:13px;display:grid}.koc-bracket-name{font-family:var(--font-display);letter-spacing:-.005em;color:var(--fg-base);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.lp[data-lang=ja] .koc-bracket-name{font-family:var(--font-jp)}.koc-bracket-meta{border-top:1px dashed var(--border-base);font-family:var(--font-mono);letter-spacing:.03em;color:var(--fg-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;padding-top:6px;font-size:11px;overflow:hidden}@media (max-width:480px){.koc-knockout-grid{grid-template-columns:1fr}}.koc-champion-card{border:1.5px solid var(--fg-base);background:var(--bg-surface);color:var(--fg-base);border-radius:6px;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:18px;min-width:0;padding:22px 24px;text-decoration:none;transition:border-color .12s,background .12s;display:grid}.koc-champion-card:hover{border-color:var(--accent-pitch);background:var(--bg-subtle)}.koc-champion-card.is-static{cursor:default}.koc-champion-card.is-static:hover{border-color:var(--fg-base);background:var(--bg-surface)}.koc-champion-trophy{flex-shrink:0;font-size:36px;line-height:1}.koc-champion-crest{flex-shrink:0}.koc-champion-body{flex-direction:column;gap:4px;min-width:0;display:flex}.koc-champion-badge{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-pitch);font-size:10.5px;font-weight:600}.koc-champion-name{font-family:var(--font-display);letter-spacing:-.012em;color:var(--fg-base);text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:500;overflow:hidden}.lp[data-lang=ja] .koc-champion-name{font-family:var(--font-jp)}.koc-champion-meta{font-family:var(--font-mono);letter-spacing:.04em;color:var(--fg-muted);font-size:11.5px}@media (max-width:560px){.koc-champion-card{grid-template-columns:auto minmax(0,1fr);gap:14px;padding:18px}.koc-champion-trophy{font-size:28px}.koc-champion-crest{grid-area:1/1}.koc-champion-trophy{grid-area:1/2;justify-self:end}.koc-champion-body{grid-area:2/1/auto/-1}.koc-champion-name{font-size:18px}}.koc-league-standings-stack{flex-direction:column;gap:28px;display:flex}.koc-league-group-h{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-base);margin:0 0 10px;font-size:12px;font-weight:500}.koc-league-standings{border:1px solid var(--border-base);background:var(--bg-surface);border-radius:6px;overflow:hidden}.koc-league-standings .row{border-bottom:1px solid var(--border-base);color:var(--fg-base);grid-template-columns:32px minmax(0,1.6fr) 36px 36px 36px 36px 44px 48px minmax(110px,.8fr);align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:grid}.koc-league-standings .row:last-child{border-bottom:0}.koc-league-standings .row.head{background:var(--bg-subtle);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted);font-size:10.5px;font-weight:500}.koc-league-standings .rank{font-family:var(--font-mono);color:var(--fg-muted);text-align:center;font-size:12px}.koc-league-standings .club{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:10px;display:inline-flex;overflow:hidden}.koc-league-standings .club a{color:var(--fg-base);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;transition:color .12s;overflow:hidden}.koc-league-standings .club a:hover{color:var(--accent-pitch)}.koc-league-standings .club-crest{flex-shrink:0}.koc-league-standings .num{font-family:var(--font-mono);color:var(--fg-base);text-align:center;font-feature-settings:"tnum" 1;font-size:12.5px}.koc-league-standings .num.pts{font-weight:600}.koc-league-standings .form{justify-content:flex-end;align-items:center;display:inline-flex}.koc-league-standings .form-strip{gap:3px;display:inline-flex}.koc-league-standings .form-strip .pip{width:20px;height:20px;font-family:var(--font-mono);color:#fff;border-radius:3px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.koc-league-standings .form-strip .pip.w{background:var(--accent-pitch)}.koc-league-standings .form-strip .pip.d{background:var(--fg-muted)}.koc-league-standings .form-strip .pip.l{background:#c0392b}.koc-league-standings .form-empty{color:var(--fg-muted)}.koc-league-clubs{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:14px;display:grid}.koc-league-clubs .club-card{border:1px solid var(--border-base);background:var(--bg-surface);color:var(--fg-base);border-radius:5px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:12px 14px;text-decoration:none;transition:border-color .12s,background .12s;display:grid}.koc-league-clubs .club-card:hover{border-color:var(--fg-base);background:var(--bg-subtle)}.koc-league-clubs .club-card .name{font-family:var(--font-display);letter-spacing:-.005em;color:var(--fg-base);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.lp[data-lang=ja] .koc-league-clubs .club-card .name{font-family:var(--font-jp)}.koc-league-clubs .club-card .meta{font-family:var(--font-mono);letter-spacing:.04em;color:var(--fg-muted);white-space:nowrap;flex-shrink:0;font-size:11px}@media (max-width:720px){.koc-league-page{padding:24px 20px 56px}.koc-league-cta{text-align:left;flex-direction:column;align-items:stretch}.koc-league-cta .actions{width:100%}.koc-league-cta .actions .primary,.koc-league-cta .actions .secondary{text-align:center;flex:1}.koc-league-standings .row{grid-template-columns:26px minmax(0,1.4fr) 30px 36px 40px;gap:8px;padding:9px 10px;font-size:12px}.koc-league-standings .row>.num:nth-of-type(2),.koc-league-standings .row>.num:nth-of-type(3),.koc-league-standings .row>.num:nth-of-type(4),.koc-league-standings .form{display:none}}@media (max-width:560px){.koc-league-head{gap:14px}.koc-league-head .logo{width:56px;height:56px}.koc-league-head .info h1{font-size:22px}.koc-league-head .info h1 .season{font-size:15px}}
