:root{
  --c-main:#0D1B2A;
  --c-sub:#2EC4B6;
  --c-bg:#E0E1DD;
  --c-accent:#2EC4B6;
  --ink:#0D1B2A;
  --ink-soft:#3a4a5a;
  --line:rgba(13,27,42,.14);
  --card:#f4f5f2;
  --radius:0px;
  --shadow-1:0 1px 2px rgba(13,27,42,.08);
  --shadow-2:0 8px 18px -6px rgba(13,27,42,.16);
  --shadow-3:0 22px 40px -18px rgba(13,27,42,.28);
  --gap:22px;
  --sec:64px;
  --pad:20px;
}
*{box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:15.5px;
  line-height:1.75;
  color:var(--ink);
  background:var(--c-bg);
  background-image:radial-gradient(rgba(46,196,182,.16) 1px, transparent 1px);
  background-size:26px 26px;
  -webkit-font-smoothing:antialiased;
}
img{width:100%;height:100%;object-fit:cover;display:block}
a{color:var(--c-main);text-decoration:none}
a:hover{color:var(--c-accent)}
h1,h2,h3{margin:0;color:var(--ink);letter-spacing:.2px}
p{margin:0 0 14px}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
section{margin-top:var(--sec)}
.sec-head{margin-bottom:22px}
.sec-head h2{font-size:24px;line-height:1.3;font-weight:800}
.sec-head p{margin:10px 0 0;font-size:14.5px;color:var(--ink-soft);max-width:760px}
.tagline{font-size:13px;letter-spacing:.12em;color:var(--c-sub);text-transform:uppercase;font-weight:700;margin-bottom:8px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:10px 22px;font-size:14px;font-weight:700;
  border:1px solid var(--c-main);border-radius:var(--radius);
  background:var(--c-main);color:#f3f7f6;cursor:pointer;transition:.18s ease;
}
.btn:hover{background:var(--c-accent);border-color:var(--c-accent);color:#06201d}
.btn.ghost{background:transparent;color:var(--c-main)}
.btn.ghost:hover{background:rgba(46,196,182,.16);color:var(--c-main);border-color:var(--c-sub)}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.tag{
  display:inline-block;padding:3px 10px;font-size:13px;line-height:1.4;
  border:1px solid var(--line);background:#eef1ee;color:var(--ink-soft);
}
.tag.hot{border-color:var(--c-sub);color:#12615b;background:rgba(46,196,182,.14)}
/* ===== header ===== */
header.site{position:sticky;top:0;z-index:40;background:rgba(224,225,221,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav-row{display:flex;align-items:center;gap:18px;min-height:62px}
.brand{display:flex;flex-direction:column;line-height:1.15;text-decoration:none}
.brand b{font-size:19px;letter-spacing:.02em;color:var(--c-main)}
.brand span{font-size:11.5px;color:var(--c-sub);letter-spacing:.16em;font-weight:700}
nav.main{display:flex;gap:4px;margin-left:8px}
nav.main a{padding:8px 13px;font-size:14px;font-weight:600;color:var(--ink-soft)}
nav.main a:hover{color:var(--c-accent)}
.search{margin-left:auto;display:flex;align-items:center;gap:8px}
.search input{
  width:190px;height:40px;padding:0 14px;font-size:14px;font-family:inherit;
  border:1px solid var(--line);border-radius:var(--radius);background:#f7f8f5;color:var(--ink);
}
.search input::placeholder{color:#8a97a0}
.menu-btn{display:none;height:42px;width:44px;border:1px solid var(--line);background:#f7f8f5;font-size:18px;cursor:pointer}
.mobile-nav{display:none;border-top:1px solid var(--line);padding:8px 0 14px}
.mobile-nav a{display:block;padding:10px 4px;font-size:15px;font-weight:600;border-bottom:1px dashed var(--line)}
/* ===== breadcrumb ===== */
.crumb{padding:18px 0 0;font-size:13.5px;color:var(--ink-soft)}
.crumb a{color:var(--ink-soft)}
.crumb span[aria-current]{color:var(--c-main);font-weight:700}
/* ===== hero ===== */
.hero{margin-top:22px;background:linear-gradient(160deg,#0D1B2A 0%,#123041 58%,#0f3b3a 100%);color:#eaf2f0;padding:52px 0 56px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(46,196,182,.32) 1px, transparent 1px);background-size:22px 22px;opacity:.5;pointer-events:none}
.hero .wrap{position:relative;text-align:center}
.hero h1{font-size:34px;line-height:1.24;color:#f4faf8;font-weight:800;max-width:900px;margin:0 auto}
.hero .lead{margin:18px auto 0;max-width:680px;font-size:16px;line-height:1.78;color:#c9dbd8}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px}
.hero-tags .tag{background:rgba(46,196,182,.16);border-color:rgba(46,196,182,.5);color:#bff2ec}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:24px}
.hero-actions .btn{background:var(--c-accent);border-color:var(--c-accent);color:#052220}
.hero-actions .btn:hover{background:#7ce3da;border-color:#7ce3da}
.hero-actions .btn.ghost{background:transparent;color:#e7f4f1;border-color:rgba(231,244,241,.55)}
.hero-actions .btn.ghost:hover{background:rgba(46,196,182,.2);color:#fff;border-color:var(--c-sub)}
.hero-poster{max-width:880px;margin:32px auto 0;aspect-ratio:16/7;box-shadow:var(--shadow-3);border:1px solid rgba(46,196,182,.35);overflow:hidden}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:center;margin-top:20px;font-size:13.5px;color:#a9c3c0}
.hero-meta b{color:#e7f4f1}
/* ===== categories ===== */
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.cat-card{background:var(--card);padding:18px;border-top:2px solid var(--c-sub);box-shadow:var(--shadow-1);transition:.18s}
.cat-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.cat-card h3{font-size:16px;font-weight:800;margin-bottom:6px}
.cat-card p{font-size:13.5px;line-height:1.65;color:var(--ink-soft);margin:0}
/* ===== cards ===== */
.grid-3{display:grid;grid-template-columns:1fr;gap:20px}
.card{background:var(--card);box-shadow:var(--shadow-1);display:flex;flex-direction:column;transition:.18s;border:1px solid transparent}
.card:hover{box-shadow:var(--shadow-3);border-color:rgba(46,196,182,.4)}
.card .cover{aspect-ratio:3/4;overflow:hidden;background:#c9d3cf}
.card .body{padding:18px;display:flex;flex-direction:column;gap:9px;flex:1}
.card h3{font-size:17px;line-height:1.4;font-weight:800}
.card .desc{font-size:13.5px;line-height:1.65;color:var(--ink-soft);margin:0}
.card .meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12.5px;color:#6b7b85;margin-top:auto;padding-top:4px}
.card .link{font-size:13.5px;font-weight:700;color:var(--c-accent)}
.card .link:hover{text-decoration:underline}
/* ===== story ===== */
.story{background:#f6f7f4;padding:32px 24px;box-shadow:var(--shadow-2);border-left:3px solid var(--c-sub)}
.story p{font-size:15.5px;line-height:1.8;color:#2b3a44}
.story p:last-child{margin-bottom:0}
/* ===== highlights ===== */
.hl-list{display:grid;grid-template-columns:1fr;gap:16px}
.hl{background:var(--card);padding:20px;box-shadow:var(--shadow-1);border-top:1px solid var(--line)}
.hl b{display:block;font-size:15.5px;margin-bottom:6px;color:var(--c-main)}
.hl p{font-size:13.5px;line-height:1.7;color:var(--ink-soft);margin:0}
/* ===== people ===== */
.people{display:grid;grid-template-columns:1fr;gap:20px}
.person{background:var(--card);box-shadow:var(--shadow-1);display:flex;gap:16px;padding:16px}
.person .ava{width:76px;height:76px;flex:0 0 76px;overflow:hidden;background:#c9d3cf}
.person h3{font-size:16px;margin-bottom:4px}
.person p{font-size:13.5px;line-height:1.65;color:var(--ink-soft);margin:0}
.person .role{font-size:12.5px;color:var(--c-sub);font-weight:700;letter-spacing:.08em}
/* ===== episodes ===== */
.ep-list{background:#f6f7f4;box-shadow:var(--shadow-2);padding:8px 18px}
.ep{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px 0;border-bottom:1px dashed var(--line)}
.ep:last-child{border-bottom:0}
.ep .no{font-size:15px;font-weight:800;color:var(--c-main);min-width:64px}
.ep .info{flex:1;min-width:180px}
.ep .info h3{font-size:16px;margin-bottom:2px}
.ep .info p{font-size:13.5px;color:var(--ink-soft);margin:0;line-height:1.6}
.ep .meta{font-size:12.5px;color:#6b7b85;min-width:96px}
.ep button{
  min-height:42px;padding:8px 18px;font-size:13.5px;font-weight:700;font-family:inherit;cursor:pointer;
  border:1px solid var(--c-main);background:transparent;color:var(--c-main);transition:.18s;
}
.ep button:hover{background:rgba(46,196,182,.18);border-color:var(--c-sub)}
.ep button.on{background:var(--c-accent);border-color:var(--c-accent);color:#052220}
.queue-bar{margin-top:18px;font-size:14px;color:var(--ink-soft)}
.queue-bar b{color:var(--c-main)}
/* ===== related ===== */
.rel-grid{display:grid;grid-template-columns:1fr;gap:20px}
.rel{background:var(--card);box-shadow:var(--shadow-1);display:flex;flex-direction:column}
.rel .cover{aspect-ratio:16/9;overflow:hidden;background:#c9d3cf}
.rel .body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.rel h3{font-size:16px}
.rel p{font-size:13.5px;color:var(--ink-soft);line-height:1.65;margin:0}
.rel .kw{font-size:12.5px;color:#6b7b85}
/* ===== faq ===== */
.faq{display:grid;grid-template-columns:1fr;gap:12px}
details.qa{background:#f6f7f4;box-shadow:var(--shadow-1);padding:0}
details.qa summary{
  cursor:pointer;padding:16px 18px;font-size:15.5px;font-weight:700;color:var(--c-main);
  list-style:none;display:flex;justify-content:space-between;gap:12px;
}
details.qa summary::-webkit-details-marker{display:none}
details.qa summary::after{content:"+";color:var(--c-sub);font-weight:800}
details.qa[open] summary::after{content:"–"}
details.qa p{padding:0 18px 16px;font-size:14px;line-height:1.75;color:var(--ink-soft);margin:0}
/* ===== footer ===== */
footer.site{margin-top:72px;background:#0D1B2A;color:#b9ccc9;padding:56px 0 32px}
footer.site h2,footer.site h3{color:#eaf4f1}
footer.site a{color:#cbe6e1}
footer.site a:hover{color:var(--c-accent)}
.foot-grid{display:grid;grid-template-columns:1fr;gap:28px}
.foot-grid h3{font-size:15px;margin-bottom:12px;letter-spacing:.06em}
.foot-grid ul{list-style:none;margin:0;padding:0}
.foot-grid li{margin-bottom:8px;font-size:13.5px}
.foot-note{margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);font-size:12.5px;line-height:1.7;color:#93a8a5}
.foot-note p{margin:0 0 10px}
.beian{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;margin-top:12px}
.friend-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:13.5px}
#toTop{position:fixed;right:18px;bottom:18px;z-index:50;min-height:44px;padding:10px 18px;font-size:13.5px;font-weight:700;border:1px solid var(--c-sub);background:#0D1B2A;color:#d9f4f0;cursor:pointer;box-shadow:var(--shadow-2)}
#toTop:hover{background:var(--c-accent);color:#052220}
/* ===== responsive ===== */
@media(min-width:720px){
  html{font-size:16px}
  body{font-size:16px}
  .wrap{padding:0 32px}
  :root{--sec:72px}
  .hero h1{font-size:46px}
  .cat-grid{grid-template-columns:repeat(3,1fr)}
  .grid-3{grid-template-columns:repeat(3,1fr);gap:20px}
  .hl-list{grid-template-columns:repeat(2,1fr)}
  .people{grid-template-columns:repeat(2,1fr)}
  .rel-grid{grid-template-columns:repeat(2,1fr)}
  .faq{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:1100px){
  .wrap{padding:0 40px}
  :root{--sec:80px}
  .hero{padding:64px 0 68px}
  .hero h1{font-size:56px}
  .sec-head h2{font-size:30px}
  .cat-grid{grid-template-columns:repeat(4,1fr)}
  .people{grid-template-columns:repeat(4,1fr)}
  .rel-grid{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:900px){
  nav.main{display:none}
  .search input{width:150px}
  .menu-btn{display:inline-flex;align-items:center;justify-content:center}
}
@media(max-width:520px){
  .search{display:none}
  .hero h1{font-size:32px}
  .hero-poster{aspect-ratio:4/3}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}