:root{--bg: #000;--surface: rgba(255, 255, 255, .06);--surface-strong: rgba(255, 255, 255, .12);--glass: rgba(22, 22, 24, .6);--text: #f5f5f7;--text-dim: rgba(245, 245, 247, .62);--text-faint: rgba(245, 245, 247, .38);--accent: #ff5c38;--live: #ff3b30;--radius-lg: 22px;--radius-md: 16px;--ease: cubic-bezier(.22, .8, .3, 1);--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;overflow-x:hidden}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}img{display:block}::selection{background:#ff5c3866}.topbar{position:fixed;inset:0 0 auto;z-index:50;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(1.6);backdrop-filter:blur(24px) saturate(1.6);border-bottom:1px solid rgba(255,255,255,.07)}.topbar-inner{max-width:1440px;margin:0 auto;height:64px;padding:0 28px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;flex-shrink:0}.brand-mark{font-size:22px;filter:drop-shadow(0 2px 8px rgba(255,92,56,.5))}.brand-text{font-size:19px;font-weight:700;letter-spacing:.2px}.brand-text em{font-style:normal;font-weight:500;color:var(--accent);margin-left:2px}.filter-pills{display:flex;gap:6px;background:var(--surface);border-radius:999px;padding:4px}.pill{border-radius:999px;padding:7px 18px;font-size:13.5px;font-weight:500;color:var(--text-dim);transition:all .25s var(--ease);white-space:nowrap}.pill:hover{color:var(--text)}.pill.active{background:var(--text);color:#0a0a0c;font-weight:600}.topbar-meta{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:12.5px;color:var(--text-faint)}.filter-info{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--surface);color:var(--text-dim);white-space:nowrap}.filter-info strong{color:var(--accent);font-weight:700}.filter-info.unfiltered{color:#ffb340;background:#ffb3401a}.filter-info.unfiltered strong{color:#ffb340}.scope-switch{display:flex;gap:2px;padding:3px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);flex-shrink:0}.scope-switch button{padding:6px 13px;border-radius:999px;font-size:12.5px;font-weight:500;color:var(--text-faint);transition:all .25s var(--ease);white-space:nowrap}.scope-switch button:hover{color:var(--text)}.scope-switch button.active{background:#ff5c382e;color:#ff8a6b;font-weight:600}.sport-bar{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 0;margin-bottom:26px}.sport-bar::-webkit-scrollbar{display:none}.chip{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;white-space:nowrap;padding:8px 15px;border-radius:999px;font-size:13px;font-weight:500;color:var(--text-dim);background:var(--surface);transition:all .25s var(--ease)}.chip:hover{background:var(--surface-strong);color:var(--text);transform:translateY(-1px)}.chip em{font-style:normal;font-size:11px;opacity:.5}.chip.active{background:var(--text);color:#0a0a0c;font-weight:600}.card-cat{font-size:10.5px;font-weight:600;letter-spacing:.3px;padding:4px 9px;border-radius:999px;background:#00000080;color:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.filter-icon{font-size:12px;opacity:.7}.updated-at{white-space:nowrap}.icon-btn{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--surface);font-size:16px;color:var(--text-dim);transition:all .25s var(--ease);flex-shrink:0}.icon-btn:hover{background:var(--surface-strong);color:var(--text);transform:scale(1.08)}.refresh-icon{display:inline-block;transition:transform .3s var(--ease)}.refresh-icon.spinning{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page{max-width:1440px;margin:0 auto;padding:96px 28px 60px}.shelves{display:flex;flex-direction:column;gap:44px;margin-top:44px}.hero{position:relative;border-radius:28px;overflow:hidden;isolation:isolate;min-height:430px;display:flex;box-shadow:0 30px 90px #0009}.hero-backdrop{position:absolute;inset:0;z-index:-2}.hero-backdrop .hero-poster{width:100%;height:100%}.hero-backdrop .hero-poster img{width:100%;height:100%;object-fit:cover;filter:blur(46px) saturate(1.35) brightness(.5);transform:scale(1.25)}.hero-backdrop .poster-skeleton,.hero-backdrop .poster-fallback{position:absolute;inset:0;background:radial-gradient(120% 140% at 20% 0%,#2a1a14,#0c0a0e 55%,#000)}.hero-veil{position:absolute;inset:0;background:linear-gradient(90deg,#000000e0,#0000008c 45%,#00000026),linear-gradient(0deg,rgba(0,0,0,.7) 0%,transparent 40%)}.hero-inner{position:relative;width:100%;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:40px;padding:56px 60px}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:18px;animation:hero-in .7s var(--ease) both}@keyframes hero-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.hero-badges{display:flex;gap:10px;align-items:center}.hero-title{font-size:clamp(30px,4.2vw,52px);font-weight:800;line-height:1.12;letter-spacing:-.5px;max-width:14em;text-wrap:balance;text-shadow:0 4px 30px rgba(0,0,0,.55)}.hero-teams{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.hero-team{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;color:var(--text-dim)}.hero-vs{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--text-faint)}.hero-meta{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text-dim)}.hero-actions{display:flex;gap:14px;margin-top:6px}.btn-primary{display:inline-flex;align-items:center;gap:10px;background:var(--text);color:#0a0a0c;font-size:15.5px;font-weight:700;padding:14px 30px;border-radius:999px;transition:all .25s var(--ease);box-shadow:0 10px 34px #ffffff24}.btn-primary:hover{transform:scale(1.045);box-shadow:0 14px 44px #ffffff38}.btn-primary:active{transform:scale(.98)}.btn-ghost{display:inline-flex;align-items:center;gap:7px;background:var(--surface);color:var(--text);font-size:13px;font-weight:500;padding:9px 16px;border-radius:999px;transition:all .25s var(--ease);white-space:nowrap}.btn-ghost:hover{background:var(--surface-strong);transform:scale(1.04)}.hero-art{display:flex;justify-content:flex-end}.hero-art .hero-art-poster{width:min(100%,460px);aspect-ratio:16 / 9;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 30px 80px #000000a6,0 0 0 1px #ffffff17;animation:hero-in .9s .1s var(--ease) both;transition:transform .4s var(--ease)}.hero-art .hero-art-poster:hover{transform:scale(1.02) translateY(-3px)}.hero-art .hero-art-poster img{width:100%;height:100%;object-fit:cover}.poster{position:relative;width:100%;height:100%;background:#141416}.poster img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease}.poster img.loaded{opacity:1}.poster-skeleton{position:absolute;inset:0;background:linear-gradient(110deg,#1a1a1d 30%,#242428,#1a1a1d 60%);background-size:220% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-220% 0}}.poster-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;background:linear-gradient(140deg,#20150f,#0d0d11);opacity:1}.shelf-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.shelf-title{font-size:21px;font-weight:700;letter-spacing:-.2px;display:flex;align-items:baseline;gap:12px}.shelf-subtitle{font-size:13px;font-weight:500;color:var(--text-faint)}.shelf-arrows{display:flex;gap:8px;opacity:0;transition:opacity .25s ease}.shelf:hover .shelf-arrows{opacity:1}.shelf-scroller{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x proximity;padding:6px 2px 22px;margin:-6px -2px 0;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%)}.shelf-scroller::-webkit-scrollbar{display:none}.shelf-scroller>*{scroll-snap-align:start;flex:0 0 auto}.match-card{position:relative;width:288px;aspect-ratio:16 / 10.4;border-radius:var(--radius-md);overflow:hidden;background:#141416;text-align:left;isolation:isolate;transition:transform .32s var(--ease),box-shadow .32s var(--ease);box-shadow:0 6px 24px #0006}.match-card:hover,.match-card:focus-visible{transform:scale(1.045) translateY(-3px);box-shadow:0 24px 60px #000000a6,0 0 0 1px #ffffff1f,0 0 40px #ffffff0f;z-index:2}.match-card:focus-visible{outline:3px solid rgba(255,255,255,.9);outline-offset:3px}.match-card .card-poster{position:absolute;inset:0;z-index:-1}.match-card .card-poster img{transition:transform .5s var(--ease),opacity .5s ease}.match-card:hover .card-poster img.loaded{transform:scale(1.06)}.card-top{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between}.card-bottom{position:absolute;inset:auto 0 0;padding:42px 14px 13px;background:linear-gradient(0deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.45) 55%,transparent 100%);display:flex;flex-direction:column;gap:4px}.card-teams{display:flex;align-items:center;gap:7px}.card-x{font-size:11px;color:var(--text-faint)}.card-title{font-size:14px;font-weight:650;line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.card-meta{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:6px}.live-badge{display:inline-flex;align-items:center;gap:7px;background:var(--live);color:#fff;font-size:11px;font-weight:800;letter-spacing:1.2px;padding:5px 11px;border-radius:999px;box-shadow:0 4px 18px #ff3b3073}.live-badge.subtle{background:#ff3b3029;color:#ff6b60;box-shadow:none}.live-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.72)}}.status-chip{display:inline-flex;align-items:center;background:#ffffff21;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:999px;white-space:nowrap}.status-chip.upcoming{color:#ffd60a}.status-chip.hot{color:#ff9f0a}.team-badge{width:34px;height:34px;border-radius:9px;background:#ffffff1a;display:grid;place-items:center;overflow:hidden;flex-shrink:0;box-shadow:inset 0 0 0 1px #ffffff14}.team-badge img{width:100%;height:100%;object-fit:contain;padding:3px}.team-badge.lg{width:52px;height:52px;border-radius:13px}.team-badge-fallback{font-size:14px;font-weight:700;color:var(--text-dim)}.dot{opacity:.45}.player-page{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(90% 60% at 50% -10%,rgba(255,92,56,.07),transparent 60%),#000}.player-stage{position:relative;width:min(1440px,100%);margin:0 auto;aspect-ratio:16 / 9;max-height:calc(100vh - 120px);background:#000;overflow:hidden}.player-stage:fullscreen{width:100%;height:100%;max-height:none;aspect-ratio:auto}:fullscreen .player-stage{width:100%;height:100%;max-height:none;aspect-ratio:auto}.player-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}.player-placeholder{position:absolute;inset:0;display:grid;place-items:center}.player-placeholder .player-placeholder-poster{position:absolute;inset:0}.player-placeholder .player-placeholder-poster img{filter:blur(30px) brightness(.32) saturate(1.2);transform:scale(1.2)}.player-placeholder-msg{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;font-size:16px;font-weight:600;color:var(--text-dim);text-align:center;padding:0 30px}.player-placeholder-msg small{font-size:13px;font-weight:400;color:var(--text-faint);max-width:420px;line-height:1.6}.player-bar{position:absolute;left:0;right:0;z-index:10;display:flex;align-items:center;gap:18px;padding:16px 22px;background:linear-gradient(0deg,rgba(0,0,0,.82),transparent);transition:opacity .4s ease,transform .4s var(--ease)}.player-bar.top{top:0;background:linear-gradient(180deg,rgba(0,0,0,.82),transparent)}.player-bar.bottom{bottom:0;background:linear-gradient(0deg,rgba(0,0,0,.82),transparent);justify-content:space-between;flex-wrap:wrap}.player-bar.hidden{opacity:0;pointer-events:none}.player-bar.top.hidden{transform:translateY(-12px)}.player-bar.bottom.hidden{transform:translateY(12px)}.player-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;flex:1;min-width:0}.player-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stream-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;max-width:100%;padding:2px}.stream-chips::-webkit-scrollbar{display:none}.stream-chips .pill{background:var(--surface);color:var(--text-dim);display:inline-flex;align-items:center;gap:7px}.stream-chips .pill.active{background:var(--text);color:#0a0a0c}.stream-chips .pill .chip-sub{font-size:11px;opacity:.65;font-weight:400}.hd-tag{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.8px;padding:2px 5px;border-radius:5px;background:#ffd60ae6;color:#1a1a0a}.stream-chips .pill.active .hd-tag{background:#0a0a0cd9;color:#ffd60a}.player-actions{display:flex;gap:10px;margin-left:auto;flex-shrink:0}.player-hotzone{position:absolute;top:0;left:0;right:0;height:56px;z-index:11}.player-hint{position:absolute;top:20px;left:50%;transform:translate(-50%);z-index:9;font-size:12px;color:var(--text-faint);background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:7px 16px;border-radius:999px;pointer-events:none;animation:hero-in .6s var(--ease) both}.player-sub{max-width:1440px;width:100%;margin:0 auto;padding:26px 28px 44px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.player-sub-teams{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.player-sub-meta{font-size:13px;color:var(--text-faint);display:flex;align-items:center;gap:8px;flex-wrap:wrap}a.btn-ghost{text-decoration:none}.debug-panel{flex-basis:100%;font-size:12px;color:var(--text-faint)}.debug-panel summary{cursor:pointer;display:inline-block;padding:6px 13px;border-radius:999px;background:var(--surface);list-style:none;font-size:12px}.debug-panel summary::-webkit-details-marker{display:none}.debug-panel summary:hover{background:var(--surface-strong)}.debug-panel pre{margin-top:10px;padding:16px 18px;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.07);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.7;color:#f5f5f7b8;overflow-x:auto;max-height:340px}.loading-state{display:flex;flex-direction:column;gap:44px}.skeleton{background:linear-gradient(110deg,#141416 30%,#1f1f23,#141416 60%);background-size:220% 100%;animation:shimmer 1.4s linear infinite}.hero-skeleton{height:430px;border-radius:28px}.skeleton-row{display:flex;gap:18px;overflow:hidden}.card-skeleton{width:288px;aspect-ratio:16 / 10.4;border-radius:var(--radius-md);flex:0 0 auto}.empty-state{min-height:56vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:40px 20px}.empty-icon{font-size:52px;filter:drop-shadow(0 8px 30px rgba(255,92,56,.35));margin-bottom:6px}.empty-state h2{font-size:24px;font-weight:700}.empty-state p{font-size:14px;line-height:1.8;color:var(--text-dim);max-width:520px}.empty-state .btn-primary{margin-top:12px}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid rgba(255,255,255,.18);border-top-color:var(--text);animation:spin .8s linear infinite}.footer{margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.06);font-size:12px;color:var(--text-faint);text-align:center;line-height:1.8}@media(max-width:900px){.topbar-inner{padding:0 16px;gap:14px;overflow-x:auto;scrollbar-width:none}.filter-info,.updated-at{display:none}.page{padding:84px 16px 48px}.hero{min-height:0}.hero-inner{grid-template-columns:1fr;padding:36px 26px;gap:28px}.hero-art{order:-1}.hero-art .hero-art-poster{width:100%}.player-bar{padding:12px 14px;gap:10px}.player-actions .btn-ghost{padding:8px 12px;font-size:12px}.match-card{width:232px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
