*{
box-sizing:border-box}
html{
scroll-behavior:smooth}
body{
margin:0;
min-height:100vh;
background:#020617;
color:#fff;
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
line-height:1.6}
a{
color:inherit;
text-decoration:none}
img,video{
display:block;
max-width:100%}
button,input{
font:inherit}
.site-header{
position:sticky;
top:0;
z-index:50;
background:rgba(2,6,23,.84);
border-bottom:1px solid rgba(148,163,184,.14);
backdrop-filter:blur(18px)}
.header-inner,.footer-inner,.section-wrap,.hero-content,.detail-inner{
width:min(1180px,calc(100% - 32px));
margin:0 auto}
.header-inner{
min-height:70px;
display:flex;
align-items:center;
justify-content:space-between;
gap:24px}
.logo{
display:inline-flex;
align-items:center;
gap:10px;
font-weight:900}
.logo-mark{
width:42px;
height:42px;
display:grid;
place-items:center;
border-radius:14px;
color:#001018;
background:linear-gradient(135deg,#22d3ee,#60a5fa);
box-shadow:0 20px 60px rgba(6,182,212,.28)}
.desktop-nav,.mobile-nav,.footer-links,.quick-links,.hero-actions,.hero-tags,.detail-meta,.filter-chips{
display:flex;
align-items:center;
gap:12px;
flex-wrap:wrap}
.nav-link{
padding:8px 12px;
border-radius:999px;
color:#cbd5e1;
transition:.2s}
.nav-link:hover,.nav-link.active{
color:#fff;
background:rgba(6,182,212,.18)}
.menu-toggle{
display:none;
width:42px;
height:42px;
padding:9px;
border:1px solid rgba(148,163,184,.22);
border-radius:12px;
background:rgba(15,23,42,.76);
cursor:pointer}
.menu-toggle span{
display:block;
height:2px;
margin:5px 0;
background:#e2e8f0;
border-radius:999px}
.mobile-nav{
display:none;
width:min(1180px,calc(100% - 32px));
margin:0 auto;
padding:0 0 16px}
.hero{
position:relative;
min-height:680px;
overflow:hidden;
background:radial-gradient(circle at 20% 10%,rgba(34,211,238,.22),transparent 28%),#020617}
.hero-slide{
position:absolute;
inset:0;
opacity:0;
visibility:hidden;
transition:opacity .8s ease,visibility .8s ease}
.hero-slide.active{
opacity:1;
visibility:visible}
.hero-bg,.detail-backdrop{
position:absolute;
inset:0;
background-size:cover;
background-position:center;
filter:saturate(1.08)}
.hero-bg:after,.detail-backdrop:after{
content:"";
position:absolute;
inset:0;
background:linear-gradient(0deg,#020617 0%,rgba(2,6,23,.32) 58%,rgba(2,6,23,.1) 100%)}
.hero-content{
position:relative;
z-index:2;
min-height:680px;
display:grid;
grid-template-columns:minmax(0,1.25fr) 360px;
align-items:center;
gap:58px;
padding:72px 0 98px}
.eyebrow{
display:inline-flex;
width:fit-content;
margin-bottom:14px;
padding:6px 12px;
border:1px solid rgba(34,211,238,.35);
border-radius:999px;
color:#67e8f9;
background:rgba(8,47,73,.52);
font-size:13px;
font-weight:800}
.hero h1,.page-hero h1,.detail-copy h1{
margin:0;
font-size:clamp(34px,6vw,68px);
line-height:1.04;
letter-spacing:-.04em}
.hero h2{
margin:18px 0 12px;
font-size:clamp(26px,4vw,44px);
line-height:1.12;
color:#67e8f9}
.hero p,.page-hero p,.detail-copy .one-line{
max-width:760px;
margin:0 0 22px;
color:#cbd5e1;
font-size:18px}
.tag,.detail-meta span,.card-meta span,.chip{
display:inline-flex;
align-items:center;
min-height:28px;
padding:4px 10px;
border-radius:999px;
color:#cbd5e1;
background:rgba(15,23,42,.86);
border:1px solid rgba(148,163,184,.18);
font-size:13px}
.btn,.search-form button,.play-button,.more-link,.text-link,.category-card strong{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:44px;
padding:0 18px;
border:0;
border-radius:14px;
font-weight:900;
cursor:pointer;
transition:.2s}
.btn:hover,.search-form button:hover,.play-button:hover,.more-link:hover,.text-link:hover,.category-card:hover strong{
transform:translateY(-1px)}
.primary,.search-form button,.play-button,.category-card strong{
color:#001018;
background:linear-gradient(135deg,#22d3ee,#60a5fa);
box-shadow:0 16px 48px rgba(6,182,212,.28)}
.ghost,.more-link,.text-link{
color:#e0f2fe;
background:rgba(15,23,42,.78);
border:1px solid rgba(34,211,238,.26)}
.full{
width:100%}
.hero-poster{
position:relative;
overflow:hidden;
aspect-ratio:2/3;
border:1px solid rgba(255,255,255,.16);
border-radius:30px;
background:linear-gradient(135deg,#0f172a,#164e63);
box-shadow:0 40px 120px rgba(0,0,0,.45)}
.hero-poster img,.poster img,.ranking-poster img,.detail-poster img,.mini-posters img{
width:100%;
height:100%;
object-fit:cover}
.image-error{
opacity:0}
.hero-dots{
position:absolute;
z-index:5;
left:50%;
bottom:30px;
display:flex;
gap:10px;
transform:translateX(-50%)}
.hero-dot{
width:34px;
height:6px;
border:0;
border-radius:999px;
background:rgba(255,255,255,.28);
cursor:pointer}
.hero-dot.active{
background:#22d3ee}
.search-band{
width:min(1180px,calc(100% - 32px));
margin:-44px auto 0;
position:relative;
z-index:8;
padding:20px;
border:1px solid rgba(34,211,238,.22);
border-radius:24px;
background:rgba(15,23,42,.92);
box-shadow:0 30px 90px rgba(0,0,0,.32);
backdrop-filter:blur(18px)}
.search-form{
display:grid;
grid-template-columns:minmax(0,1fr) auto;
gap:12px}
.search-form input,.filter-bar input{
width:100%;
min-height:50px;
padding:0 16px;
border:1px solid rgba(148,163,184,.22);
border-radius:16px;
outline:0;
color:#fff;
background:rgba(2,6,23,.72)}
.search-form input:focus,.filter-bar input:focus{
border-color:rgba(34,211,238,.72)}
.quick-links{
margin-top:14px}
.quick-links a{
color:#cbd5e1;
font-size:14px}
.quick-links a:hover{
color:#67e8f9}
.section-wrap{
padding:72px 0 0}
.compact-wrap{
padding-top:28px}
.section-head{
display:flex;
align-items:flex-end;
justify-content:space-between;
gap:20px;
margin-bottom:24px}
.section-head h2,.rank-panel h2,.text-block h2,.side-card h2{
margin:0;
font-size:clamp(24px,3vw,34px);
line-height:1.2}
.category-grid{
display:grid;
grid-template-columns:repeat(5,minmax(0,1fr));
gap:16px}
.category-grid.large{
grid-template-columns:repeat(2,minmax(0,1fr))}
.category-tile,.category-card a{
display:block;
min-height:166px;
padding:20px;
border:1px solid rgba(148,163,184,.16);
border-radius:24px;
background:linear-gradient(145deg,rgba(15,23,42,.94),rgba(8,47,73,.48));
overflow:hidden}
.category-tile:hover,.category-card a:hover,.movie-card:hover,.ranking-card:hover,.side-card:hover,.text-block:hover,.player-card:hover{
border-color:rgba(34,211,238,.45);
box-shadow:0 20px 70px rgba(6,182,212,.12)}
.category-tile span,.category-name{
display:block;
margin-bottom:10px;
color:#67e8f9;
font-size:20px;
font-weight:900}
.category-tile strong,.category-card p{
display:block;
color:#cbd5e1;
font-size:14px;
font-weight:500}
.category-tile em{
display:flex;
flex-direction:column;
gap:4px;
margin-top:18px;
color:#e2e8f0;
font-size:13px;
font-style:normal}
.movie-grid{
display:grid;
grid-template-columns:repeat(4,minmax(0,1fr));
gap:20px}
.movie-card,.ranking-card,.side-card,.text-block,.player-card,.rank-panel{
border:1px solid rgba(148,163,184,.16);
border-radius:24px;
background:rgba(15,23,42,.78);
transition:.2s}
.movie-card:hover{
transform:translateY(-2px)}
.poster,.ranking-poster,.detail-poster,.video-shell{
position:relative;
display:block;
overflow:hidden;
background:linear-gradient(145deg,#0f172a,#164e63 55%,#0e7490)}
.poster{
aspect-ratio:16/10;
border-radius:24px 24px 0 0}
.movie-card.compact .poster{
aspect-ratio:2/3}
.poster-badge,.poster-play,.ranking-poster span{
position:absolute;
z-index:2;
padding:5px 10px;
border-radius:999px;
font-size:12px;
font-weight:900;
background:rgba(2,6,23,.72);
border:1px solid rgba(255,255,255,.18)}
.poster-badge{
top:12px;
left:12px}
.poster-play{
right:12px;
bottom:12px;
color:#001018;
background:#67e8f9}
.card-body{
padding:16px}
.card-meta,.detail-meta{
gap:8px;
margin-bottom:12px}
.card-meta{
display:flex;
flex-wrap:wrap}
.movie-card h3,.ranking-card h2{
margin:0 0 8px;
font-size:20px;
line-height:1.25}
.movie-card h3 a:hover,.ranking-card h2 a:hover,.side-links a:hover,.rank-list a:hover{
color:#67e8f9}
.movie-card p,.ranking-card p,.text-block p,.side-card dd{
color:#cbd5e1}
.movie-card p{
min-height:46px;
margin:0 0 14px;
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:2;
overflow:hidden}
.card-bottom{
display:flex;
align-items:center;
justify-content:space-between;
gap:10px}
.score{
color:#facc15;
font-weight:900}
.card-bottom a{
color:#67e8f9;
font-weight:900}
.split-section{
display:grid;
grid-template-columns:minmax(0,1fr) 340px;
gap:24px;
align-items:start}
.rank-panel{
position:sticky;
top:92px;
padding:22px}
.rank-list{
display:grid;
gap:6px;
margin:4px 0 20px;
padding:0;
list-style:none}
.rank-list a{
display:grid;
grid-template-columns:42px minmax(0,1fr);
gap:8px 10px;
padding:10px 0;
border-bottom:1px solid rgba(148,163,184,.12)}
.rank-num{
grid-row:span 2;
color:#67e8f9;
font-weight:900}
.rank-title,.rank-info{
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis}
.rank-title{
font-weight:900}
.rank-info{
color:#94a3b8;
font-size:13px}
.page-hero,.detail-hero{
position:relative;
overflow:hidden}
.small-hero{
width:min(1180px,calc(100% - 32px));
margin:0 auto;
padding:86px 0 24px}
.filter-bar{
display:grid;
gap:14px}
.chip{
cursor:pointer}
.chip.active,.chip:hover{
color:#001018;
background:#67e8f9}
.category-card .mini-posters{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:8px;
margin:20px 0}
.mini-posters img{
aspect-ratio:2/3;
border-radius:14px;
background:linear-gradient(145deg,#0f172a,#164e63)}
.ranking-grid{
display:grid;
gap:16px}
.ranking-card{
display:grid;
grid-template-columns:150px minmax(0,1fr);
gap:20px;
padding:14px}
.ranking-poster{
aspect-ratio:2/3;
border-radius:18px}
.ranking-poster span{
top:10px;
left:10px;
color:#001018;
background:#67e8f9}
.detail-hero{
min-height:540px}
.detail-inner{
position:relative;
z-index:2;
display:grid;
grid-template-columns:300px minmax(0,1fr);
gap:42px;
align-items:center;
min-height:540px;
padding:70px 0 52px}
.detail-poster{
aspect-ratio:2/3;
border-radius:28px;
box-shadow:0 30px 90px rgba(0,0,0,.45)}
.detail-copy h1{
margin-bottom:14px}
.detail-layout{
display:grid;
grid-template-columns:minmax(0,1fr) 320px;
gap:24px;
align-items:start}
.detail-main,.detail-side{
display:grid;
gap:20px}
.player-card,.text-block,.side-card{
padding:20px}
.video-shell{
display:grid;
place-items:center;
aspect-ratio:16/9;
border-radius:20px}
.video-player{
width:100%;
height:100%;
background:#000}
.play-button{
position:absolute;
left:50%;
top:50%;
z-index:3;
min-height:54px;
padding:0 28px;
transform:translate(-50%,-50%)}
.video-shell.playing .play-button{
opacity:0;
pointer-events:none}
.side-card dl{
display:grid;
grid-template-columns:70px minmax(0,1fr);
gap:10px 12px;
margin:14px 0 0}
.side-card dt{
color:#94a3b8}
.side-card dd{
margin:0}
.side-links{
display:grid;
gap:8px}
.side-links a{
display:flex;
justify-content:space-between;
gap:14px;
padding:10px 0;
border-bottom:1px solid rgba(148,163,184,.12)}
.side-links em{
color:#94a3b8;
font-style:normal}
.site-footer{
margin-top:72px;
border-top:1px solid rgba(148,163,184,.14);
background:rgba(2,6,23,.7)}
.footer-inner{
display:flex;
justify-content:space-between;
gap:24px;
padding:30px 0;
color:#94a3b8}
.footer-inner strong{
color:#fff}
.footer-inner p{
max-width:560px;
margin:8px 0 0}
.is-hidden{
display:none!important}
@media(max-width:1080px){
.movie-grid,.category-grid{
grid-template-columns:repeat(3,minmax(0,1fr))}
.split-section,.detail-layout{
grid-template-columns:1fr}
.rank-panel{
position:static}
}
@media(max-width:820px){
.desktop-nav{
display:none}
.menu-toggle{
display:block}
.mobile-nav.open{
display:flex}
.hero,.hero-content{
min-height:auto}
.hero-content{
grid-template-columns:1fr;
gap:28px;
padding:60px 0 92px}
.hero-poster{
max-width:260px}
.search-form{
grid-template-columns:1fr}
.movie-grid,.category-grid,.category-grid.large{
grid-template-columns:repeat(2,minmax(0,1fr))}
.detail-inner{
grid-template-columns:1fr;
padding-top:44px}
.detail-poster{
width:min(260px,100%)}
.ranking-card{
grid-template-columns:110px minmax(0,1fr)}
.footer-inner{
flex-direction:column}
}
@media(max-width:560px){
.header-inner,.footer-inner,.section-wrap,.hero-content,.detail-inner,.small-hero,.search-band{
width:min(100% - 24px,1180px)}
.logo span:last-child{
font-size:16px}
.movie-grid,.category-grid,.category-grid.large{
grid-template-columns:1fr}
.ranking-card{
grid-template-columns:96px minmax(0,1fr);
gap:14px}
.section-head{
align-items:flex-start;
flex-direction:column}
}
