/* Shared structure. Event styles own artwork and palette. */
:root{--page-bg:#0a0a0f;--surface:#15151e;--text:#fff;--muted:#b7b7c6;--accent:#ff6090;--score:#25f4ee;--line:#373744}
html{background:#08080d}body{width:100%;max-width:450px;background:var(--page-bg);color:var(--text);overflow-x:visible;line-height:1.6}
[hidden]{display:none!important}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--score);outline-offset:3px}
.page-back{display:flex;align-items:center;min-height:48px;padding:8px 16px;color:var(--muted);font-size:13px;text-decoration:none;border-bottom:1px solid var(--line)}
.search-icon{display:block;flex-shrink:0}
.hero-video-wrap,.hero-video-wrap.aspect{aspect-ratio:auto;background-color:var(--surface)}
.hero-video-wrap video,.hero-video-wrap.aspect video{position:static;transform:none;width:100%;min-width:0;min-height:0;height:auto;margin:0;object-fit:contain}
.title-bar{padding:20px 16px 12px}.title-bar .subtitle{font-size:13px;color:var(--muted)}
.tab-bar{margin:12px 16px 0;gap:8px;border-color:var(--line)}.tab-btn{min-height:48px;padding:10px 6px;color:var(--muted);font-size:14px}.tab-btn.active{color:var(--text)}
.divisions,.sub-tab-grid,.team-tab-grid,.date-tab-grid{gap:8px;padding:16px 16px 0;grid-template-columns:repeat(auto-fit,minmax(66px,1fr))}
.divisions button,.sub-tab-btn,.team-tab-btn,.date-tab-btn{min-height:44px;padding:8px 4px;border-radius:8px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.divisions button.selected,.sub-tab-btn.active,.team-tab-btn.active,.date-tab-btn.active{font-weight:700;border-color:var(--accent);box-shadow:inset 0 -2px var(--accent);color:var(--text)}
.event-timer{padding:16px 16px 8px}.event-timer .period{font-size:13px;color:var(--text)}.event-state{display:inline-block;color:var(--accent);font-size:12px;font-weight:700;margin-bottom:6px}.event-timer .countdown{font-size:13px;line-height:1.7;color:var(--muted)}
.update-bar{padding:4px 16px 8px;display:flex;justify-content:flex-end;gap:4px 8px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:12px}.update-bar .status{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.warning{color:#ffb8ad}
.score-rule{margin:4px 16px 8px;padding:4px 0;border:0;display:flex;justify-content:center;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:12px}
.search{display:flex;align-items:center;gap:8px;margin:12px 16px 0;padding:0 12px;border:1px solid var(--line);border-radius:24px;background:var(--surface)}.search>label{color:var(--muted);font-size:12px;white-space:nowrap}.search input{min-height:48px;width:100%;min-width:0;border:0;background:transparent;color:var(--text);font-size:16px;padding:8px 0}.search input::placeholder{color:var(--muted);font-size:12px}.search input:focus,.search input:focus-visible{outline:none;box-shadow:none}.search:has(input:focus-visible){border-color:var(--score)}.search input::-webkit-search-cancel-button{appearance:none}.clear-search{flex:0 0 44px;width:44px;min-height:44px;display:grid;place-items:center;background:none;border:0;border-radius:50%;text-decoration:none;color:var(--muted);font-size:22px;padding:0}.clear-search:hover{color:var(--text)}
.list-caption{display:flex;gap:8px;justify-content:space-between;margin:8px 16px;color:var(--muted);font-size:12px}.ranking-list{padding:0 12px 12px}
.rank-card{display:grid;grid-template-columns:28px 44px minmax(0,1fr) auto;gap:8px;min-height:80px;padding:12px 10px;margin-bottom:8px;background:var(--surface);border-radius:12px}
.rank-num{width:auto;color:var(--muted);font-variant-numeric:tabular-nums}.rank-avatar{width:44px;height:44px;margin:0}.rank-info .nickname{font-size:14px;white-space:normal;overflow-wrap:anywhere;line-height:1.5}.rank-info .tiktok-id{font-size:12px;color:var(--muted)}
.rank-score{margin:0;max-width:130px;overflow-wrap:anywhere}.rank-score .diamonds{font-size:16px;color:var(--score);font-variant-numeric:tabular-nums}.rank-score .diamonds::after{content:none}.score-unit{font-size:12px;margin-left:4px;color:var(--muted);white-space:nowrap}.diamond-count,.achievement{font-size:12px;color:var(--muted);line-height:1.5;display:block;margin-top:4px}.achievement{color:var(--score);max-width:110px}
.rank-card>.achievement{grid-column:3 / -1;max-width:none;text-align:left;margin:0}.rank-avatar .live-badge{font-size:9px}.rank-card.lose{opacity:1;filter:none}.result-badge{font-size:12px;display:block;color:var(--muted)}
.empty,.loading,.error-message{padding:32px 16px;font-size:14px;color:var(--muted);text-align:center;line-height:1.8}.retry-btn{min-height:44px;padding:8px 20px;margin-top:12px;border:1px solid var(--accent);border-radius:8px;background:var(--surface);color:var(--text)}
.data-footnote{padding:16px;font-size:12px;line-height:1.8;color:var(--muted);text-align:center}.detail-section,.event-details{padding:24px 16px}.detail-card h3,.event-details h3{font-size:17px}.detail-card p,.detail-card li,.event-details p{font-size:16px;line-height:1.8}.detail-table th,.detail-table td,.event-details th,.event-details td{font-size:13px;padding:10px 4px;overflow-wrap:anywhere}.detail-period .period-sub,.event-details p.muted{font-size:13px;color:var(--muted)}
footer,.page-footer{text-align:center;margin-top:20px;padding:24px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}footer a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted)}
.bracket-match .bm-player.lose{opacity:1;filter:none}.bracket-match .bm-id{font-size:12px;color:var(--muted)}.bracket-match .bm-avatar{width:44px;height:44px}.bracket-match .bm-info{margin:0 6px}.bracket-match .bm-name{white-space:normal;font-size:14px;overflow-wrap:anywhere;line-height:1.4}.bracket-match .bm-result{padding:4px 6px}.bracket-match .bm-result.win{color:#082b21}.bracket-match.search-match{outline:2px solid var(--score)}.bracket-search-results{margin:12px 16px;padding:12px;border:1px solid var(--line);border-radius:12px}.bracket-search-results a{display:flex;min-height:44px;align-items:center;color:var(--text);font-size:14px}.bracket-hint{padding:0 16px;font-size:12px;color:var(--muted)}
@media(max-width:350px){.rank-card{grid-template-columns:24px 44px minmax(0,1fr);gap:8px;padding:12px 8px}.rank-score{grid-column:3;max-width:none;text-align:left}.rank-num,.rank-avatar{grid-row:1 / span 2}.rank-info .nickname{font-size:14px}.rank-score .diamonds{font-size:16px}.achievement{max-width:none}.divisions{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Hide scrollbar chrome while preserving native scrolling on every screen. */
html,body,*{scrollbar-width:none;-ms-overflow-style:none}
*::-webkit-scrollbar{display:none;width:0;height:0}
