:root{
  --primary:#7A1F1F;
  --secondary:#C8A35B;
  --bg:#FBF6EE;
  --accent:#B71C1C;
  --ink:#2B211C;
  --ink-soft:#5C4A3F;
  --card-bg:#FFFFFF;
  --line:#E4D7C3;
  --radius:4px;
  --shadow-1:0 1px 2px rgba(122,31,31,.08);
  --shadow-2:0 4px 14px rgba(122,31,31,.10),0 1px 3px rgba(43,33,28,.06);
  --shadow-hover:0 10px 24px rgba(122,31,31,.16),0 2px 6px rgba(43,33,28,.08);
  --gap:18px;
  --sec-gap:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg);
  color:var(--ink);
  font-size:15.5px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
@media(min-width:1100px){body{font-size:16px}}
img{width:100%;height:100%;object-fit:cover;display:block}
a{color:inherit;text-decoration:none}
p{margin-bottom:12px}
p:last-child{margin-bottom:0}
.container{max-width:1240px;margin:0 auto;padding:0 20px}
@media(min-width:720px){.container{padding:0 32px}}
@media(min-width:1100px){.container{padding:0 40px}}
@media(max-width:359px){.container{padding:0 16px}}

/* ===== 顶部品牌区 ===== */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,246,238,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;gap:16px;min-height:60px;flex-wrap:wrap;padding:10px 0}
@media(min-width:1100px){.header-inner{min-height:70px;flex-wrap:nowrap}}
.brand{display:flex;flex-direction:column;line-height:1.2}
.brand-mark{
  font-size:19px;font-weight:800;letter-spacing:.5px;
  color:var(--primary);
  border-left:4px solid var(--secondary);
  padding-left:10px;
}
.brand-sub{font-size:12.5px;color:var(--ink-soft);padding-left:14px;letter-spacing:.4px}
.main-nav{display:none;gap:22px;margin-left:8px}
@media(min-width:900px){.main-nav{display:flex}}
.main-nav a{
  font-size:14px;font-weight:600;color:var(--ink-soft);
  padding:6px 2px;position:relative;transition:color .18s;
}
.main-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .22s;
}
.main-nav a:hover,.main-nav a:focus-visible{color:var(--accent)}
.main-nav a:hover::after,.main-nav a:focus-visible::after{transform:scaleX(1)}
.header-tools{display:flex;align-items:center;gap:10px;margin-left:auto}
.search-box{
  display:flex;align-items:center;gap:6px;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:0 4px 0 12px;height:42px;box-shadow:var(--shadow-1);
}
.search-box input{
  border:0;outline:0;background:transparent;font-size:14px;width:130px;
  color:var(--ink);font-family:inherit;height:100%;
}
@media(min-width:720px){.search-box input{width:190px}}
.search-box input::placeholder{color:#A9998C}
.search-box button{
  height:34px;padding:0 14px;border:0;border-radius:3px;
  background:var(--primary);color:#fff;font-size:13px;font-weight:600;
  cursor:pointer;font-family:inherit;transition:background .18s;
}
.search-box button:hover{background:var(--accent)}
.menu-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border:1px solid var(--line);border-radius:var(--radius);
  background:#fff;cursor:pointer;font-size:18px;color:var(--primary);
}
@media(min-width:900px){.menu-toggle{display:none}}
.mobile-menu{display:none;flex-direction:column;gap:2px;padding:8px 0 14px;border-top:1px solid var(--line);width:100%}
.mobile-menu.open{display:flex}
.mobile-menu a{padding:10px 6px;font-size:15px;font-weight:600;color:var(--ink-soft);border-radius:3px}
.mobile-menu a:hover,.mobile-menu a:focus-visible{background:#F5EBDC;color:var(--accent)}

/* ===== 面包屑 ===== */
.breadcrumb{padding:18px 0 6px;font-size:13.5px;color:var(--ink-soft)}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none}
.breadcrumb li{display:flex;align-items:center;gap:6px}
.breadcrumb li+li::before{content:"›";color:var(--secondary)}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb [aria-current="page"]{color:var(--primary);font-weight:700}

/* ===== Hero ===== */
.hero{position:relative;padding:20px 0 0;overflow:hidden}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(120% 90% at 88% 8%,rgba(200,163,91,.30),transparent 60%),
    linear-gradient(160deg,#FBF6EE 0%,#F6ECE0 55%,#F0E2D4 100%);
}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(122,31,31,.05),transparent 55%);
}
.hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:26px;padding:22px 0 48px}
@media(min-width:900px){
  .hero-inner{grid-template-columns:minmax(0,1fr) minmax(280px,380px);align-items:center;gap:0;padding:34px 0 64px}
}
.hero-copy{order:2;max-width:640px}
@media(min-width:900px){
  .hero-copy{order:1;position:relative;z-index:2;background:linear-gradient(90deg,var(--bg) 0%,rgba(251,246,238,.94) 72%,rgba(251,246,238,0) 100%);padding:24px 40px 24px 0;margin-right:-70px}
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;
  color:var(--primary);background:rgba(200,163,91,.20);
  border:1px solid rgba(200,163,91,.55);border-radius:var(--radius);
  padding:4px 12px;margin-bottom:16px;letter-spacing:.4px;
}
.hero h1{
  font-size:38px;line-height:1.24;font-weight:900;color:var(--primary);
  letter-spacing:-.5px;margin-bottom:16px;
  text-wrap:balance;
}
@media(min-width:1100px){.hero h1{font-size:56px;line-height:1.16;letter-spacing:-1px}}
.hero-lead{font-size:16px;line-height:1.75;color:var(--ink-soft);margin-bottom:18px;max-width:520px}
@media(min-width:1100px){.hero-lead{font-size:17px}}
.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.tag{
  font-size:13px;line-height:1.4;padding:4px 11px;border-radius:3px;
  background:#fff;border:1px solid var(--line);color:var(--ink-soft);font-weight:600;
}
.tag.keyword{background:var(--primary);border-color:var(--primary);color:#fff}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13.5px;color:var(--ink-soft);margin-bottom:22px}
.hero-meta strong{color:var(--accent);font-weight:800;font-size:15px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:10px 24px;font-size:14px;font-weight:700;
  border-radius:var(--radius);border:1px solid transparent;cursor:pointer;
  font-family:inherit;transition:background .18s,color .18s,box-shadow .18s,transform .12s;
}
.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-2)}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--accent);box-shadow:var(--shadow-hover)}
.btn-ghost{background:#fff;color:var(--primary);border-color:var(--secondary)}
.btn-ghost:hover,.btn-ghost:focus-visible{background:#F5EBDC;color:var(--accent);border-color:var(--accent)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hero-poster{order:1;position:relative}
@media(min-width:900px){.hero-poster{order:2}}
.poster-frame{
  aspect-ratio:3/4;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 18px 42px rgba(122,31,31,.28),0 4px 12px rgba(43,33,28,.14);
  border:3px solid #fff;background:#EADFCF;position:relative;
}
.poster-badge{
  position:absolute;left:14px;top:14px;z-index:2;
  background:var(--primary);color:#fff;font-size:12.5px;font-weight:700;
  padding:4px 11px;border-radius:3px;letter-spacing:.5px;
  box-shadow:var(--shadow-2);
}
.poster-caption{
  margin-top:10px;font-size:12.5px;color:var(--ink-soft);text-align:center;
}

/* ===== 通用 section ===== */
.section{padding:var(--sec-gap) 0 0}
.section-head{margin-bottom:20px}
.section-head h2{
  font-size:24px;line-height:1.3;font-weight:900;color:var(--primary);
  letter-spacing:-.3px;margin-bottom:8px;
}
@media(min-width:1100px){.section-head h2{font-size:30px}}
.section-head h2::after{
  content:"";display:block;width:44px;height:3px;background:var(--secondary);
  margin-top:10px;border-radius:2px;
}
.section-desc{font-size:15px;line-height:1.7;color:var(--ink-soft);max-width:760px;margin-top:10px}
.section-foot{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.link-more{
  display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;
  color:var(--primary);border-bottom:2px solid var(--secondary);padding-bottom:2px;
}
.link-more:hover,.link-more:focus-visible{color:var(--accent);border-color:var(--accent)}

/* ===== 分类导航 ===== */
.cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media(min-width:720px){.cat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}
@media(min-width:1100px){.cat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.cat-card{
  display:block;background:var(--card-bg);border:1px solid var(--line);
  border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-1);
  transition:box-shadow .2s,border-color .2s,transform .2s;
}
.cat-card:hover,.cat-card:focus-visible{border-color:var(--secondary);box-shadow:var(--shadow-2);transform:translateY(-2px)}
.cat-card h3{font-size:17px;color:var(--primary);line-height:1.4;margin-bottom:6px}
.cat-card p{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}

/* ===== 剧集卡片 ===== */
.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media(min-width:720px){.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}
@media(min-width:1100px){.card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}}
.drama-card{
  background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow-1);
  display:flex;flex-direction:column;
  transition:box-shadow .22s,transform .22s,border-color .22s;
}
.drama-card:hover,.drama-card:focus-within{box-shadow:var(--shadow-hover);transform:translateY(-3px);border-color:var(--secondary)}
.card-cover{position:relative;aspect-ratio:3/4;background:#EADFCF;overflow:hidden}
.card-cover .cover-tag{
  position:absolute;left:10px;bottom:10px;z-index:2;
  background:rgba(122,31,31,.92);color:#fff;font-size:12.5px;font-weight:700;
  padding:3px 9px;border-radius:3px;
}
.card-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body h3{font-size:17px;line-height:1.4;color:var(--ink);font-weight:800}
.card-body h3 a:hover,.card-body h3 a:focus-visible{color:var(--accent)}
.card-desc{font-size:13.5px;line-height:1.65;color:var(--ink-soft);flex:1}
.card-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:12.5px;color:var(--ink-soft)}
.card-meta span{background:#F6ECDD;border-radius:3px;padding:2px 8px}
.card-link{font-size:13.5px;font-weight:700;color:var(--primary);margin-top:4px}
.card-link:hover,.card-link:focus-visible{color:var(--accent)}

/* ===== 剧情简介 ===== */
.story-block{
  background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;box-shadow:var(--shadow-2);
  border-left:5px solid var(--primary);
}
@media(min-width:720px){.story-block{padding:32px}}
.story-block p{font-size:15.5px;line-height:1.8;color:var(--ink);margin-bottom:14px}
@media(min-width:1100px){.story-block p{font-size:16px}}
.story-block .kw{color:var(--accent);font-weight:700}
.spot-list{list-style:none;display:grid;gap:14px;margin-top:24px}
@media(min-width:720px){.spot-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
.spot-item{
  background:#FDFAF4;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;display:flex;gap:12px;align-items:flex-start;
}
.spot-num{
  flex:0 0 auto;width:26px;height:26px;border-radius:3px;background:var(--secondary);
  color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;
}
.spot-item p{font-size:14px;line-height:1.7;color:var(--ink-soft);margin:0}

/* ===== 人物关系 ===== */
.char-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media(min-width:720px){.char-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}}
.char-card{
  background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px;text-align:center;box-shadow:var(--shadow-1);
  transition:box-shadow .2s,border-color .2s;
}
.char-card:hover{border-color:var(--secondary);box-shadow:var(--shadow-2)}
.char-avatar{
  width:76px;height:76px;border-radius:50%;overflow:hidden;margin:0 auto 12px;
  border:3px solid var(--secondary);background:#EADFCF;
}
.char-card h3{font-size:16px;color:var(--primary);margin-bottom:6px;line-height:1.4}
.char-card p{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}
.char-note{font-size:12.5px;color:var(--ink-soft);margin-top:14px;font-style:italic}

/* ===== 追剧队列 ===== */
.queue-wrap{
  background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow-2);
}
.queue-bar{
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;
  padding:16px 20px;background:linear-gradient(90deg,rgba(122,31,31,.06),rgba(200,163,91,.14));
  border-bottom:1px solid var(--line);
}
.queue-bar strong{color:var(--primary);font-size:15px}
.queue-count{
  font-size:13.5px;color:var(--ink-soft);display:inline-flex;align-items:center;gap:6px;
}
.queue-count b{color:var(--accent);font-size:16px}
.ep-list{list-style:none}
.ep-item{
  display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-start;
  padding:16px 20px;border-bottom:1px solid var(--line);
}
.ep-item:last-child{border-bottom:none}
.ep-no{
  flex:0 0 auto;font-size:13px;font-weight:800;color:#fff;background:var(--primary);
  border-radius:3px;padding:3px 9px;line-height:1.5;
}
.ep-main{flex:1 1 240px;min-width:0}
.ep-main h3{font-size:16px;line-height:1.4;color:var(--ink);margin-bottom:4px;font-weight:800}
.ep-main p{font-size:13.5px;line-height:1.65;color:var(--ink-soft);margin:0}
.ep-side{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ep-meta{font-size:12.5px;color:var(--ink-soft)}
.ep-status{font-size:12.5px;color:var(--secondary);font-weight:700}
.btn-queue{
  min-height:38px;padding:7px 16px;font-size:13px;font-weight:700;
  border-radius:var(--radius);border:1px solid var(--secondary);background:#fff;
  color:var(--primary);cursor:pointer;font-family:inherit;
  transition:background .18s,color .18s,border-color .18s;
}
.btn-queue:hover,.btn-queue:focus-visible{background:#F5EBDC;border-color:var(--accent);color:var(--accent)}
.btn-queue[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.queue-hint{font-size:12.5px;color:var(--ink-soft);padding:12px 20px;background:#FDFAF4;border-top:1px solid var(--line)}

/* ===== 相关推荐 ===== */
.rel-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:720px){.rel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media(min-width:1100px){.rel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rel-card{
  display:flex;gap:14px;background:var(--card-bg);border:1px solid var(--line);
  border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-1);
  transition:box-shadow .2s,border-color .2s;
}
.rel-card:hover,.rel-card:focus-within{border-color:var(--secondary);box-shadow:var(--shadow-2)}
.rel-cover{flex:0 0 88px;aspect-ratio:3/4;border-radius:3px;overflow:hidden;background:#EADFCF}
.rel-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.rel-body h3{font-size:16.5px;line-height:1.4;font-weight:800;color:var(--ink)}
.rel-body h3 a:hover,.rel-body h3 a:focus-visible{color:var(--accent)}
.rel-body p{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}
.rel-tags{display:flex;flex-wrap:wrap;gap:6px}
.rel-tags span{font-size:12.5px;color:var(--primary);background:#F6ECDD;border-radius:3px;padding:2px 8px}

/* ===== 标签云 / 筛选 ===== */
.filter-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.chip{
  min-height:38px;padding:7px 16px;font-size:13.5px;font-weight:600;
  border-radius:var(--radius);border:1px solid var(--line);background:#fff;
  color:var(--ink-soft);cursor:pointer;font-family:inherit;
  transition:background .18s,color .18s,border-color .18s;
}
.chip:hover,.chip:focus-visible{border-color:var(--secondary);color:var(--primary)}
.chip[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:#fff}
.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media(min-width:720px){.mini-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}
.mini-card{
  background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;box-shadow:var(--shadow-1);
}
.mini-card h3{font-size:16px;line-height:1.4;color:var(--primary);margin-bottom:6px}
.mini-card p{font-size:13.5px;line-height:1.65;color:var(--ink-soft)}
.mini-card[hidden]{display:none}

/* ===== FAQ ===== */
.faq-list{display:grid;gap:12px}
.faq-item{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1)}
.faq-item summary{
  cursor:pointer;padding:16px 20px;font-size:15px;font-weight:700;color:var(--primary);
  list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--secondary);font-size:20px;font-weight:400;line-height:1}
.faq-item[open] summary::after{content:"−"}
.faq-item summary:hover{color:var(--accent)}
.faq-item .faq-body{padding:0 20px 18px;font-size:14.5px;line-height:1.75;color:var(--ink-soft)}

/* ===== 多端入口 ===== */
.entry-block{margin-top:var(--sec-gap)}
.entry-list{display:flex;flex-wrap:wrap;gap:12px;list-style:none}
.entry-list a{
  display:inline-flex;align-items:center;min-height:42px;padding:9px 20px;
  font-size:14px;font-weight:700;color:var(--primary);
  border:1px solid var(--secondary);border-radius:var(--radius);background:#fff;
  transition:background .18s,color .18s;
}
.entry-list a:hover,.entry-list a:focus-visible{background:#F5EBDC;color:var(--accent)}

/* ===== 页脚 ===== */
.site-footer{
  margin-top:var(--sec-gap);background:linear-gradient(180deg,#F6ECE0,#F0E2D4);
  border-top:1px solid var(--line);padding:56px 0 28px;
}
.footer-grid{display:grid;grid-template-columns:1fr;gap:28px}
@media(min-width:720px){.footer-grid{grid-template-columns:2fr 1fr 1fr;gap:32px}}
.footer-brand h2{font-size:20px;color:var(--primary);margin-bottom:10px;line-height:1.3}
.footer-brand p{font-size:13.5px;line-height:1.7;color:var(--ink-soft);max-width:420px}
.footer-col h3{font-size:15px;color:var(--primary);margin-bottom:12px;font-weight:800}
.footer-col ul{list-style:none;display:grid;gap:8px}
.footer-col a{font-size:13.5px;color:var(--ink-soft)}
.footer-col a:hover,.footer-col a:focus-visible{color:var(--accent)}
.footer-bottom{
  margin-top:36px;padding-top:20px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;
  font-size:12.5px;color:var(--ink-soft);line-height:1.6;
}
.footer-links{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.footer-links a{font-size:12.5px;color:var(--ink-soft)}
.footer-links a:hover,.footer-links a:focus-visible{color:var(--accent)}
.disclaimer{font-size:12.5px;color:var(--ink-soft);margin-top:14px;line-height:1.6}
.to-top{
  position:fixed;right:20px;bottom:22px;z-index:60;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--secondary);
  background:var(--primary);color:#fff;font-size:16px;cursor:pointer;
  display:none;align-items:center;justify-content:center;
  box-shadow:var(--shadow-2);font-family:inherit;
}
.to-top.show{display:flex}
.to-top:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}