:root {
    --bg: #08070a;
    --bg-soft: #14110f;
    --panel: rgba(18, 20, 22, .78);
    --panel-strong: rgba(26, 28, 30, .92);
    --text: #f4f7f6;
    --muted: #aab2ad;
    --line: rgba(255, 255, 255, .12);
    --accent: #c94f3d;
    --teal: #3dd6c6;
    --gold: #f3c46b;
    --shadow: 0 20px 70px rgba(0, 0, 0, .34);
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); color-scheme: dark; }
body { margin: 0; min-height: 100%; font-family: "Inter", "Microsoft YaHei", "PingFang SC", Arial, sans-serif; color: var(--text); background: var(--bg); letter-spacing: 0; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input { font: inherit; }
.site-bg { position: fixed; inset: 0; z-index: -3; overflow: hidden; background: linear-gradient(130deg, #08070a 0%, #17100d 38%, #071716 68%, #160b13 100%); }
.site-bg::before { content: ""; position: absolute; inset: -20%; background: conic-gradient(from 210deg at 50% 50%, rgba(201,79,61,.12), rgba(61,214,198,.14), rgba(243,196,107,.1), rgba(201,79,61,.12)); animation: bgDrift 18s linear infinite; filter: blur(30px); }
.bg-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(to bottom, rgba(0,0,0,.85), transparent 85%); }
.bg-scan { position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 4px); mix-blend-mode: screen; opacity: .45; }
.fx-particle { position: fixed; z-index: -2; width: 2px; height: 36px; left: var(--x); top: 110%; background: linear-gradient(to top, transparent, rgba(243,196,107,.78), transparent); opacity: .45; transform: rotate(var(--r)); animation: particleRise var(--d) linear infinite; animation-delay: var(--delay); pointer-events: none; }
@keyframes bgDrift { to { transform: rotate(360deg); } }
@keyframes particleRise { to { transform: translate3d(var(--dx), -130vh, 0) rotate(var(--r)); } }
.intro-cinema { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; background: #050508; animation: introFade 2.4s ease forwards; pointer-events: none; }
.intro-frame { width: min(560px, 82vw); aspect-ratio: 16/9; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); box-shadow: inset 0 0 80px rgba(61,214,198,.18), 0 0 70px rgba(201,79,61,.2); position: relative; overflow: hidden; }
.intro-frame::before, .intro-frame::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 18px, rgba(255,255,255,.08) 18px 20px); animation: filmRun 1.2s linear infinite; }
.intro-frame::after { background: linear-gradient(90deg, transparent, rgba(243,196,107,.28), transparent); transform: translateX(-100%); animation: projector 1.8s ease .2s forwards; }
.intro-kicker, .intro-title, .intro-line { position: relative; z-index: 1; }
.intro-kicker { align-self: end; color: var(--teal); font-size: 13px; text-transform: uppercase; }
.intro-title { font-size: clamp(30px, 7vw, 62px); font-weight: 800; }
.intro-line { width: 46%; height: 2px; background: linear-gradient(90deg, transparent, var(--gold), transparent); align-self: start; }
@keyframes filmRun { to { background-position-x: 40px; } }
@keyframes projector { to { transform: translateX(100%); } }
@keyframes introFade { 0%,72%{opacity:1} 99%{opacity:0} 100%{opacity:0;visibility:hidden} }
.site-header { position: sticky; top: 0; z-index: 50; min-height: 72px; display: grid; grid-template-columns: auto 1fr auto auto; gap: 18px; align-items: center; padding: 14px clamp(18px, 4vw, 54px); background: rgba(8, 7, 10, .72); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }
.brand { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 8px; background: linear-gradient(135deg, var(--accent), var(--gold)); color: #140b09; font-weight: 900; }
.brand-name { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 800; }
.main-nav, .site-footer nav, .mobile-drawer nav, .channel-list, .map-grid { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.main-nav a, .site-footer nav a, .channel-list a, .map-grid a, .filter-row a { min-height: 34px; display: inline-flex; align-items: center; padding: 7px 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); background: rgba(255,255,255,.035); }
.main-nav a:hover, .channel-list a:hover, .map-grid a:hover, .filter-row a:hover { color: var(--text); border-color: rgba(61,214,198,.42); }
.search-form { display: flex; align-items: center; gap: 8px; width: min(260px, 24vw); padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.06); }
.search-form input, .mobile-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text); }
.search-form button { width: 30px; height: 30px; border: 0; border-radius: 8px; background: var(--teal); cursor: pointer; position: relative; }
.search-form button span::before { content: ""; position: absolute; width: 10px; height: 10px; border: 2px solid #061413; border-radius: 50%; left: 9px; top: 8px; }
.search-form button span::after { content: ""; position: absolute; width: 8px; height: 2px; background: #061413; transform: rotate(45deg); left: 18px; top: 19px; }
.nav-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.06); }
.nav-toggle span { display: block; width: 19px; height: 2px; margin: 5px auto; background: var(--text); }
.mobile-drawer { display: none; position: fixed; z-index: 45; inset: 72px 12px auto; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: rgba(12,13,15,.96); box-shadow: var(--shadow); }
.mobile-search { display: flex; gap: 8px; margin-bottom: 12px; padding: 8px; border: 1px solid var(--line); border-radius: 8px; }
.mobile-search button { border: 0; border-radius: 8px; padding: 0 12px; color: #061413; background: var(--teal); }
.site-main { width: min(1420px, calc(100% - 32px)); margin: 0 auto; padding: 34px 0 56px; }
.home-hero, .detail-hero { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: 22px; align-items: stretch; min-height: min(620px, calc(100vh - 130px)); }
.hero-copy, .detail-info, .content-panel, .filter-panel, .home-section, .channel-strip, .page-hero { border: 1px solid var(--line); border-radius: 8px; background: var(--panel); box-shadow: var(--shadow); backdrop-filter: blur(18px); }
.hero-copy { display: flex; flex-direction: column; justify-content: end; padding: clamp(24px, 5vw, 54px); }
.hero-copy p, .page-hero p, .detail-info > p { margin: 0 0 12px; color: var(--teal); font-weight: 700; }
h1, h2, h3, p { overflow-wrap: anywhere; }
h1 { margin: 0; font-size: clamp(38px, 7vw, 88px); line-height: .98; }
h2 { margin: 0; font-size: clamp(22px, 3vw, 34px); }
h3 { margin: 10px 0 6px; font-size: 16px; line-height: 1.35; }
.hero-copy span, .page-hero span, .detail-info .desc { color: var(--muted); line-height: 1.8; }
.hero-stage { min-width: 0; position: relative; overflow: hidden; border-radius: 8px; border: 1px solid var(--line); background: #050508; }
.hero-track { height: 100%; }
.hero-fallback { display: none; }
.home-hero.use-fallback .hero-primary { display: none; }
.home-hero.use-fallback .hero-fallback { display: block; }
.home-hero-item { display: none; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 0; height: 100%; min-height: 520px; }
.home-hero-item.is-active, .hero-track .home-hero-item:first-child { display: grid; }
.home-hero-item:not(.is-active):not(:first-child) { display: none; }
.hero-media { min-height: 100%; overflow: hidden; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; }
.hero-info { display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: clamp(22px, 4vw, 44px); background: linear-gradient(145deg, rgba(8,7,10,.9), rgba(20,17,15,.78)); }
.hero-info span, .meta-line, .vod-card p, .section-head span { color: var(--muted); }
.hero-info p { color: #d9dfdc; line-height: 1.75; }
.meta-line { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.meta-line em { font-style: normal; color: #160d07; background: var(--gold); padding: 5px 9px; border-radius: 8px; font-weight: 800; }
.button-row { display: flex; flex-wrap: wrap; gap: 10px; }
.btn { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 16px; border-radius: 8px; border: 1px solid var(--line); font-weight: 800; }
.btn.primary { background: linear-gradient(135deg, var(--teal), var(--gold)); color: #07110f; border: 0; }
.btn.ghost { background: rgba(255,255,255,.06); color: var(--text); }
.section-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 18px; }
.section-head a { color: var(--gold); }
.channel-strip, .home-section, .content-panel, .filter-panel, .page-hero { margin-top: 22px; padding: clamp(18px, 3vw, 28px); }
.vod-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 16px; }
.vod-card { min-width: 0; }
.vod-card a { display: block; height: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.045); transition: transform .2s ease, border-color .2s ease; }
.vod-card a:hover { transform: translateY(-4px); border-color: rgba(243,196,107,.45); }
.poster { position: relative; display: block; aspect-ratio: 2/3; overflow: hidden; border-radius: 8px; background: #101315; }
.poster img { width: 100%; height: 100%; object-fit: cover; }
.poster em { position: absolute; left: 8px; right: 8px; bottom: 8px; padding: 5px 7px; border-radius: 8px; background: rgba(0,0,0,.64); color: #fff; font-size: 12px; font-style: normal; text-align: center; }
.page-hero.compact { min-height: 0; }
.page-hero.compact h1 { font-size: clamp(34px, 5vw, 64px); }
.filter-panel { display: grid; gap: 12px; }
.filter-row { display: grid; grid-template-columns: 80px 1fr; gap: 12px; align-items: start; }
.filter-row strong { color: var(--gold); padding-top: 8px; }
.filter-row div { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-row .active { color: #07110f; background: var(--teal); border-color: transparent; }
.paging { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 24px; }
.paging a, .paging span { min-width: 42px; min-height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.05); }
.detail-hero { grid-template-columns: minmax(220px, 360px) 1fr; min-height: 0; }
.detail-poster { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #101315; box-shadow: var(--shadow); }
.detail-poster img { width: 100%; height: 100%; object-fit: cover; }
.detail-info { padding: clamp(22px, 4vw, 42px); }
.detail-info h1 { font-size: clamp(36px, 5vw, 72px); }
.detail-meta dl { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 0; }
.detail-meta div { padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.035); }
.detail-meta dt { color: var(--gold); margin-bottom: 8px; }
.detail-meta dd { margin: 0; color: var(--muted); }
.playlist-group { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.playlist-group strong { display: block; margin-bottom: 10px; color: var(--teal); }
.episode-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; }
.episode-list a { display: flex; min-height: 40px; align-items: center; justify-content: center; padding: 8px; border-radius: 8px; border: 1px solid var(--line); background: rgba(255,255,255,.05); }
.player-shell { margin-top: 22px; }
.player-box { position: relative; width: 100%; aspect-ratio: 16/9; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #000; box-shadow: var(--shadow); }
.player-box iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.player-empty { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; color: var(--gold); background: linear-gradient(135deg, rgba(0,0,0,.96), rgba(18,20,22,.9)); text-align: center; }
.feedback-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.feedback-item { padding: 15px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.045); }
.feedback-item strong { display: block; margin-bottom: 7px; color: var(--teal); }
.feedback-item span { color: var(--gold); }
.feedback-item time { display: inline-block; margin-left: 8px; color: var(--muted); font-size: 13px; }
.feedback-item p { color: #d8dedb; line-height: 1.7; }
.faq-panel details { border-top: 1px solid var(--line); padding: 14px 0; }
.faq-panel summary { cursor: pointer; color: var(--gold); font-weight: 800; }
.faq-panel p { color: var(--muted); line-height: 1.75; }
.map-grid { align-items: stretch; }
.map-grid a { min-width: 150px; justify-content: center; }
.empty-state, .empty-hint { color: var(--muted); padding: 16px; border: 1px dashed var(--line); border-radius: 8px; }
.site-footer { border-top: 1px solid var(--line); background: rgba(8,7,10,.76); }
.footer-inner { width: min(1420px, calc(100% - 32px)); margin: 0 auto; padding: 28px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.footer-inner p { color: var(--muted); line-height: 1.7; }
.message-box { width: min(520px, calc(100% - 32px)); margin: 12vh auto; padding: 26px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-strong); box-shadow: var(--shadow); }
.message-box strong { display: block; font-size: 24px; margin-bottom: 10px; }
.player-frame-page { min-height: 100vh; background: #000; }
.player-box.standalone { min-height: 100vh; border: 0; border-radius: 0; }
@media (max-width: 980px) {
    .site-header { grid-template-columns: auto 1fr auto; }
    .main-nav, .search-form { display: none; }
    .nav-toggle { display: block; }
    .mobile-drawer.is-open { display: block; }
    .home-hero, .detail-hero, .home-hero-item { grid-template-columns: 1fr; min-height: 0; }
    .home-hero-item { height: auto; }
    .hero-media { aspect-ratio: 16/10; min-height: 0; }
    .detail-meta dl, .feedback-list, .footer-inner { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .site-main { width: min(100% - 20px, 1420px); padding-top: 18px; }
    .site-header { padding: 12px 10px; min-height: 64px; }
    .mobile-drawer { inset: 64px 10px auto; }
    .brand-name { max-width: 132px; }
    .hero-copy, .hero-info, .content-panel, .filter-panel, .home-section, .channel-strip, .page-hero { padding: 16px; }
    .vod-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .filter-row { grid-template-columns: 1fr; }
    h1 { font-size: 38px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
    .intro-cinema { display: none; }
}
