:root{font-size:clamp(11px,calc(100vw / 120),26px);--bg: #05070d;--bg-elev: #0e1420;--surface: #161e2e;--surface-hi: #212c40;--line: rgba(255, 255, 255, .08);--text: #edf1f7;--muted: #93a0b5;--dim: #5d6a80;--accent: #ff2d55;--accent-2: #00b8d4;--accent-soft: rgba(255, 45, 85, .16);--ok: #22c55e;--warn: #f59e0b;--radius: .75rem;--radius-lg: 1.25rem;--safe-x: 4vw;--safe-y: 3.5vh;--ease: cubic-bezier(.22, .61, .36, 1);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,Noto Sans,PingFang SC,Microsoft YaHei,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}#app{height:100%;position:relative}img{max-width:100%}.focusable{outline:none;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background-color .18s var(--ease)}.focusable:focus{transform:scale(1.06);box-shadow:0 0 0 .19rem #fff,0 .75rem 2rem #0009;z-index:5}.card.focusable:focus{box-shadow:0 0 0 .19rem #fff,0 1rem 2.5rem #000000bf}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;animation:fade .25s var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(.75rem)}}.topbar{display:flex;align-items:center;gap:1.5rem;padding:var(--safe-y) var(--safe-x) .75rem;flex:none}.brand{display:flex;align-items:baseline;gap:.4rem;font-weight:800;font-size:1.6rem;letter-spacing:-.02em}.brand em{font-style:normal;color:var(--accent)}.tabs{display:flex;gap:.5rem;margin-left:1.5rem}.tab{padding:.5rem 1.1rem;border-radius:999px;border:0;background:transparent;color:var(--muted);font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer}.tab[aria-selected=true]{background:var(--accent);color:#fff}.tab:focus{background:#fff;color:#05070d}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:1rem;color:var(--muted);font-size:.95rem}.pill{padding:.35rem .8rem;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-weight:600}.pill.live{color:var(--accent);border-color:var(--accent-soft);background:var(--accent-soft)}.body{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;padding-bottom:var(--safe-y)}.body::-webkit-scrollbar{display:none}.hero{position:relative;margin:0 var(--safe-x) 1.5rem;border-radius:var(--radius-lg);overflow:hidden;min-height:34vh;display:flex;align-items:flex-end;background:radial-gradient(120% 140% at 12% 20%,#1d2b4d,#0b1220 55%,#05070d);border:1px solid var(--line)}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(5,7,13,.92) 0%,rgba(5,7,13,.35) 55%,transparent 100%)}.hero-inner{position:relative;z-index:1;padding:2rem 2.5rem;max-width:46rem}.hero h1{margin:.5rem 0 .6rem;font-size:2.6rem;line-height:1.1;letter-spacing:-.03em}.hero p{margin:0 0 1.25rem;color:var(--muted);font-size:1.05rem;line-height:1.5}.kicker{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent);font-weight:700;font-size:.9rem;letter-spacing:.12em;text-transform:uppercase}.dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);animation:pulse 1.8s infinite}@keyframes pulse{50%{opacity:.35}}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.75rem 1.6rem;border:0;border-radius:999px;background:var(--accent);color:#fff;font-family:inherit;font-size:1.05rem;font-weight:700;cursor:pointer}.btn.ghost{background:#ffffff1a;border:1px solid var(--line)}.btn:focus{background:#fff;color:#05070d}.rail{margin-bottom:1.75rem}.rail-head{display:flex;align-items:baseline;gap:.75rem;padding:0 var(--safe-x);margin-bottom:.85rem}.rail-head h2{margin:0;font-size:1.25rem;letter-spacing:-.01em}.rail-head span{color:var(--dim);font-size:.9rem;font-weight:600}.rail-track{display:flex;gap:1rem;padding:.65rem var(--safe-x);overflow-x:auto;scrollbar-width:none}.rail-track::-webkit-scrollbar{display:none}.card{flex:none;width:11.5rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);overflow:hidden;cursor:pointer;text-align:left;font-family:inherit;color:inherit;padding:0}.card-art{position:relative;aspect-ratio:16 / 9;display:grid;place-items:center;background:linear-gradient(135deg,var(--c1, #24314d),var(--c2, #131b2b))}.card-art img{width:100%;height:100%;object-fit:contain;padding:12%}.card-initial{font-size:clamp(.9rem,1.55rem,1.9rem);padding:0 .5rem;text-align:center;line-height:1.1;word-break:break-word;font-weight:800;color:#ffffffe6;letter-spacing:-.04em}.card-num{position:absolute;top:.5rem;left:.5rem;background:#0009;border-radius:.4rem;padding:.15rem .45rem;font-size:.75rem;font-weight:700;color:var(--muted)}.card-meta{padding:.6rem .7rem .75rem}.card-title{font-size:.95rem;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.card-sub{margin-top:.2rem;font-size:.8rem;color:var(--dim);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.player{position:absolute;top:0;right:0;bottom:0;left:0;background:#000}.player video{width:100%;height:100%;object-fit:contain;background:#000}.player-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(180deg,rgba(0,0,0,.75) 0%,transparent 22%,transparent 60%,rgba(0,0,0,.88) 100%);transition:opacity .3s var(--ease)}.player-overlay[data-hidden=true]{opacity:0;pointer-events:none}.player-top{padding:var(--safe-y) var(--safe-x);display:flex;align-items:center;gap:1rem}.now-title{font-size:1.7rem;font-weight:800;letter-spacing:-.02em}.now-sub{color:var(--muted);font-size:1rem;margin-top:.2rem}.player-bottom{padding:1rem var(--safe-x) var(--safe-y)}.epg-strip{display:flex;gap:.75rem;overflow-x:auto;scrollbar-width:none;padding-top:.5rem}.epg-strip::-webkit-scrollbar{display:none}.epg-item{flex:none;width:16rem;padding:.7rem .9rem;border-radius:var(--radius);background:#161e2ed9;border:1px solid var(--line)}.epg-item.on-now{border-color:var(--accent);background:var(--accent-soft)}.epg-time{font-size:.8rem;color:var(--accent);font-weight:700}.epg-title{font-size:.95rem;font-weight:600;margin-top:.2rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.zapper{position:absolute;top:0;bottom:0;right:0;width:26rem;background:#05070df0;border-left:1px solid var(--line);padding:var(--safe-y) 1.25rem;overflow-y:auto;scrollbar-width:none;transform:translate(100%);transition:transform .28s var(--ease)}.zapper[data-open=true]{transform:none}.zapper::-webkit-scrollbar{display:none}.zap-row{display:flex;align-items:center;gap:.8rem;width:100%;padding:.6rem .7rem;border-radius:var(--radius);border:0;background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer}.zap-row.active{background:var(--accent-soft)}.zap-logo{flex:none;width:3.4rem;height:2.2rem;border-radius:.4rem;display:grid;place-items:center;background:linear-gradient(135deg,var(--c1, #24314d),var(--c2, #131b2b));font-weight:800;font-size:.85rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;padding:0 var(--safe-x)}.svc{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);cursor:pointer;font-family:inherit;color:inherit;text-align:left}.svc-name{font-size:1.05rem;font-weight:700}.svc-zh{color:var(--muted);font-size:.9rem}.svc-price{margin-top:.4rem;color:var(--accent);font-weight:800;font-size:1rem}.svc-price.free{color:var(--ok)}.qty{margin-top:.5rem;font-size:.85rem;color:var(--dim)}.qty b{color:var(--text)}.cartbar{position:absolute;left:var(--safe-x);right:var(--safe-x);bottom:var(--safe-y);display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:var(--radius-lg);background:#161e2ef7;border:1px solid var(--line);box-shadow:0 1rem 3rem #0009}.cartbar strong{font-size:1.15rem}.cartbar .spacer{flex:1}.centre{height:100%;display:grid;place-items:center;text-align:center;padding:var(--safe-y) var(--safe-x)}.code{font-size:4.5rem;font-weight:800;letter-spacing:.35em;color:var(--accent);margin:1rem 0;text-indent:.35em}.muted{color:var(--muted)}.toast{position:absolute;left:50%;bottom:12vh;transform:translate(-50%);padding:.9rem 1.6rem;border-radius:999px;background:var(--surface-hi);border:1px solid var(--line);font-weight:600;box-shadow:0 .75rem 2rem #0009;animation:fade .2s var(--ease);z-index:50}.spinner{width:2.5rem;height:2.5rem;border-radius:50%;border:.22rem solid rgba(255,255,255,.15);border-top-color:var(--accent);animation:spin .8s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){:root{font-size:15px;--safe-x: 1rem;--safe-y: 1rem}.hero h1{font-size:1.8rem}.card{width:9rem}.zapper{width:100%}.topbar{flex-wrap:wrap;gap:.5rem .75rem}.tabs{margin-left:0;order:3;width:100%;overflow-x:auto;scrollbar-width:none;padding-bottom:.15rem}.tabs::-webkit-scrollbar{display:none}.tab{flex:none}.topbar-right{font-size:.85rem;gap:.5rem}.hero-inner{padding:1.25rem 1.25rem 1.5rem}.grid{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr))}.focusable:focus{transform:none;box-shadow:0 0 0 2px var(--accent)}}.rail-track.posters{align-items:flex-start}.poster{flex:none;width:9.5rem;border-radius:var(--radius);background:transparent;border:0;padding:0;cursor:pointer;text-align:left;font-family:inherit;color:inherit}.poster-art{position:relative;aspect-ratio:2 / 3;border-radius:var(--radius);overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,var(--c1, #24314d),var(--c2, #131b2b));border:1px solid var(--line)}.poster-art img{width:100%;height:100%;object-fit:cover}.poster.focusable:focus{box-shadow:none}.poster.focusable:focus .poster-art{box-shadow:0 0 0 .19rem #fff,0 1rem 2.5rem #000000bf}.poster-tag,.poster-rating{position:absolute;top:.4rem;font-size:.66rem;font-weight:800;letter-spacing:.06em;padding:.15rem .4rem;border-radius:.35rem;background:#000000b8}.poster-tag{left:.4rem;color:var(--accent-2)}.poster-rating{right:.4rem;color:var(--warn)}.poster-title{margin-top:.45rem;font-size:.9rem;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.poster-sub{margin-top:.15rem;font-size:.76rem;color:var(--dim)}.detail{display:flex;gap:2rem;padding:var(--safe-y) var(--safe-x) 1rem;align-items:flex-start}.detail-poster{flex:none;width:14rem;aspect-ratio:2 / 3;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center}.detail-poster img{width:100%;height:100%;object-fit:cover}.detail-info{flex:1;min-width:0}.detail-info h1{margin:.5rem 0;font-size:clamp(1.4rem,2.4rem,2.8rem);line-height:1.1}.detail-facts{color:var(--accent-2);font-weight:600;margin:0 0 .75rem}.detail-plot{color:var(--text);max-width:46rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.detail-info .muted{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.detail-actions{display:flex;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap}.episodes{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.6rem;padding:0 var(--safe-x) var(--safe-y)}.episode{display:flex;align-items:center;gap:.65rem;padding:.7rem .85rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);color:inherit;font-family:inherit;font-size:.88rem;text-align:left;cursor:pointer}.episode-num{flex:none;min-width:1.9rem;height:1.9rem;border-radius:.5rem;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:800}.episode-title{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.seek{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}.seek .time{font-variant-numeric:tabular-nums;font-size:.85rem;color:var(--muted);flex:none}.seek-bar{flex:1;height:.35rem;border-radius:999px;background:#ffffff38;position:relative;display:block}.seek-bar:focus{height:.6rem}.seek-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:999px;background:var(--accent)}@media(max-width:900px){.detail{flex-direction:column;gap:1rem}.detail-poster{width:8rem}.poster{width:7.5rem}}
