/* =========================================================
   MACCMS10 影视模板（第五十三套） - style.css
   zy- 霓虹紫罗兰 · 幻境影城（深紫黑 + 品红/紫罗兰霓虹）
   公告条 + 两行式头部（品牌行 + 分类导航行）
   汉堡=右侧滑出宽抽屉（一级分组 + 二级胶囊平铺，不省略二级）
   焦点区=大图轮播 + 右上编号徽章 + 右下圆点
   详情页=影讯镜像卡（海报在右/信息在左）；选集=圆角胶囊网格
   页脚=横条四分区卡
   ========================================================= */
:root {
  --zy-bg: #0d0a18;          /* 深紫黑 */
  --zy-card: #181226;        /* 紫灰卡片 */
  --zy-line: #2c2440;        /* 分隔线 */
  --zy-ink: #f2effa;         /* 主文字 */
  --zy-sub: #9c93bd;         /* 次要文字 */
  --zy-mag: #ff3db5;         /* 品红霓虹 */
  --zy-vio: #a855f7;         /* 紫罗兰 */
  --zy-cyn: #22d3ee;         /* 青色点缀 */
  --zy-glow: #f6e8ff;        /* 淡紫高光 */
  --zy-grad: linear-gradient(120deg, #a855f7, #ff3db5);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html, body { overflow-x: hidden; }
body {
  background: var(--zy-bg);
  color: var(--zy-ink);
  font: 14px/1.6 -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
}
a { color: inherit; text-decoration: none; }
img { border: 0; display: block; }
em, i, b { font-style: normal; }

/* ---------- 容器 ---------- */
.zy-shell { max-width: 1180px; margin: 0 auto; padding-left: 20px; padding-right: 20px; }
.zy-main { min-height: 62vh; }

/* ---------- 公告条 ---------- */
.zy-ticker {
  background: var(--zy-grad);
  color: #fff;
  font-size: 12px;
  line-height: 1;
}
.zy-ticker .zy-shell {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 7px;
  padding-bottom: 7px;
  overflow: hidden;
}
.zy-ticker-tag {
  flex-shrink: 0;
  padding: 1px 10px;
  border-radius: 4px;
  background: rgba(255,255,255,.22);
  font-weight: 800;
  letter-spacing: 1px;
}
.zy-ticker-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---------- 两行式头部（品牌行 + 分类导航行 + 汉堡最右） ---------- */
.zy-head {
  position: sticky;
  top: 0;
  z-index: 110;
  background: rgba(13,10,24,.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--zy-line);
  box-shadow: 0 10px 34px rgba(0,0,0,.4);
}
.zy-brand {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 0 12px;
}
.zy-logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  color: var(--zy-ink);
  font-size: 24px;
  font-weight: 900;
  letter-spacing: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 260px;
}
.zy-logo-i {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 12px;
  background: var(--zy-grad);
  color: #fff;
  font-size: 19px;
  font-weight: 900;
  text-align: center;
  line-height: 40px;
  box-shadow: 0 0 22px rgba(255,61,181,.55);
}
.zy-logo-t { color: var(--zy-ink); }
.zy-find {
  display: flex;
  border: 1px solid var(--zy-line);
  border-radius: 10px;
  overflow: hidden;
  background: var(--zy-card);
  margin-left: auto;
  flex-shrink: 0;
}
.zy-find-input {
  width: 200px;
  padding: 10px 16px;
  border: 0;
  background: transparent;
  color: var(--zy-ink);
  font-size: 14px;
  outline: none;
}
.zy-find-go {
  padding: 10px 22px;
  border: 0;
  background: var(--zy-grad);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}
.zy-find-go:hover { filter: brightness(1.1); }
.zy-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 46px;
  height: 46px;
  padding: 13px;
  border: 1px solid var(--zy-line);
  border-radius: 12px;
  background: var(--zy-card);
  cursor: pointer;
  flex-shrink: 0;
}
.zy-burger span {
  display: block;
  height: 2px;
  border-radius: 2px;
  background: var(--zy-ink);
  transition: transform .25s, opacity .25s;
}
.zy-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.zy-burger.is-open span:nth-child(2) { opacity: 0; }
.zy-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.zy-navbar {
  display: flex;
  align-items: center;
  gap: 4px;
  padding-bottom: 6px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.zy-navbar::-webkit-scrollbar { display: none; }
.zy-navbar a {
  position: relative;
  padding: 8px 18px;
  font-size: 14px;
  font-weight: 700;
  border-radius: 8px;
  color: var(--zy-sub);
  white-space: nowrap;
  flex-shrink: 0;
}
.zy-navbar a::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 2px;
  height: 2px;
  border-radius: 2px;
  background: var(--zy-grad);
  transform: scaleX(0);
  transition: transform .28s ease;
}
.zy-navbar a:hover,
.zy-navbar a.is-on {
  color: #fff;
  background: rgba(168,85,247,.16);
}
.zy-navbar a:hover::before,
.zy-navbar a.is-on::before { transform: scaleX(1); }

/* ---------- 右侧滑出宽抽屉（汉堡：一级分组 + 二级胶囊平铺） ---------- */
.zy-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(5,3,12,.62);
  opacity: 0;
  pointer-events: none;
  z-index: 120;
  transition: opacity .3s;
}
.zy-backdrop.is-open { opacity: 1; pointer-events: auto; }
.zy-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 320px;
  max-width: 86vw;
  background: #141020;
  border-left: 1px solid var(--zy-line);
  z-index: 125;
  transform: translateX(100%);
  transition: transform .34s cubic-bezier(.22,.8,.32,1);
  display: flex;
  flex-direction: column;
}
.zy-drawer.is-open { transform: translateX(0); }
.zy-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--zy-line);
  background: rgba(168,85,247,.08);
}
.zy-drawer-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--zy-glow);
  letter-spacing: 2px;
}
.zy-drawer-close {
  width: 34px;
  height: 34px;
  border: 1px solid var(--zy-line);
  border-radius: 8px;
  background: var(--zy-card);
  color: var(--zy-sub);
  font-size: 14px;
  cursor: pointer;
}
.zy-drawer-close:hover { border-color: var(--zy-mag); color: var(--zy-glow); }
.zy-drawer-body { flex: 1; overflow-y: auto; padding: 10px 14px 16px; }
.zy-home {
  display: block;
  padding: 11px 14px;
  margin-bottom: 8px;
  border-radius: 10px;
  border: 1px solid var(--zy-line);
  background: linear-gradient(135deg, rgba(168,85,247,.18), rgba(255,61,181,.12));
  font-size: 15px;
  font-weight: 800;
  color: #fff;
}
.zy-home:hover { border-color: var(--zy-mag); }
.zy-grp {
  margin-bottom: 10px;
  border: 1px solid var(--zy-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--zy-card);
}
.zy-grp-name {
  display: block;
  padding: 10px 14px;
  font-size: 15px;
  font-weight: 800;
  color: #fff;
  background: rgba(168,85,247,.14);
  border-bottom: 1px solid var(--zy-line);
}
.zy-grp-name:hover { color: var(--zy-glow); }
.zy-grp-subs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 12px;
}
.zy-sub {
  display: inline-block;
  padding: 5px 14px;
  border: 1px solid var(--zy-line);
  border-radius: 16px;
  font-size: 13px;
  color: var(--zy-sub);
  background: #141020;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.zy-sub:hover { border-color: var(--zy-mag); color: var(--zy-glow); }
.zy-drawer-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 14px;
  border-top: 1px solid var(--zy-line);
  background: rgba(168,85,247,.06);
}
.zy-drawer-foot a {
  padding: 4px 14px;
  border: 1px solid var(--zy-line);
  border-radius: 6px;
  font-size: 12px;
  color: var(--zy-sub);
}
.zy-drawer-foot a:hover { border-color: var(--zy-mag); color: var(--zy-glow); }

/* ---------- 模块面板 ---------- */
.zy-mod {
  background: var(--zy-card);
  border: 1px solid var(--zy-line);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 18px;
  box-shadow: 0 12px 30px rgba(0,0,0,.42);
  overflow: hidden;
}
.zy-mod-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--zy-line);
  padding-bottom: 10px;
  margin-bottom: 14px;
}
.zy-mod-title {
  position: relative;
  font-size: 17px;
  font-weight: 800;
  color: var(--zy-ink);
  letter-spacing: 1px;
  padding-left: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-mod-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 2px;
  width: 5px;
  border-radius: 3px;
  background: var(--zy-grad);
  box-shadow: 0 0 12px rgba(255,61,181,.6);
}
.zy-mod-more {
  display: inline-block;
  padding: 4px 16px;
  border: 1px solid var(--zy-line);
  border-radius: 16px;
  font-size: 13px;
  color: var(--zy-sub);
  flex-shrink: 0;
}
.zy-mod-more:hover { border-color: var(--zy-mag); color: var(--zy-glow); }
.zy-mod-note { font-size: 12px; color: var(--zy-sub); flex-shrink: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- 面包屑（仅详情/播放） ---------- */
.zy-crumb {
  padding: 2px 0 14px;
  font-size: 13px;
  color: var(--zy-sub);
  display: flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
}
.zy-crumb a:hover { color: var(--zy-glow); }
.zy-crumb-sep { color: #3d3455; }

/* ---------- 焦点区：大图轮播 + 右上编号徽章 + 右下圆点 ---------- */
.zy-caro {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  background: #080612;
  border: 1px solid var(--zy-line);
  box-shadow: 0 16px 40px rgba(0,0,0,.52);
  margin-bottom: 18px;
}
.zy-track { display: flex; transition: transform .5s ease; }
.zy-slide {
  position: relative;
  display: block;
  min-width: 100%;
  height: 400px;
  overflow: hidden;
}
.zy-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.zy-slide:hover img { transform: scale(1.04); }
.zy-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(13,10,24,.95) 0%, rgba(13,10,24,.5) 48%, rgba(13,10,24,.06) 84%);
}
.zy-copy {
  position: absolute;
  left: 36px;
  top: 50%;
  transform: translateY(-50%);
  max-width: 62%;
  color: #fff;
}
.zy-title {
  display: block;
  font-size: 30px;
  font-weight: 900;
  letter-spacing: 2px;
  color: #fff;
  text-shadow: 0 2px 14px rgba(0,0,0,.6), 0 0 26px rgba(255,61,181,.45);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-meta {
  display: block;
  margin-top: 10px;
  font-size: 13px;
  color: var(--zy-cyn);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-plot {
  display: block;
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.7;
  color: #dcd4ef;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.zy-score {
  position: absolute;
  right: 92px;
  top: 28px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 2px solid var(--zy-mag);
  background: rgba(13,10,24,.55);
  color: var(--zy-glow);
  font-size: 24px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(4px);
  box-shadow: 0 0 20px rgba(255,61,181,.5);
}
.zy-no {
  position: absolute;
  right: 20px;
  top: 20px;
  padding: 4px 12px;
  border-radius: 6px;
  background: rgba(13,10,24,.6);
  border: 1px solid rgba(255,61,181,.45);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 2px;
  z-index: 6;
  backdrop-filter: blur(4px);
}
.zy-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 50px;
  border: 0;
  border-radius: 8px;
  background: rgba(13,10,24,.55);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  z-index: 5;
}
.zy-arrow:hover { background: var(--zy-grad); }
.zy-prev { left: 12px; }
.zy-next { right: 12px; }
.zy-dots {
  position: absolute;
  right: 20px;
  bottom: 16px;
  display: flex;
  gap: 6px;
  z-index: 5;
}
.zy-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,.35);
  cursor: pointer;
  transition: background .25s, transform .25s;
}
.zy-dot.is-on {
  background: var(--zy-grad);
  transform: scale(1.3);
  box-shadow: 0 0 10px rgba(255,61,181,.7);
}

/* ---------- 横向滑动条（今日热映） ---------- */
.zy-rail {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  padding-bottom: 8px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,61,181,.5) rgba(255,61,181,.12);
}
.zy-rail::-webkit-scrollbar { height: 6px; }
.zy-rail::-webkit-scrollbar-track { background: rgba(255,61,181,.12); border-radius: 3px; }
.zy-rail::-webkit-scrollbar-thumb { background: rgba(255,61,181,.5); border-radius: 3px; }
.zy-rail-card {
  flex-shrink: 0;
  width: 140px;
  scroll-snap-align: start;
  display: block;
  min-width: 0;
}
.zy-rail-pic {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  border-radius: 10px;
  overflow: hidden;
  background: #120e20;
}
.zy-rail-pic img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.zy-rail-card:hover .zy-rail-pic img { transform: scale(1.05); }
.zy-rail-flag {
  position: absolute;
  left: 6px;
  top: 6px;
  padding: 1px 8px;
  border-radius: 4px;
  background: rgba(13,10,24,.82);
  border: 1px solid rgba(255,61,181,.5);
  color: var(--zy-glow);
  font-size: 11px;
  max-width: 66%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-rail-no {
  position: absolute;
  right: 6px;
  top: 6px;
  width: 24px;
  height: 24px;
  border-radius: 7px;
  background: var(--zy-grad);
  color: #fff;
  font-size: 12px;
  text-align: center;
  line-height: 24px;
  box-shadow: 0 2px 10px rgba(0,0,0,.45);
}
.zy-rail-mask {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 20px 8px 7px;
  background: linear-gradient(180deg, transparent, rgba(13,10,24,.94));
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .3s, transform .3s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-rail-card:hover .zy-rail-mask { opacity: 1; transform: translateY(0); }
.zy-rail-info { display: block; padding: 8px 2px 0; }
.zy-rail-name {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--zy-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-rail-card:hover .zy-rail-name { color: var(--zy-glow); }
.zy-rail-meta {
  display: block;
  font-size: 12px;
  color: var(--zy-sub);
  margin-top: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---------- 封面网格（电脑5列 / 手机3列，3/4 标准） ---------- */
.zy-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}
.zy-card { display: block; min-width: 0; }
.zy-card-pic {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  border-radius: 10px;
  overflow: hidden;
  background: #120e20;
}
.zy-card-pic img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.zy-card:hover .zy-card-pic img { transform: scale(1.05); }
.zy-card-flag {
  position: absolute;
  left: 6px;
  top: 6px;
  padding: 1px 8px;
  border-radius: 4px;
  background: rgba(13,10,24,.82);
  border: 1px solid rgba(255,61,181,.5);
  color: var(--zy-glow);
  font-size: 11px;
  max-width: 76%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-card-score {
  position: absolute;
  right: 6px;
  top: 6px;
  padding: 1px 8px;
  border-radius: 4px;
  background: var(--zy-grad);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}
.zy-card-mask {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 20px 8px 7px;
  background: linear-gradient(180deg, transparent, rgba(13,10,24,.94));
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .3s, transform .3s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-card:hover .zy-card-mask { opacity: 1; transform: translateY(0); }
.zy-card-info { display: block; padding: 8px 2px 0; }
.zy-card-name {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--zy-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-card:hover .zy-card-name { color: var(--zy-glow); }
.zy-card-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 4px;
  font-size: 12px;
  color: var(--zy-sub);
}

/* ---------- 筛选栏（默认收缩 + 底部展开 + 横滑） ---------- */
.zy-sift {
  background: var(--zy-card);
  border: 1px solid var(--zy-line);
  border-radius: 14px;
  padding: 6px 16px;
  margin-bottom: 18px;
  min-width: 0;
}
.zy-sift-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0 2px;
  border-bottom: 1px dashed var(--zy-line);
  margin-bottom: 4px;
}
.zy-sift-tip { font-size: 13px; font-weight: 700; color: var(--zy-glow); }
.zy-sift-tip::before { content: "✦ "; color: var(--zy-mag); font-size: 12px; }
.zy-sift-note { font-size: 12px; color: var(--zy-sub); }
.zy-sift-body { display: none; }
.zy-sift.is-expanded .zy-sift-body { display: block; }
.zy-sift-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px dashed var(--zy-line);
  min-width: 0;
}
.zy-sift-row:last-child { border-bottom: 0; }
.zy-sift-key {
  width: 76px;
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--zy-cyn);
  padding-top: 4px;
}
.zy-sift-scroll {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  padding-bottom: 2px;
}
.zy-sift-scroll::-webkit-scrollbar { height: 4px; }
.zy-sift-scroll::-webkit-scrollbar-track { background: rgba(255,61,181,.12); border-radius: 2px; }
.zy-sift-scroll::-webkit-scrollbar-thumb { background: rgba(255,61,181,.5); border-radius: 2px; }
.zy-chip {
  display: inline-block;
  padding: 4px 14px;
  border: 1px solid var(--zy-line);
  border-radius: 7px;
  font-size: 13px;
  color: var(--zy-sub);
  background: #120e20;
  white-space: nowrap;
  flex-shrink: 0;
}
.zy-chip:hover { border-color: var(--zy-mag); color: var(--zy-glow); }
.zy-chip.is-on {
  background: var(--zy-grad);
  border-color: transparent;
  color: #fff;
  font-weight: 700;
}
.zy-sift-foot {
  padding: 10px 0 4px;
  text-align: center;
  border-top: 1px dashed var(--zy-line);
  margin-top: 2px;
}
.zy-unfold {
  padding: 5px 22px;
  border: 1px solid var(--zy-line);
  border-radius: 7px;
  background: transparent;
  color: var(--zy-ink);
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
}
.zy-unfold:hover { border-color: var(--zy-mag); color: var(--zy-glow); }

/* ---------- 分页 ---------- */
.zy-page {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  padding: 6px 0 2px;
}
.zy-page-btn {
  min-width: 34px;
  height: 34px;
  padding: 0 12px;
  border: 1px solid var(--zy-line);
  border-radius: 7px;
  font-size: 13px;
  color: var(--zy-sub);
  background: #120e20;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}
.zy-page-btn:hover { border-color: var(--zy-mag); color: var(--zy-glow); }
.zy-page-btn.is-on {
  background: var(--zy-grad);
  border-color: transparent;
  color: #fff;
  font-weight: 700;
}

/* ---------- 详情页：影讯镜像卡（海报在右/信息在左，无分栏无播放器） ---------- */
.zy-stage {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 18px;
  border: 1px solid var(--zy-line);
  box-shadow: 0 14px 36px rgba(0,0,0,.5);
}
.zy-stage-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 18%, #2a0f33 0%, #0d0a18 62%);
}
.zy-stage-card {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 26px;
  padding: 26px;
  background: linear-gradient(270deg, rgba(13,10,24,.95) 0%, rgba(24,18,38,.9) 100%);
}
.zy-stage-info { flex: 1; min-width: 0; order: 1; }
.zy-stage-name {
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 10px;
  text-shadow: 0 0 22px rgba(255,61,181,.35);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-stage-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.zy-stage-tag {
  padding: 2px 12px;
  border: 1px solid var(--zy-line);
  border-radius: 7px;
  font-size: 12px;
  color: var(--zy-cyn);
  background: #120e20;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 150px;
}
.zy-stage-plot {
  font-size: 13px;
  line-height: 1.7;
  color: #dcd4ef;
  margin-bottom: 12px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.zy-stage-nums {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.zy-stage-num {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.zy-stage-num b { font-size: 19px; color: var(--zy-glow); font-weight: 800; }
.zy-stage-num i { font-size: 11px; color: var(--zy-sub); }
.zy-stage-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.zy-btn {
  padding: 9px 26px;
  border: 0;
  border-radius: 10px;
  background: var(--zy-grad);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 6px 18px rgba(255,61,181,.4);
}
.zy-btn:hover { filter: brightness(1.1); }
.zy-btn-ghost {
  padding: 9px 26px;
  border-radius: 10px;
  border: 1px solid var(--zy-line);
  color: var(--zy-glow);
  font-size: 14px;
  font-weight: 600;
  background: #120e20;
}
.zy-btn-ghost:hover { border-color: var(--zy-mag); }
.zy-stage-poster {
  width: 200px;
  flex-shrink: 0;
  order: 2;
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: 12px;
  overflow: hidden;
  background: #120e20;
  box-shadow: 0 0 0 2px var(--zy-mag), 0 14px 30px rgba(0,0,0,.55);
}
.zy-stage-poster img { width: 100%; height: 100%; object-fit: cover; }
.zy-stage-flag {
  position: absolute;
  left: 6px;
  top: 6px;
  padding: 1px 8px;
  border-radius: 4px;
  background: rgba(13,10,24,.82);
  border: 1px solid rgba(255,61,181,.5);
  color: var(--zy-glow);
  font-size: 11px;
}
.zy-stage-glow {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: var(--zy-grad);
  box-shadow: 0 0 22px rgba(255,61,181,.6);
}

/* ---------- 片名行（播放页） ---------- */
.zy-phead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  background: var(--zy-card);
  border: 1px solid var(--zy-line);
  border-radius: 14px;
  padding: 12px 16px;
  margin-bottom: 14px;
}
.zy-phead-info {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}
.zy-phead-name {
  font-size: 17px;
  font-weight: 800;
  color: var(--zy-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-phead-ep {
  padding: 2px 12px;
  border-radius: 7px;
  background: var(--zy-grad);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}
.zy-phead-nav { display: flex; gap: 8px; flex-shrink: 0; }
.zy-phead-btn {
  padding: 6px 16px;
  border: 1px solid var(--zy-line);
  border-radius: 7px;
  color: var(--zy-glow);
  font-size: 13px;
  background: #120e20;
}
.zy-phead-btn:hover { border-color: var(--zy-mag); }

/* ---------- 播放器（16:9 全屏居中，仅播放页） ---------- */
.zy-player {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #080612;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 18px;
  border: 1px solid var(--zy-line);
  box-shadow: 0 14px 36px rgba(0,0,0,.5);
}
@supports not (aspect-ratio: 16 / 9) {
  .zy-player { padding-top: 56.25%; }
}
.zy-player div,
.zy-player iframe,
.zy-player video,
.zy-player embed,
.zy-player object {
  width: 100% !important;
  height: 100% !important;
}
.zy-player-empty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #3d3455;
  font-size: 14px;
}

/* ---------- 选集：圆角胶囊网格（超 20 集折叠） ---------- */
.zy-ep-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
  margin-bottom: 10px;
}
.zy-ep {
  display: block;
  text-align: center;
  padding: 8px 4px;
  border: 1px solid var(--zy-line);
  border-radius: 20px;
  font-size: 13px;
  color: var(--zy-ink);
  background: #120e20;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-ep:hover { border-color: var(--zy-mag); color: var(--zy-glow); }
.zy-ep.is-on {
  background: var(--zy-grad);
  border-color: transparent;
  color: #fff;
}
.zy-ep-more { text-align: center; }
.zy-ep-morebtn {
  display: inline-block;
  padding: 6px 22px;
  border: 1px solid var(--zy-line);
  border-radius: 20px;
  font-size: 13px;
  color: var(--zy-ink);
  background: transparent;
  cursor: pointer;
}
.zy-ep-morebtn:hover { border-color: var(--zy-mag); color: var(--zy-glow); }
.zy-ep-hidden { display: none; }
.zy-ep-grid.is-expanded .zy-ep-hidden { display: block; }

/* ---------- 主体（全宽单列，无侧栏） ---------- */
.zy-bod { display: block; min-width: 0; }

/* ---------- 详情介绍 ---------- */
.zy-detail { display: block; }
.zy-detail dd {
  padding: 7px 0;
  border-bottom: 1px dashed var(--zy-line);
  font-size: 13px;
  color: var(--zy-ink);
}
.zy-detail dd:last-child { border-bottom: 0; }
.zy-detail dd em { color: var(--zy-sub); margin-right: 4px; }
.zy-detail a { color: var(--zy-cyn); }

/* ---------- 其他人还在搜 ---------- */
.zy-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.zy-cloud a {
  display: inline-block;
  padding: 4px 14px;
  border: 1px solid var(--zy-line);
  border-radius: 16px;
  font-size: 13px;
  color: var(--zy-sub);
  background: #120e20;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-cloud a:hover { border-color: var(--zy-mag); color: var(--zy-glow); }

/* ---------- 常见问题 ---------- */
.zy-faq { display: block; }
.zy-faq-item { padding: 10px 0; border-bottom: 1px dashed var(--zy-line); }
.zy-faq-item:last-child { border-bottom: 0; }
.zy-faq-q {
  display: block;
  font-size: 14px;
  color: var(--zy-ink);
  margin-bottom: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-faq-a { font-size: 13px; color: var(--zy-sub); margin-top: 4px; }
.zy-faq-a a { color: var(--zy-cyn); }

/* ---------- 评论 ---------- */
.zy-talk {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--zy-line);
  min-width: 0;
}
.zy-talk:last-child { border-bottom: 0; }
.zy-talk-avatar {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--zy-grad);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
  line-height: 36px;
  flex-shrink: 0;
}
.zy-talk-body { flex: 1; min-width: 0; }
.zy-talk-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.zy-talk-user {
  font-size: 13px;
  font-weight: 700;
  color: var(--zy-ink);
  max-width: 160px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-talk-badge {
  font-size: 11px;
  color: #fff;
  background: var(--zy-mag);
  padding: 0 6px;
  border-radius: 4px;
}
.zy-talk-stars { color: var(--zy-vio); font-size: 12px; }
.zy-dim { color: #3d3455; }
.zy-talk-time { font-size: 11px; color: var(--zy-sub); }
.zy-talk-text { font-size: 13px; color: var(--zy-ink); }
.zy-talk-like {
  font-size: 12px;
  color: var(--zy-sub);
  flex-shrink: 0;
  align-self: center;
}

/* ---------- 空态 ---------- */
.zy-empty {
  padding: 60px 0;
  text-align: center;
  color: var(--zy-sub);
  font-size: 14px;
}

/* ---------- 横条页脚：四张渐变分区卡 + 版权条 ---------- */
.zy-foot { margin-top: 12px; }
.zy-foot-cards {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 14px;
  padding: 20px 0 8px;
}
.zy-foot-card {
  background: linear-gradient(150deg, #1d1533, #141020);
  border: 1px solid var(--zy-line);
  border-radius: 12px;
  padding: 16px;
  min-width: 0;
}
.zy-foot-card:nth-child(1) { border-top: 3px solid var(--zy-mag); }
.zy-foot-card:nth-child(2) { border-top: 3px solid var(--zy-vio); }
.zy-foot-card:nth-child(3) { border-top: 3px solid var(--zy-cyn); }
.zy-foot-card:nth-child(4) { border-top: 3px solid var(--zy-glow); }
.zy-foot-name {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 900;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-foot-name .zy-logo-i { width: 30px; height: 30px; line-height: 30px; font-size: 14px; }
.zy-foot-title {
  display: block;
  font-size: 14px;
  font-weight: 800;
  color: var(--zy-glow);
  margin-bottom: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-foot-desc {
  font-size: 12px;
  color: var(--zy-sub);
  line-height: 1.8;
  margin-top: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.zy-foot-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.zy-foot-links a {
  padding: 3px 12px;
  border: 1px solid var(--zy-line);
  border-radius: 14px;
  font-size: 12px;
  color: var(--zy-sub);
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.zy-foot-links a:hover { border-color: var(--zy-mag); color: var(--zy-glow); }
.zy-foot-gbook {
  display: inline-block;
  margin-top: 10px;
  padding: 4px 16px;
  border-radius: 16px;
  background: var(--zy-grad);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.zy-foot-gbook:hover { filter: brightness(1.1); }
.zy-foot-bar {
  background: #080612;
  border-top: 1px solid var(--zy-line);
  margin-top: 12px;
  padding: 16px 0 20px;
  text-align: center;
  font-size: 12px;
  color: #3d3455;
}
.zy-foot-bar p { margin: 2px 0; }
.zy-foot-bar a:hover { color: var(--zy-glow); }

/* ---------- 回到顶部 ---------- */
#zyTop {
  display: none;
  position: fixed;
  right: 24px;
  bottom: 40px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 12px;
  background: var(--zy-grad);
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(0,0,0,.5);
  z-index: 99;
}
#zyTop:hover { filter: brightness(1.1); }

/* ---------- 组合/容器补充 ---------- */
.zy-lazy { background: #120e20; }

/* =========================================================
   自适应：平板 1024 / 手机 768 / 小屏 480
   ========================================================= */
@media (max-width: 1024px) {
  .zy-shell { padding-left: 16px; padding-right: 16px; }
  .zy-grid { grid-template-columns: repeat(4, 1fr); }
  .zy-ep-grid { grid-template-columns: repeat(4, 1fr); }
  .zy-foot-cards { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  body { font-size: 13px; }
  .zy-ticker-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .zy-brand { padding: 12px 0 10px; gap: 10px; }
  .zy-navbar { display: none; }
  .zy-logo { font-size: 20px; max-width: 175px; }
  .zy-burger { display: flex; }
  .zy-find-input { width: 118px; }
  .zy-shell { padding-left: 14px; padding-right: 14px; }
  .zy-main { padding-top: 2px; }
  .zy-mod { padding: 12px; border-radius: 12px; }
  .zy-caro { border-radius: 12px; }
  .zy-slide { height: 190px; }
  .zy-copy { left: 16px; max-width: 80%; }
  .zy-title { font-size: 19px; }
  .zy-meta { margin-top: 6px; font-size: 12px; }
  .zy-plot { display: none; }
  .zy-score { right: 74px; top: 12px; width: 44px; height: 44px; font-size: 16px; }
  .zy-no { right: 14px; top: 12px; font-size: 11px; padding: 2px 8px; }
  .zy-arrow { width: 30px; height: 42px; font-size: 20px; }
  .zy-dots { right: 14px; bottom: 10px; }
  .zy-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .zy-rail { gap: 10px; }
  .zy-rail-card { width: 104px; }
  .zy-rail-flag, .zy-rail-no { font-size: 10px; }
  .zy-rail-name { font-size: 12px; }
  .zy-card-flag, .zy-card-score { font-size: 10px; padding: 0 6px; }
  .zy-card-mask { font-size: 12px; }
  .zy-card-name { font-size: 12px; }
  .zy-mod-title { font-size: 15px; }
  .zy-stage-card { gap: 14px; padding: 16px; flex-wrap: wrap; }
  .zy-stage-info { order: 1; width: 100%; }
  .zy-stage-poster { order: 2; width: 118px; margin: 0 auto; }
  .zy-stage-name { font-size: 19px; }
  .zy-stage-plot { -webkit-line-clamp: 2; }
  .zy-phead { padding: 10px 12px; gap: 8px; }
  .zy-phead-name { font-size: 15px; }
  .zy-sift { padding: 4px 12px; min-width: 0; }
  .zy-sift-row { flex-direction: column; gap: 8px; padding: 9px 0; width: 100%; min-width: 0; }
  .zy-sift-key { width: auto; padding-top: 0; }
  .zy-sift-scroll { width: 100%; max-width: 100%; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
  .zy-ep-grid { grid-template-columns: repeat(4, 1fr); gap: 6px; }
  .zy-drawer { width: 300px; }
  .zy-foot-cards { grid-template-columns: 1fr; padding: 14px 0 6px; }
  .zy-foot-bar { margin-top: 8px; }
}

@media (max-width: 480px) {
  .zy-logo { font-size: 17px; max-width: 150px; }
  .zy-find-input { width: 92px; padding: 9px 12px; }
  .zy-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .zy-rail-card { width: 98px; }
  .zy-page-btn { min-width: 30px; height: 30px; padding: 0 9px; font-size: 12px; }
  .zy-ep-grid { grid-template-columns: repeat(4, 1fr); gap: 5px; }
  #zyTop { right: 14px; bottom: 26px; width: 40px; height: 40px; }
}
