/* ============================================================
   青藤成长官网 · 全局样式 v3
   美学方向：档案纸 · 编号索引（Archive Index）
   —— 把「带编号的现场库」做成网站的视觉骨架
   纸色打底 / 墨线分隔 / 宋体大标题 / 朱红只用否定项
   ============================================================ */

/* ---------- 色彩系统（OKLCH，暖纸 + 墨 + 单点朱红） ---------- */
:root{
  /* 纸与墨 */
  --paper:      oklch(96.6% 0.016 82);   /* 暖纸底 */
  --paper-2:    oklch(99.2% 0.006 84);   /* 卡面，近白但偏暖 */
  --paper-3:    oklch(94.2% 0.020 82);   /* 浅纸块 */
  --ink:        oklch(24% 0.018 74);     /* 主墨，不是纯黑 */
  --ink-2:      oklch(43% 0.016 74);     /* 次墨 */
  --ink-3:      oklch(56% 0.014 76);     /* 三级墨，仅辅助信息 */
  --rule:       oklch(87% 0.012 84);     /* 分隔线 */
  --rule-2:     oklch(92% 0.010 84);     /* 更淡的分隔线 */

  /* 墨绿（唯一彩色主调） */
  --moss-deep:  oklch(30% 0.055 152);
  --moss:       oklch(37% 0.062 152);
  --moss-2:     oklch(47% 0.070 152);
  --moss-3:     oklch(64% 0.060 152);
  --moss-4:     oklch(80% 0.040 152);
  --moss-wash:  oklch(95.2% 0.020 150);
  --moss-wash2: oklch(97.4% 0.012 150);

  /* 朱红（印章色，只用于「别说这三句」与风险标记） */
  --seal:       oklch(49% 0.140 30);
  --seal-deep:  oklch(41% 0.130 30);
  --seal-wash:  oklch(96.2% 0.024 32);
  --seal-line:  oklch(89% 0.038 32);

  /* ---- 兼容旧变量名（9 个页面与 scenes.html 内联样式仍在用） ---- */
  --green-900: var(--moss-deep);
  --green-800: oklch(33% 0.060 152);
  --green-700: var(--moss);
  --green-600: oklch(42% 0.066 152);
  --green-500: var(--moss-2);
  --green-400: var(--moss-3);
  --green-300: var(--moss-4);
  --green-200: oklch(88% 0.030 152);
  --green-100: oklch(93.5% 0.022 152);
  --green-50:  var(--moss-wash2);

  --cream:      var(--paper);
  --warm-white: var(--paper-2);
  --neutral-50: oklch(96.5% 0.008 84);
  --neutral-100:var(--rule-2);
  --neutral-200:var(--rule);
  --neutral-400:var(--ink-3);
  --neutral-500:oklch(50% 0.015 76);   /* ← 原缺失，全站多处引用 */
  --neutral-600:var(--ink-2);
  --neutral-800:var(--ink);
  --neutral-900:oklch(19% 0.018 74);

  /* 形状：档案感 = 近乎方角 */
  --radius-sm: 2px;
  --radius-md: 3px;
  --radius-lg: 4px;
  --radius-pill: 999px;
  --radius-full: 50%;

  --space-1:4px;  --space-2:8px;  --space-3:12px;
  --space-4:16px; --space-5:20px; --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px;
  --space-16:64px;--space-20:80px; --space-24:96px;

  --maxw:1180px;
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-out-expo:  cubic-bezier(0.16, 1, 0.3, 1);

  /* 字体：宋体做 display（中文站少见的克制选择），黑体做正文，等宽做编号 */
  --font-display:"Songti SC","STSong","Source Han Serif SC","Noto Serif SC",Georgia,"Times New Roman",serif;
  --font-sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Helvetica Neue",sans-serif;
  --font-mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,"Courier New",monospace;

  /* 阴影只做纸的抬起，不做彩色光 */
  --shadow-sm: 0 1px 0 oklch(0% 0 0 / 0.03);
  --shadow-md: 0 2px 8px oklch(0% 0 0 / 0.045), 0 1px 0 oklch(0% 0 0 / 0.03);
  --shadow-lg: 0 10px 30px oklch(0% 0 0 / 0.055), 0 2px 4px oklch(0% 0 0 / 0.03);
  --shadow-xl: 0 20px 50px oklch(0% 0 0 / 0.07), 0 4px 10px oklch(0% 0 0 / 0.03);

  /* 纸纹（feTurbulence 噪点，真实纸张颗粒） */
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- 重置 ---------- */
*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{
  font-family:var(--font-sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.75;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-kerning:normal;
}
/* 全站纸纹：固定覆盖，不随滚动 */
body::before{
  content:""; position:fixed; inset:0; z-index:0;
  background-image:var(--grain);
  background-size:140px 140px;
  opacity:.035; pointer-events:none; mix-blend-mode:multiply;
}
body > *{position:relative; z-index:1;}

a{color:inherit; text-decoration:none;}
img,svg{display:block; max-width:100%;}
button{font-family:inherit;}
ul,ol{padding-left:1.5em;}
::selection{background:oklch(80% 0.06 152); color:var(--moss-deep);}

.container{max-width:var(--maxw); margin:0 auto; padding:0 var(--space-5);}

/* ---------- 字体层级 ---------- */
h1,h2,h3,h4{color:var(--ink); font-weight:600; letter-spacing:-0.01em; line-height:1.3;}

h1{
  font-family:var(--font-display);
  font-size:clamp(2.2rem,5vw,3.6rem);
  font-weight:600;
  letter-spacing:0.005em;
  line-height:1.22;
  color:var(--moss-deep);
}
h2{
  font-family:var(--font-display);
  font-size:clamp(1.6rem,3.2vw,2.25rem);
  font-weight:600;
  line-height:1.35;
  color:var(--moss-deep);
}
h3{font-size:clamp(1.1rem,2vw,1.32rem); font-weight:600;}
h4{font-size:1.02rem; font-weight:600;}

p{font-size:1rem; color:var(--ink-2);}
p.lead{font-size:clamp(1.02rem,1.8vw,1.14rem); color:var(--ink-2); line-height:1.85;}

/* 编号统一用等宽 + 表格数字，保证纵向对齐 */
.lc-no,.rec-no,.sc-no,.lc-cat,.rec-cat,.sc-cat{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
}

/* ---------- 按钮：方角墨线，不用渐变 ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 30px;
  border-radius:var(--radius-sm);
  font-size:.95rem;
  font-weight:500;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s var(--ease-out-quart);
  border:1px solid transparent;
  text-align:center;
  line-height:1.4;
}
.btn:hover{transform:translateY(-1px);}
.btn:active{transform:translateY(0);}
.btn-primary{
  background:var(--moss);
  color:oklch(99% 0.005 84);
  border-color:var(--moss);
}
.btn-primary:hover{background:var(--moss-deep); border-color:var(--moss-deep);}
.btn-soft{
  background:var(--moss-wash); color:var(--moss-deep); border-color:var(--green-200);
}
.btn-soft:hover{background:var(--green-100);}
.btn-outline{
  background:transparent; color:var(--moss); border-color:oklch(70% 0.02 84);
}
.btn-outline:hover{background:var(--paper-2); border-color:var(--moss); color:var(--moss-deep);}

/* ---------- 导航栏 ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:oklch(96.6% 0.016 82 / 0.94);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--rule);
}
.site-header::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:3px;
  background:var(--moss);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  height:70px;
}
.brand{display:flex; align-items:center; gap:10px;}
.brand img{height:36px; width:auto; border-radius:var(--radius-sm); filter:saturate(.92);}
.brand span{
  font-family:var(--font-display);
  font-size:1.3rem; font-weight:600; color:var(--moss-deep); letter-spacing:.04em;
}

.nav-links{display:flex; align-items:center; gap:var(--space-6);}
.nav-links a{
  position:relative; font-size:.9rem; color:var(--ink-2); font-weight:400;
  letter-spacing:.01em;
  padding:6px 0; transition:color .18s ease;
}
.nav-links a::after{
  content:''; position:absolute; bottom:-1px; left:0; width:0; height:1.5px;
  background:var(--moss);
  transition:width .24s var(--ease-out-quart);
}
.nav-links a:hover,.nav-links a.active{color:var(--moss-deep);}
.nav-links a:hover::after,.nav-links a.active::after{width:100%;}
.nav-links a.active{font-weight:500;}

.menu-btn{
  display:none;
  background:none; border:none; cursor:pointer;
  width:44px; height:44px; font-size:1.35rem; color:var(--moss-deep);
}
.mobile-menu{
  display:none;
  border-top:1px solid var(--rule); background:var(--paper-2); padding:var(--space-2) 0;
}
.mobile-menu.open{display:block;}
.mobile-menu a{
  display:block; padding:13px var(--space-5); font-size:.98rem; color:var(--ink-2);
  border-bottom:1px solid var(--rule-2); transition:color .18s, background .18s;
}
.mobile-menu a:last-child{border-bottom:none;}
.mobile-menu a:hover,.mobile-menu a.active{color:var(--moss-deep); background:var(--moss-wash2);}

/* ---------- 区块系统 ---------- */
.section{padding:clamp(64px,7.5vw,112px) 0;}
.section.bg-white{background:var(--paper-2); border-top:1px solid var(--rule-2); border-bottom:1px solid var(--rule-2);}
.section.bg-soft{background:var(--moss-wash2);}
.section.bg-cream{background:var(--paper);}

.section-header{text-align:center; max-width:620px; margin:0 auto clamp(40px,5vw,64px);}
.section-header h2{margin-bottom:var(--space-3);}
.section-header p{color:var(--ink-3); font-size:1rem; line-height:1.85;}
/* 标题下的小横线，像档案目录的分隔 */
.section-header h2::after{
  content:""; display:block; width:32px; height:1px;
  background:var(--moss-3); margin:20px auto 0;
}

/* ---------- 首屏：档案索引 ---------- */
.hero{
  position:relative; overflow:hidden;
  background:var(--paper);
  padding:clamp(56px,7vw,100px) 0 clamp(64px,7vw,96px);
  border-bottom:1px solid var(--rule);
}
/* 右上角巨大编号水印 —— 仅首页（现场库）出现 */
.hero-lib::before{
  content:"115";
  position:absolute; right:-.06em; top:-.18em;
  font-family:var(--font-mono);
  font-size:clamp(200px,30vw,420px);
  font-weight:700; line-height:1;
  color:var(--moss); opacity:.032;
  letter-spacing:-.06em;
  pointer-events:none;
  user-select:none;
}
.hero::after,.hero-lib::after{content:none;}

.hero .container{position:relative; z-index:2; text-align:center; max-width:780px;}
.hero h1{margin-bottom:var(--space-5);}
.hero .subtitle{
  font-size:clamp(1rem,1.9vw,1.12rem); color:var(--ink-2); line-height:1.85;
  max-width:600px; margin:0 auto var(--space-8);
}
.hero-actions{display:flex; flex-wrap:wrap; gap:var(--space-3); justify-content:center;}
.hero .trust{
  display:flex; align-items:center; justify-content:center; gap:var(--space-6);
  margin-top:var(--space-10); color:var(--ink-3); font-size:.87rem;
}
.hero .trust span{display:flex; align-items:center; gap:6px;}
.hero .trust svg{width:16px; height:16px; color:var(--moss-2);}

/* 现场库版首屏（首页用） */
.hero-lib{padding:clamp(48px,6vw,88px) 0 clamp(56px,6.5vw,96px); text-align:left;}
/* 覆盖 .hero .container 的 780px 居中限制（0,3,0 优先） */
.hero.hero-lib .container{max-width:var(--maxw); text-align:left;}
.lib-wrap{display:grid; grid-template-columns:1fr 1.02fr; gap:clamp(32px,5vw,72px); align-items:center;}

.lib-left .eyebrow{
  font-family:var(--font-mono);
  font-size:.72rem; letter-spacing:.22em; color:var(--moss-2);
  text-transform:uppercase;
  margin-bottom:var(--space-5);
  padding-bottom:12px;
  border-bottom:1px solid var(--rule);
  display:inline-block;
}
.hero-lib h1{
  font-size:clamp(2.5rem,5.2vw,4rem);
  line-height:1.14; letter-spacing:.01em; color:var(--ink);
  margin-bottom:var(--space-5);
}
.hero-lib h1 span{color:var(--moss-deep);}
.lib-slogan{
  font-family:var(--font-display);
  font-size:clamp(1.24rem,2.1vw,1.6rem); color:var(--ink);
  margin-bottom:var(--space-5); line-height:1.65; letter-spacing:.01em;
}
.lib-slogan em{
  font-style:normal; color:var(--moss);
  border-bottom:1px solid var(--moss-3); padding-bottom:3px;
}
.hero-lib .subtitle{
  text-align:left; margin:0 0 var(--space-8); font-size:.97rem;
  color:var(--ink-2); line-height:1.95;
}
.hero-lib .hero-actions{justify-content:flex-start; margin-bottom:var(--space-10);}

/* 索引统计条：每项上方一条细线，像档案柜的标签 */
.lib-stats{display:flex; gap:0; flex-wrap:wrap;}
.lib-stats div{
  display:flex; flex-direction:column; gap:2px;
  padding:11px 20px 0 0; margin-right:20px;
  border-top:1px solid var(--ink); position:relative;
}
.lib-stats div + div::before{
  content:""; position:absolute; left:-20px; top:11px; width:1px; height:calc(100% - 11px);
  background:var(--rule);
}
.lib-stats b{
  font-family:var(--font-mono); font-variant-numeric:tabular-nums;
  font-size:1.45rem; color:var(--moss-deep); font-weight:600; line-height:1.25; letter-spacing:-.02em;
  white-space:nowrap;
}
.lib-stats span{font-size:.72rem; color:var(--ink-3); letter-spacing:.06em;}

/* ---------- 档案卡（首屏 No.001） ---------- */
.live-card{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  padding:clamp(20px,3vw,32px);
  box-shadow:var(--shadow-lg);
  position:relative;
  background-image:
    linear-gradient(to bottom, transparent 0, transparent calc(100% - 0px));
}
/* 顶部档案色条 —— 代替原来的左侧粗绿条 */
.live-card::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:3px;
  background:linear-gradient(90deg, var(--moss) 0%, var(--moss) 18%, var(--rule) 18%, var(--rule) 100%);
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.lc-top{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:var(--space-2);
  padding-bottom:0;
}
.lc-no{
  font-size:1.05rem; letter-spacing:.04em; color:var(--moss-deep); font-weight:600;
}
.lc-cat{
  font-size:.68rem; color:var(--ink-3);
  border:1px solid var(--rule); border-radius:var(--radius-sm);
  padding:2px 8px; letter-spacing:.1em;
  transform:rotate(-1.5deg);
  background:var(--paper);
}
.live-card h3{
  font-family:var(--font-display);
  font-size:clamp(1.24rem,2vw,1.5rem);
  color:var(--ink); margin:10px 0 var(--space-4);
  line-height:1.5; letter-spacing:.01em;
  padding-bottom:var(--space-4);
  border-bottom:1px solid var(--rule);
}
/* 「这一幕」—— 引文式，左侧细线 */
.lc-scene{
  background:transparent;
  border-left:2px solid var(--moss-4);
  border-radius:0;
  padding:2px 0 2px 14px;
  font-size:.92rem; color:var(--ink-2); line-height:1.9;
  margin-bottom:var(--space-5);
}
.lc-label{
  font-family:var(--font-mono);
  font-size:.68rem; letter-spacing:.18em; color:oklch(47% 0.018 78);
  margin-bottom:7px; text-transform:uppercase; font-weight:500;
}
.lc-dont{list-style:none; margin-bottom:var(--space-5); padding-left:0;}
.lc-dont li{
  font-size:.9rem; color:var(--ink-2);
  padding-left:16px; position:relative; line-height:1.95;
}
.lc-dont li::before{
  content:"\00d7"; position:absolute; left:0; top:0;
  color:var(--seal); font-size:.85rem; font-weight:700;
}
.lc-say{
  font-family:var(--font-display);
  font-size:clamp(1.08rem,1.9vw,1.28rem);
  color:var(--moss-deep);
  border-left:2px solid var(--moss);
  padding:2px 0 2px 14px;
  margin-bottom:var(--space-5); line-height:1.7;
}
.lc-why{
  font-size:.82rem; color:var(--ink-3); line-height:1.85;
  padding-top:var(--space-4); border-top:1px solid var(--rule-2);
}
.lc-foot{
  text-align:right; font-family:var(--font-mono);
  font-size:.68rem; color:var(--ink-3);
  margin-top:var(--space-3); letter-spacing:.1em;
}

/* 首屏→小程序 钩子 */
.lib-cta{
  display:flex; align-items:center; gap:var(--space-4);
  margin-top:var(--space-4); padding:var(--space-4);
  background:var(--moss-wash2);
  border:1px solid var(--rule);
  border-left:2px solid var(--moss);
  border-radius:var(--radius-md);
  overflow:hidden;
}
.lib-cta-qr{
  width:82px; height:82px; flex:none; display:block;
  border-radius:var(--radius-sm); background:#fff;
  border:1px solid var(--rule);
}
.lib-cta-h{
  font-family:var(--font-display);
  font-size:1rem; font-weight:600; color:var(--moss-deep);
  margin-bottom:4px; line-height:1.45;
}
.lib-cta-s{font-size:.8rem; color:var(--moss); margin-bottom:6px; line-height:1.5;}
.lib-cta-n{font-size:.75rem; color:var(--ink-3); line-height:1.65; margin:0;}
@media (max-width:520px){
  .lib-cta{flex-direction:column; text-align:center; gap:var(--space-3);}
  .lib-cta-qr{width:120px; height:120px;}
}

/* ---------- 五格：做成索引表而不是卡片墙 ---------- */
.five{
  display:grid; grid-template-columns:repeat(5,1fr); gap:0;
  border-top:1px solid var(--ink);
}
.five-item{
  background:transparent; border:none; border-radius:0;
  padding:var(--space-5) var(--space-5) var(--space-6) 0;
  border-right:1px solid var(--rule);
  position:relative;
}
.five-item:last-child{border-right:none; padding-right:0;}
.five-item span{
  font-family:var(--font-mono); font-variant-numeric:tabular-nums;
  font-size:.72rem; color:var(--moss-2); letter-spacing:.14em;
}
.five-item h4{
  font-family:var(--font-display);
  font-size:1.05rem; color:var(--moss-deep);
  margin:6px 0 10px; letter-spacing:.01em;
}
.five-item p{font-size:.875rem; color:var(--ink-3); line-height:1.85;}

/* ---------- 现场卡（首页 6 张 / 归档） ---------- */
.scene-grid{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:0; background:transparent;
  border:1px solid var(--rule); border-right:none; border-bottom:none;
}
.scene-card{
  display:block; background:var(--paper-2);
  border:none; border-right:1px solid var(--rule); border-bottom:1px solid var(--rule);
  border-radius:0;
  padding:var(--space-6);
  transition:background .22s ease, box-shadow .22s ease;
  position:relative;
}
.scene-card:hover{
  background:var(--paper);
  box-shadow:inset 0 -2px 0 var(--moss);
  transform:none;
}
.sc-no{
  font-size:.72rem; letter-spacing:.16em; color:var(--moss-2);
}
.scene-card h3{
  font-family:var(--font-display);
  font-size:1.04rem; color:var(--ink);
  margin:7px 0 12px; line-height:1.55;
}
.sc-line{
  font-family:var(--font-display);
  font-size:.92rem; color:var(--ink-2);
  line-height:1.8; margin-bottom:var(--space-4);
  padding-left:12px; border-left:1px solid var(--moss-4);
}
.sc-cat{
  font-size:.66rem; color:var(--ink-3);
  border:1px solid var(--rule);
  border-radius:var(--radius-sm); padding:1px 7px;
  display:inline-block; letter-spacing:.1em;
  background:var(--paper);
}

/* ---------- 通用卡片（专栏主笔） ---------- */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:0; background:transparent;
  border:1px solid var(--rule); border-right:none; border-bottom:none;
}
.card{
  background:var(--paper-2);
  border-radius:0;
  border-right:1px solid var(--rule); border-bottom:1px solid var(--rule);
  overflow:hidden;
  box-shadow:none;
  transition:background .22s ease, box-shadow .22s ease;
  display:flex; flex-direction:column;
}
.card:hover{background:var(--paper); box-shadow:inset 0 -2px 0 var(--moss); transform:none;}
/* 缩略区改成「档案袋」：大号编号 + 细线，不放假头像 */
.card .thumb{
  height:auto; min-height:52px;
  background:var(--paper-3);
  border-bottom:1px solid var(--rule);
  display:flex; align-items:center; justify-content:flex-start; gap:12px;
  padding:0 var(--space-6);
  position:relative; overflow:hidden;
}
/* 编号后拖一条细线，像档案抽屉的标签 */
.card .thumb::after{
  content:""; flex:1; height:1px;
  background:linear-gradient(90deg, var(--moss-4), transparent);
}
.card .thumb svg{display:none;}
/* 档案袋编号：取代原来的通用人形图标 */
.card .thumb .thumb-no{
  font-family:var(--font-mono); font-variant-numeric:tabular-nums;
  font-size:.95rem; font-weight:600; line-height:1;
  color:var(--moss); opacity:.9;
  letter-spacing:.06em;
}
.card .thumb .thumb-lb{display:none;}
.card .body{padding:var(--space-5) var(--space-6) var(--space-6); flex:1; display:flex; flex-direction:column;}
.card h3{
  font-family:var(--font-display);
  margin-bottom:6px; color:var(--moss-deep); font-size:1.12rem;
}
.card p{color:var(--ink-3); font-size:.86rem; line-height:1.7;}
.card .tag{margin-bottom:8px; align-self:flex-start;}

/* 纯文字介绍卡 */
.intro-card{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  padding:clamp(24px,4vw,48px) clamp(20px,4.5vw,56px);
  box-shadow:var(--shadow-sm);
  max-width:820px; margin:0 auto;
}
.intro-card p{color:var(--ink-2); margin-bottom:var(--space-4); font-size:1.02rem; line-height:1.95;}
.intro-card p:last-child{margin-bottom:0;}

.note{
  background:var(--moss-wash2);
  border-left:2px solid var(--moss-3);
  padding:var(--space-4) var(--space-5);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  color:var(--ink-2); font-size:.9rem; line-height:1.85;
}
.note strong{color:var(--moss-deep);}

/* ---------- 标签 / 印章 ---------- */
.tag{
  display:inline-flex; align-items:center;
  background:transparent; color:var(--moss);
  border:1px solid var(--moss-4);
  border-radius:var(--radius-sm);
  padding:1px 8px; font-size:.68rem; font-weight:500;
  letter-spacing:.1em;
}

/* ---------- 关注我们 / 二维码 ---------- */
.follow-grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:0; background:transparent;
  border:1px solid var(--rule); border-right:none; border-bottom:none;
  max-width:600px; margin:0 auto;
}
.follow-card{
  background:var(--paper-2);
  border-radius:0;
  border-right:1px solid var(--rule); border-bottom:1px solid var(--rule);
  padding:var(--space-6) var(--space-5);
  box-shadow:none; text-align:center;
  transition:background .22s ease;
}
.follow-card:hover{background:var(--paper); transform:none;}
.qr-img{
  width:142px; height:142px;
  border-radius:var(--radius-sm);
  margin:0 auto var(--space-4);
  object-fit:contain;
  background:#fff; padding:6px;
  border:1px solid var(--rule);
}
.follow-label{
  font-family:var(--font-display);
  font-weight:600; color:var(--moss-deep); margin-bottom:4px; font-size:1rem;
}
.follow-note{font-size:.78rem; color:var(--ink-3); margin-bottom:0; line-height:1.6;}

/* ---------- 页脚 ---------- */
.site-footer{
  background:var(--moss-deep); color:oklch(88% 0.02 152);
  padding:clamp(48px,6vw,72px) 0 var(--space-8);
  border-top:3px solid var(--moss);
}
.footer-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:clamp(24px,4vw,48px);
  margin-bottom:var(--space-10);
}
.site-footer h4{
  font-family:var(--font-display);
  color:oklch(99% 0.005 84); font-weight:600;
  margin-bottom:var(--space-4); font-size:1.02rem; letter-spacing:.04em;
}
.site-footer p{color:oklch(82% 0.025 152); font-size:.87rem; margin-bottom:6px; line-height:1.75;}
.site-footer a{color:oklch(88% 0.02 152); transition:color .18s;}
.site-footer a:hover{color:#fff;}
.footer-links{display:flex; flex-direction:column; gap:9px;}
.footer-links a{font-size:.87rem;}
.footer-bottom{
  border-top:1px solid oklch(100% 0 0 / 0.14);
  padding-top:var(--space-5);
  text-align:center; color:oklch(76% 0.02 152); font-size:.78rem;
  line-height:1.9;
}
.footer-bottom a{
  color:oklch(86% 0.02 152); text-decoration:none;
  border-bottom:1px solid oklch(100% 0 0 / 0.25); padding-bottom:1px;
}
.footer-bottom a:hover{color:#fff; border-bottom-color:#fff;}

/* ---------- 表单 ---------- */
.form-wrap{
  max-width:580px; margin:0 auto;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-top:3px solid var(--moss);
  border-radius:var(--radius-lg);
  padding:clamp(24px,4vw,44px);
  box-shadow:var(--shadow-md);
}
.field{margin-bottom:var(--space-5);}
.field label{
  display:block; font-weight:500; margin-bottom:7px;
  color:var(--ink); font-size:.9rem; letter-spacing:.01em;
}
.field label .req{color:var(--seal); margin-left:3px;}
.field input,.field select,.field textarea{
  width:100%; padding:12px 14px; font-size:.98rem; font-family:inherit;
  border:1px solid var(--rule); border-bottom:1px solid oklch(72% 0.015 84);
  border-radius:var(--radius-sm);
  background:var(--paper); color:var(--ink);
  transition:border-color .18s, box-shadow .18s, background .18s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; background:#fff;
  border-color:var(--moss-3);
  box-shadow:0 0 0 3px oklch(80% 0.04 152 / 0.35);
}
.field textarea{resize:vertical; min-height:110px;}
.field .hint{font-size:.78rem; color:var(--ink-3); margin-top:6px; line-height:1.65;}
.form-msg{
  padding:11px 14px; border-radius:var(--radius-sm);
  margin-bottom:var(--space-5); display:none; font-size:.88rem;
}
.form-msg.ok{display:block; background:var(--moss-wash); border:1px solid var(--green-200); color:var(--moss-deep);}
.form-msg.err{display:block; background:var(--seal-wash); border:1px solid var(--seal-line); color:var(--seal-deep);}

/* ---------- 文章 ---------- */
.article-body{max-width:700px; margin:0 auto;}
.article-body h1{margin-bottom:var(--space-2);}
.article-body .meta{
  font-family:var(--font-mono); font-size:.78rem; color:var(--ink-3);
  letter-spacing:.04em; margin-bottom:var(--space-8);
  padding-bottom:var(--space-4); border-bottom:1px solid var(--rule);
}
.article-body p{margin-bottom:var(--space-5); color:var(--ink-2); font-size:1.03rem; line-height:2;}
.article-body h3{
  font-family:var(--font-display);
  margin:var(--space-8) 0 var(--space-3); color:var(--moss-deep);
}
.breadcrumb{
  font-family:var(--font-mono);
  font-size:.74rem; color:var(--ink-3); margin-bottom:var(--space-4); letter-spacing:.04em;
}
.breadcrumb a{color:var(--moss); border-bottom:1px solid var(--moss-4);}

/* ---------- 通用栅格（原缺失：mentor-detail.html 在用） ---------- */
.grid{display:grid; gap:var(--space-6);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:768px){ .grid-2{grid-template-columns:1fr;} }

/* ---------- 404 ---------- */
.notfound{text-align:center; padding:clamp(80px,14vw,160px) var(--space-5);}
.notfound h1{
  font-family:var(--font-mono);
  font-size:clamp(4rem,12vw,7rem); color:var(--moss-4);
  letter-spacing:-.04em; line-height:1; font-weight:700;
}
.notfound p{color:var(--ink-3); margin:var(--space-4) 0 var(--space-6);}

/* ---------- 进入动画（默认可见；仅在 IO 就绪后才隐藏，防 JS 失效白屏） ---------- */
.reveal{opacity:1; transform:none;}
html.io-ready .reveal{
  opacity:0; transform:translateY(14px);
  transition:opacity .6s var(--ease-out-expo), transform .6s var(--ease-out-expo);
}
html.io-ready .reveal.show{opacity:1; transform:none;}

/* ---------- 响应式 ---------- */
@media (max-width:980px){
  .lib-wrap{grid-template-columns:1fr; gap:clamp(32px,6vw,48px);}
  .hero-lib::before{font-size:clamp(150px,26vw,260px); opacity:.028;}
  .five{grid-template-columns:repeat(2,1fr); border-top:1px solid var(--ink);}
  .five-item:nth-child(2n){border-right:none;}
  .five-item{border-bottom:1px solid var(--rule); padding-right:var(--space-4);}
  .scene-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .intro-card{padding:var(--space-6);}
}

@media (max-width:768px){
  .nav{height:62px;}
  .nav-links{display:none;}
  .menu-btn{display:block;}
  .brand img{height:32px;}
  .brand span{font-size:1.14rem;}
  .container{padding:0 18px;}

  .section{padding:56px 0;}
  .hero{padding:44px 0 52px;}
  .hero-actions{flex-direction:column; align-items:stretch;}
  .hero-actions .btn{width:100%;}
  .hero-lib .hero-actions{align-items:stretch;}

  .card-grid,.scene-grid,.five,.follow-grid{grid-template-columns:1fr;}
  .five-item{border-right:none; padding-right:0;}
  /* 移动端改成 2×2 索引格，去掉竖分隔线 */
  .lib-stats{display:grid; grid-template-columns:1fr 1fr; gap:0;}
  .lib-stats div{padding:11px 10px 12px 0; margin:0; border-top:1px solid var(--ink);}
  .lib-stats div + div::before{display:none;}
  .lib-stats b{font-size:1.34rem;}

  .live-card{padding:var(--space-5);}
  .follow-card{padding:var(--space-5);}
  .footer-grid{grid-template-columns:1fr; gap:var(--space-8);}
  .form-wrap{padding:var(--space-5);}
  h1{font-size:clamp(1.9rem,7vw,2.4rem);}
  .hero-lib h1{font-size:clamp(2.15rem,9.2vw,2.9rem);}
  .hero-lib::before{opacity:.022;}
}


@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto !important;}
  .reveal{opacity:1; transform:none;}
}

/* ---------- 打印：档案可留档 ---------- */
@media print{
  .site-header,.site-footer,.hero-actions,.lib-cta,.follow-grid{display:none;}
  body::before{display:none;}
  body{background:#fff;}
  .live-card,.scene-card,.five-item{box-shadow:none; border-color:#ccc;}
}
