/* Main-site V2, calibrated to docs/UI-REFERENCE-ALIGNMENT.md. */
.hy-v2 { --bg:#090b21; --panel:#1d1f35; --surface:#1d1f35; --subtle:#25294d; --line:#2b2d46; --text:#fff; --muted:#aaaabd; --accent:#20afe6; --accent-soft:#17344b; background:#090b21; background-image:none; color:var(--text); font-size:13px; }
.hy-v2 h1,.hy-v2 h2,.hy-v2 h3 { letter-spacing:0; }
.hy-v2 a:hover { color:var(--accent); }
.hy-v2 button,.hy-v2 input,.hy-v2 select,.hy-v2 textarea { font-family:inherit; }
.hy-v2 .button { background:#159ecc; border:1px solid #159ecc; border-radius:3px; color:white; font-size:14px; font-weight:400; }
.hy-v2 .button.secondary { background:#25294d; border-color:#363952; color:#d8d8e5; }
.hy-v2 .button:disabled { opacity:.5; cursor:not-allowed; }
.hy-v2 .site-rail { width:180px; border:0; }
.hy-v2 .site-rail .brand { width:126px; height:36px; margin:12px 0 20px 28px; }
.hy-v2 .site-rail .brand img { width:126px; height:36px; }
.hy-v2 .rail-tools>a,.hy-v2 .rail-nav>a,.hy-v2 .rail-bottom>a { height:47px; padding-left:35px; gap:12px; font-size:16px; }
.hy-v2 .rail-tools { margin-bottom:10px; }
.hy-v2 .rail-tools>a:nth-child(2),.hy-v2 .rail-tools>a:nth-child(3),.hy-v2 .rail-tools>a:nth-child(4) { display:none; }
.hy-v2 .hy-nav-tag { font-size:10px; color:#747b98; margin-left:auto; margin-right:6px; }
.hy-v2 .rail-nav>a.active { color:#20afe6; background:linear-gradient(90deg,#17466c45,transparent); }
.hy-v2 .rail-nav>a.active .nav-symbol { color:inherit; filter:none; }
.hy-v2 .rail-nav>a.active:before { box-shadow:none; top:50%; margin-top:-5px; }
/* Rail rows: icon box and label share one 24px line box, so mixed CJK/Latin labels (VIP会员) sit on the icon's centre line. */
.hy-v2 .site-rail .brand img { object-position:left center; }
.hy-v2 .mobile-brand img { display:block; width:100%; height:auto; }
.hy-v2 .rail-tools>a,.hy-v2 .rail-nav>a,.hy-v2 .rail-bottom>a { line-height:24px; }
.hy-v2 .site-rail .nav-symbol { display:flex; align-items:center; justify-content:center; width:24px; height:24px; }
.hy-v2 .site-rail .hy-nav-label { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; line-height:24px; }
/* 魅影TV entry: separate site, opened only by the user. Rail card / channel dropdown row / phone row share one markup. */
.hy-v2 .hy-midnight { color:#d9c3e4; }
.hy-v2 .hy-midnight:hover { color:#f0dcf5; }
.hy-v2 .hy-midnight .nav-symbol { color:#cf9ccf; }
.hy-v2 .hy-midnight b { font-weight:inherit; }
.hy-v2 .hy-age { flex:none; font-style:normal; font-size:10px; line-height:14px; padding:0 4px; border:1px solid #cf9ccf80; border-radius:2px; color:#e3b5e3; }
.hy-v2 .hy-midnight-state { flex:none; font-size:11px; line-height:16px; color:#8f88a6; white-space:nowrap; }
.hy-v2 .hy-midnight.is-pending .hy-midnight-state { color:#a49aaf; }
.hy-v2 .hy-midnight-rail { flex:none; display:grid; grid-template-columns:24px auto 1fr; grid-template-areas:"icon name age" "icon sub state"; align-items:center; column-gap:10px; row-gap:2px; margin:0 12px 12px 16px; padding:8px 10px 8px 19px; border:1px solid #3d2f52; border-radius:4px; background:linear-gradient(90deg,#2a1c3d99,#16132e66); }
.hy-v2 .hy-midnight-rail:hover { border-color:#5a4475; }
.hy-v2 .hy-midnight-rail.is-pending,.hy-v2 .hy-midnight-mobile.is-pending { border-style:dashed; }
.hy-v2 .hy-midnight-rail .nav-symbol { grid-area:icon; }
.hy-v2 .hy-midnight-rail .hy-nav-label { display:contents; }
.hy-v2 .hy-midnight-rail b { grid-area:name; font-size:15px; line-height:20px; white-space:nowrap; }
.hy-v2 .hy-midnight-rail .hy-midnight-dot { display:none; }
.hy-v2 .hy-midnight-rail .hy-midnight-sub { grid-area:sub; font-size:12px; line-height:16px; color:#a596b8; }
.hy-v2 .hy-midnight-rail .hy-age { grid-area:age; justify-self:start; }
.hy-v2 .hy-midnight-rail .hy-midnight-state { grid-area:state; justify-self:end; }
.hy-v2 .channel-menu .hy-midnight-menu { grid-column:1/-1; margin-top:4px; padding-top:11px; border-top:1px solid #363c59; }
.hy-v2 .channel-menu .hy-midnight-menu .nav-symbol { display:flex; align-items:center; justify-content:center; height:20px; }
.hy-v2 .hy-midnight-menu .hy-nav-label,.hy-v2 .hy-midnight-mobile .hy-nav-label { white-space:nowrap; }
.hy-v2 .hy-midnight-menu .hy-midnight-state,.hy-v2 .hy-midnight-mobile .hy-midnight-state { margin-left:auto; }
.hy-v2 .hy-midnight-mobile { display:none; }
.hy-v2 .portal-topbar { height:60px; border:0; box-shadow:none; }
.hy-v2 .header-search { position:relative; width:330px; height:40px; overflow:visible; background:#ffffff16; border-radius:22px; }
.hy-v2 .header-search input { font-size:13px; color:#eee; padding:9px 20px; }
.hy-v2 .header-tools { gap:22px; }
.hy-v2 .header-tools .nav-symbol,.hy-v2 .header-tools svg { width:24px; height:24px; }
.hy-v2 .top-channel { font-weight:400; }
.hy-v2 .channel-menu nav { z-index:80; }
.hy-v2 .channel-menu .hy-nav-tag { display:none; }
.hy-v2 .hy-suggest { position:absolute; top:46px; left:0; right:0; z-index:80; background:#1d203a; border:1px solid #353a59; border-radius:3px; box-shadow:0 10px 30px #0005; }
.hy-v2 .hy-suggest-head { margin:0; padding:12px 16px 6px; color:#8e96b1; font-size:12px; }
.hy-v2 .hy-suggest ul { list-style:none; padding:0 6px 7px; margin:0; }
.hy-v2 .hy-suggest a { display:block; padding:10px; color:#ddd; font-size:14px; }
.hy-v2 .hy-suggest a:hover,.hy-v2 .hy-suggest [aria-selected=true] { background:#25294d; color:#20afe6; }
.hy-v2 .hy-suggest-foot { padding:5px 12px 12px; border-top:1px solid #353a59; }
.hy-v2 .hy-suggest-clear { border:0; background:none; color:#aaaabd; padding:7px 0; }
.hy-v2 .hy-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
/* Compact banner: at 1440×900 the first poster row starts inside the first viewport. */
.hy-v2 .hy-hero { height:clamp(320px, 26vw, 420px); margin-top:0; border:0; border-radius:0; }
.hy-v2 .hy-hero-stage,.hy-v2 .hy-slide { height:100%; }
.hy-v2 .hy-slide[hidden],.hy-v2 [hidden] { display:none!important; }
.hy-v2 .cover-copy { left:200px; bottom:35px; max-width:560px; }
.hy-v2 .cover-copy h2 { font-size:26px; font-weight:500; line-height:1.35; margin:0 0 12px; }
.hy-v2 .cover-meta { margin:0 0 16px; font-size:14px; color:#cbcbd7; }
.hy-v2 .cover-copy .button-row { display:flex; align-items:center; gap:22px; }
.hy-v2 .cover-copy .play-primary { font-size:17px; border-radius:3px; background:#20afe6; padding:10px 22px; }
.hy-v2 .cover-copy .play-primary svg { width:20px; height:20px; }
.hy-v2 .hero-detail-link { color:#ddd; font-size:14px; }
/* Poster-only hero: never upscale a small portrait into a blurred full-width banner.
   Real wide stills continue to use the existing /backdrop route. */
.hy-v2 .hy-hero .is-poster-art {
  background:
    radial-gradient(ellipse 52% 95% at 72% 30%, #253c6373, transparent 76%),
    linear-gradient(115deg, #090b21 5%, #14213d 60%, #0b1029 100%);
}
.hy-v2 .hy-hero .is-poster-art::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(115deg, transparent 0, transparent 165px, #ffffff07 166px, transparent 167px);
}
.hy-v2 .hy-hero .is-poster-art .cover-shade {
  background:linear-gradient(90deg, #090b21dd, #0d13356b 55%, #090b2166);
}
.hy-v2 .hy-hero .is-poster-art .hy-cover-poster {
  background:#10152d; border:1px solid #ffffff27; object-fit:contain;
}
.hy-v2 .is-poster-art .cover-copy { display:flex; align-items:flex-end; gap:26px; max-width:min(600px, calc(100% - 840px)); min-width:380px; }
.hy-v2 .hy-cover-poster { flex:none; width:150px; height:210px; object-fit:cover; border-radius:3px; box-shadow:0 10px 28px #0009; }
.hy-v2 .hy-cover-text { min-width:0; }
.hy-v2 .hy-cover-text h2 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.hy-v2 .hy-cover-synopsis { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin:0 0 16px; color:#c4c6d4; font-size:13px; line-height:1.7; }
.hy-v2 .hy-candidate-flag { color:#aaaabd; font-size:12px; white-space:nowrap; }
.hy-v2 .hy-preview-note { margin:-24px 0 30px; color:#8e95b1; font-size:12px; }
.hy-v2 .hy-hero-picks { position:absolute; z-index:4; right:60px; bottom:35px; display:flex; gap:9px; max-width:40%; overflow:hidden; }
.hy-v2 .hy-hero-picks a { position:relative; width:86px; height:120px; flex:none; display:block; border:1px solid transparent; border-radius:3px; overflow:hidden; opacity:.7; }
.hy-v2 .hy-hero-picks a[aria-selected=true],.hy-v2 .hy-hero-picks a[aria-current] { border-color:#20afe6; opacity:1; }
.hy-v2 .hy-hero-picks img { width:100%; height:100%; object-fit:cover; }
.hy-v2 .hy-hero-picks span { position:absolute; inset:auto 0 0; padding:16px 5px 4px; background:linear-gradient(transparent,#000c); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:12px; }
.hy-v2 .hy-hero-controls { position:absolute; right:60px; bottom:166px; z-index:5; display:flex; gap:4px; }
.hy-v2 .hy-hero-controls button { border:0; background:#090b2155; color:white; width:28px; height:34px; font-size:24px; padding:0; border-radius:2px; }
.hy-v2 .hy-hero-controls svg { width:16px; height:16px; }
.hy-v2 .home-content { padding:0 26px 40px 18px; }
.hy-v2 .hy-channels { display:flex; flex-wrap:wrap; align-items:center; gap:10px 24px; margin:14px 0 26px; }
.hy-v2 .hy-quick-channels,.hy-v2 .hy-quick-discover { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.hy-v2 .hy-quick-discover { margin-left:auto; }
.hy-v2 .hy-channels a { display:inline-flex; align-items:center; gap:6px; min-height:32px; padding:5px 18px; color:#c9cade; font-size:14px; border:0; border-radius:3px; background:#25294d; white-space:nowrap; }
.hy-v2 .hy-channels a:hover { color:white; background:#2c3563; }
.hy-v2 .hy-quick-discover a { padding:5px 14px; background:transparent; box-shadow:inset 0 0 0 1px #2f3459; color:#b9c0da; }
.hy-v2 .hy-quick-discover a:hover { background:#17344b; box-shadow:inset 0 0 0 1px #20afe6; color:#fff; }
.hy-v2 .hy-quick-discover svg { width:16px; height:16px; flex:none; color:#20afe6; }
.hy-v2 .film-shelf { margin-bottom:38px; }
.hy-v2 .shelf-head { margin-bottom:20px; gap:22px; }
.hy-v2 .shelf-head h2 { font-size:22px; font-weight:500; }
.hy-v2 .hy-category-count { margin-left:10px; font-size:12px; font-weight:400; color:var(--muted); white-space:nowrap; }
.hy-v2 .cards { grid-template-columns:repeat(7,minmax(0,1fr)); gap:20px 10px; }
.hy-v2 .poster { border-radius:3px; border:0; aspect-ratio: .7; }
.hy-v2 .poster img { object-fit:cover; }
.hy-v2 .film-card h3 { font-size:16px; font-weight:400; line-height:1.5; margin:6px 0 2px; }
.hy-v2 .film-card p { font-size:13px; color:#9194ad; }
.hy-v2 .hy-badge { position:absolute; left:4px; top:4px; padding:1px 5px; color:#2e2132; background:#e5c5ac; font-size:11px; }
.hy-v2 .hy-state { position:absolute; top:4px; right:4px; max-width:calc(100% - 44px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; background:#15182dcc; color:#ddd; padding:1px 5px; font-size:11px; }
.hy-v2 .is-candidate .poster-label,.hy-v2 .hy-search-poster .poster-label { inset:auto auto 6px 6px; padding:1px 6px; background:#090b21cc; color:#cfd3e6; font-size:11px; text-align:left; border-radius:2px; }
.hy-v2 .hy-stamp { margin-top:3px; color:#777e9e; font-size:11px; }
.hy-v2 .hy-library-note,.hy-v2 .hy-page-note { color:#8e95b1; font-size:12px; margin:15px 0 24px; }
.hy-v2.inner-page .site-rail { display:none; }
.hy-v2.inner-page>main,.hy-v2.inner-page>.site-footer { margin-left:0; }
.hy-v2.inner-page .page { max-width:1280px; width:calc(100% - 120px); margin:0 auto; padding:20px 0 55px; }
.hy-v2.inner-page .portal-topbar { left:0; padding-left:278px; }
.hy-v2.inner-page .portal-topbar>.mobile-brand { display:block; position:absolute; width:126px; left:32px; }
.hy-v2 .catalog-heading { margin-bottom:18px; }
.hy-v2 .catalog-heading h1 { font-size:22px; font-weight:400; }
.hy-v2 .catalog-filters { border:0; border-radius:0; background:#1d1f35; padding:12px 22px; }
.hy-v2 .filter-row { min-height:40px; padding:3px 0; gap:12px; }
.hy-v2 .filter-name { min-width:35px; padding-top:5px; font-size:12px; color:#777f9c; }
.hy-v2 .filter-row nav { gap:3px 6px; }
.hy-v2 .filter-row a { min-height:28px; padding:3px 12px; border-radius:0; font-size:13px; }
.hy-v2 .filter-row a.selected { background:#20afe6; color:#fff; }
.hy-v2 .hy-filter-none { color:#7b829e; padding:4px 0; font-size:12px; }
.hy-v2 .catalog-results { margin:25px 0; gap:18px; }
.hy-v2 .catalog-results a { padding:7px 20px; }
.hy-v2 .hy-empty { padding:50px 15px; text-align:center; color:#9ba2bd; }
.hy-v2 .hy-search-layout,.hy-v2 .hy-collection-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:35px; }
.hy-v2 .hy-search-item { display:grid; grid-template-columns:125px minmax(0,1fr); gap:22px; padding:0 0 24px; margin-bottom:24px; border-bottom:1px solid #252940; }
.hy-v2 .hy-search-poster { position:relative; display:block; width:125px; height:176px; overflow:hidden; border-radius:3px; background:#1d1f35; }
.hy-v2 .hy-search-item img { display:block; width:100%; height:100%; object-fit:cover; }
.hy-v2 .hy-search-item>div { min-width:0; }
.hy-v2 .hy-search-item h2,.hy-v2 .hy-collection-item h2 { font-size:20px; font-weight:400; margin:2px 0 14px; }
.hy-v2 .hy-search-item p { color:#949bb8; line-height:1.8; margin:8px 0; }
.hy-v2 .hy-result-meta span+span::before,.hy-v2 .hy-rank-column p span+span::before { content:" / "; color:#5d6382; margin:0 4px; }
.hy-v2 .hy-result-cast { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hy-v2 .hy-result-synopsis { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.hy-v2 .hy-search-item .button-row { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:14px; }
.hy-v2 .hy-search-item .button-row>a:not(.button) { color:#20afe6; }
.hy-v2 .hy-search-aside h2 { font-size:20px; font-weight:400; margin:0 0 20px; }
.hy-v2 .hy-search-aside a { display:block; padding:10px 0; color:#aab1cd; }
.hy-v2 .hy-search-aside p { color:#717c9a; }
.hy-v2 .film-overview { grid-template-columns:180px minmax(0,1fr); gap:28px; }
.hy-v2 .film-cover { width:180px; height:252px; border-radius:3px; }
.hy-v2 .film-overview h1 { font-size:26px; font-weight:500; margin-bottom:12px; }
.hy-v2 .hy-tags { display:flex; flex-wrap:wrap; gap:7px; }
.hy-v2 .hy-tags a,.hy-v2 .hy-tags>span { background:#25283f; color:#aeb4cd; padding:1px 8px; border:0; border-radius:0; }
.hy-v2 .hy-tags .hy-tag-vip { color:#e4c5b1; }
.hy-v2 .hy-tags .hy-tag-candidate { color:#20afe6; background:#17344b; }
.hy-v2 .hy-detail .film-license>a { display:inline-block; margin-top:4px; }
.hy-v2 .hy-facts { margin:12px 0; }
.hy-v2 .hy-facts>div { display:flex; gap:15px; margin:6px 0; }
.hy-v2 .hy-facts dt { min-width:32px; color:#747f9c; }
.hy-v2 .hy-facts dd { margin:0; color:#afb7d2; }
.hy-v2 .film-intro-short { max-width:900px; margin:14px 0; }
.hy-v2 .content-tabs { gap:30px; }
.hy-v2 .content-tabs a { font-size:16px; }
.hy-v2 .detail-lower { gap:35px; }
.hy-v2 .hy-related .cards { grid-template-columns:repeat(4,minmax(0,1fr)); }
.hy-v2 .hy-episodes { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; list-style:none; padding:0; margin:12px 0 0; }
.hy-v2 .hy-episodes a,.hy-v2 .hy-episodes .is-unavailable { display:flex; flex-direction:column; padding:9px 10px; min-height:40px; background:#25294d; color:#c7cee5; border:1px solid transparent; }
.hy-v2 .hy-episodes strong { font-weight:400; }
.hy-v2 .hy-episodes span:not(.is-unavailable) { font-size:11px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
.hy-v2 .hy-episodes [aria-current],.hy-v2 .hy-episodes a:hover { color:#20afe6; border-color:#20afe6; }
.hy-v2 .hy-episodes .is-unavailable { color:#7f86a3; background:#171a31; cursor:not-allowed; }
.hy-v2 .hy-episodes .is-unavailable small { font-size:10px; color:#666d8a; margin-top:2px; }
.hy-v2.inner-page .watch-page { width:calc(100% - 180px); max-width:1280px; }
.hy-v2 .watch-layout { grid-template-columns:minmax(0,1fr) 330px; gap:16px; }
.hy-v2 .watch-main,.hy-v2 .watch-sidebar { min-width:0; }
.hy-v2 .watch-sidebar { background:#1d1f35; border:0; padding:20px; border-radius:0; }
.hy-v2 .watch-sidebar h1 { font-size:22px; margin:0 0 10px; font-weight:500; }
.hy-v2 .watch-side-heading { margin-top:22px; }
.hy-v2 .watch-side-heading h2 { font-size:16px; font-weight:400; }
.hy-v2 .play-version-buttons { display:flex; flex-wrap:wrap; gap:8px; }
.hy-v2 .version-choice { background:#25294d; color:#aaaabd; border:1px solid #343b58; border-radius:2px; padding:10px 16px; }
.hy-v2 .version-choice[aria-pressed=true] { color:#20afe6; border-color:#20afe6; }
.hy-v2 .version-choice span { display:block; margin-top:3px; font-size:11px; }
.hy-v2 .playback-controls { background:#1d1f35; padding:8px 12px; display:flex; align-items:center; gap:12px; }
.hy-v2 .text-control { background:none; border:0; color:#b8c2de; padding:5px 0; }
.hy-v2 .watch-action-bar { border-bottom:1px solid #25283f; }
.hy-v2 .watch-options { grid-template-columns:1fr; gap:10px; }
.hy-v2 .watch-options select { width:100%; min-width:0; }
.hy-v2 .hy-watch-meta { display:flex; flex-wrap:wrap; gap:8px; color:#8896b3; font-size:12px; }
.hy-v2 .hy-episodes-side { grid-template-columns:repeat(5,minmax(0,1fr)); }
.hy-v2 .hy-episodes-side span:not(.is-unavailable) { display:none; }
.hy-v2 .hy-account-nav,.hy-v2 .hy-list-tabs { display:flex; align-items:center; gap:0; overflow:auto; white-space:nowrap; background:#1d1f35; margin:0 0 25px; border-bottom:0; }
.hy-v2 .hy-account-nav a,.hy-v2 .hy-list-tabs a { padding:12px 24px; color:#b6bdd5; font-size:16px; }
.hy-v2 .hy-account-nav [aria-current],.hy-v2 .hy-list-tabs [aria-current] { color:#20afe6; background:#25294d; }
/* VIP: horizontal account banner (avatar | name + tier | site), then the horizontal account nav. */
.hy-v2 .member-banner { flex-direction:row; justify-content:flex-start; align-items:center; gap:22px; text-align:left; border:0; border-radius:0; min-height:160px; background:linear-gradient(120deg,#252d59,#414a72); padding:32px 40px; }
.hy-v2 .member-banner h1 { font-size:22px; margin:0 0 6px; }
.hy-v2 .member-banner p { font-size:13px; }
.hy-v2 .member-avatar { flex:none; width:65px; height:65px; margin:0; border:0; background:#596795; font-size:24px; overflow:hidden; }
.hy-v2 .member-avatar svg { width:30px; height:30px; }
.hy-v2 .member-site { top:50%; right:40px; transform:translateY(-50%); text-align:right; color:#d8b9b3; }
.hy-v2 .membership-page .hy-account-nav { margin:0; background:#171a31; }
.hy-v2 .membership-content { background:#1d1f35; padding:30px 40px; }
.hy-v2 .vip-tabs { gap:14px; }
.hy-v2 .vip-tabs a { flex:1; padding:8px; text-align:center; border:1px solid #dfbca8; color:#dfbca8; }
.hy-v2 .vip-tabs a.selected { background:#e7c2a5; color:#6e482d; }
.hy-v2 .member-benefits { border:0; padding:10px 0 24px; }
.hy-v2 .member-benefits svg { color:#d8b9b3; }
.hy-v2 .membership-plan { border:1px solid #43445b; border-radius:2px; background:#25263c; }
.hy-v2 .plan-price { color:#dfbda8; }
.hy-v2 .hy-locked-note,.hy-v2 .payment-test-note { font-size:12px; color:#9c99ad; }
.hy-v2 .panel { border:1px solid #292d47; border-radius:2px; }
.hy-v2 .hy-rank-banner { background:linear-gradient(125deg,#397a96,#24496a); padding:55px 20px 0; }
.hy-v2 .hy-rank-banner h1 { font-size:28px; font-weight:400; text-align:center; margin:10px 0 35px; }
.hy-v2 .hy-rank-banner nav { display:flex; justify-content:center; flex-wrap:wrap; background:#193c5966; margin:0 -20px; }
.hy-v2 .hy-rank-banner nav a { color:#b4c5d3; padding:17px 35px; font-size:16px; }
.hy-v2 .hy-rank-banner [aria-current] { background:#090b2144; color:white; }
/* Rank: two columns; top 3 rows carry a poster + meta, rows 4+ are single text lines with the value right-aligned. */
.hy-v2.inner-page .hy-rank-page { max-width:880px; }
.hy-v2 .hy-rank-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.hy-v2 .hy-rank-column { min-width:0; background:#1d1f35; padding:22px 22px 10px; }
.hy-v2 .hy-rank-column h2 { display:flex; justify-content:space-between; align-items:baseline; font-size:20px; font-weight:400; margin:0 0 14px; }
.hy-v2 .hy-rank-column h2 small { font-size:12px; color:#8899b9; font-weight:400; }
.hy-v2 .hy-rank-column ol { list-style:none; padding:0; margin:0; }
.hy-v2 .hy-rank-column li { display:flex; gap:14px; align-items:center; padding:11px 0; border-top:1px solid #25294d; }
.hy-v2 .hy-rank-column li.is-top { align-items:flex-start; padding:14px 0; }
.hy-v2 .hy-rank-column li>b { flex:none; min-width:22px; color:#6e7892; font-size:16px; font-weight:500; text-align:center; font-variant-numeric:tabular-nums; }
.hy-v2 .hy-rank-column li.is-top>b { color:#20afe6; font-size:22px; font-style:italic; line-height:1.2; }
.hy-v2 .hy-rank-poster { flex:none; display:block; width:92px; height:132px; overflow:hidden; border-radius:3px; background:#25294d; }
.hy-v2 .hy-rank-poster img { display:block; width:100%; height:100%; object-fit:cover; }
.hy-v2 .hy-rank-body { flex:1; min-width:0; }
.hy-v2 .hy-rank-column li:not(.is-top) .hy-rank-body { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.hy-v2 .hy-rank-column h3 { font-size:15px; font-weight:400; margin:0; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hy-v2 .hy-rank-column li.is-top h3 { font-size:16px; margin:2px 0 8px; white-space:normal; }
.hy-v2 .hy-rank-column p { margin:0 0 6px; color:#929ab3; font-size:12px; }
.hy-v2 .hy-rank-flag { color:#20afe6!important; font-size:11px!important; }
.hy-v2 .hy-rank-value { flex:none; color:#8e96b1; font-size:12px; white-space:nowrap; }
.hy-v2 .hy-rank-empty { color:#6e7892; font-size:13px; }
/* Collections: stacked posters (1–3, real works only) + summary and a few real titles. */
.hy-v2 .hy-collection-item { display:grid; grid-template-columns:200px minmax(0,1fr); gap:24px; background:#13162e; margin-bottom:16px; padding:24px; }
.hy-v2 .hy-collection-art { display:flex; width:200px; height:200px; align-items:end; }
.hy-v2 .hy-collection-art img { position:relative; width:118px; height:168px; object-fit:cover; border-radius:3px; margin-left:-82px; box-shadow:4px 0 10px #0007; }
.hy-v2 .hy-collection-art img:first-child { margin-left:0; z-index:3; height:200px; width:140px; }
.hy-v2 .hy-collection-art img:nth-child(2) { z-index:2; }
.hy-v2 .hy-collection-art img:nth-child(3) { z-index:1; height:150px; width:106px; }
.hy-v2 .hy-collection-copy { min-width:0; }
.hy-v2 .hy-collection-item p { color:#8e96b2; line-height:1.9; margin:0 0 6px; }
.hy-v2 .hy-collection-item .hy-collection-count { color:#aaaabd; }
.hy-v2 .hy-collection-titles { list-style:none; display:flex; flex-wrap:wrap; gap:6px 18px; padding:0; margin:10px 0 14px; }
.hy-v2 .hy-collection-titles li { min-width:0; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hy-v2 .hy-collection-titles a { color:#c9cade; }
.hy-v2 .hy-collection-titles span { margin-left:6px; color:#6e7892; font-size:12px; }
.hy-v2 .hy-collection-more { color:#20afe6; }
.hy-v2 .site-footer { color:#6e7895; }
.hy-v2 .form-grid>* { min-width:0; }
.hy-v2 input,.hy-v2 textarea,.hy-v2 select { max-width:100%; }
.hy-v2 #player:fullscreen { width:100vw; height:100dvh; max-height:100dvh; object-fit:contain; background:black; }
@media(min-width:1700px){.hy-v2 .cards{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:1100px){.hy-v2 .cards{grid-template-columns:repeat(5,minmax(0,1fr))}.hy-v2 .header-search{width:280px}.hy-v2 .header-tools{gap:14px}.hy-v2 .cover-copy{max-width:440px}.hy-v2 .hy-hero-picks{max-width:34%}.hy-v2 .watch-layout{grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:1000px){.hy-v2 .is-poster-art .cover-copy{display:block;min-width:0;max-width:calc(62% - 190px)}.hy-v2 .hy-cover-poster{display:none}.hy-v2 .hy-rank-poster{width:76px;height:108px}}
@media(max-width:800px){.hy-v2 .cards{grid-template-columns:repeat(4,minmax(0,1fr))}.hy-v2.inner-page .page{width:calc(100% - 48px)}.hy-v2 .header-tools .favorite-shortcut{display:none}.hy-v2 .hy-search-layout,.hy-v2 .hy-collection-layout{grid-template-columns:1fr}.hy-v2 .hy-search-aside{display:none}.hy-v2 .watch-layout{grid-template-columns:1fr}}
@media(max-width:660px){
.hy-v2,.hy-v2.feature-page{padding-top:0}.hy-v2 .site-rail{display:none}.hy-v2>main,.hy-v2>.site-footer{margin-left:0}.hy-v2 .portal-topbar,.hy-v2.inner-page .portal-topbar{position:relative;left:0;padding:10px 15px;min-height:100px;height:auto;display:grid;grid-template-columns:1fr auto;background:#090b21;gap:8px 14px}.hy-v2 .portal-topbar>.mobile-brand,.hy-v2.inner-page .portal-topbar>.mobile-brand{position:static;display:block;width:104px}.hy-v2 .top-channel{display:none}.hy-v2 .header-tools{grid-column:2;grid-row:1;margin:0;gap:12px;flex:none}.hy-v2 .header-tools .history-shortcut,.hy-v2 .header-tools .favorite-shortcut{display:none}.hy-v2 .header-search{width:100%;grid-column:1/-1;grid-row:2;height:36px}.hy-v2 .header-search input{font-size:14px}.hy-v2 .hy-suggest{top:41px}.hy-v2 .mobile-channels{display:flex;gap:25px;height:42px;padding:0 16px;overflow:auto;font-size:14px;background:#11142b}.hy-v2 .mobile-channels a{flex-shrink:0}.hy-v2 .mobile-channels [aria-current]{color:#20afe6}.hy-v2 .mobile-channels .hy-nav-tag{display:none}.hy-v2 .hy-hero{height:300px;width:100%;margin-left:0}.hy-v2 .cover-copy{left:16px;bottom:24px;max-width:72%}.hy-v2 .cover-copy h2{font-size:21px;margin-bottom:8px}.hy-v2 .cover-meta{font-size:11px;line-height:1.6;margin-bottom:10px}.hy-v2 .cover-copy .play-primary{font-size:14px;padding:8px 14px}.hy-v2 .hero-detail-link{display:none}.hy-v2 .hy-hero-picks{right:16px;bottom:24px;max-width:23%;gap:6px}.hy-v2 .hy-hero-picks a{width:62px;height:88px}.hy-v2 .hy-hero-controls{right:12px;bottom:120px}.hy-v2 .hy-hero-controls button{width:24px;height:28px}.hy-v2 .home-content{padding:0 15px 28px}.hy-v2 .hy-channels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 25px}.hy-v2 .hy-channels a{padding:6px 2px;text-align:center;font-size:12px}.hy-v2 .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.hy-v2 .shelf-head{gap:10px;margin-bottom:15px}.hy-v2 .shelf-head h2{font-size:19px}.hy-v2 .shelf-tabs{gap:10px;font-size:11px}.hy-v2 .shelf-more{font-size:11px}.hy-v2 .film-card h3{font-size:14px}.hy-v2 .film-card p{font-size:12px}.hy-v2.inner-page .page,.hy-v2.inner-page .watch-page{width:calc(100% - 30px);padding:18px 0 35px}.hy-v2 .catalog-filters{padding:8px 10px}.hy-v2 .filter-row{gap:6px;min-height:36px}.hy-v2 .filter-name{min-width:30px;font-size:11px}.hy-v2 .filter-row nav{gap:1px 3px}.hy-v2 .filter-row a{font-size:12px;padding:4px 8px;min-height:32px}.hy-v2 .catalog-results{flex-wrap:wrap;gap:8px;margin:18px 0}.hy-v2 .catalog-results a{padding:7px 13px}.hy-v2 .hy-search-item{grid-template-columns:92px minmax(0,1fr);gap:14px}.hy-v2 .hy-search-poster{width:92px;height:136px}.hy-v2 .hy-search-item .button-row{gap:12px;margin-top:10px}.hy-v2 .is-poster-art .cover-copy{max-width:72%}.hy-v2 .hy-cover-synopsis,.hy-v2 .hy-candidate-flag{display:none}.hy-v2 .hy-search-item .hy-candidate-flag{display:inline}.hy-v2 .hy-preview-note{margin:-14px 0 20px;font-size:11px}.hy-v2 .hy-search-item h2{font-size:17px;margin-bottom:7px}.hy-v2 .hy-search-item p{font-size:12px;line-height:1.6}.hy-v2 .hy-result-synopsis{-webkit-line-clamp:2}.hy-v2 .hy-search-item .button{padding:6px 12px;font-size:12px}.hy-v2 .film-overview{grid-template-columns:108px minmax(0,1fr);gap:16px}.hy-v2 .film-cover{width:108px;height:155px}.hy-v2 .film-overview h1{font-size:21px}.hy-v2 .hy-tags{gap:4px;font-size:11px}.hy-v2 .hy-facts{font-size:12px}.hy-v2 .film-intro-short{font-size:12px;line-height:1.7}.hy-v2 .film-actions{gap:8px}.hy-v2 .film-actions .button{min-width:0;font-size:12px;padding:8px 12px;min-height:38px}.hy-v2 .content-tabs{gap:20px;overflow:auto;white-space:nowrap}.hy-v2 .content-tabs a{font-size:14px}.hy-v2 .detail-lower{grid-template-columns:1fr;gap:20px}.hy-v2 .hy-related .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hy-v2 .hy-episodes{grid-template-columns:repeat(4,minmax(0,1fr))}.hy-v2 .watch-layout{grid-template-columns:1fr}.hy-v2 .watch-sidebar{padding:16px}.hy-v2 .playback-controls{flex-wrap:wrap;gap:8px}.hy-v2 .seek-label{min-width:90px;max-width:none}.hy-v2 .text-control{min-height:40px}.hy-v2 .watch-options{grid-template-columns:repeat(2,minmax(0,1fr))}.hy-v2 .member-banner{min-height:150px;padding:25px 20px;gap:15px}.hy-v2 .member-banner h1{font-size:18px}.hy-v2 .member-site{display:none}.hy-v2 .hy-account-nav a,.hy-v2 .hy-list-tabs a{padding:11px 17px;font-size:13px}.hy-v2 .membership-content{padding:20px 15px}.hy-v2 .member-benefits{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 8px}.hy-v2 .membership-plans{grid-template-columns:1fr}.hy-v2 .hy-rank-banner{padding:25px 10px 0}.hy-v2 .hy-rank-banner h1{font-size:24px;margin-bottom:22px}.hy-v2 .hy-rank-banner nav{margin:0 -10px}.hy-v2 .hy-rank-banner nav a{font-size:13px;padding:12px 15px}.hy-v2 .hy-rank-columns{grid-template-columns:1fr}.hy-v2 .hy-rank-column{padding:16px 14px 6px}.hy-v2 .hy-rank-column li.is-top{gap:10px}.hy-v2 .hy-rank-poster{width:68px;height:96px}.hy-v2 .hy-collection-item{grid-template-columns:118px minmax(0,1fr);gap:16px;padding:16px}.hy-v2 .hy-collection-art{width:118px;height:140px}.hy-v2 .hy-collection-art img{width:78px;height:122px;margin-left:-62px}.hy-v2 .hy-collection-art img:first-child{width:95px;height:140px}.hy-v2 .hy-collection-art img:nth-child(3){width:66px;height:104px}.hy-v2 .hy-collection-titles{gap:4px 12px;margin:6px 0 10px;font-size:12px}.hy-v2 .member-avatar{width:52px;height:52px;font-size:20px}.hy-v2 .hy-collection-item h2{font-size:18px}.hy-v2 .hy-collection-item p{font-size:12px}.hy-v2 .site-footer{padding:25px 15px}.hy-v2 .site-footer nav{margin:0;gap:12px;flex-wrap:wrap}.hy-v2 .form-grid{grid-template-columns:1fr}.hy-v2 select,.hy-v2 input,.hy-v2 textarea{font-size:16px}}
@media(max-width:660px){.hy-v2 .hy-midnight-mobile{display:flex;align-items:center;gap:8px;min-height:40px;margin:0 15px 8px;padding:0 12px;border:1px solid #3d2f52;border-radius:4px;background:linear-gradient(90deg,#2a1c3d99,#16132e66);font-size:13px}.hy-v2 .hy-midnight-mobile .nav-symbol{display:flex;align-items:center;width:18px;height:18px}.hy-v2 .hy-midnight-mobile .nav-symbol svg{width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){.hy-v2 *{scroll-behavior:auto;transition:none!important}}

.hy-v2 .shelf-more::after { content:none; }

.hy-v2 .hy-hero-stage,.hy-v2 .hy-slide { position:absolute; inset:0; margin:0; height:100%; }

/* Portal finish: content-first density, one heading scale and one episode tile across home / catalog / detail / watch. */
.hy-v2 .header-search { background:#ffffff1c; box-shadow:inset 0 0 0 1px #ffffff14; transition:background .15s,box-shadow .15s; }
.hy-v2 .header-search:focus-within { background:#0d1030f2; box-shadow:inset 0 0 0 1px #20afe6; }
.hy-v2 .header-search input:focus-visible { outline:none; }
.hy-v2 .header-search button { color:#20afe6; }
.hy-v2 .film-shelf { margin-bottom:30px; }
.hy-v2 .shelf-head { margin-bottom:14px; }
.hy-v2 .shelf-head h2 { font-size:20px; }
.hy-v2 .hy-preview-note { margin:-12px 0 20px; }
.hy-v2 .poster { transition:box-shadow .15s; }
.hy-v2 .poster:hover { box-shadow:0 0 0 2px #20afe6; }
.hy-v2 .film-card h3 { font-size:14px; margin:7px 0 1px; }
.hy-v2 .film-card p { font-size:12px; }
.hy-v2 .catalog-heading h1 { font-size:20px; font-weight:500; }
.hy-v2 .catalog-results { margin:18px 0; }
.hy-v2 .filter-row nav { flex:1; min-width:0; }
.hy-v2 .film-section { margin-bottom:28px; }
.hy-v2 .section-heading { gap:12px; margin-bottom:12px; }
.hy-v2 .film-section h2,.hy-v2 .film-license h2,.hy-v2 .watch-details h2 { font-size:18px; font-weight:500; }
.hy-v2 .hy-related .cards { grid-template-columns:repeat(6,minmax(0,1fr)); }
.hy-v2 .hy-episodes { grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:8px; }
.hy-v2 .hy-episodes a,.hy-v2 .hy-episodes .is-unavailable { min-height:44px; padding:6px 8px; justify-content:center; text-align:center; border-radius:3px; }
.hy-v2 .hy-episodes strong { font-size:15px; line-height:1.2; font-variant-numeric:tabular-nums; }
.hy-v2 .hy-episodes a:focus-visible { outline-offset:-2px; }
.hy-v2 .hy-episodes-side { grid-template-columns:repeat(auto-fill,minmax(52px,1fr)); gap:6px; }
.hy-v2 .hy-episodes-side a,.hy-v2 .hy-episodes-side .is-unavailable { min-height:40px; padding:4px; }
@media(min-width:1101px){.hy-v2 .header-search{width:clamp(330px,28vw,440px)}}
@media(min-width:801px){.hy-v2 .hy-episodes-side{max-height:296px;overflow-y:auto;scrollbar-width:thin}}
@media(min-width:1101px) and (max-width:1359px){.hy-v2 .cards{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1250px){.hy-v2 .hy-related .cards{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1100px){.hy-v2 .hy-related .cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Home shelf trimming lives in the "Final pass" block at the end of this file. */
@media(max-width:660px){
.hy-v2 .hy-hero{height:236px}
.hy-v2 .hy-hero-picks{display:none}
.hy-v2 .hy-hero-controls{top:10px;bottom:auto;right:10px}
.hy-v2 .cover-copy,.hy-v2 .is-poster-art .cover-copy{bottom:18px;max-width:calc(100% - 32px)}
.hy-v2 .cover-copy h2{font-size:19px;margin-bottom:6px}
.hy-v2 .hy-channels{display:block;margin:12px 0 18px}
.hy-v2 .hy-quick-channels{display:none}
.hy-v2 .hy-quick-discover{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0}
.hy-v2 .hy-channels a{justify-content:center;gap:4px;min-height:36px;padding:6px 2px;font-size:12px}
.hy-v2 .hy-quick-discover svg{width:14px;height:14px}
.hy-v2 .film-shelf{margin-bottom:24px}
.hy-v2 .shelf-head h2{font-size:17px}
.hy-v2 .hy-preview-note{margin:-6px 0 16px}
.hy-v2 .filter-row nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.hy-v2 .filter-row nav::-webkit-scrollbar{display:none}
.hy-v2 .filter-row nav>a{flex:none;white-space:nowrap}
.hy-v2 .filter-row .hy-filter-none{white-space:normal}
.hy-v2 .hy-related .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.hy-v2 .hy-episodes{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}
.hy-v2 .hy-episodes-side{grid-template-columns:repeat(auto-fill,minmax(48px,1fr))}
}

/* ==========================================================================
   Final pass · 2026-10-31
   One rhythm (8px steps, 4px radius), 2:3 posters, 6 / 5 / 4 / 2 columns,
   desktop inner-page channel nav, phone tab bar, episode ranges, player bar.
   Later in the file on purpose: same specificity as the rules above, so it wins.
   ========================================================================== */
.hy-v2 { --hy-accent:#20afe6; --hy-accent-soft:#17344b; --hy-chip:#25294d; --hy-chip-hover:#2f355e; --hy-panel:#151830; --hy-line:#252940; --hy-text-2:#aaaabd; --hy-text-3:#7d84a3; --hy-radius:4px; color-scheme:dark; overflow-x:clip; }
.hy-v2 :focus-visible { outline:2px solid var(--hy-accent); outline-offset:2px; }
.hy-v2 a,.hy-v2 button,.hy-v2 summary { -webkit-tap-highlight-color:transparent; }
.hy-v2 .button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:8px 16px; border-radius:var(--hy-radius); transition:background-color .15s,border-color .15s,color .15s; }
.hy-v2 .button:not(.secondary):not(:disabled):hover { background:#1b9bd0; border-color:#1b9bd0; color:#fff; }
.hy-v2 .button.secondary:hover { background:var(--hy-chip-hover); color:#fff; }
.hy-v2 .button svg { width:18px; height:18px; flex:none; }

/* Rail: channels first, account shortcuts pinned to the bottom. */
.hy-v2 .rail-nav>a,.hy-v2 .rail-bottom>a { height:44px; }
.hy-v2 .rail-nav>a:hover,.hy-v2 .rail-bottom>a:hover { color:#fff; background:#ffffff08; }
.hy-v2 .rail-nav .hy-nav-split { margin-top:8px; border-top:1px solid #ffffff0d; }
.hy-v2 .rail-bottom { padding:8px 0 16px; border-top:1px solid #ffffff0d; }
.hy-v2 .rail-bottom>a { font-size:14px; color:#9da3bf; }
.hy-v2 .hy-midnight-rail { display:flex; grid-template-columns:none; grid-template-areas:none; align-items:center; gap:12px; height:44px; margin:0; padding:0 12px 0 35px; border:0; border-radius:0; background:none; font-size:14px; }
.hy-v2 .hy-midnight-rail .hy-nav-label { display:block; }
.hy-v2 .hy-midnight-rail:hover { background:#ffffff08; }

/* Top bar. Desktop inner pages (no rail) get a readable horizontal channel nav instead of the dropdown. */
.hy-v2 .hy-topnav { display:none; }
.hy-v2 .header-search input { -webkit-appearance:none; appearance:none; }
.hy-v2 .header-search button { display:grid; place-items:center; min-width:44px; height:100%; padding:0 12px 0 4px; }
.hy-v2 .header-tools>a,.hy-v2 .vip-menu>summary { display:grid; place-items:center; min-width:36px; min-height:40px; border-radius:var(--hy-radius); }
.hy-v2 .header-tools>a:hover,.hy-v2 .vip-menu>summary:hover { color:var(--hy-accent); }
.hy-v2 .login-link,.hy-v2 .profile-link { display:inline-flex; align-items:center; min-height:40px; }
@media(min-width:1280px){
  .hy-v2.inner-page .portal-topbar { padding-left:182px; padding-right:32px; gap:0; }
  .hy-v2.inner-page .top-channel { display:none; }
  .hy-v2.inner-page .hy-topnav { display:flex; align-items:center; gap:2px; min-width:0; margin-right:24px; }
  .hy-v2.inner-page .hy-topnav a { display:flex; align-items:center; height:40px; padding:0 10px; color:#c5c7d8; font-size:15px; white-space:nowrap; border-radius:var(--hy-radius); }
  .hy-v2.inner-page .hy-topnav a:hover { color:#fff; background:#ffffff0d; }
  .hy-v2.inner-page .hy-topnav [aria-current] { color:var(--hy-accent); box-shadow:inset 0 -2px var(--hy-accent); border-radius:0; }
  .hy-v2.inner-page .header-search { flex:0 1 360px; min-width:220px; width:auto; margin-left:auto; }
  .hy-v2.inner-page .header-tools { flex:none; justify-content:flex-end; margin-left:24px; gap:16px; }
}
/* Membership popover: account state and one plain link; no benefit grid while real payment is not open. */
.hy-v2 .vip-popover { z-index:90; width:300px; right:-60px; padding:16px; border-radius:8px; background:#1d1f35; border-color:#363a59; color:#d8dbe8; }
.hy-v2 .vip-popover-heading>svg { width:32px; height:32px; color:#d8b9b3; }
.hy-v2 .vip-popover-heading strong { font-size:16px; font-weight:500; }
.hy-v2 .vip-popover-heading p { color:var(--hy-text-2); }
.hy-v2 .vip-popover-action { margin:16px 0 8px; padding:10px 16px; border-radius:var(--hy-radius); background:var(--hy-chip); color:#fff; font-size:14px; }
.hy-v2 .vip-popover-action:hover { background:var(--hy-chip-hover); color:#fff; }
.hy-v2 .vip-popover>small { color:var(--hy-text-3); }

/* Compact banner: ~345px at 1440 so the first 最近更新 row starts inside a 900px-tall viewport. */
.hy-v2 .hy-hero { height:clamp(300px,24vw,380px); }
.hy-v2 .cover-copy { bottom:32px; }
.hy-v2 .cover-copy .play-primary { min-height:44px; font-size:16px; padding:8px 24px; border-radius:var(--hy-radius); }
.hy-v2 .cover-copy .play-primary:hover { background:#1b9bd0; }
.hy-v2 .hero-detail-link { display:inline-flex; align-items:center; min-height:44px; }
.hy-v2 .hy-hero-picks { bottom:32px; gap:8px; }
.hy-v2 .hy-hero-picks a { width:80px; height:120px; transition:opacity .15s,border-color .15s; }
.hy-v2 .hy-hero-picks a:hover { opacity:1; }
.hy-v2 .hy-hero-controls { bottom:160px; }
.hy-v2 .hy-hero-controls button { display:grid; place-items:center; width:32px; height:32px; font-size:22px; border-radius:var(--hy-radius); background:#090b2199; }
.hy-v2 .hy-hero-controls button:hover { background:#090b21dd; color:var(--hy-accent); }
.hy-v2 .hy-cover-poster { width:140px; height:210px; }
.hy-v2 .hy-channels { margin:16px 0 24px; gap:8px 24px; }
.hy-v2 .hy-channels a { min-height:36px; padding:4px 16px; border-radius:var(--hy-radius); }

/* Shelves and cards. Posters are 2:3 everywhere. */
.hy-v2 .film-shelf { margin-bottom:32px; }
.hy-v2 .shelf-head { min-height:32px; margin-bottom:16px; }
.hy-v2 .shelf-tabs a,.hy-v2 .shelf-more { display:inline-flex; align-items:center; min-height:32px; }
.hy-v2 .shelf-tabs a:hover,.hy-v2 .shelf-more:hover { color:var(--hy-accent); }
.hy-v2 .cards { grid-template-columns:repeat(6,minmax(0,1fr)); gap:24px 16px; }
.hy-v2 .poster { aspect-ratio:2/3; border-radius:var(--hy-radius); }
.hy-v2 .film-card:focus-within .poster,.hy-v2 .poster:hover { box-shadow:0 0 0 2px var(--hy-accent); }
.hy-v2 .film-card h3 { margin:8px 0 2px; }
.hy-v2 .film-card h3 a:hover { color:var(--hy-accent); }
.hy-v2 .hy-badge { border-radius:2px; }
.hy-v2 .hy-state { border-radius:2px; }
@media(min-width:1700px){ .hy-v2 .cards { grid-template-columns:repeat(7,minmax(0,1fr)); } }
@media(max-width:1250px){ .hy-v2 .cards { grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px 12px; } }
@media(max-width:900px){ .hy-v2 .cards { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:660px){ .hy-v2 .cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; } }
/* Home shelves end on whole rows: 最近更新 shows two rows, channel shelves one (phones: 2×2 and 3×2). The 更多 link reaches the rest. */
@media(min-width:1251px) and (max-width:1699px){ .hy-v2 .hy-home .hy-row-1 .cards>:nth-child(n+7),.hy-v2 .hy-home .hy-row-2 .cards>:nth-child(n+13){display:none} }
@media(min-width:901px) and (max-width:1250px){ .hy-v2 .hy-home .hy-row-1 .cards>:nth-child(n+6),.hy-v2 .hy-home .hy-row-2 .cards>:nth-child(n+11){display:none} }
@media(min-width:661px) and (max-width:900px){ .hy-v2 .hy-home .hy-row-1 .cards>:nth-child(n+5),.hy-v2 .hy-home .hy-row-2 .cards>:nth-child(n+9){display:none} }
@media(max-width:660px){ .hy-v2 .hy-home .hy-row-1 .cards>:nth-child(n+5),.hy-v2 .hy-home .hy-row-2 .cards>:nth-child(n+7){display:none} }
.hy-v2 .hy-related .cards { grid-template-columns:repeat(6,minmax(0,1fr)); }
@media(max-width:1250px){ .hy-v2 .hy-related .cards { grid-template-columns:repeat(5,minmax(0,1fr)); } }
@media(max-width:1100px){ .hy-v2 .hy-related .cards { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:660px){ .hy-v2 .hy-related .cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Catalog, search, pagination, empty states. */
.hy-v2 .catalog-filters { border-radius:var(--hy-radius); }
.hy-v2 .filter-row a { display:inline-flex; align-items:center; border-radius:var(--hy-radius); }
.hy-v2 .filter-row a:hover { color:#fff; background:var(--hy-chip-hover); }
.hy-v2 .filter-row a.selected:hover { background:var(--hy-accent); }
.hy-v2 .catalog-results nav { border-radius:var(--hy-radius); overflow:hidden; }
.hy-v2 .catalog-results a { display:inline-flex; align-items:center; min-height:36px; }
.hy-v2 .hy-search-poster { width:120px; height:180px; border-radius:var(--hy-radius); }
.hy-v2 .hy-search-item { grid-template-columns:120px minmax(0,1fr); }
.hy-v2 .hy-search-item h2 a:hover { color:var(--hy-accent); }
.hy-v2 .hy-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; margin:32px 0 8px; }
.hy-v2 .hy-pagination a { display:inline-grid; place-items:center; min-width:40px; min-height:40px; padding:0 12px; border-radius:var(--hy-radius); background:var(--hy-chip); color:#c9cade; }
.hy-v2 .hy-pagination a:hover { background:var(--hy-chip-hover); color:#fff; }
.hy-v2 .hy-pagination a.selected { background:var(--hy-accent); color:#fff; }
.hy-v2 .hy-page-gap { color:var(--hy-text-3); padding:0 4px; }
.hy-v2 .catalog-empty,.hy-v2 .hy-empty { border:1px dashed #2b2f4d; border-radius:8px; color:var(--hy-text-2); }
.hy-v2 .catalog-empty h2,.hy-v2 .hy-empty h2 { color:#fff; font-size:18px; font-weight:500; }
.hy-v2 .catalog-empty a:not(.button),.hy-v2 .hy-empty a:not(.button) { color:var(--hy-accent); }

/* Detail. */
.hy-v2 .film-cover { width:180px; height:270px; object-fit:cover; border-radius:var(--hy-radius); }
.hy-v2 .hy-tags a,.hy-v2 .hy-tags>span { padding:2px 8px; border-radius:2px; }
.hy-v2 .hy-tags a:hover { color:#fff; background:var(--hy-chip-hover); }
.hy-v2 .film-actions .button { min-height:44px; }
.hy-v2 .film-actions .button:not(.secondary) { background:#159ecc; border-color:#159ecc; }
.hy-v2 .content-tabs a { display:inline-flex; align-items:center; min-height:44px; padding:0; }
.hy-v2 .detail-lower>*,.hy-v2 .film-section { min-width:0; }
.hy-v2 .hy-detail-aside a { display:flex; align-items:center; min-height:40px; color:#aab1cd; border-bottom:1px solid var(--hy-line); }
.hy-v2 .hy-detail-aside a:hover { color:var(--hy-accent); }

/* Episode picker (detail + watch): header, 50-episode ranges, tiles. */
.hy-v2 .hy-ep-head { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:4px 16px; margin-bottom:12px; }
.hy-v2 .hy-ep-head h2 { margin:0; font-size:18px; font-weight:500; }
.hy-v2 .hy-ep.is-side .hy-ep-head { margin-top:24px; }
.hy-v2 .hy-ep.is-side .hy-ep-head h2 { font-size:16px; }
.hy-v2 .hy-ep-count { margin:0; color:var(--hy-text-3); font-size:12px; font-variant-numeric:tabular-nums; }
.hy-v2 .hy-ep-ranges { display:flex; gap:8px; margin:0 0 12px; padding-bottom:4px; overflow-x:auto; scrollbar-width:thin; overscroll-behavior-x:contain; }
.hy-v2 .hy-ep-ranges a { flex:none; display:inline-flex; align-items:center; min-height:36px; padding:0 12px; border-radius:var(--hy-radius); background:#1b1e38; color:#aab1cd; font-size:13px; font-variant-numeric:tabular-nums; white-space:nowrap; box-shadow:inset 0 0 0 1px #2b2f4d; }
.hy-v2 .hy-ep-ranges a:hover { color:#fff; box-shadow:inset 0 0 0 1px #3f4570; }
.hy-v2 .hy-ep-ranges [aria-current] { color:var(--hy-accent); background:var(--hy-accent-soft); box-shadow:inset 0 0 0 1px var(--hy-accent); }
.hy-v2 .hy-episodes { position:relative; margin:0; }
.hy-v2 .hy-episodes a,.hy-v2 .hy-episodes .is-unavailable { border-radius:var(--hy-radius); transition:border-color .15s,color .15s; }
.hy-v2 .hy-episodes a:hover { background:var(--hy-chip-hover); }
.hy-v2 .hy-episodes [aria-current] { position:relative; color:#fff; background:var(--hy-accent-soft); border-color:var(--hy-accent); }
.hy-v2 .hy-episodes [aria-current]::after { content:""; position:absolute; left:6px; right:6px; bottom:3px; height:2px; border-radius:1px; background:var(--hy-accent); }
.hy-v2 .hy-episodes-side a,.hy-v2 .hy-episodes-side .is-unavailable { min-height:44px; }
@media(min-width:801px){ .hy-v2 .hy-episodes-side { max-height:360px; overflow-y:auto; padding-right:4px; } }

/* Watch: one native player, a slim bar for episode steps / speed / PiP / retry / favorite. */
.hy-v2 .hy-watch .player-shell { background:#000; }
.hy-v2 .hy-watch .player-status { color:#9aa1bd; }
.hy-v2 .hy-player-bar { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; min-height:56px; padding:8px 12px; background:var(--hy-panel); border-bottom:0; }
.hy-v2 .hy-player-nav { display:flex; gap:8px; }
.hy-v2 .hy-ep-step { display:inline-flex; align-items:center; gap:4px; min-height:40px; padding:0 14px; border-radius:var(--hy-radius); background:var(--hy-chip); color:#d8dcef; font-size:13px; white-space:nowrap; transition:background-color .15s; }
.hy-v2 a.hy-ep-step:hover { background:var(--hy-chip-hover); color:#fff; }
.hy-v2 .hy-ep-step.is-disabled { opacity:.45; cursor:not-allowed; }
.hy-v2 .hy-ep-step.is-suggested { background:var(--hy-accent); color:#fff; }
.hy-v2 .hy-player-tools { display:flex; flex-wrap:wrap; align-items:center; gap:4px 16px; margin-left:auto; }
.hy-v2 .hy-player-bar .text-control { min-height:40px; padding:0 4px; gap:6px; color:#b8c2de; }
.hy-v2 .hy-player-bar .text-control:hover { color:var(--hy-accent); }
.hy-v2 .hy-player-bar .text-control svg,.hy-v2 .hy-rate svg { width:18px; height:18px; flex:none; }
.hy-v2 .hy-player-bar #play-retry { margin-left:0; }
.hy-v2 .hy-rate { display:inline-flex; align-items:center; gap:6px; color:#b8c2de; }
.hy-v2 .hy-rate select { width:auto; min-height:36px; padding:4px 8px; font-size:13px; background:#11152c; border:1px solid #303652; border-radius:var(--hy-radius); color:#e3e6f2; }
.hy-v2 .hy-player-bar #action-status { flex-basis:100%; font-size:12px; }
.hy-v2 .hy-player-bar #action-status:empty { display:none; }
.hy-v2 .hy-watch-now { margin:-4px 0 8px; color:var(--hy-accent); font-size:13px; }
.hy-v2 .hy-watch .side-note { margin-top:24px; color:var(--hy-text-3); font-size:12px; }
.hy-v2 .hy-side-link { margin-left:8px; color:var(--hy-accent); }
.hy-v2 .hy-watch .watch-details aside p { font-size:13px; }

/* Membership: explicit "not open" panel instead of price cards. */
.hy-v2 .hy-locked-panel { padding:24px; border:1px dashed #3a3e5f; border-radius:8px; background:#171a31; }
.hy-v2 .hy-locked-panel strong { display:block; margin-bottom:8px; color:#fff; font-size:16px; font-weight:500; }
.hy-v2 .hy-locked-panel p { margin:0 0 16px; color:var(--hy-text-2); }
.hy-v2 .hy-locked-panel .button-row { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.hy-v2 .hy-account-nav a,.hy-v2 .hy-list-tabs a { display:inline-flex; align-items:center; min-height:44px; }

/* Rank / collections posters follow 2:3. */
.hy-v2 .hy-rank-poster { width:88px; height:132px; border-radius:var(--hy-radius); }
.hy-v2 .hy-rank-column h3 a:hover,.hy-v2 .hy-collection-item h2 a:hover,.hy-v2 .hy-collection-titles a:hover { color:var(--hy-accent); }
.hy-v2 .hy-rank-banner nav a { display:inline-flex; align-items:center; min-height:44px; }

/* Footer. */
.hy-v2 .site-footer nav a { display:inline-flex; align-items:center; min-height:32px; }
.hy-v2 .site-footer nav a:hover { color:var(--hy-accent); }

/* Phone bottom tab bar (hidden elsewhere). */
.hy-v2 .hy-tabbar { display:none; }

@media(max-width:1000px){ .hy-v2 .hy-rank-poster { width:72px; height:108px; } }
@media(max-width:660px){
  .hy-v2 { padding-bottom:calc(56px + env(safe-area-inset-bottom,0px)); }
  .hy-v2 .portal-topbar,.hy-v2.inner-page .portal-topbar { min-height:0; padding:8px 16px; gap:8px 12px; }
  .hy-v2 .header-search { height:40px; }
  .hy-v2 .header-tools { gap:4px; }
  .hy-v2 .vip-menu>summary,.hy-v2 .login-link,.hy-v2 .profile-link { min-width:44px; min-height:44px; justify-content:center; }
  .hy-v2 .vip-popover { top:64px; }
  .hy-v2 .mobile-channels { position:sticky; top:0; z-index:30; gap:4px; height:44px; padding:0 8px; background:#0d1029f2; scrollbar-width:none; overscroll-behavior-x:contain; }
  .hy-v2 .mobile-channels::-webkit-scrollbar { display:none; }
  .hy-v2 .mobile-channels a { display:inline-flex; align-items:center; min-height:44px; padding:0 10px; color:#c5c7d8; }
  .hy-v2 .mobile-channels [aria-current] { color:var(--hy-accent); box-shadow:inset 0 -2px var(--hy-accent); }
  .hy-v2 .hy-midnight-strip { gap:4px; color:#d9c3e4; }
  .hy-v2 .hy-midnight-strip .nav-symbol { display:none; }
  .hy-v2 .hy-tabbar { position:fixed; left:0; right:0; bottom:0; z-index:45; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding-bottom:env(safe-area-inset-bottom,0px); background:#0d1029f5; border-top:1px solid #ffffff14; }
  .hy-v2 .hy-tabbar a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:56px; color:#9aa1bd; font-size:11px; }
  .hy-v2 .hy-tabbar svg { width:22px; height:22px; }
  .hy-v2 .hy-tabbar [aria-current] { color:var(--hy-accent); }
  .hy-v2 .hy-hero-controls button { width:44px; height:44px; }
  .hy-v2 .cover-copy .play-primary { min-height:44px; padding:8px 16px; font-size:14px; }
  .hy-v2 .hy-channels a { min-height:44px; }
  .hy-v2 .shelf-tabs { display:none; }
  .hy-v2 .shelf-more { min-height:44px; padding-left:8px; font-size:12px; }
  .hy-v2 .filter-row nav { gap:4px; }
  .hy-v2 .filter-row a { min-height:44px; padding:0 12px; }
  .hy-v2 .catalog-results a { min-height:44px; }
  .hy-v2 .hy-search-item { grid-template-columns:92px minmax(0,1fr); }
  .hy-v2 .hy-search-poster { width:92px; height:138px; }
  .hy-v2 .hy-search-item .button { min-height:44px; }
  .hy-v2 .film-cover { width:108px; height:162px; }
  .hy-v2 .film-actions .button { min-height:44px; }
  .hy-v2 .hy-pagination a { min-width:44px; min-height:44px; }
  .hy-v2 .hy-ep-ranges a { min-height:44px; }
  .hy-v2 .hy-episodes a,.hy-v2 .hy-episodes .is-unavailable { min-height:44px; }
  .hy-v2 .hy-episodes-side { grid-template-columns:repeat(auto-fill,minmax(52px,1fr)); }
  /* Player runs edge to edge on phones; the bar wraps into two rows instead of overflowing. */
  .hy-v2 .hy-watch .breadcrumbs { margin-bottom:8px; }
  .hy-v2 .hy-watch .player-shell { margin:0 -15px; }
  .hy-v2 .hy-player-bar { margin:0 -15px; padding:8px 15px; }
  .hy-v2 .hy-player-nav { flex:1 1 100%; }
  .hy-v2 .hy-player-nav .hy-ep-step { flex:1; justify-content:center; min-height:44px; }
  .hy-v2 .hy-player-tools { margin-left:0; gap:4px 12px; }
  .hy-v2 .hy-player-bar .text-control { min-height:44px; }
  .hy-v2 .hy-rate select { min-height:44px; font-size:16px; }
  .hy-v2 .hy-rank-poster { width:68px; height:102px; }
  .hy-v2 .site-footer nav a { min-height:44px; }
}
/* Keep the original portrait sharp on tablets and phones; no giant stretched poster. */
@media(min-width:1001px) and (max-width:1250px){
  .hy-v2 .is-poster-art .cover-copy {left:170px;max-width:35%;min-width:0;gap:16px;}
  .hy-v2 .is-poster-art .hy-cover-poster {width:115px;height:172px;}
}
@media(min-width:661px) and (max-width:1000px){
  .hy-v2 .is-poster-art .cover-copy {left:24px;display:flex;align-items:center;gap:14px;max-width:55%;min-width:0;}
  .hy-v2 .is-poster-art .hy-cover-poster {display:block;width:95px;height:143px;}
}
@media(max-width:660px){
  .hy-v2 .is-poster-art .cover-copy {display:flex;align-items:center;gap:12px;max-width:calc(100% - 32px);min-width:0;}
  .hy-v2 .is-poster-art .hy-cover-poster {display:block;width:74px;height:111px;flex:none;}
  .hy-v2 .is-poster-art .hy-cover-text {min-width:0;}
  .hy-v2 .is-poster-art .hy-cover-text h2 {font-size:17px;}
  .hy-v2 .is-poster-art .hy-cover-text .button-row {gap:8px;}
  .hy-v2 .is-poster-art .hy-cover-text .play-primary {padding:7px 10px;}
}
@media(prefers-reduced-motion:reduce){
  .hy-v2 *,.hy-v2 *::before,.hy-v2 *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* Actual genre facets from published metadata, never invented categories. */
.hy-v2 .hy-genre-nav { display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-8px 0 26px; }
.hy-v2 .hy-genre-nav strong { font-size:13px;font-weight:500;color:#e3e9f9;margin-right:5px; }
.hy-v2 .hy-genre-nav a { display:inline-flex;align-items:center;min-height:34px;padding:5px 13px;
  border-radius:5px;border:1px solid #ffffff18;background:#222844;color:#cdd6eb;font-size:13px; }
.hy-v2 .hy-genre-nav a:hover,.hy-v2 .hy-genre-nav a:focus-visible {
  border-color:#20afe6;color:#fff;background:#203858; }
@media(max-width:660px){.hy-v2 .hy-genre-nav{flex-wrap:nowrap;overflow-x:auto;margin:0 0 16px;
  padding-bottom:5px;scrollbar-width:none;overscroll-behavior-x:contain}
  .hy-v2 .hy-genre-nav::-webkit-scrollbar{display:none}
  .hy-v2 .hy-genre-nav strong,.hy-v2 .hy-genre-nav a{flex:none}
  .hy-v2 .hy-genre-nav a{min-height:40px}
}
