/* ============================================================================
   侗乡文脉 · 样式表
   配色取意：侗族靛蓝染布（主色）、木楼原木（辅色）、朱砂与铜饰（点缀）、宣纸（底色）
   ========================================================================== */

/* ---------------------------------------------------------------- 变量 */
:root{
  /* 纸与墨 */
  --paper:      #F5F1E7;
  --paper-2:    #FBF8F1;
  --card:       #FFFFFF;
  --ink:        #241F19;
  --ink-2:      #4C453A;
  --ink-3:      #857D6E;
  --line:       #E2D9C9;
  --line-2:     #EFE9DC;

  /* 靛蓝 —— 主色 */
  --indigo:     #1B3B52;
  --indigo-2:   #234E6B;
  --indigo-3:   #3E7A9E;
  --indigo-soft:#E8F0F5;

  /* 木色 */
  --wood:       #8B5E3C;
  --wood-soft:  #F4E9DA;

  /* 朱砂 */
  --cinnabar:   #A8342A;
  --cinnabar-soft:#F9E8E5;

  /* 青绿 */
  --jade:       #3F7358;
  --jade-soft:  #E5F0E9;

  /* 铜金 */
  --bronze:     #96703F;
  --bronze-soft:#F4EBDB;

  /* 阴影与圆角 */
  --shadow-xs:  0 1px 2px rgba(60,45,25,.05);
  --shadow-sm:  0 2px 8px -3px rgba(60,45,25,.14);
  --shadow:     0 8px 24px -12px rgba(27,59,82,.28);
  --shadow-lg:  0 24px 64px -24px rgba(27,59,82,.38);

  --radius-sm:  8px;
  --radius:     12px;
  --radius-lg:  18px;
  --wrap:       1180px;

  /* 字体 */
  --f-serif: "Songti SC","STSong","Noto Serif SC","Source Han Serif SC","STZhongsong","SimSun",serif;
  --f-sans:  "PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans SC",system-ui,sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* 板块主题色 */
[data-accent="indigo"]  { --accent:var(--indigo);   --accent-2:var(--indigo-2); --accent-soft:var(--indigo-soft); }
[data-accent="wood"]    { --accent:var(--wood);     --accent-2:#A06F47;          --accent-soft:var(--wood-soft); }
[data-accent="cinnabar"]{ --accent:var(--cinnabar); --accent-2:#C0433A;          --accent-soft:var(--cinnabar-soft); }
[data-accent="jade"]    { --accent:var(--jade);     --accent-2:#4C8868;          --accent-soft:var(--jade-soft); }
[data-accent="bronze"]  { --accent:var(--bronze);   --accent-2:#AE854C;          --accent-soft:var(--bronze-soft); }

/* ---------------------------------------------------------------- 基础 */
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  background-color:var(--paper);
  /* 极淡的宣纸纹理 */
  background-image:
    radial-gradient(circle at 12% 8%, rgba(176,141,87,.055), transparent 42%),
    radial-gradient(circle at 88% 4%, rgba(27,59,82,.05), transparent 40%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%238B5E3C' stroke-width='.6' opacity='.05'%3E%3Cpath d='M0 60h120M60 0v120'/%3E%3Cpath d='M30 0 0 30M120 30 90 0M0 90l30 30M90 120l30-30'/%3E%3C/g%3E%3C/svg%3E");
  background-attachment:fixed;
  color:var(--ink);
  font-family:var(--f-sans);
  font-size:15px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font:inherit; color:inherit; cursor:pointer; }
input{ font:inherit; }

.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px; }

::selection{ background:rgba(27,59,82,.16); }

/* 滚动条 */
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-track{ background:var(--paper); }
::-webkit-scrollbar-thumb{ background:#CFC4AE; border:3px solid var(--paper); border-radius:99px; }
::-webkit-scrollbar-thumb:hover{ background:var(--wood); }

/* ---------------------------------------------------------------- 顶部纹样带 */
.brocade-bar{
  height:14px;
  background-color:var(--indigo);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14' viewBox='0 0 28 14'%3E%3Cg fill='none' stroke='%23C79A5B' stroke-width='1.1'%3E%3Cpath d='M7 1 13 7 7 13 1 7Z'/%3E%3Cpath d='M21 1 27 7 21 13 15 7Z'/%3E%3C/g%3E%3Cg fill='%23A8342A'%3E%3Ccircle cx='7' cy='7' r='1.3'/%3E%3Ccircle cx='21' cy='7' r='1.3'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat-x;
  background-position:center;
}

/* ---------------------------------------------------------------- 顶栏 */
.site-header{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(251,248,241,.9);
  backdrop-filter:saturate(1.6) blur(12px);
  -webkit-backdrop-filter:saturate(1.6) blur(12px);
  border-bottom:1px solid var(--line-2);
  transition:box-shadow .3s var(--ease);
}
.site-header.is-stuck{ box-shadow:0 6px 24px -18px rgba(27,59,82,.6); }

.header-inner{
  display:flex;
  align-items:center;
  gap:24px;
  height:70px;
}

.brand{
  display:flex;
  align-items:center;
  gap:11px;
  flex-shrink:0;
}
.brand-mark{
  width:40px; height:40px;
  color:var(--indigo);
  display:block;
  transition:transform .45s var(--ease);
}
.brand:hover .brand-mark{ transform:rotate(180deg); }
.brand-mark svg{ width:100%; height:100%; display:block; }

.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-name{
  font-family:var(--f-serif);
  font-size:20px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--indigo);
}
.brand-sub{
  font-style:normal;
  font-size:10.5px;
  letter-spacing:.26em;
  color:var(--ink-3);
  margin-top:1px;
}

/* 主导航 */
.main-nav{
  display:flex;
  align-items:center;
  gap:2px;
  margin-left:auto;
  overflow-x:auto;
  scrollbar-width:none;
}
.main-nav::-webkit-scrollbar{ display:none; }

.nav-link{
  position:relative;
  padding:8px 14px;
  border-radius:8px;
  font-size:14.5px;
  color:var(--ink-2);
  white-space:nowrap;
  letter-spacing:.04em;
  transition:color .2s, background .2s;
}
.nav-link:hover{ color:var(--accent,var(--indigo)); background:rgba(27,59,82,.05); }
.nav-link.is-active{ color:var(--accent,var(--indigo)); font-weight:600; }
.nav-link.is-active::after{
  content:"";
  position:absolute;
  left:50%; bottom:1px;
  width:5px; height:5px;
  background:var(--accent,var(--indigo));
  transform:translateX(-50%) rotate(45deg);
  border-radius:1px;
}
.nav-link .nav-count{
  font-size:11px;
  color:var(--ink-3);
  margin-left:4px;
  font-weight:400;
}

/* 顶栏「首页」入口 */
.nav-home{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.nav-home .ico{
  width:14px; height:14px;
  display:block;
  flex-shrink:0;
  opacity:.7;
  transition:opacity .2s, transform .3s var(--ease);
}
.nav-home:hover .ico{ opacity:1; transform:translateY(-1.5px); }
.nav-home.is-active .ico{ opacity:1; }

/* 搜索 */
.header-tools{ display:flex; align-items:center; gap:10px; flex-shrink:0; }

.search-wrap{
  position:relative;
  display:flex;
  align-items:center;
  width:200px;
  height:38px;
  padding:0 12px 0 34px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:99px;
  transition:width .3s var(--ease), border-color .2s, box-shadow .2s;
}
.search-wrap:focus-within{
  width:260px;
  border-color:var(--indigo-3);
  box-shadow:0 0 0 3px rgba(62,122,158,.14);
}
.search-ico{
  position:absolute;
  left:12px;
  width:16px; height:16px;
  fill:none;
  stroke:var(--ink-3);
  stroke-width:1.8;
  stroke-linecap:round;
  pointer-events:none;
}
.search-wrap input{
  width:100%;
  border:0;
  background:transparent;
  outline:none;
  font-size:13.5px;
  color:var(--ink);
}
.search-wrap input::placeholder{ color:#A79E8E; }
.search-wrap input::-webkit-search-cancel-button{ display:none; }
.search-clear{
  border:0; background:transparent;
  font-size:16px; line-height:1;
  color:var(--ink-3);
  padding:0 0 0 6px;
}
.search-clear:hover{ color:var(--cinnabar); }

.nav-toggle{
  display:none;
  width:38px; height:38px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
}
.nav-toggle span{
  display:block;
  width:16px; height:1.6px;
  background:var(--indigo);
  border-radius:2px;
  transition:transform .25s var(--ease), opacity .2s;
}
.nav-toggle.is-open span:nth-child(1){ transform:translateY(5.6px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform:translateY(-5.6px) rotate(-45deg); }

/* ---------------------------------------------------------------- 首页 Hero */
.hero{
  position:relative;
  overflow:hidden;
  border-bottom:1px solid var(--line-2);
  background:
    linear-gradient(180deg, var(--paper-2), var(--paper) 78%);
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%231B3B52' stroke-width='.8' opacity='.07'%3E%3Cpath d='M14 2 26 14 14 26 2 14Z'/%3E%3Cpath d='M42 30 54 42 42 54 30 42Z'/%3E%3C/g%3E%3C/svg%3E");
  pointer-events:none;
  mask-image:linear-gradient(120deg, transparent 40%, #000 100%);
  -webkit-mask-image:linear-gradient(120deg, transparent 40%, #000 100%);
}
.hero-inner{
  position:relative;
  display:grid;
  grid-template-columns:1.35fr .95fr;
  gap:40px;
  align-items:center;
  padding:64px 0 58px;
}
.hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:12px;
  letter-spacing:.24em;
  color:var(--wood);
  margin-bottom:20px;
}
.hero-eyebrow::before{
  content:"";
  width:26px; height:1px;
  background:var(--wood);
  opacity:.55;
}
.hero-title{
  font-family:var(--f-serif);
  font-size:clamp(34px,4.4vw,54px);
  line-height:1.24;
  letter-spacing:.06em;
  font-weight:700;
  color:var(--indigo);
  margin:0 0 18px;
}
.hero-title .accent{
  color:var(--cinnabar);
  position:relative;
  z-index:0;
}
.hero-title .accent::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:6px;
  height:8px;
  background:rgba(168,52,42,.1);
  z-index:-1;
}
.hero-lede{
  font-size:15.5px;
  line-height:1.95;
  color:var(--ink-2);
  max-width:56ch;
  margin:0 0 30px;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; }

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:44px;
  padding:0 22px;
  border-radius:99px;
  border:1px solid transparent;
  font-size:14.5px;
  letter-spacing:.06em;
  transition:transform .2s var(--ease), box-shadow .25s var(--ease), background .2s, color .2s, border-color .2s;
}
.btn svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.btn-primary{
  background:var(--indigo);
  color:#F7F4EC;
  box-shadow:0 10px 26px -12px rgba(27,59,82,.66);
}
.btn-primary:hover{ background:var(--indigo-2); transform:translateY(-2px); box-shadow:0 16px 32px -14px rgba(27,59,82,.7); }
.btn-ghost{
  background:var(--card);
  border-color:var(--line);
  color:var(--indigo);
}
.btn-ghost:hover{ border-color:var(--indigo-3); transform:translateY(-2px); box-shadow:var(--shadow-sm); }

/* Hero 插画 */
.hero-art{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:320px;
}
.hero-art .tower{
  width:78%;
  max-width:300px;
  color:var(--indigo);
  opacity:.9;
  filter:drop-shadow(0 20px 30px rgba(27,59,82,.13));
}
.hero-art .halo{
  position:absolute;
  width:300px; height:300px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(176,141,87,.22), transparent 68%);
  z-index:-1;
}
.hero-art .ring{
  position:absolute;
  width:270px; height:270px;
  border:1px dashed rgba(139,94,60,.32);
  border-radius:50%;
  animation:spin 60s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---------------------------------------------------------------- 统计条 */
.stat-bar{
  display:grid;
  /* 跟随板块数量自动分栏，增删板块都不会留下空格 */
  grid-template-columns:repeat(auto-fit,minmax(0,1fr));
  gap:1px;
  background:var(--line-2);
  border-block:1px solid var(--line-2);
}
.stat{
  background:var(--paper-2);
  padding:22px 18px;
  text-align:center;
}
.stat-num{
  font-family:var(--f-serif);
  font-size:30px;
  font-weight:700;
  line-height:1;
  color:var(--accent,var(--indigo));
  letter-spacing:.02em;
}
.stat-label{
  display:block;
  margin-top:8px;
  font-size:12.5px;
  letter-spacing:.16em;
  color:var(--ink-3);
}

/* ---------------------------------------------------------------- 区块 */
.section-block{ padding:56px 0; }
.section-block + .section-block{ border-top:1px solid var(--line-2); }

.sec-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:26px;
}
.sec-title{
  position:relative;
  font-family:var(--f-serif);
  font-size:24px;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--indigo);
  margin:0;
  padding-left:18px;
}
.sec-title::before{
  content:"";
  position:absolute;
  left:0; top:50%;
  width:7px; height:7px;
  background:var(--accent,var(--bronze));
  transform:translateY(-50%) rotate(45deg);
  border-radius:1px;
}
.sec-desc{
  margin:6px 0 0 18px;
  font-size:14px;
  color:var(--ink-3);
}
.sec-more{
  font-size:13.5px;
  color:var(--accent,var(--indigo));
  white-space:nowrap;
  padding-bottom:3px;
  border-bottom:1px solid transparent;
  transition:border-color .2s;
}
.sec-more:hover{ border-color:currentColor; }

/* ---------------------------------------------------------------- 板块入口卡 */
.entry-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(186px,1fr));
  gap:14px;
}
.entry{
  position:relative;
  display:block;
  padding:22px 20px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:transform .28s var(--ease), box-shadow .3s var(--ease), border-color .25s;
}
.entry::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:3px;
  background:var(--accent,var(--indigo));
  transform:scaleY(.35);
  transform-origin:top;
  transition:transform .38s var(--ease);
}
.entry:hover{
  transform:translateY(-3px);
  border-color:var(--accent,var(--indigo));
  box-shadow:var(--shadow);
}
.entry:hover::before{ transform:scaleY(1); }
.entry-name{
  font-family:var(--f-serif);
  font-size:17.5px;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--indigo);
  margin:0 0 4px;
}
.entry-count{
  font-family:var(--f-serif);
  font-size:26px;
  font-weight:700;
  color:var(--accent,var(--indigo));
  line-height:1.1;
}
.entry-count small{ font-size:12px; color:var(--ink-3); font-weight:400; margin-left:3px; letter-spacing:.1em; }
.entry-desc{
  margin:10px 0 0;
  font-size:13px;
  line-height:1.7;
  color:var(--ink-3);
}

/* ---------------------------------------------------------------- 卡片网格 */
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(292px,1fr));
  gap:16px;
}

.card{
  position:relative;
  display:flex;
  flex-direction:column;
  padding:20px 20px 18px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  cursor:pointer;
  overflow:hidden;
  text-align:left;
  transition:transform .28s var(--ease), box-shadow .3s var(--ease), border-color .25s;
}
.card::after{
  content:"";
  position:absolute;
  left:0; top:0;
  width:0; height:3px;
  background:var(--accent,var(--indigo));
  transition:width .42s var(--ease);
}
.card:hover{
  transform:translateY(-3px);
  border-color:var(--accent,var(--indigo));
  box-shadow:var(--shadow);
}
.card:hover::after{ width:100%; }
.card:focus-visible{ outline:2px solid var(--accent,var(--indigo)); outline-offset:2px; }

.card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.chip{
  display:inline-block;
  padding:2.5px 9px;
  border-radius:99px;
  font-size:11.5px;
  letter-spacing:.08em;
  background:var(--accent-soft,var(--indigo-soft));
  color:var(--accent,var(--indigo));
  white-space:nowrap;
}
.card-year{
  font-family:var(--f-serif);
  font-size:12.5px;
  color:var(--ink-3);
  letter-spacing:.04em;
  white-space:nowrap;
}

.card-title{
  font-family:var(--f-serif);
  font-size:17px;
  font-weight:700;
  line-height:1.5;
  letter-spacing:.03em;
  color:var(--ink);
  margin:0 0 8px;
}
.card-sub{
  font-size:12.5px;
  color:var(--ink-3);
  margin:0 0 10px;
  display:flex;
  flex-wrap:wrap;
  gap:4px 10px;
}
.card-sub span{ white-space:nowrap; }

.card-summary{
  font-size:13.5px;
  line-height:1.82;
  color:var(--ink-2);
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:3;
  line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.card-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:auto;
  padding-top:14px;
}
.card-tags{ display:flex; flex-wrap:wrap; gap:5px; }
.tag{
  font-size:11px;
  color:var(--ink-3);
  background:var(--paper);
  border:1px solid var(--line-2);
  border-radius:5px;
  padding:1px 7px;
}
.card-mark{
  flex-shrink:0;
  font-size:11.5px;
  color:var(--accent,var(--indigo));
  letter-spacing:.1em;
  opacity:0;
  transform:translateX(-6px);
  transition:opacity .25s, transform .3s var(--ease);
}
.card:hover .card-mark{ opacity:1; transform:translateX(0); }

.card-note{
  margin:12px 0 0;
  padding:8px 10px;
  font-size:12px;
  line-height:1.65;
  color:var(--bronze);
  background:var(--bronze-soft);
  border-left:2px solid var(--bronze);
  border-radius:0 6px 6px 0;
}

/* ---------------------------------------------------------------- 筛选条 */
.filter-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding:16px 0 22px;
}
.filter-label{
  font-size:12.5px;
  letter-spacing:.14em;
  color:var(--ink-3);
  margin-right:4px;
}
.filter-btn{
  padding:6px 14px;
  border:1px solid var(--line);
  background:var(--card);
  border-radius:99px;
  font-size:13px;
  color:var(--ink-2);
  transition:all .2s var(--ease);
}
.filter-btn:hover{ border-color:var(--accent,var(--indigo)); color:var(--accent,var(--indigo)); }
.filter-btn.is-active{
  background:var(--accent,var(--indigo));
  border-color:var(--accent,var(--indigo));
  color:#F7F4EC;
}
.filter-btn .n{ opacity:.6; font-size:11.5px; margin-left:5px; }
/* 分类暂时没有条目时淡一点，但保留按钮，方便日后填内容 */
.filter-btn.is-zero{ opacity:.5; }

/* ---------------------------------------------------------------- 板块页首 */
.page-head{
  padding:44px 0 8px;
}
.page-head .back{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  color:var(--ink-3);
  margin-bottom:16px;
  transition:color .2s;
}
.page-head .back:hover{ color:var(--accent,var(--indigo)); }
.page-head .back svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.page-title{
  font-family:var(--f-serif);
  font-size:clamp(26px,3.2vw,36px);
  font-weight:700;
  letter-spacing:.14em;
  color:var(--indigo);
  margin:0 0 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
}
.page-title::before{
  content:"";
  width:9px; height:9px;
  flex-shrink:0;
  background:var(--accent,var(--indigo));
  transform:rotate(45deg);
  border-radius:2px;
}
/* 标题居中，下方说明与条数同步居中（返回链接仍保持在左侧） */
.page-desc{
  font-size:14.5px;
  color:var(--ink-3);
  margin:0 auto 4px;
  max-width:70ch;
  text-align:center;
  line-height:1.85;
}
.page-meta{
  font-size:12.5px;
  color:var(--ink-3);
  letter-spacing:.1em;
  margin-top:10px;
  text-align:center;
}

/* ---------------------------------------------------------------- 空状态 */
.empty{
  padding:70px 20px;
  text-align:center;
  color:var(--ink-3);
}
.empty svg{ width:52px; height:52px; fill:none; stroke:currentColor; stroke-width:1.2; opacity:.42; margin-bottom:16px; }
.empty p{ margin:0 0 6px; font-size:15px; }
.empty small{ font-size:13px; opacity:.8; }

/* ---------------------------------------------------------------- 说明卡 */
.guide{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:16px;
}
.guide-card{
  padding:22px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.guide-card h4{
  font-family:var(--f-serif);
  font-size:16px;
  letter-spacing:.08em;
  color:var(--indigo);
  margin:0 0 10px;
  display:flex;
  align-items:center;
  gap:9px;
}
.guide-card h4 .num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px; height:22px;
  border-radius:6px;
  background:var(--indigo);
  color:var(--paper-2);
  font-size:12px;
  font-family:var(--f-sans);
}
.guide-card p{ margin:0; font-size:13.5px; line-height:1.85; color:var(--ink-2); }
.guide-card code{
  font-family:"Cascadia Mono",Consolas,"Courier New",monospace;
  font-size:12.5px;
  background:var(--paper);
  border:1px solid var(--line-2);
  border-radius:4px;
  padding:1px 5px;
  color:var(--cinnabar);
}

/* ---------------------------------------------------------------- 关于页 */
.about-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:40px;
  align-items:start;
  padding:30px 0 78px;
}
.about-main{ grid-column:1; grid-row:1; min-width:0; }
.about-facts{
  grid-column:2;
  grid-row:1;
  position:sticky;
  top:98px;
  padding:20px 22px 4px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-xs);
}
.about-facts-title{
  font-family:var(--f-serif);
  font-size:15px;
  font-weight:700;
  letter-spacing:.16em;
  color:var(--indigo);
  margin:0 0 4px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
/* 侧栏较窄，速览表改成上下结构 */
.about-facts .dl-row{ grid-template-columns:1fr; gap:3px; padding:12px 0; }
.about-facts .dl-key{ font-size:12px; letter-spacing:.14em; }
.about-facts .dl-val{ font-size:13.5px; }

.about-block{ margin-bottom:42px; }
.about-block:last-child{ margin-bottom:0; }
.about-block-title{
  position:relative;
  font-family:var(--f-serif);
  font-size:19px;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--indigo);
  margin:0 0 14px;
  padding-left:16px;
}
.about-block-title::before{
  content:"";
  position:absolute;
  left:0; top:50%;
  width:7px; height:7px;
  background:var(--accent,var(--bronze));
  transform:translateY(-50%) rotate(45deg);
  border-radius:1px;
}
.about-p{
  margin:0 0 14px;
  font-size:14.5px;
  line-height:2;
  color:var(--ink-2);
}
.about-p:last-child{ margin-bottom:0; }
.about-list{
  margin:0;
  padding:0;
  list-style:none;
}
.about-list li{
  position:relative;
  padding:10px 0 10px 20px;
  font-size:14px;
  line-height:1.9;
  color:var(--ink-2);
  border-top:1px solid var(--line-2);
}
.about-list li:last-child{ border-bottom:1px solid var(--line-2); }
.about-list li::before{
  content:"";
  position:absolute;
  left:2px; top:20px;
  width:6px; height:6px;
  background:var(--accent,var(--bronze));
  transform:rotate(45deg);
  border-radius:1px;
  opacity:.75;
}
.about-block .guide{ margin-top:6px; }

/* ---------------------------------------------------------------- 搜索结果 */
.search-head{
  padding:44px 0 10px;
}
.search-head h1{
  font-family:var(--f-serif);
  font-size:clamp(24px,3vw,32px);
  letter-spacing:.1em;
  color:var(--indigo);
  margin:0 0 8px;
}
.search-head p{ margin:0; color:var(--ink-3); font-size:14px; }
.search-head .kw{
  color:var(--cinnabar);
  font-weight:600;
}
.group-head{
  display:flex;
  align-items:center;
  gap:10px;
  margin:34px 0 16px;
  padding-bottom:9px;
  border-bottom:1px solid var(--line-2);
}
.group-head h3{
  font-family:var(--f-serif);
  font-size:16.5px;
  letter-spacing:.1em;
  color:var(--ink);
  margin:0;
}
.group-head .count{ font-size:12.5px; color:var(--ink-3); }
.group-head .dot{
  width:7px; height:7px;
  background:var(--accent,var(--indigo));
  transform:rotate(45deg);
  border-radius:1px;
}
mark{
  background:rgba(176,141,87,.28);
  color:inherit;
  border-radius:3px;
  padding:0 1px;
}

/* ---------------------------------------------------------------- 详情弹窗 */
.modal-backdrop{
  position:fixed;
  inset:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(24,32,40,.5);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  animation:fadeIn .22s var(--ease);
}
.modal-backdrop[hidden]{ display:none; }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }

.modal{
  position:relative;
  width:min(680px,100%);
  max-height:min(84vh,760px);
  overflow-y:auto;
  background:var(--paper-2);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  animation:popIn .3s var(--ease);
}
@keyframes popIn{ from{ opacity:0; transform:translateY(14px) scale(.985); } to{ opacity:1; transform:none; } }

.modal::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:5px;
  background-color:var(--accent,var(--indigo));
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='5' viewBox='0 0 20 5'%3E%3Cg fill='%23C79A5B' opacity='.75'%3E%3Cpath d='M5 0 10 2.5 5 5 0 2.5Z'/%3E%3Cpath d='M15 0 20 2.5 15 5 10 2.5Z'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat-x;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.modal-close{
  position:absolute;
  top:16px; right:16px;
  width:34px; height:34px;
  border:0;
  border-radius:50%;
  background:rgba(27,59,82,.07);
  color:var(--ink-2);
  font-size:19px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s, color .2s, transform .2s;
}
.modal-close:hover{ background:var(--cinnabar); color:#fff; transform:rotate(90deg); }

.modal-body{ padding:34px 34px 30px; }
.modal-kicker{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px;
  margin-bottom:14px;
}
.modal-title{
  font-family:var(--f-serif);
  font-size:23px;
  line-height:1.5;
  letter-spacing:.05em;
  color:var(--indigo);
  margin:0 0 18px;
  padding-right:36px;
}
.modal-note{
  display:flex;
  gap:9px;
  margin:0 0 18px;
  padding:11px 14px;
  font-size:12.5px;
  line-height:1.7;
  color:#7A5A2E;
  background:var(--bronze-soft);
  border:1px solid rgba(176,141,87,.34);
  border-radius:8px;
}
.modal-note b{ flex-shrink:0; color:var(--bronze); }
.dl{ margin:0; }
.dl-row{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:12px;
  padding:11px 0;
  border-top:1px solid var(--line-2);
}
.dl-row:last-child{ border-bottom:1px solid var(--line-2); }
.dl-key{
  font-size:13px;
  color:var(--ink-3);
  letter-spacing:.1em;
}
.dl-val{
  font-size:14px;
  line-height:1.8;
  color:var(--ink);
  word-break:break-word;
}
.modal-summary{
  margin:20px 0 0;
  font-size:14.5px;
  line-height:1.95;
  color:var(--ink-2);
}
.modal-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:24px;
  height:42px;
  padding:0 20px;
  border-radius:99px;
  background:var(--accent,var(--indigo));
  color:#F7F4EC;
  font-size:13.5px;
  letter-spacing:.08em;
  transition:transform .2s var(--ease), box-shadow .25s;
}
.modal-link:hover{ transform:translateY(-2px); box-shadow:0 12px 28px -12px rgba(27,59,82,.6); }
.modal-link svg{ width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.modal-url{
  margin:10px 0 0;
  font-size:12px;
  color:var(--ink-3);
  word-break:break-all;
}
.modal-nav{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:26px;
  padding-top:18px;
  border-top:1px solid var(--line-2);
}
.modal-nav button{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--line);
  background:var(--card);
  border-radius:99px;
  padding:8px 16px;
  font-size:13px;
  color:var(--ink-2);
  transition:border-color .2s, color .2s;
}
.modal-nav button:hover:not(:disabled){ border-color:var(--accent,var(--indigo)); color:var(--accent,var(--indigo)); }
.modal-nav button:disabled{ opacity:.4; cursor:not-allowed; }

/* ---------------------------------------------------------------- 页脚 */
.site-footer{
  margin-top:20px;
  padding:34px 0 40px;
  border-top:1px solid var(--line-2);
  background:var(--paper-2);
}
.footer-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.footer-left{ display:flex; align-items:center; gap:13px; }
.footer-mark{ width:34px; height:34px; color:var(--indigo); opacity:.6; }
.footer-mark svg{ width:100%; height:100%; }
.footer-left strong{
  font-family:var(--f-serif);
  font-size:15px;
  letter-spacing:.14em;
  color:var(--indigo);
  display:block;
}
.footer-left p{ margin:2px 0 0; font-size:12.5px; color:var(--ink-3); max-width:52ch; line-height:1.7; }
.footer-right{ font-size:12.5px; color:var(--ink-3); text-align:right; line-height:1.9; }

/* ---------------------------------------------------------------- 入场动画 */
@keyframes riseIn{
  from{ opacity:0; transform:translateY(14px); }
  to{ opacity:1; transform:none; }
}
.card,.entry,.guide-card{
  animation:riseIn .5s var(--ease) both;
}

/* ---------------------------------------------------------------- 响应式 */
@media (max-width:1024px){
  .hero-inner{ grid-template-columns:1fr; gap:24px; padding:48px 0 44px; }
  .hero-art{ min-height:220px; order:-1; }
  .hero-art .tower{ max-width:200px; }
  .hero-art .ring{ width:190px; height:190px; }
  .hero-art .halo{ width:210px; height:210px; }
  .stat-bar{ grid-template-columns:repeat(3,1fr); }
  .stat:nth-child(4),.stat:nth-child(5){ border-top:1px solid var(--line-2); }
}

@media (max-width:860px){
  .header-inner{ height:62px; gap:14px; }
  .brand-sub{ display:none; }
  .main-nav{
    position:absolute;
    top:100%; left:0; right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:8px 16px 14px;
    background:var(--paper-2);
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 30px -22px rgba(27,59,82,.6);
    margin-left:0;
    max-height:0;
    overflow:hidden;
    padding-block:0;
    transition:max-height .34s var(--ease), padding .34s var(--ease);
  }
  .main-nav.is-open{ max-height:480px; padding-block:8px 14px; }
  .nav-link{ padding:11px 6px; border-bottom:1px solid var(--line-2); border-radius:0; }
  .nav-home{ gap:8px; }
  .nav-link.is-active::after{ display:none; }
  .nav-toggle{ display:flex; }
  .search-wrap{ width:auto; min-width:0; flex:1; }
  .search-wrap:focus-within{ width:auto; }
  .search-wrap input{ font-size:13px; }
  .header-tools{ flex:1; justify-content:flex-end; }
  .wrap{ padding:0 18px; }
  .grid{ grid-template-columns:1fr; }
  .about-wrap{ grid-template-columns:1fr; gap:28px; padding:24px 0 56px; }
  .about-facts{ grid-column:1; grid-row:auto; position:static; }
  .modal-body{ padding:28px 22px 24px; }
  .dl-row{ grid-template-columns:74px 1fr; gap:10px; }
  .footer-inner{ flex-direction:column; align-items:flex-start; }
  .footer-right{ text-align:left; }
}

@media (max-width:520px){
  .stat-bar{ grid-template-columns:repeat(2,1fr); }
  .search-wrap input{ min-width:0; }
  .header-tools .search-wrap{ max-width:170px; }
  .card{ padding:18px 16px 16px; }
}

@media print{
  .site-header,.brocade-bar,.site-footer,.modal-nav,.hero-actions{ display:none; }
  body{ background:#fff; }
}
