/* 共享组件 · 卡片/网格/响应式基础（无主题色） */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
img,video{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
button{font:inherit;cursor:pointer;border:none;background:none}
input,select,textarea{font:inherit}

/* —— Portal 卡片 tuy-card —— */
.tuy-card,.fsp-hl-card{
  display:flex;flex-direction:column;min-width:0;
  border-radius:14px;overflow:hidden;
  transition:transform .22s ease,box-shadow .22s ease;
}
.tuy-card:hover{transform:translateY(-4px)}
.tuy-card__media,.fsp-hl-card__media{
  position:relative;display:block;overflow:hidden;
  aspect-ratio:3/4;background:rgba(0,0,0,.15);
}
.tuy-card__media img{width:100%;height:100%;object-fit:cover}
.tuy-card__badge{
  position:absolute;left:8px;top:8px;z-index:2;
  padding:.2rem .55rem;border-radius:6px;
  font-size:.72rem;font-weight:700;
}
.tuy-card__dur{
  position:absolute;right:8px;bottom:8px;z-index:2;
  display:inline-flex;align-items:center;gap:.25rem;
  padding:.15rem .45rem;border-radius:6px;
  font-size:.7rem;background:rgba(0,0,0,.65);color:#fff;
}
.tuy-card__play{
  position:absolute;inset:0;display:grid;place-items:center;
  opacity:0;transition:opacity .2s;
  background:rgba(0,0,0,.35);color:#fff;
}
.tuy-card:hover .tuy-card__play{opacity:1}
.tuy-card__body,.fsp-hl-card__body{padding:.65rem .7rem .75rem}
.tuy-card__title{
  margin:0 0 .35rem;font-size:.88rem;line-height:1.35;font-weight:700;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.tuy-card__desc{
  margin:0;font-size:.75rem;line-height:1.45;opacity:.8;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.tuy-card__pills{display:flex;flex-wrap:wrap;gap:.3rem;margin:.4rem 0}
.tuy-card__pills span{font-size:.68rem;padding:.12rem .4rem;border-radius:999px}
.tuy-card__meta{display:flex;gap:.5rem;font-size:.72rem;opacity:.75}

.cq-block{margin-bottom:1.25rem}
.cq-block__head--row{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:.75rem;flex-wrap:wrap;margin-bottom:.85rem;
}
.cq-block__head h2{margin:0;font-size:1.15rem;line-height:1.3}
.cq-block__sub{margin:.25rem 0 0;font-size:.86rem;line-height:1.5;opacity:.85}

.cq-card-grid{display:grid;gap:.75rem}
.cq-card-grid--dense{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
.cq-card-grid--wall{grid-template-columns:repeat(6,minmax(0,1fr))}
.cq-card-grid--hot-row{
  display:flex;flex-wrap:nowrap;overflow-x:auto;gap:.75rem;
  padding-bottom:.35rem;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.cq-card-grid--hot-row .tuy-card{flex:0 0 128px;scroll-snap-align:start}

.home-pop-cats__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:.65rem;
}
.home-pop-cats__card{
  display:flex;flex-direction:column;gap:.2rem;padding:.8rem .65rem;
  border-radius:12px;transition:transform .2s;
}
.home-pop-cats__name{font-weight:700;font-size:.88rem}
.home-pop-cats__count{font-size:.75rem;opacity:.75}

.header-main-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem}
.header-main-nav__link{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.4rem .7rem;border-radius:999px;font-size:.88rem;white-space:nowrap;
}
.header-main-nav__ico{display:inline-flex;align-items:center;justify-content:center}

/* 内页通用 */
.page-hero{margin-bottom:1.5rem;padding:1.75rem 1.5rem;border-radius:18px}
.compact-hero .eyebrow.solo{font-size:.78rem;font-weight:700;margin-bottom:.5rem}
.compact-hero h1{margin:0 0 .65rem;font-size:clamp(1.35rem,3vw,1.85rem);line-height:1.25}
.compact-hero p{margin:0;line-height:1.65;max-width:58ch}
.breadcrumb{display:flex;flex-wrap:wrap;gap:.35rem .5rem;margin-bottom:1rem;font-size:.88rem}
.filter-panel{
  display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding:1rem;border-radius:14px;
}
.filter-panel input,.filter-panel select{
  flex:1 1 140px;min-width:0;padding:.55rem .75rem;border-radius:10px;
}
.movie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}
.movie-card{border-radius:14px;overflow:hidden;transition:transform .22s ease}
.movie-card:hover{transform:translateY(-3px)}
.poster-frame{display:block;aspect-ratio:3/4;overflow:hidden}
.poster-frame img{width:100%;height:100%;object-fit:cover}
.movie-card-body{padding:.75rem}
.movie-card h3{font-size:.92rem;line-height:1.35;margin:0 0 .35rem}
.movie-card p{font-size:.8rem;line-height:1.45;margin:0;opacity:.85}
.card-actions{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem;font-size:.78rem}
.detail-hero{display:grid;grid-template-columns:minmax(120px,240px) 1fr;gap:1.25rem;padding:1.25rem;border-radius:18px;margin-bottom:1.25rem}
.detail-poster img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px}
.detail-grid{display:grid;grid-template-columns:1fr minmax(200px,280px);gap:1rem}
.content-card{padding:1.25rem;border-radius:14px}
.player-box video{width:100%;aspect-ratio:16/9;background:#000;border-radius:12px}
.empty-state{padding:2rem;text-align:center;border-radius:12px}
.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}
.category-tile,.overview-card{padding:1rem;border-radius:12px}
.rank-badge{
  position:absolute;left:8px;top:8px;z-index:2;
  min-width:28px;height:28px;display:grid;place-items:center;
  border-radius:8px;font-size:.78rem;font-weight:800;
}

@media (max-width:1024px){
  .cq-card-grid--wall{grid-template-columns:repeat(4,1fr)}
  .home-pop-cats__grid{grid-template-columns:repeat(3,1fr)}
  .detail-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .cq-card-grid--wall{grid-template-columns:repeat(3,1fr)}
  .home-pop-cats__grid{grid-template-columns:repeat(2,1fr)}
  .detail-hero{grid-template-columns:1fr}
  .detail-poster{max-width:220px}
  .filter-panel input,.filter-panel select{flex:1 1 100%}
}
@media (max-width:480px){
  .cq-card-grid--wall,.cq-card-grid--dense{grid-template-columns:repeat(2,1fr)}
  .movie-grid{grid-template-columns:repeat(2,1fr);gap:.65rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
