/* =========================================================
   薪火长征路 · 山河作证 — FUSION LAYER
   在 home.css（山河纪视觉系统）之上，补齐薪火骨架所需的组件：
   顶部搜索、专题档案入口、资讯/下载、全站搜索面板。
   仅使用 home.css 已声明的设计令牌，不引入第二套色板。
   ========================================================= */

/* ---------- 顶部导航：站内搜索 ---------- */
.nav__search{
  display:flex;align-items:center;gap:9px;flex:0 0 auto;
  margin:0 0 0 6px;padding:8px 14px;
  border:1px solid rgba(216,174,98,.22);border-radius:999px;
  background:rgba(12,9,8,.42);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:border-color .35s var(--ease),background .35s var(--ease),padding .35s var(--ease);
}
.nav__search:hover,.nav__search:focus-within{
  border-color:rgba(216,174,98,.62);background:rgba(12,9,8,.7);
}
.nav__search-ico{
  width:15px;height:15px;flex:0 0 15px;fill:none;
  stroke:var(--gold);stroke-width:1.9;stroke-linecap:round;
  transition:stroke .35s ease;
}
.nav__search:hover .nav__search-ico{stroke:var(--gold-lt)}
.nav__search input{
  width:96px;padding:0;border:0;background:none;outline:none;
  color:var(--paper);font-family:var(--sans);font-size:13px;
  letter-spacing:.06em;cursor:pointer;
  transition:width .35s var(--ease);
}
.nav__search input::placeholder{color:var(--muted);opacity:.82}

/* ---------- 精神章节：双按钮 ---------- */
.spirit__actions{
  position:relative;z-index:2;display:flex;flex-wrap:wrap;
  align-items:center;justify-content:center;gap:14px;
}

/* ---------- 星火行军：站内游戏入口 ---------- */
.game__more{
  margin:40px 0 0;text-align:center;
  font-size:12.5px;letter-spacing:.14em;color:var(--muted);
}
.game__more a{
  color:var(--gold-lt);text-decoration:none;
  border-bottom:1px solid rgba(216,174,98,.3);padding-bottom:2px;
  transition:color .3s ease,border-color .3s ease;
}
.game__more a:hover{color:#fff;border-bottom-color:var(--gold)}
.game__more i{font-style:normal;margin:0 10px;opacity:.42}

/* =========================================================
   专题档案 · PORTAL
   ========================================================= */
.portal{
  position:relative;overflow:hidden;
  padding:124px var(--gutter) 104px;
  background:linear-gradient(180deg,#0c0908 0%,#110c09 38%,#0a0706 100%);
  border-top:1px solid rgba(216,174,98,.1);
}
.portal__glow{
  position:absolute;inset:-20% 0 auto 50%;height:70%;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(52% 60% at 50% 40%,rgba(166,36,27,.16),transparent 72%);
}
.portal__head{
  position:relative;z-index:2;max-width:760px;
  margin:0 auto 66px;text-align:center;
}
.portal__head .chapter-tag{color:var(--gold)}
.portal__head h2{
  margin:0 0 22px;font-family:var(--serif);
  font-size:clamp(32px,4.4vw,62px);font-weight:600;
  line-height:1.24;letter-spacing:.06em;color:var(--paper);
  text-shadow:0 2px 30px rgba(0,0,0,.6);
}
.portal__sub{
  margin:0;font-size:clamp(14px,1.25vw,16px);line-height:2;
  letter-spacing:.1em;color:var(--muted);
}

/* ---------- 六大专题卡片 ---------- */
.portal__grid{
  position:relative;z-index:2;
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
  max-width:1240px;margin:0 auto;
}
.pcard{
  position:relative;display:flex;flex-direction:column;
  padding:32px 28px 26px;min-height:236px;
  border:1px solid rgba(216,174,98,.14);border-radius:2px;
  background:linear-gradient(158deg,rgba(28,21,16,.92),rgba(11,8,7,.94));
  text-decoration:none;overflow:hidden;
  transition:transform .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease);
}
.pcard::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
  background:radial-gradient(70% 90% at 12% 0%,rgba(166,36,27,.26),transparent 66%);
  transition:opacity .5s var(--ease);
}
.pcard::after{
  content:"";position:absolute;left:0;top:0;width:100%;height:2px;
  background:linear-gradient(90deg,var(--crimson),var(--gold),transparent);
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s var(--ease);
}
.pcard:hover{
  transform:translateY(-6px);
  border-color:rgba(216,174,98,.44);
  box-shadow:0 26px 64px rgba(0,0,0,.46);
}
.pcard:hover::before{opacity:1}
.pcard:hover::after{transform:scaleX(1)}
.pcard__no{
  font-family:var(--mono);font-size:10px;letter-spacing:.28em;
  color:var(--gold-dk);
}
.pcard__en{
  position:absolute;top:32px;right:28px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.26em;
  color:rgba(216,174,98,.42);
}
.pcard h3{
  margin:34px 0 10px;font-family:var(--serif);
  font-size:26px;font-weight:600;letter-spacing:.14em;color:var(--paper);
}
.pcard p{
  margin:0;font-size:13.5px;line-height:1.85;
  letter-spacing:.05em;color:var(--muted);
}
.pcard__go{
  margin-top:auto;padding-top:20px;
  display:inline-flex;align-items:center;gap:9px;
  font-size:11px;letter-spacing:.18em;color:var(--gold-dk);
  transition:color .4s ease,gap .4s var(--ease);
}
.pcard__go svg{
  width:20px;height:12px;fill:none;stroke:currentColor;
  stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}
.pcard:hover .pcard__go{color:var(--gold-lt);gap:14px}

/* ---------- 资讯 / 下载 ---------- */
.portal__cols{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1fr 1fr;gap:44px;
  max-width:1240px;margin:58px auto 0;
}
.portal__col h3{
  margin:0 0 8px;display:flex;align-items:baseline;gap:12px;
  font-family:var(--serif);font-size:18px;font-weight:600;
  letter-spacing:.14em;color:var(--paper);
}
.portal__col h3 .pc-tag{
  font-family:var(--mono);font-size:9.5px;font-weight:400;
  letter-spacing:.28em;color:var(--gold-dk);
}
.newsline{
  display:grid;grid-template-columns:88px 1fr 18px;align-items:center;gap:14px;
  padding:15px 0;border-bottom:1px solid rgba(216,174,98,.1);
  text-decoration:none;transition:border-color .4s ease;
}
.newsline time{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;
  color:var(--gold-dk);
}
.newsline b{
  font-weight:400;font-size:14px;line-height:1.6;
  letter-spacing:.04em;color:#d8ccba;transition:color .4s ease;
}
.newsline i{
  font-style:normal;font-size:13px;color:var(--gold);
  opacity:0;transform:translateX(-6px);
  transition:opacity .4s ease,transform .4s var(--ease);
}
.newsline:hover{border-bottom-color:rgba(216,174,98,.3)}
.newsline:hover b{color:var(--paper)}
.newsline:hover i{opacity:1;transform:none}

.dlline{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:13px 0;border-bottom:1px solid rgba(216,174,98,.1);
  text-decoration:none;transition:border-color .4s ease;
}
.dlline b{
  font-weight:400;font-size:13.5px;letter-spacing:.04em;
  color:#d8ccba;transition:color .4s ease;
}
.dlline i{
  font-style:normal;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.16em;color:var(--gold-dk);
  border:1px solid rgba(216,174,98,.18);border-radius:2px;
  padding:3px 7px;flex:0 0 auto;
}
.dlline:hover{border-bottom-color:rgba(216,174,98,.3)}
.dlline:hover b{color:var(--paper)}
.dlline:hover i{border-color:rgba(216,174,98,.44);color:var(--gold)}

/* ---------- 专题游戏条 ---------- */
.portal__games{
  position:relative;z-index:2;
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  max-width:1240px;margin:54px auto 0;padding-top:26px;
  border-top:1px solid rgba(216,174,98,.1);
}
.portal__games-label{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.28em;
  color:var(--gold-dk);margin-right:8px;
}
.portal__games a{
  padding:8px 16px;border:1px solid rgba(216,174,98,.18);border-radius:999px;
  font-size:12px;letter-spacing:.08em;color:#d8ccba;text-decoration:none;
  transition:background .35s ease,border-color .35s ease,color .35s ease;
}
.portal__games a:hover{
  background:rgba(166,36,27,.2);
  border-color:rgba(216,174,98,.48);color:var(--paper);
}

/* =========================================================
   全站搜索面板（复用 search.js 生成的 DOM，改为暗色）
   ========================================================= */
html.sr-lock,html.sr-lock body{overflow:hidden}
.sr-overlay{
  position:fixed;inset:0;z-index:9000;
  display:flex;align-items:flex-start;justify-content:center;
  padding:13vh 20px 40px;
  background:rgba(4,3,2,.84);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
.sr-overlay[hidden]{display:none}
.sr-panel{
  display:flex;flex-direction:column;
  width:min(660px,100%);max-height:72vh;
  background:#12100d;border:1px solid rgba(216,174,98,.24);
  border-radius:3px;overflow:hidden;
  box-shadow:0 44px 130px rgba(0,0,0,.72);
  animation:srIn .34s var(--ease);
}
@keyframes srIn{from{opacity:0;transform:translateY(-12px) scale(.99)}to{opacity:1;transform:none}}
.sr-head{
  display:flex;align-items:center;gap:13px;
  padding:17px 19px;border-bottom:1px solid rgba(216,174,98,.14);
}
.sr-ico{
  width:19px;height:19px;flex:0 0 19px;
  fill:none;stroke:var(--gold);stroke-width:1.9;stroke-linecap:round;
}
.sr-input{
  flex:1;min-width:0;border:0;background:none;outline:none;
  color:var(--paper);font-family:var(--serif);font-size:17px;letter-spacing:.04em;
}
.sr-input::placeholder{color:var(--muted);opacity:.7}
.sr-close{
  flex:0 0 auto;width:28px;height:28px;border:0;border-radius:50%;
  background:rgba(216,174,98,.07);color:var(--muted);
  font-size:13px;line-height:1;cursor:pointer;
  transition:background .3s ease,color .3s ease;
}
.sr-close:hover{background:rgba(166,36,27,.24);color:var(--paper)}
.sr-body{flex:1;overflow-y:auto;overscroll-behavior:contain}
.sr-hint{padding:18px}
.sr-tip{font-size:12.5px;color:var(--muted);letter-spacing:.06em;margin-bottom:14px}
.sr-hot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.sr-hint .sr-hot{max-width:400px}
.sr-chip{
  border:1px solid rgba(216,174,98,.2);border-radius:999px;
  background:rgba(216,174,98,.05);color:#cbbca4;
  font-size:11.5px;letter-spacing:.06em;padding:5px 12px;cursor:pointer;
  transition:background .3s ease,border-color .3s ease,color .3s ease;
}
.sr-chip:hover{background:rgba(166,36,27,.2);border-color:rgba(216,174,98,.5);color:var(--paper)}
.sr-list{list-style:none;margin:0;padding:0}
.sr-item{border-bottom:1px solid rgba(216,174,98,.09)}
.sr-item:last-child{border-bottom:none}
.sr-item > a{
  display:block;padding:13px 19px;text-decoration:none;
  border-left:2px solid transparent;
  transition:background .28s ease,border-color .28s ease;
}
.sr-item.on > a{background:rgba(166,36,27,.14);border-left-color:var(--crimson-lt)}
.sr-crumb{font-size:10.5px;letter-spacing:.12em;color:var(--gold-dk);margin-bottom:4px}
.sr-crumb i{font-style:normal;margin:0 6px;opacity:.5}
.sr-title{font-family:var(--serif);font-size:16px;color:var(--paper);line-height:1.5;letter-spacing:.03em}
.sr-desc{font-size:12.5px;line-height:1.8;color:var(--muted);margin-top:4px}
.sr-list mark{background:rgba(216,174,98,.22);color:var(--gold-lt);border-radius:2px;padding:0 1px}
.sr-empty{padding:44px 24px 38px;text-align:center;color:var(--muted);font-size:14px}
.sr-empty span{display:block;margin-top:9px;font-size:12px;color:rgba(162,148,127,.72)}
.sr-empty .sr-hot{justify-content:center;margin:20px auto 0;max-width:340px}
.sr-baidu-btn{
  display:inline-block;margin-top:16px;padding:11px 22px;border-radius:2px;
  background:var(--crimson);color:#f7ecdb;text-decoration:none;
  font-size:12.5px;letter-spacing:.12em;
  transition:background .3s ease,transform .3s ease;
}
.sr-baidu-btn:hover{background:var(--crimson-lt);transform:translateY(-1px)}
.sr-more{padding:13px 19px 16px}
.sr-more a{
  display:inline-block;font-size:12px;letter-spacing:.1em;
  color:var(--muted);text-decoration:none;
  border:1px solid rgba(216,174,98,.18);border-radius:999px;padding:7px 15px;
  transition:color .3s ease,border-color .3s ease,background .3s ease;
}
.sr-more a:hover{color:var(--paper);border-color:rgba(216,174,98,.5);background:rgba(216,174,98,.06)}
.sr-foot{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:11px 19px;border-top:1px solid rgba(216,174,98,.12);
  font-size:11px;letter-spacing:.1em;color:rgba(162,148,127,.74);
}
.sr-count{color:var(--gold)}
.sr-keys{font-family:var(--mono);font-size:10px;letter-spacing:.06em}

/* =========================================================
   响应式
   ========================================================= */
@media (max-width:1200px){
  .nav__search input{width:64px}
  .portal__grid{gap:14px}
}
@media (max-width:1080px){
  .portal__grid{grid-template-columns:repeat(2,1fr)}
  .portal__cols{grid-template-columns:1fr;gap:34px}
}
@media (max-width:1000px){
  .nav__search{display:none}
}
@media (max-width:900px){
  /* 图标式搜索：透明输入框盖住圆形按钮，点击即可唤起面板 */
  .nav__search{
    display:flex;position:relative;
    width:38px;height:38px;padding:0;margin-left:2px;
    justify-content:center;border-radius:50%;
  }
  .nav__search input{
    position:absolute;inset:0;width:100%;height:100%;
    opacity:0;font-size:16px;
  }
  .nav__search-ico{width:16px;height:16px}
  .portal{padding:92px var(--gutter) 76px}
  .portal__head{margin-bottom:44px}
  .portal__grid{grid-template-columns:1fr;gap:12px;max-width:560px}
  .pcard{min-height:0;padding:26px 22px 22px}
  .pcard h3{margin-top:24px;font-size:22px}
  .pcard__en{top:26px;right:22px}
  .portal__cols{margin-top:42px}
  .sr-overlay{padding:0;align-items:stretch}
  .sr-panel{width:100%;max-height:100svh;border-radius:0;border:none}
  .portal__games{margin-top:38px}
}
@media (max-width:560px){
  /* 窄屏导航：压缩品牌与按钮，避免右侧 CTA 被裁切 */
  .nav{gap:8px;padding:0 16px}
  .nav__brand{gap:8px}
  .nav__brand span{font-size:16px;letter-spacing:.08em}
  .nav__star{width:17px;height:17px}
  .nav__cta{flex:0 0 auto;padding:9px 10px;font-size:10px;letter-spacing:.04em}
  .lang{gap:2px}
  .lang__btn{font-size:10px;padding:3px 2px}
  .portal__head h2{font-size:clamp(26px,8vw,36px);letter-spacing:.04em}
  .portal__sub{font-size:13px;line-height:1.95}
  .newsline{grid-template-columns:1fr 18px;gap:6px}
  .newsline time{grid-column:1/-1;font-size:10px}
  .pcard__go{padding-top:16px}
}

/* =========================================================
   滚动序章 · 站体层让位
   序章占满首屏时隐藏站点导航/刻度/进度条，避免叠在路线图上。
   ========================================================= */
html.intro-mode .nav,
html.intro-mode .rail,
html.intro-mode .measure,
html.intro-mode .scroll-progress,
html.intro-mode .skip-link,
html.intro-mode .perf{
  opacity:0;
  pointer-events:none;
}
html.intro-mode .nav{
  transition:opacity .5s ease;
}
