:root{
  --brand:#1b5fbe; --brand-2:#2f8cf0; --accent:#f5821f; --accent-2:#ffb347;
  --ink:#15202b; --ink-2:#41505f; --muted:#7b8a99; --line:#e3e9f0;
  --bg:#f5f8fc; --card:#ffffff; --radius:14px;
  --shadow:0 8px 28px rgba(20,50,90,.08);
  --shadow-hover:0 14px 40px rgba(20,50,90,.14);
}
*{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:'PingFang SC','HarmonyOS Sans SC','Microsoft YaHei','Hiragino Sans GB',sans-serif;
  font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;line-height:1.3;font-weight:700}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}

/* header */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:70px;gap:16px}
.logo{display:flex;align-items:center;gap:10px}
.logo img{width:42px;height:42px;border-radius:10px;object-fit:cover;box-shadow:0 4px 12px rgba(27,95,190,.25)}
.logo-text{display:flex;flex-direction:column;line-height:1.15}
.logo-text b{font-size:19px;letter-spacing:.5px;color:var(--brand)}
.logo-text i{font-size:10px;color:var(--muted);font-style:normal;letter-spacing:.6px;text-transform:uppercase}
.main-nav ul{display:flex;gap:6px}
.main-nav a{display:block;padding:9px 15px;border-radius:9px;font-size:15px;color:var(--ink-2);transition:.2s}
.main-nav a:hover{background:#eef5ff;color:var(--brand)}
.main-nav a.active{background:var(--brand);color:#fff;box-shadow:0 6px 16px rgba(27,95,190,.3)}
.menu-btn{display:none;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:20px;
  width:42px;height:42px;cursor:pointer;color:var(--brand)}

/* hero */
.hero{background:
   radial-gradient(1000px 420px at 88% -10%,rgba(245,130,31,.16),transparent 60%),
   radial-gradient(900px 500px at 6% 0%,rgba(47,140,240,.2),transparent 55%),
   linear-gradient(180deg,#fff 0%,#f2f7ff 100%);
  padding:46px 0 40px;border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center}
.eyebrow{font-size:12px;letter-spacing:2px;color:var(--brand);font-weight:700;margin:0 0 12px}
.hero-lead h1{font-size:40px;line-height:1.22;letter-spacing:.5px;margin-bottom:16px}
.hero-sub{color:var(--ink-2);font-size:16px;margin:0 0 22px;max-width:520px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 22px;border-radius:11px;font-size:15px;font-weight:600;transition:.2s}
.btn-primary{background:var(--brand);color:#fff;box-shadow:0 10px 24px rgba(27,95,190,.32)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(27,95,190,.4)}
.btn-ghost{background:#fff;color:var(--brand);border:1px solid var(--line)}
.btn-ghost:hover{border-color:var(--brand);background:#f2f7ff}
.hero-grid{display:grid;gap:16px}
.hero-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
  transition:.25s;display:block}
.hero-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.hero-card img{width:100%;height:150px;object-fit:cover}
.hc-body{padding:14px 16px 16px}
.hero-card h3{font-size:17px;margin:8px 0 6px}
.hero-card p{font-size:13.5px;color:var(--ink-2);margin:0 0 8px;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hero-card time{font-size:12px;color:var(--muted)}
.tag{display:inline-block;background:#eaf2ff;color:var(--brand);font-size:12px;
  padding:2px 10px;border-radius:20px;font-weight:600}

/* stats */
.stats{background:#fff;border-bottom:1px solid var(--line)}
.stats-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:22px 20px}
.stats-inner div{text-align:center}
.stats-inner b{display:block;font-size:28px;color:var(--brand)}
.stats-inner span{font-size:13px;color:var(--muted)}

/* blocks */
.block{padding:44px 0}
.block-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px}
.block-head h2{font-size:25px;position:relative;padding-left:16px}
.block-head h2::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:5px;
  border-radius:4px;background:linear-gradient(180deg,var(--brand),var(--accent))}
.block-head a{color:var(--brand);font-size:14px;font-weight:600}
.block-head a:hover{text-decoration:underline}

.cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.cat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 18px;transition:.22s;box-shadow:var(--shadow)}
.cat-card:hover{transform:translateY(-4px);border-color:#cfe0f5;box-shadow:var(--shadow-hover)}
.cat-card h3{font-size:17px;margin-bottom:6px}
.cat-card p{font-size:13px;color:var(--muted);margin:0 0 12px;min-height:36px}
.cat-card span{font-size:13px;color:var(--accent);font-weight:600}

.latest-wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:26px}
.latest-main{display:grid;gap:16px}
.latest-side li a{display:flex;gap:12px;padding:12px 14px;border-radius:12px;background:#fff;
  border:1px solid var(--line);margin-bottom:10px;transition:.2s;align-items:center}
.latest-side li a:hover{border-color:#cfe0f5;box-shadow:var(--shadow);transform:translateX(3px)}
.latest-side img{width:82px;height:62px;border-radius:9px;object-fit:cover;flex:none}
.latest-side h4{font-size:14.5px;font-weight:600;margin-bottom:4px;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.meta{font-size:12px;color:var(--muted)}

/* breadcrumb */
.crumb{font-size:13px;color:var(--muted);padding:16px 0}
.crumb a{color:var(--brand)}
.crumb span{margin:0 6px}

/* article */
.article{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:34px 38px;box-shadow:var(--shadow);margin-bottom:34px}
.article h1{font-size:30px;line-height:1.35;margin-bottom:16px}
.article-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--muted);
  padding-bottom:18px;border-bottom:1px dashed var(--line);margin-bottom:22px}
.article-summary{background:#f3f8ff;border-left:4px solid var(--brand);padding:14px 18px;
  border-radius:0 10px 10px 0;color:var(--ink-2);font-size:15px;margin-bottom:22px}
.article figure{margin:0 0 24px}
.article figure img{width:100%;border-radius:12px;max-height:460px;object-fit:cover}
.article figure figcaption{font-size:13px;color:var(--muted);text-align:center;margin-top:8px}
.article-body p{font-size:16.5px;line-height:1.9;color:#243342;margin:0 0 18px;text-align:justify}
.tags{margin-top:26px;display:flex;gap:8px;flex-wrap:wrap}
.tags em{font-style:normal;font-size:12.5px;background:#f0f4f9;color:var(--ink-2);
  padding:4px 12px;border-radius:20px}
.tags em::before{content:"# "}

.related{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:24px 28px;box-shadow:var(--shadow)}
.related h2{font-size:19px;margin-bottom:16px;padding-left:14px;position:relative}
.related h2::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:3px;
  background:var(--accent)}
.related ul li a{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--line);align-items:center}
.related ul li:first-child a{border-top:0}
.related ul li a:hover h4{color:var(--brand)}
.related img{width:96px;height:68px;border-radius:9px;object-fit:cover;flex:none}
.related h4{font-size:15px;transition:.2s}
.related .meta{margin-top:4px;display:block}

/* list page */
.list-layout{display:grid;grid-template-columns:1fr 300px;gap:28px;align-items:start}
.news-list{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:10px 26px;box-shadow:var(--shadow)}
.news-item{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.news-item:last-child{border-bottom:0}
.news-item img{width:224px;height:146px;border-radius:11px;object-fit:cover;flex:none}
.news-item h3{font-size:19px;margin:6px 0 8px;transition:.2s}
.news-item:hover h3{color:var(--brand)}
.news-item p{font-size:14.5px;color:var(--ink-2);margin:0 0 10px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-item .meta{display:flex;gap:14px;font-size:12.5px;color:var(--muted)}

.pager{display:flex;justify-content:center;gap:8px;margin:30px 0;flex-wrap:wrap}
.pager a,.pager span{display:inline-block;min-width:42px;text-align:center;padding:9px 12px;
  border-radius:9px;border:1px solid var(--line);background:#fff;font-size:14px;color:var(--ink-2)}
.pager a:hover{border-color:var(--brand);color:var(--brand)}
.pager .cur{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}
.pager .disabled{color:#c3ccd6;background:#f7f9fc}

.side-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 22px;box-shadow:var(--shadow);margin-bottom:20px}
.side-card h3{font-size:17px;margin-bottom:14px;padding-left:12px;position:relative}
.side-card h3::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;
  border-radius:3px;background:var(--brand)}
.side-card li a{display:flex;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px}
.side-card li:last-child a{border-bottom:0}
.side-card li a:hover{color:var(--brand)}
.side-card .rank-no{width:22px;height:22px;border-radius:6px;background:#eef5ff;color:var(--brand);
  font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.side-card .rank-no.top{background:var(--accent);color:#fff}

/* category cards page */
.cat-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.cat-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:24px 26px;box-shadow:var(--shadow);transition:.22s}
.cat-panel:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}
.cat-panel h2{font-size:20px;margin-bottom:6px;color:var(--brand)}
.cat-panel > p{font-size:14px;color:var(--muted);margin:0 0 14px}
.cat-panel li a{display:block;padding:8px 0;border-bottom:1px dashed var(--line);font-size:14.5px}
.cat-panel li:last-child a{border-bottom:0}
.cat-panel li a:hover{color:var(--brand)}
.cat-panel li a time{float:right;color:var(--muted);font-size:12.5px}

/* about / nav page */
.page-hero{background:linear-gradient(120deg,#1b5fbe,#2f8cf0 55%,#f5821f 160%);color:#fff;
  padding:44px 0;margin-bottom:34px}
.page-hero h1{font-size:32px;margin-bottom:8px}
.page-hero p{margin:0;opacity:.92}
.prose{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:32px 36px;box-shadow:var(--shadow);margin-bottom:30px}
.prose h2{font-size:22px;margin:26px 0 12px;padding-left:14px;position:relative}
.prose h2:first-child{margin-top:0}
.prose h2::before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:4px;border-radius:3px;
  background:var(--brand)}
.prose p{font-size:16px;color:var(--ink-2);margin:0 0 14px}
.nav-block{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 26px;box-shadow:var(--shadow);margin-bottom:20px}
.nav-block h3{font-size:18px;margin-bottom:14px;padding-left:12px;position:relative}
.nav-block h3::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:3px;
  background:var(--accent)}
.nav-links{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 18px}
.nav-links a{font-size:14.5px;color:var(--ink-2);padding:5px 0;display:block;
  border-bottom:1px dashed transparent}
.nav-links a:hover{color:var(--brand);border-bottom-color:var(--brand)}

/* footer */
.site-footer{background:#0f2440;color:#c8d6e6;margin-top:40px;padding:44px 0 24px}
.footer-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:26px}
.f-col h4{font-size:16px;color:#fff;margin-bottom:14px}
.f-col p{font-size:13.5px;color:#9fb3c9;line-height:1.75}
.f-links li a{font-size:13.5px;color:#9fb3c9;padding:4px 0;display:block}
.f-links li a:hover{color:#fff}
.f-small{font-size:12.5px;color:#8296ad}
.copyright{border-top:1px solid #1c3550;margin-top:26px;padding-top:18px;text-align:center}
.copyright p{font-size:13px;color:#8296ad;margin:4px 0}
.copyright a{color:#a9bdd4}
.copyright a:hover{color:#fff}

@media (max-width:1080px){
  .cat-grid{grid-template-columns:repeat(3,1fr)}
  .nav-links{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr}
  .hero-lead h1{font-size:32px}
  .latest-wrap{grid-template-columns:1fr}
  .list-layout{grid-template-columns:1fr}
  .cat-list{grid-template-columns:1fr}
  .footer-cols{grid-template-columns:1fr 1fr}
  .nav-links{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .main-nav{position:absolute;top:70px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);
    display:none;box-shadow:0 12px 24px rgba(20,50,90,.12)}
  .main-nav.open{display:block}
  .main-nav ul{flex-direction:column;padding:10px 16px}
  .menu-btn{display:block}
  .cat-grid{grid-template-columns:repeat(2,1fr)}
  .stats-inner{grid-template-columns:repeat(2,1fr);gap:18px}
  .hero-lead h1{font-size:27px}
  .article{padding:24px 20px}
  .article h1{font-size:23px}
  .article-body p{font-size:16px}
  .news-item{flex-direction:column;gap:12px}
  .news-item img{width:100%;height:190px}
  .page-hero h1{font-size:25px}
  .prose{padding:24px 20px}
}
