/* ============================================================
   WorkshopSkill 纸质感设计系统（v3 方案第 7 节落地）
   两级页面共享：首页（网盘式资源列表）+ 活动文件夹详情页
   纪律：正文永远排在纯色纸面；印章红只做审校语义；硬边小偏移阴影
   ============================================================ */

/* ---------- 设计 tokens ---------- */
:root{
  /* 纸色（背景层） */
  --paper:#FAF7F0;          /* 站底纸白 */
  --copy:#FFFFFF;           /* 复印白（正文面） */
  --kraft:#B89B6E;          /* 牛皮（商品/下载/桌面基底） */
  --kraft-hero:#AD9060;     /* hero 桌面牛皮（稍深，承托纸白大字） */
  --kraft-deep:#8A6D3F;     /* 深牛皮（页脚/菜单条） */
  --manila:#E8D5A8;         /* 马尼拉（文件夹） */
  --manila-deep:#D9BE85;
  --grid-blue:#A8C4D8;      /* 格线蓝 */
  /* 墨色（文字层） */
  --ink:#2B2926;            /* 炭黑（油墨黑） */
  --ink-soft:#5A5651;       /* 石墨灰 */
  /* 强调三色（各司其职） */
  --stamp:#C0392B;          /* 印章红：审校/认证语义专属，不做按钮色 */
  --pen:#1F5FA8;            /* 圆珠笔蓝：链接与可交互元素 */
  --hl:#F5E6A3;             /* 荧光黄：行内高亮（背景+炭黑字） */
  /* 分类色板（B：首页/分类列表按类分色）——纸感偏柔和，与印章红/钢笔蓝功能色保持距离 */
  --cat-icebreakers:#D98E5F;
  --cat-communication:#5F8FB0;
  --cat-trust:#6FA37B;
  --cat-leadership:#B7913F;
  --cat-conflict:#C56A80;
  --cat-creativity:#A877B8;
  --cat-reviews:#5FA3A0;
  --cat-feedback-forms:#8B9B5C;
  --cat-self-assessment:#B0805A;
  /* 线条与硬边阴影（纸有厚度，禁弥散大阴影） */
  --line:#DCD3C0;
  --line-strong:#C9AE7E;
  /* 硬边阴影（纸有厚度，禁弥散大阴影）+ inset 受光边：纸面受侧光，上左一线亮、下右一线沉 */
  --shadow:3px 3px 0 rgba(43,41,38,.16),inset 1px 1px 0 rgba(255,255,255,.55),inset -1px -1px 0 rgba(43,41,38,.045);
  --shadow-lift:5px 6px 0 rgba(43,41,38,.22),inset 1px 1px 0 rgba(255,255,255,.55),inset -1px -1px 0 rgba(43,41,38,.05);
  /* 字体栈（手写体仅英文装饰层，不承载关键信息） */
  --serif:Georgia,'Times New Roman','Noto Serif TC','Songti TC',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue','PingFang TC',Arial,sans-serif;
  --mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Courier New',monospace;
  --hand:'Bradley Hand','Marker Felt','Segoe Print','Chalkduster',cursive;
  /* 程序化纸纹理（SVG 噪点，零图片依赖） */
  --noise-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.17 0 0 0 0 0.16 0 0 0 0 0.15 0.09 0 0 0 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  --noise-kraft:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.055 0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.42 0 0 0 0 0.32 0 0 0 0 0.16 0.16 0 0 0 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
  --noise-fiber:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='340'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.016 0.17' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.40 0 0 0 0 0.30 0.06 0 0 0 0'/%3E%3C/filter%3E%3Crect width='340' height='340' filter='url(%23f)'/%3E%3C/svg%3E");   /* 纤维牙：沿机器方向的拉长微粒（白纸也有纤维） */
  --noise-blotch:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='500' height='500'%3E%3Cfilter id='b'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.52 0 0 0 0 0.46 0 0 0 0 0.35 0.05 0 0 0 0'/%3E%3C/filter%3E%3Crect width='500' height='500' filter='url(%23b)'/%3E%3C/svg%3E");  /* 云斑：抄纸不匀的大尺度暖调絮斑 */
  --noise-kraft-wide:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='560'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.009 0.11' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.30 0 0 0 0 0.21 0 0 0 0 0.10 0.12 0 0 0 0'/%3E%3C/filter%3E%3Crect width='560' height='560' filter='url(%23w)'/%3E%3C/svg%3E");  /* 宽幅牛皮长纤维：大面桌面去平铺重复感 */
  --wrap:1080px;            /* 跨页统一容器宽度 */
}

/* ---------- 基础 ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  background-image:var(--noise-blotch),var(--noise-fiber),var(--noise-ink);   /* 站底纸白：云斑+纤维+颗粒三层叠纸 */
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.7;
}
a{color:var(--pen);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono)}
.serif{font-family:var(--serif)}
.hand{font-family:var(--hand)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden}
:focus-visible{outline:2px dashed var(--pen);outline-offset:3px}

/* ---------- 印章（审校/认证语义，全站唯一红色） ---------- */
.stamp{
  display:inline-block;
  padding:.32em .8em;
  border:2.5px solid var(--stamp);
  border-radius:6px;
  color:var(--stamp);
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  transform:rotate(-6deg);
  opacity:.88;
  mix-blend-mode:multiply;
  position:relative;
  white-space:nowrap;
}
.stamp::after{               /* 内圈细线，双线章效果 */
  content:'';
  position:absolute;
  inset:2px;
  border:1px solid var(--stamp);
  border-radius:4px;
  opacity:.55;
}
.stamp--sm{font-size:.6rem;padding:.22em .6em;border-width:2px;transform:rotate(-4deg)}

/* ---------- 顶部菜单条：细牛皮纸条 + 印章式 logo ---------- */
.ws-menu{
  background:var(--kraft-deep);
  background-image:var(--noise-kraft-wide),var(--noise-kraft);
  border-bottom:2px solid rgba(43,41,38,.35);
  box-shadow:0 2px 0 rgba(43,41,38,.12);
}
.ws-menu .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:58px;
}
.ws-brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--paper);
}
.ws-brand:hover{text-decoration:none}
.ws-seal{                     /* 印章式圆形 logo */
  width:36px;height:36px;
  border:2px solid #E8D9C4;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-family:var(--mono);
  font-weight:700;
  font-size:.82rem;
  letter-spacing:.05em;
  color:#F4EAD6;
  background:rgba(43,41,38,.18);
  box-shadow:inset 0 0 0 3px rgba(232,217,196,.25);
}
.ws-brand b{
  font-family:var(--mono);
  font-size:1.02rem;
  font-weight:700;
  letter-spacing:.02em;
}
.ws-brand small{
  display:block;
  font-family:var(--mono);
  font-size:.62rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  opacity:.72;
  line-height:1;
}
.ws-menu nav{display:flex;gap:10px;flex-wrap:wrap}
.ws-menu .btn{
  font-family:var(--mono);
  font-size:.78rem;
  letter-spacing:.06em;
  color:#F4EAD6;
  border:1.5px solid rgba(244,234,214,.55);
  border-radius:3px;
  padding:.42em .95em;
  background:transparent;
  transition:background .18s,border-color .18s;
}
.ws-menu .btn:hover{
  background:rgba(244,234,214,.14);
  border-color:#F4EAD6;
  text-decoration:none;
}

/* ---------- 首页 hero：牛皮桌面（网格垫）+ 命令行风格大字 ---------- */
.ws-hero{
  background:var(--kraft-hero);
  background-image:var(--noise-kraft-wide),var(--noise-kraft);
  color:var(--ink);
  padding:72px 0 84px;
  position:relative;
}
.ws-hero::before{             /* 田字格网格垫：mask 必须挂伪元素，否则内容一起淡出 */
  content:'';
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(43,41,38,.16) 1px,transparent 1px),
    linear-gradient(90deg,rgba(43,41,38,.16) 1px,transparent 1px);
  background-size:24px 24px;
  -webkit-mask-image:radial-gradient(circle at center,black 40%,transparent 92%);
  mask-image:radial-gradient(circle at center,black 40%,transparent 92%);
  pointer-events:none;
}
.ws-hero::after{              /* 撕纸边：牛皮纸撕边压在纸白站底上 */
  content:'';
  position:absolute;
  left:0;right:0;bottom:-1px;
  height:14px;
  background:var(--kraft-hero);
  background-image:var(--noise-kraft-wide),var(--noise-kraft);
  clip-path:polygon(0 100%,0 45%,4% 70%,9% 30%,14% 62%,19% 22%,25% 68%,31% 38%,37% 74%,43% 28%,49% 58%,55% 20%,61% 66%,67% 34%,73% 72%,79% 26%,85% 60%,91% 32%,96% 70%,100% 40%,100% 100%);
}
.ws-hero .wrap{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:38px;
  align-items:center;
  position:relative;
  z-index:1;
}
.ws-hero .kicker{
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:rgba(251,247,238,.78);
  margin:0 0 10px;
}
.ws-hero h1{
  font-family:var(--mono);
  font-weight:700;
  font-size:clamp(44px,8.6vw,96px);
  line-height:1.04;
  letter-spacing:-.015em;
  margin:0 0 14px;
  color:#FBF7EE;
  word-break:break-word;
}
.cursor{                      /* 闪烁块状光标：命令行手感 */
  display:inline-block;
  width:.2em;height:.92em;
  margin-left:.08em;
  background:#FBF7EE;
  vertical-align:-.08em;
  animation:blink 1.1s steps(2,start) infinite;
}
@keyframes blink{to{visibility:hidden}}
.ws-hero .tagline{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(18px,2.6vw,26px);
  color:#F7F1E3;
  margin:0 0 18px;
}
.ws-hero .tagline mark{
  background:var(--hl);
  color:var(--ink);
  padding:.05em .3em;
  border-radius:2px;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.ws-hero p.lede{
  max-width:640px;
  margin:0 0 30px;
  color:var(--ink);
}
/* 命令条已撤（A6）：代理入口降级为 cmd-sub 一行小字（纸面签名栏口吻） */
.cmd-sub{
  margin:10px 0 0;
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.04em;
  color:rgba(251,247,238,.85);
}
.cmd-sub a{color:#F4EAD6;text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px}
.cmd-sub a:hover{text-decoration-style:solid}
.ws-hero .hero-meta{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:.4em 1.4em;
  margin:26px 0 0;
  padding:0;
  font-family:var(--mono);
  font-size:.76rem;
  color:rgba(251,247,238,.85);
}
.ws-hero .hero-meta li{display:flex;align-items:center;gap:.5em}
.ws-hero .hero-meta li::before{
  content:'';
  width:5px;height:5px;
  background:rgba(251,247,238,.85);
  border-radius:50%;
}

/* hero 右侧：工作坊桌面一角（报告卡 / QR 道具卡 / 专家目录，纯 SVG 微动效） */
.hero-desk svg{
  display:block;
  width:100%;
  height:auto;
  max-width:480px;
  margin:0 auto;
}
@keyframes wsDraw{to{stroke-dashoffset:0}}
@keyframes wsScan{0%,100%{transform:translateY(0)}50%{transform:translateY(96px)}}
@keyframes wsHl{0%,100%{opacity:0}18%,55%{opacity:.9}}
@keyframes wsDot{0%,100%{opacity:1}50%{opacity:.3}}
.ws-desk .line-post{         /* 前后测报告：post 折线绘制 */
  stroke-dasharray:260;
  stroke-dashoffset:260;
  animation:wsDraw 3.2s ease-out .6s forwards;
}
.ws-desk .scanbar{           /* QR 道具卡：扫描线往复 */
  animation:wsScan 3.4s ease-in-out infinite;
}
.ws-desk .hl{                /* 专家目录：荧光黄高亮行呼吸 */
  animation:wsHl 6s ease-in-out 1.2s infinite;
}
.ws-desk .dot{               /* 报告数据点脉冲 */
  animation:wsDot 2.6s ease-in-out infinite;
}
/* hero 三张工具卡（AssessWiki/FormLM/QRCard）= 可点入口：悬停把卡片从桌面上揭起来 */
.desk-link{
  transform-box:fill-box;
  transform-origin:center;
  cursor:pointer;
  transition:transform .18s ease,filter .18s ease;
}
.desk-link:hover,
.desk-link:focus-visible{
  transform:translateY(-6px);
  filter:drop-shadow(0 7px 10px rgba(43,41,38,.26));
}
.desk-link:focus-visible{
  outline:2px solid var(--stamp);
  outline-offset:3px;
}

/* ---------- 资源区：网盘文件列表 ---------- */
.ws-drive{padding:58px 0 26px}
.sec-head{
  display:flex;
  align-items:baseline;
  gap:14px;
  flex-wrap:wrap;
  margin:0 0 8px;
}
.sec-head h2{
  font-family:var(--serif);
  font-size:clamp(24px,3.4vw,34px);
  margin:0;
}
.sec-head .sec-sub{
  font-family:var(--mono);
  font-size:.76rem;
  color:var(--ink-soft);
  letter-spacing:.05em;
}
/* 搜索框：复印纸手写栏质感 */
.ws-search{
  margin:18px 0 0;
}
.ws-search .box{
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--copy);
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1.5px solid var(--line-strong);
  border-bottom:2.5px solid var(--kraft-deep);
  box-shadow:var(--shadow);
  padding:.6em .95em;
}
.ws-search .icon{
  flex:none;
  width:20px;height:20px;
  color:var(--ink-soft);
}
.ws-search input{
  flex:1;
  border:none;
  outline:none;
  background:transparent;
  font-family:var(--mono);
  font-size:.95rem;
  color:var(--ink);
  min-width:0;
}
.ws-search input::placeholder{color:#9A938A}
.ws-search .count{
  flex:none;
  font-family:var(--mono);
  font-size:.72rem;
  color:var(--ink-soft);
  letter-spacing:.05em;
}
/* 类别 tab：马尼拉文件夹凸舌（选中 = 抽出的文件夹） */
.ws-tabs{
  display:flex;
  gap:6px;
  margin-top:26px;
  padding:0 6px;
  overflow-x:auto;
  scrollbar-width:thin;
}
.ws-tab{
  flex:none;
  appearance:none;
  font-family:var(--mono);
  font-size:.78rem;
  letter-spacing:.04em;
  color:var(--ink-soft);
  background:var(--manila);
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1.5px solid var(--line-strong);
  border-bottom:none;
  border-radius:7px 7px 0 0;
  padding:.6em 1.15em .68em;
  cursor:pointer;
  position:relative;
  transition:background .18s,color .18s,box-shadow .18s;
}
.ws-tab:hover{color:var(--ink);text-decoration:none}   /* tab 现为指向品类页的链接，去掉下划线保持凸舌手感 */
.ws-tab[aria-selected="true"]{
  background:var(--manila-deep);
  color:var(--ink);
  font-weight:700;
  box-shadow:0 -3px 0 rgba(43,41,38,.16);
}
.ws-tab[aria-selected="true"]::after{   /* 凸舌上的缝线虚线 */
  content:'';
  position:absolute;
  left:8px;right:8px;top:4px;
  border-top:1px dashed rgba(43,41,38,.28);
}
/* 文件夹列表容器：复印白面板，顶边与选中凸舌咬合 */
.ws-list{
  background:var(--copy);
  background-image:var(--noise-blotch),var(--noise-fiber),var(--noise-ink);   /* 整张复印纸：云斑+纤维+颗粒三叠 */
  border:1.5px solid var(--line-strong);
  box-shadow:var(--shadow);
  position:relative;
}
.ws-list-head{
  display:grid;
  grid-template-columns:56px 1fr 210px;
  gap:14px;
  padding:.55em 1.15em;
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
  border-bottom:1.5px solid var(--line);
  background:rgba(232,213,168,.28);
}
.ws-list-head span:nth-child(3){text-align:right}
/* 文件夹行：网盘文件列表单元 */
.ws-row{
  display:grid;
  grid-template-columns:72px 1fr 210px;
  gap:14px;
  align-items:center;
  padding:16px 1.15em;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  background:transparent;   /* 行透底：露出整张纸的纹理，不再每行刷一块平白 */
  box-shadow:inset 4px 0 0 var(--cc,transparent);   /* B：分类色脊（左缘标签条） */
  transition:transform .16s,box-shadow .16s,background .16s;
}
.ws-row>.folder-ic{justify-self:center}
.ws-row:last-of-type{border-bottom:none}
.ws-row:hover{
  text-decoration:none;
  background:rgba(255,254,251,.75);   /* 半透明提亮：hover 时纸纹仍在 */
  box-shadow:inset 4px 0 0 var(--cc,var(--kraft-deep)),inset 0 0 0 1px var(--line-strong);
  z-index:1;
  position:relative;
}
.folder-ic{
  position:relative;
  width:50px;height:44px;
  background:var(--manila);
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1.5px solid var(--line-strong);
  border-radius:3px;
}
.folder-ic::before{
  content:'';
  position:absolute;
  top:-8px;left:-1.5px;
  width:19px;height:9px;
  background:var(--manila);
  border:1.5px solid var(--line-strong);
  border-bottom:none;
  border-radius:3px 3px 0 0;
}
.folder-ic::after{             /* 橡皮筋捆扎线（无母题的空文件夹才显示） */
  content:'';
  position:absolute;
  left:8px;right:8px;top:18px;
  border-top:2px solid rgba(138,109,63,.5);
  transform:rotate(-3deg);
}
.folder-ic:has(.r-motif)::after{display:none}   /* A：母题取代橡皮筋 */
.r-motif{                       /* A：逐活动线描母题缩略（首页行卡；分类页无此子元素则保持空文件夹） */
  position:absolute;
  left:50%;top:56%;
  transform:translate(-50%,-50%);
  width:38px;height:38px;
  display:block;
  overflow:visible;
}
.ws-row .r-main{min-width:0}
.ws-row .r-name{
  font-family:var(--serif);
  font-size:1.18rem;
  font-weight:700;
  line-height:1.3;
  color:var(--ink);
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.ws-row .r-desc{
  margin:3px 0 0;
  color:var(--ink-soft);
  font-size:.92rem;
  line-height:1.55;
}
.ws-row .r-meta{
  margin-top:7px;
  font-family:var(--mono);
  font-size:.72rem;
  color:var(--ink-soft);
  display:flex;
  flex-wrap:wrap;
  gap:.3em 1.1em;
}
.ws-row .r-tag{
  justify-self:end;
  text-align:right;
  font-family:var(--mono);
  font-size:.68rem;
  color:var(--kraft-deep);
  letter-spacing:.06em;
  line-height:1.9;
}
.ws-row .r-tag .cat{
  display:inline-block;
  border:1px solid var(--line-strong);
  border-radius:3px;
  padding:.1em .55em;
  background:rgba(232,213,168,.4);
  color:var(--kraft-deep);
}
/* ---------- 分类色带（B）：按 data-cat / data-group 映射到 --cc，行色脊/标签/抽屉头联动 ---------- */
.ws-group[data-group="icebreakers"],.ws-row[data-cat="icebreakers"]{--cc:var(--cat-icebreakers)}
.ws-group[data-group="communication"],.ws-row[data-cat="communication"]{--cc:var(--cat-communication)}
.ws-group[data-group="trust"],.ws-row[data-cat="trust"]{--cc:var(--cat-trust)}
.ws-group[data-group="leadership"],.ws-row[data-cat="leadership"]{--cc:var(--cat-leadership)}
.ws-group[data-group="conflict"],.ws-row[data-cat="conflict"]{--cc:var(--cat-conflict)}
.ws-group[data-group="creativity"],.ws-row[data-cat="creativity"]{--cc:var(--cat-creativity)}
.ws-group[data-group="reviews"],.ws-row[data-cat="reviews"]{--cc:var(--cat-reviews)}
.ws-group[data-group="feedback-forms"],.ws-row[data-cat="feedback-forms"]{--cc:var(--cat-feedback-forms)}
.ws-group[data-group="self-assessment"],.ws-row[data-cat="self-assessment"]{--cc:var(--cat-self-assessment)}
.ws-row .r-tag .cat{
  border-color:var(--cc,var(--line-strong));
  color:var(--cc,var(--kraft-deep));
  background:color-mix(in srgb,var(--cc,var(--manila)) 16%,var(--copy));
}
.ws-group>summary{box-shadow:inset 5px 0 0 var(--cc,transparent)}
.ws-group .grp-n{
  color:var(--cc,var(--kraft-deep));
  border-color:var(--cc,var(--line-strong));
  background:color-mix(in srgb,var(--cc,var(--copy)) 15%,#FAF7F0);
}
/* ---------- C：首页行卡描述收行 + meta 芯片化（仅首页 .ws-group 内，分类/场景扁平列表不受影响；DOM 全文保留，搜索/派生零扰动） ---------- */
.ws-group .ws-row .r-desc{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.ws-group .ws-row .r-meta{margin-top:9px;gap:.4em .6em}
.ws-group .ws-row .r-meta>span{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--line-strong);
  border-radius:9px;
  padding:.1em .62em;
  background:rgba(250,247,240,.62);
}
/* 仅第1段(人数)、第2段(时长)语义恒定义→贴微型图标；第3/4段场景/道具会漂移，只做芯片不贴图，避免错标 */
.ws-group .ws-row .r-meta>span::before{
  content:'';
  flex:none;
  width:11px;height:11px;
  margin-right:.45em;
  background:currentColor;
  -webkit-mask:var(--mi) no-repeat center/contain;
  mask:var(--mi) no-repeat center/contain;
  opacity:.78;
}
.ws-group .ws-row .r-meta>span:nth-child(n+3)::before{content:none}
.ws-group .ws-row .r-meta>span:nth-child(1){--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3 20v-1a5 5 0 0 1 5-5h2a5 5 0 0 1 5 5v1'/%3E%3Cpath d='M16 4.5a3 3 0 0 1 0 5.5'/%3E%3Cpath d='M18.5 14a5 5 0 0 1 2.5 4v2'/%3E%3C/g%3E%3C/svg%3E")}
.ws-group .ws-row .r-meta>span:nth-child(2){--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/g%3E%3C/svg%3E")}
/* 五星评分已撤（A3：虚构评分退役——真实信号是审校章 + CC BY） */
.chip-assess{
  display:inline-flex;
  align-items:center;
  gap:.35em;
  font-family:var(--mono);
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--stamp);
  border:1.5px solid var(--stamp);
  border-radius:3px;
  padding:.14em .5em;
  transform:rotate(-1.5deg);
  opacity:.9;
}
.ws-list .empty{
  display:none;
  padding:38px 1.15em;
  text-align:center;
  font-family:var(--mono);
  font-size:.82rem;
  color:var(--ink-soft);
}
.ws-list.is-empty .empty{display:block}
/* ---------- 分类手风琴分组（首页网盘列表按分类折叠，牛皮纸抽屉头） ---------- */
.ws-group{border-bottom:1px solid var(--line)}
.ws-group:last-child{border-bottom:none}
.ws-group>summary{
  display:flex;
  align-items:center;
  gap:.7em;
  cursor:pointer;
  list-style:none;
  padding:.72em 1.15em;
  font-family:var(--mono);
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink);
  background:var(--manila);
  background-image:var(--noise-fiber),var(--noise-ink);
  border-top:1.5px solid var(--line-strong);
  transition:background .18s;
}
.ws-group:first-child>summary{border-top:none}
.ws-group>summary::-webkit-details-marker{display:none}
.ws-group>summary:hover{background:var(--manila-deep)}
.ws-group[open]>summary{background:var(--manila-deep)}
.grp-name{font-weight:700}
.grp-n{
  font-size:.68rem;
  color:var(--kraft-deep);
  background:rgba(250,247,240,.7);
  border:1px solid var(--line-strong);
  border-radius:10px;
  padding:.05em .6em;
  min-width:1.6em;
  text-align:center;
}
.grp-chev{
  margin-left:auto;
  width:9px;height:9px;
  border-right:2px solid var(--ink-soft);
  border-bottom:2px solid var(--ink-soft);
  transform:rotate(45deg);
  transition:transform .2s;
}
.ws-group[open] .grp-chev{transform:rotate(135deg)}
.grp-body{padding:2px 0 4px}
.grp-body .ws-row{border-bottom:1px solid var(--line)}
.grp-body .ws-row:last-child{border-bottom:none}
.ws-more{
  margin:14px 4px 0;
  font-family:var(--mono);
  font-size:.74rem;
  color:var(--ink-soft);
}
.ws-more a{color:var(--pen)}

/* ---------- 订阅卡：马尼拉信封（站内唯一动作，紧凑排布——只收一个邮箱，不占大面积） ---------- */
.ws-subscribe{padding:34px 0 46px}
.envelope{
  background:var(--manila);
  background-image:var(--noise-kraft-wide),var(--noise-kraft);
  border:2px solid var(--kraft);
  box-shadow:var(--shadow-lift);
  border-radius:4px;
  position:relative;
  padding:26px 30px 24px;
  color:var(--ink);
  overflow:hidden;
}
.envelope::before{             /* 封口盖 */
  content:'';
  position:absolute;
  top:-2px;left:-2px;right:-2px;
  height:24px;
  background:rgba(138,109,63,.24);
  border-bottom:2px dashed rgba(43,41,38,.28);
  clip-path:polygon(0 0,100% 0,100% 46%,50% 100%,0 46%);
}
.envelope::after{              /* 内背 V 形折线：信封两侧翼向顶中汇聚 */
  content:'';
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 100 L50 0 L100 100' fill='none' stroke='%238A6D3F' stroke-opacity='.3' stroke-width='.45'/%3E%3C/svg%3E");
  background-size:100% 100%;
  pointer-events:none;
}
.envelope>*{position:relative;z-index:1}
.envelope .clip-note{          /* 回形针别住的小纸条（装饰固定真实内容） */
  position:absolute;
  top:15px;right:34px;
  background:var(--copy);
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1px solid var(--line-strong);
  box-shadow:var(--shadow);
  transform:rotate(3deg);
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink-soft);
  padding:.5em .9em .5em 2.3em;
}
.envelope .clip-note::before{  /* 回形针 */
  content:'';
  position:absolute;
  left:.62em;top:-.55em;
  width:13px;height:26px;
  border:2px solid #8C8478;
  border-radius:6px;
  box-shadow:inset 0 0 0 3px var(--copy),inset 0 0 0 5px #8C8478;
}
.envelope h2{
  font-family:var(--serif);
  font-size:clamp(19px,2.4vw,23px);
  margin:0 0 8px;
}
.envelope p{
  max-width:560px;
  margin:0 0 14px;
  color:var(--ink);
}
.envelope form{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  max-width:560px;
}
.envelope input[type="email"]{
  flex:1;
  min-width:220px;
  font-family:var(--mono);
  font-size:.92rem;
  color:var(--ink);
  background:var(--copy);
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1.5px solid var(--kraft-deep);
  box-shadow:var(--shadow);
  padding:.72em 1em;
}
.envelope input[type="email"]::placeholder{color:#9A938A}
.envelope button{
  font-family:var(--mono);
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--paper);
  background:var(--pen);
  border:1.5px solid #164A87;
  box-shadow:var(--shadow);
  padding:.72em 1.5em;
  cursor:pointer;
  transition:transform .15s,box-shadow .15s;
}
.envelope button:hover{transform:translate(-1px,-1px);box-shadow:var(--shadow-lift)}
.envelope .fine{
  margin:10px 0 0;
  font-family:var(--mono);
  font-size:.68rem;
  color:#6E5630;
}
.envelope .stamp{              /* 邮票：贴在信封右下，带齿孔与邮戳 */
  position:absolute;
  right:28px;bottom:22px;
  width:92px;
  filter:drop-shadow(2px 3px 0 rgba(43,41,38,.18));
  animation:wsStamp .55s cubic-bezier(.2,1.4,.4,1) .35s both;
}
.envelope .stamp svg{display:block;width:100%;height:auto}
@keyframes wsStamp{            /* 邮戳盖下来 */
  from{opacity:0;transform:rotate(3deg) scale(1.7)}
  to{opacity:1;transform:rotate(3deg) scale(1)}
}
.sub-note{
  display:none;
  margin:14px 0 0;
  font-family:var(--mono);
  font-size:.76rem;
  color:var(--kraft-deep);
  background:rgba(255,252,244,.75);
  border:1px dashed var(--kraft-deep);
  padding:.7em 1em;
}

/* ---------- 持续开发中提示：半透明墨色遮罩 + 马尼拉纸条卡（各语言首页共用） ---------- */
.wip-note{
  position:fixed;
  inset:0;
  z-index:60;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(43,41,38,.45);   /* 半透明遮罩：透出牛皮桌面与纸纹 */
}
.wip-note[hidden]{display:none}
.wip-card{
  background:var(--manila);
  background-image:var(--noise-kraft-wide),var(--noise-kraft);
  border:2px solid var(--kraft);
  box-shadow:var(--shadow-lift);
  border-radius:4px;
  max-width:400px;
  width:100%;
  padding:24px 26px 22px;
  position:relative;
}
.wip-card::before{             /* 封口盖顶线：与订阅信封同款语言 */
  content:'';
  position:absolute;
  top:-2px;left:-2px;right:-2px;
  height:14px;
  background:rgba(138,109,63,.24);
  border-bottom:2px dashed rgba(43,41,38,.28);
  clip-path:polygon(0 0,100% 0,100% 46%,50% 100%,0 46%);
}
.wip-kicker{
  margin:8px 0 6px;
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--kraft-deep);
}
.wip-card h2{
  font-family:var(--serif);
  font-size:1.2rem;
  margin:0 0 8px;
}
.wip-card p{
  margin:0 0 16px;
  font-size:.88rem;
  line-height:1.6;
  color:var(--ink);
}
.wip-btn{
  font-family:var(--mono);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--paper);
  background:var(--pen);
  border:1.5px solid #164A87;
  border-radius:3px;
  box-shadow:var(--shadow);
  padding:.6em 1.3em;
  cursor:pointer;
  transition:transform .15s,box-shadow .15s;
}
.wip-btn:hover{transform:translate(-1px,-1px);box-shadow:var(--shadow-lift)}

/* ---------- 页脚：深牛皮条 ---------- */
.ws-footer{
  background:var(--kraft-deep);
  background-image:var(--noise-kraft-wide),var(--noise-kraft);
  color:#E9DFC9;
  padding:40px 0 30px;
  margin-top:10px;
}
.ws-footer .wrap{
  display:grid;
  grid-template-columns:1fr auto;
  gap:28px;
  align-items:start;
}
.ws-footer .f-brand{
  display:flex;align-items:center;gap:12px;
  color:#F4EAD6;
  font-family:var(--mono);
  font-weight:700;
}
.ws-footer .f-brand .ws-seal{border-color:rgba(232,217,196,.8)}
.ws-footer .f-line{
  font-family:var(--serif);
  font-style:italic;
  margin:12px 0 0;
  color:#E9DFC9;
  opacity:.92;
}
.ws-footer .f-links{
  display:flex;
  flex-wrap:wrap;
  gap:.4em 1.6em;
  font-family:var(--mono);
  font-size:.78rem;
  justify-content:flex-end;
}
.ws-footer .f-links a{color:#F4EAD6}
.ws-footer .f-links a:hover{color:#FFF}
.ws-footer .f-copy{
  grid-column:1/-1;
  margin:26px 0 0;
  padding-top:16px;
  border-top:1px dashed rgba(232,217,196,.35);
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.08em;
  color:rgba(233,223,201,.75);
}
/* 语言选择：footer 右下角的语言标签（真实跳转，替代装饰文案） */
.ws-footer .f-lang{                      /* 纯文本链 + 下拉同一组，保持两列布局不变 */
  display:inline-flex;
  align-items:center;
  gap:1em;
  flex-wrap:wrap;
}
.ws-footer .lang-links{
  display:inline-flex;
  align-items:center;
  gap:.75em;
}
.ws-footer .lang-links a{
  color:rgba(233,223,201,.75);
  border-bottom:1px dashed rgba(232,217,196,.35);
  padding-bottom:1px;
}
.ws-footer .lang-links a:hover{
  color:#F4EAD6;
  text-decoration:none;
  border-bottom-color:#F4EAD6;
}
.ws-footer .lang-links a[aria-current="page"]{
  color:#F4EAD6;
  font-weight:700;
  border-bottom:1.5px solid var(--stamp);   /* 印章红：当前语言，与审校章同语义 */
}
.ws-footer .lang-pick{
  display:inline-flex;
  align-items:center;
  gap:.55em;
}
.ws-footer .lang-pick select{
  appearance:none;
  -webkit-appearance:none;
  font-family:var(--mono);
  font-size:.76rem;
  letter-spacing:.02em;
  color:#F4EAD6;
  background:transparent;
  border:1.5px dashed rgba(232,217,196,.45);
  border-radius:3px;
  padding:.3em 1.9em .3em .75em;
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23E9DFC9' stroke-width='1.5'/%3E%3C/svg%3E");   /* 自绘下拉箭头 */
  background-repeat:no-repeat;
  background-position:right .6em center;
}
.ws-footer .lang-pick select:hover{border-color:#F4EAD6}
.ws-footer .lang-pick select:focus-visible{outline:2px dashed var(--pen);outline-offset:2px}

/* ============================================================
   第 2 级：活动文件夹详情页
   ============================================================ */

/* 路径栏：网盘地址栏（复印纸条 + 等宽路径） */
.ws-path{padding:26px 0 6px}
.ws-path .bar{
  display:flex;
  align-items:center;
  gap:.55em;
  flex-wrap:wrap;
  background:var(--copy);
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1.5px solid var(--line-strong);
  box-shadow:var(--shadow);
  padding:.55em 1.05em;
  font-family:var(--mono);
  font-size:.8rem;
  color:var(--ink-soft);
}
.ws-path .bar .sep{color:var(--line-strong)}
.ws-path .bar .here{color:var(--ink);font-weight:700}
.ws-path .bar .prompt{color:var(--pen);font-weight:700}

/* 两栏布局：主区（直排内容+纸件）+ 侧栏（索引卡组） */
.fp-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:34px;
  padding:32px 0 10px;
  align-items:start;
}

/* 主区：无外卡直排——内容左对齐栏起点，
   纸件（文件表、FAQ 卡）是散放在桌面上的独立纸张，不再卡中套卡 */
.fp-main{
  position:relative;
}
.fp-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  flex-wrap:wrap;
}
.fp-head .crumb-cat{
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--kraft-deep);
  margin:0 0 8px;
}
.fp-main h1{
  font-family:var(--serif);
  font-size:clamp(30px,4.4vw,44px);
  line-height:1.14;
  margin:0;
}
/* 压印（letterpress）：衬线大标题如铅字压进纸面，下缘一线受光 */
.fp-main h1,.sec-head h2,.ws-related h2,.envelope h2{
  text-shadow:0 1px 0 rgba(255,255,255,.6);
}
.fp-main .fp-lede{
  margin:16px 0 0;
  font-size:1.06rem;
  color:var(--ink);
}
.fp-main .fp-lede mark{
  background:var(--hl);
  color:var(--ink);
  padding:.04em .28em;
  border-radius:2px;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.fp-main .fp-desc{
  margin:18px 0 0;
  color:var(--ink-soft);
  max-width:60ch;
}
.fp-main .fp-desc p{margin:0 0 1em}
.fp-main .fp-desc p:last-child{margin-bottom:0}

/* ---------- 手册区：guide/debrief 全文内联（页面即文件，一字不差） ---------- */
.fp-manual{margin:34px 0 0}
.fp-manual h2{
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--kraft-deep);
  margin:0 0 12px;
  display:flex;
  align-items:center;
  gap:.7em;
}
.fp-manual h2::after{content:'';flex:1;border-top:1.5px dashed var(--line-strong)}
.fp-manual .manual-note{
  margin:0 2px 4px;
  font-family:var(--mono);
  font-size:.7rem;
  color:var(--ink-soft);
}
.fp-head a.stamp:hover{text-decoration:none}    /* 章链接化：颜色语义不变，去 hover 下划线 */

/* ---------- 技能地址复制条：右上章旁边的索引卡小纸条（agent 入口） ---------- */
.fp-stamps{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}
.skill-copy{
  -webkit-appearance:none;
  appearance:none;
  font:inherit;
  font-family:var(--mono);
  font-size:.72rem;
  line-height:1.55;
  color:var(--ink);
  background:var(--copy);
  background-image:var(--noise-fiber);
  border:1.5px dashed var(--line-strong);
  border-radius:3px;
  padding:.55em .95em;
  cursor:pointer;
  text-align:left;
  box-shadow:var(--shadow);
  transform:rotate(-.6deg);
}
.skill-copy:hover{
  border-style:solid;
  border-color:var(--kraft-deep);
  color:var(--pen);
}
.skill-copy:active{transform:rotate(-.6deg) translateY(1px)}
.skill-copy .sc-sub{
  display:block;
  font-size:.62rem;
  letter-spacing:.05em;
  color:var(--ink-soft);
}
.skill-copy.is-done{                     /* 已复制：圆珠笔蓝实线确认（像手写签收） */
  border-style:solid;
  border-color:var(--pen);
  color:var(--pen);
}
.skill-copy.is-done .sc-sub{color:var(--pen)}
.skill-copy:focus-visible{outline:2px solid var(--pen);outline-offset:2px}

/* ---------- 人类下载条：正文顶部的取件动作（与右上「复制技能地址」的代理语义分层） ---------- */
.fp-dlbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:18px 0 0}
.fp-dl{
  font-family:var(--mono);
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--paper);
  background:var(--pen);
  border:1.5px solid #164A87;
  border-radius:3px;
  box-shadow:var(--shadow);
  padding:.6em 1.15em;
  transition:transform .15s,box-shadow .15s;
}
.fp-dl:hover{transform:translate(-1px,-1px);box-shadow:var(--shadow-lift);text-decoration:none;color:var(--paper)}
.fp-dl-alt{font-family:var(--mono);font-size:.8rem;color:var(--pen);border-bottom:1px dashed var(--pen);padding-bottom:1px}
.fp-dl-alt:hover{text-decoration:none;border-bottom-style:solid}
@media (max-width:780px){
  .fp-stamps{flex-direction:row;align-items:center;flex-wrap:wrap}   /* 窄屏章与复制条横排 */
  .skill-copy{transform:none}                                          /* 窄屏摆正 */
}

/* 手册正文：分节直排（不套卡——手册就是纸面本身，纸件才散放） */
.md-sec{margin:22px 0 0}
.md-sec h3{
  font-family:var(--serif);
  font-size:1.08rem;
  margin:0 0 10px;
  color:var(--ink);
}
.md-sec p{margin:0 0 .8em;font-size:.94rem;line-height:1.7;color:var(--ink)}
.md-sec p:last-child{margin-bottom:0}
.md-sec strong{color:var(--ink)}
.md-sec em{                             /* 斜体字段标签：荧光笔轻扫（非斜体呈现） */
  font-style:normal;
  background:rgba(245,230,163,.38);
  padding:.02em .18em;
  border-radius:2px;
}
.md-sec ul,.md-sec ol{
  margin:0 0 .9em;
  padding-left:1.5em;
  font-size:.94rem;
  line-height:1.65;
  color:var(--ink);
}
.md-sec li{margin:0 0 .5em}
.md-sec li:last-child{margin-bottom:0}
.md-sec code,
.md-quote code{
  font-family:var(--mono);
  font-size:.8em;
  background:rgba(245,230,163,.55);
  padding:.05em .3em;
  border-radius:2px;
}
.md-quote{                              /* 手册开头：文件夹标签条（元信息 + 许可） */
  margin:0 0 16px;
  padding:.65em 1em;
  background:rgba(232,213,168,.3);
  border-left:4px solid var(--manila-deep);
  font-family:var(--mono);
  font-size:.72rem;
  line-height:1.9;
  color:var(--ink-soft);
}
.md-quote p{margin:0}
.md-sep{border:none;border-top:1.5px dashed var(--line);margin:18px 0}
.md-sec .md-q{                          /* 复盘问题小标题行（**1. …**） */
  font-family:var(--serif);
  font-size:1rem;
  line-height:1.5;
  margin:1.3em 0 .25em;
}
.md-sec .md-q:first-child{margin-top:0}
.md-sec .md-why{                        /* 指向行：这题在测什么（圆珠笔批注） */
  font-size:.82rem;
  line-height:1.6;
  color:var(--ink-soft);
  border-left:3px solid rgba(31,95,168,.4);
  padding-left:.7em;
  margin:.2em 0 1em;
}
.md-sec .md-why:last-child{margin-bottom:0}

/* 手册表格：散放的复印纸件（通用） + 逐分钟脚本方格纸 */
.md-sec .md-table{
  width:100%;
  border-collapse:collapse;
  border:1.5px solid var(--line-strong);
  background:var(--copy);
  background-image:var(--noise-fiber),var(--noise-ink);
  box-shadow:var(--shadow);
  margin:12px 0 8px;
  font-size:.88rem;
  line-height:1.55;
}
.md-sec .md-table th{
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-align:left;
  color:var(--kraft-deep);
  padding:.6em .8em;
  border-bottom:1.5px solid var(--line-strong);
  background:rgba(232,213,168,.28);
}
.md-sec .md-table td{
  padding:.6em .8em;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.md-sec .md-table tbody tr:last-child td{border-bottom:none}
.md-sec .md-table.t-time{               /* 方格纸：作业本浅蓝格线（不对齐行——纸先印格，字后写上） */
  background-image:
    linear-gradient(rgba(168,196,216,.22) 1px,transparent 1px),
    linear-gradient(90deg,rgba(168,196,216,.22) 1px,transparent 1px),
    var(--noise-ink);
  background-size:26px 26px,26px 26px,auto;
}
.md-sec .md-table.t-time th{background:rgba(168,196,216,.42);color:var(--ink-soft)}
.md-sec .md-table.t-time td:first-child{   /* 时间列：mono、不折行 */
  font-family:var(--mono);
  font-size:.8rem;
  white-space:nowrap;
}

/* 翻车点节：荧光黄便利贴（散贴在手册页边上，圆珠笔蓝圆号） */
.md-sec--fails ol{
  list-style:none;
  margin:14px 0 0;
  padding:0;
  counter-reset:fail;
}
.md-sec--fails ol li{
  counter-increment:fail;
  position:relative;
  background:rgba(245,230,163,.42);
  background-image:var(--noise-fiber);
  border:1.5px solid rgba(201,174,126,.65);
  box-shadow:var(--shadow);
  padding:.75em 1em .75em 2.7em;
  margin:0 0 12px;
  font-size:.92rem;
  line-height:1.6;
  color:var(--ink);
}
.md-sec--fails ol li:last-child{margin-bottom:0}
.md-sec--fails ol li:nth-child(odd){transform:rotate(-.4deg)}
.md-sec--fails ol li:nth-child(even){transform:rotate(.35deg)}

/* ---------- 首页事实条：马尼拉长条标签，可摘取的关键数（人与 AI 引擎同读一份） ---------- */
.ws-facts{
  padding:20px 0 0;
}
.ws-facts .wrap{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 10px;
  background:var(--manila);
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1.5px solid var(--line-strong);
  box-shadow:var(--shadow);
  padding:12px 16px;
  position:relative;
}
.ws-facts .wrap::before{             /* 索引卡红顶线，与首页卡族同语 */
  content:'';
  position:absolute;
  left:-1.5px;right:-1.5px;top:-1.5px;
  border-top:3px solid var(--stamp);
}
.facts-lead{
  margin:0 6px 0 0;
  font-family:var(--mono);
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--kraft-deep);
}
.facts-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px 8px;
  margin:0;
  padding:0;
  list-style:none;
}
.facts-list li{
  font-family:var(--mono);
  font-size:.76rem;
  color:var(--ink-soft);
  background:var(--copy);
  background-image:var(--noise-ink);
  border:1.5px solid var(--line-strong);
  padding:.3em .7em;
}
.facts-list b{
  color:var(--ink);
  font-weight:700;
}
@media (max-width:680px){
  .ws-facts .wrap{padding:12px 14px}
  .facts-list li{font-size:.72rem}
}

/* ---------- 首页问答区：复用详情页折叠件（details.faq + .faq-a） ---------- */
.ws-faq{
  padding:40px 0 4px;
}
.ws-faq details.faq{
  max-width:none;
}

/* ---------- 首页指南条：索引卡小列，通向方法指南 ---------- */
.ws-guides{
  padding:22px 0 4px;
}
.ws-guides .wrap{
  border:1.5px solid var(--line-strong);
  border-left:3px solid var(--pen);
  background:var(--copy);
  background-image:var(--noise-fiber),var(--noise-ink);
  box-shadow:var(--shadow);
  padding:14px 18px;
}
.guides-lead{
  margin:0 0 8px;
  font-family:var(--mono);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--kraft-deep);
}
.ws-guides ul{
  display:flex;
  flex-wrap:wrap;
  gap:6px 18px;
  margin:0;
  padding:0;
  list-style:none;
}
.ws-guides li::before{content:'▸ ';color:var(--pen)}
.ws-guides li.guides-all::before{content:''}
.ws-guides a{
  font-size:.88rem;
  color:var(--pen);
}

/* ---------- 首页三路卡：start here —— 谁来都能找到自己的入口 ---------- */
.ws-paths{
  padding:34px 0 8px;
}
.ws-paths .wrap{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.path-card{
  display:block;
  border:1.5px solid var(--line-strong);
  background:var(--paper);
  background-image:var(--noise-fiber),var(--noise-ink);
  box-shadow:var(--shadow);
  padding:18px 18px 15px;
  position:relative;
  color:var(--ink);
  transition:transform .15s,box-shadow .15s;
}
.path-card:hover{
  text-decoration:none;
  transform:translateY(-2px);
  box-shadow:var(--shadow-hard,4px 4px 0 rgba(43,41,38,.14));
}
.path-card:hover .path-go{color:var(--pen)}
.path-no{                    /* 印章红圆号：只做序号语义，不做装饰 */
  position:absolute;
  top:-11px;left:14px;
  font-family:var(--mono);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.18em;
  color:#FDF9F0;
  background:var(--stamp);
  padding:3px 9px 2px;
}
.path-who{                   /* 荧光笔人设：与站内 em 高亮同族 */
  display:inline-block;
  font-family:var(--mono);
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--kraft-deep);
  background:rgba(245,230,163,.55);
  padding:2px 7px;
  margin-bottom:9px;
}
.path-title{
  font-family:var(--serif);
  font-size:1.06rem;
  font-weight:700;
  line-height:1.35;
  margin:0 0 6px;
}
.path-desc{
  margin:0 0 10px;
  font-size:.86rem;
  line-height:1.6;
  color:var(--ink-soft);
}
.path-go{
  font-family:var(--mono);
  font-size:.76rem;
  font-weight:700;
  color:var(--kraft-deep);
  transition:color .15s;
}
@media (max-width:780px){
  .ws-paths .wrap{grid-template-columns:1fr}   /* 窄屏三卡改单列，不挤纸面 */
}
.md-sec--fails ol li::before{           /* 圆珠笔蓝圆号 */
  content:counter(fail);
  position:absolute;
  left:.8em;
  top:.72em;
  width:1.55em;
  height:1.55em;
  display:grid;
  place-items:center;
  border:1.5px solid var(--pen);
  border-radius:50%;
  font-family:var(--mono);
  font-weight:700;
  font-size:.75rem;
  color:var(--pen);
}

/* 文件列表：网盘文件视图 */
.fp-files{margin:30px 0 0}
.fp-files h2{
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--kraft-deep);
  margin:0 0 12px;
  display:flex;
  align-items:center;
  gap:.7em;
}
.fp-files h2::after{content:'';flex:1;border-top:1.5px dashed var(--line-strong)}
.file-table{
  border:1.5px solid var(--line-strong);
  background:var(--copy);
  background-image:var(--noise-blotch),var(--noise-fiber),var(--noise-ink);   /* 复印件：云斑+纤维+颗粒三叠 */
  box-shadow:var(--shadow),inset 0 0 26px rgba(43,41,38,.045);   /* 复印机渐晕：四缘油墨略沉 */
}
.file-head{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 92px 86px 30px;
  gap:12px;
  padding:.5em .95em;
  font-family:var(--mono);
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
  border-bottom:1.5px solid var(--line);
  background:rgba(232,213,168,.28);
}
.file-head span:nth-child(3),.file-head span:nth-child(4){text-align:right}
.file-row{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 92px 86px 30px;
  gap:12px;
  align-items:center;
  padding:.85em .95em;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  transition:transform .15s,box-shadow .15s,background .15s;
}
.file-row:last-child{border-bottom:none}
.file-row:hover{
  text-decoration:none;
  background:rgba(255,254,251,.75);   /* 半透明提亮：hover 时纸纹仍在 */
  box-shadow:inset 5px 0 0 var(--pen),inset 0 0 0 1px var(--line-strong);
  position:relative;
  z-index:1;
}
.file-ic{
  width:26px;height:32px;
  border:1.5px solid var(--line-strong);
  border-radius:2px 4px 2px 2px;
  display:grid;
  place-items:center;
  font-family:var(--mono);
  font-size:.5rem;
  font-weight:700;
  letter-spacing:.05em;
  color:var(--kraft-deep);
  position:relative;
  background:var(--copy);
}
.file-ic::before{              /* 折角 */
  content:'';
  position:absolute;
  top:-1.5px;right:-1.5px;
  width:9px;height:9px;
  background:linear-gradient(135deg,var(--line) 46%,var(--copy) 46%);
  border-left:1.5px solid var(--line-strong);
  border-bottom:1.5px solid var(--line-strong);
}
.file-ic.t-pdf{border-color:var(--stamp);color:var(--stamp)}
.file-name{
  font-family:var(--mono);
  font-size:.88rem;
  font-weight:600;
  color:var(--ink);
  overflow-wrap:anywhere;
}
.file-row:hover .file-name{color:var(--pen)}
.file-sub{
  display:block;
  font-family:var(--sans);
  font-weight:400;
  font-size:.74rem;
  color:var(--ink-soft);
  line-height:1.45;
  margin-top:2px;
}
.file-type,.file-size{
  font-family:var(--mono);
  font-size:.7rem;
  color:var(--ink-soft);
  text-align:right;
}
.file-dl{
  text-align:right;
  color:var(--pen);
  font-family:var(--mono);
  font-weight:700;
  font-size:.95rem;
}
.fp-files .files-note{
  margin:12px 2px 0;
  font-family:var(--mono);
  font-size:.7rem;
  color:var(--ink-soft);
}

/* ---------- FAQ：折叠问答（默认折叠控高度；全文可见于 DOM 与 FAQPage 结构化数据） ---------- */
.fp-faq{margin:30px 0 0}
.fp-faq h2{
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--kraft-deep);
  margin:0 0 12px;
  display:flex;
  align-items:center;
  gap:.7em;
}
.fp-faq h2::after{content:'';flex:1;border-top:1.5px dashed var(--line-strong)}
details.faq{
  border:1.5px solid var(--line-strong);
  background:var(--copy);
  background-image:var(--noise-fiber),var(--noise-ink);
  box-shadow:var(--shadow);
  margin-bottom:10px;
}
details.faq:last-of-type{margin-bottom:0}
.faq summary{
  display:flex;
  align-items:baseline;
  gap:.65em;
  padding:.85em 1.05em;
  cursor:pointer;
  list-style:none;                    /* 去默认三角，自绘 + / − */
  font-family:var(--serif);
  font-size:1.02rem;
  color:var(--ink);
  transition:background .16s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{background:rgba(245,230,163,.4)}   /* 荧光笔扫过问题行 */
.faq summary:focus-visible{
  outline:2px solid var(--pen);
  outline-offset:-2px;
}
.faq summary::before{                                 /* 折叠指示：+ / − */
  content:'+';
  flex:none;
  font-family:var(--mono);
  font-weight:700;
  font-size:.9em;
  color:var(--kraft-deep);
}
details.faq[open] summary::before{content:'−'}
.faq-a{
  border-top:1.5px dashed var(--line);               /* 展开后的「撕开」折线 */
  margin:0 1.05em;
  padding:.65em .15em 1em 1.55em;
}
.faq-a p{
  margin:0;
  font-size:.92rem;
  line-height:1.65;
  color:var(--ink);
}
.faq-a code{
  font-family:var(--mono);
  font-size:.8em;
  background:rgba(245,230,163,.55);
  padding:.05em .3em;
  border-radius:2px;
}

/* ---------- make it live：纸质→在线升级附页（马尼拉增值页，可选不强制） ---------- */
.fp-live{
  margin:30px 0 0;
  background:var(--manila);
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1.5px solid var(--line-strong);
  box-shadow:var(--shadow);
  padding:20px 22px 18px;
  position:relative;
}
.fp-live::before{               /* 缝线虚线：档案袋封口语义 */
  content:'';
  position:absolute;
  top:9px;left:9px;right:9px;
  border-top:1px dashed rgba(43,41,38,.28);
}
.fp-live h2{
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--kraft-deep);
  margin:6px 0 12px;
}
.fp-live>p{
  margin:0 0 12px;
  font-size:.92rem;
  line-height:1.65;
  color:var(--ink);
}
.fp-live .cmd-card{margin:0 0 12px}
.fp-live .live-or{
  margin:0 0 10px;
  font-family:var(--mono);
  font-size:.74rem;
  color:var(--ink-soft);
  letter-spacing:.06em;
}
.fp-live .live-link{
  color:var(--pen);
  text-decoration:underline;
  text-decoration-thickness:1.5px;
  text-underline-offset:3px;
}
.fp-live .live-link:hover{text-decoration-thickness:2.5px}
.fp-live .fine{
  margin:12px 0 0;
  font-family:var(--mono);
  font-size:.7rem;
  color:var(--ink-soft);
}

/* ---------- 理论页：直排节（复用文件夹页直排骨架与命令卡） ---------- */
.th-sec{margin:34px 0 0}
.th-sec h2{
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--kraft-deep);
  margin:0 0 14px;
  display:flex;
  align-items:center;
  gap:.7em;
}
.th-sec h2::after{content:'';flex:1;border-top:1.5px dashed var(--line-strong)}
.th-sec .cmd-card{margin-top:14px}
.th-sec .fp-desc{max-width:none}    /* 覆盖 .fp-main .fp-desc 的 60ch：理论页占满栏宽 */
.th-sec code{
  font-family:var(--mono);
  font-size:.8em;
  background:rgba(245,230,163,.55);
  padding:.05em .3em;
  border-radius:2px;
}
.th-use{margin:18px 0 0}
.th-use h3{
  font-family:var(--serif);
  font-size:1.08rem;
  margin:0 0 6px;
  color:var(--ink);
}
.th-use p{
  margin:0;
  font-size:.94rem;
  color:var(--ink-soft);
}
.th-list{
  margin:0;
  padding-left:1.3em;
  color:var(--ink-soft);
  font-size:.94rem;
}
.th-list li{margin:0 0 .8em}
.th-list li:last-child{margin-bottom:0}
.th-list strong{color:var(--ink)}
.th-rule{
  margin:38px 0 0;
  font-size:1.04rem;
  color:var(--ink);
  border-top:1.5px dashed var(--line-strong);
  padding-top:22px;
}
.th-rule mark{
  background:var(--hl);
  color:var(--ink);
  padding:.04em .28em;
  border-radius:2px;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}

/* 侧栏：索引卡（Folder details）+ 命令卡（For AI agents） */
.fp-side{display:flex;flex-direction:column;gap:24px}
.side-card{
  background:var(--copy);
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1.5px solid var(--line-strong);
  box-shadow:var(--shadow);
  padding:22px 22px 18px;
  position:relative;
}
.side-card::before{            /* 索引卡顶部红头线 */
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:7px;
  background:linear-gradient(var(--stamp) 0 2.5px,transparent 2.5px 5.5px,rgba(168,196,216,.65) 5.5px 6.5px,transparent 6.5px);
}
.side-card h2{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--kraft-deep);
  margin:6px 0 14px;
}
.meta-list{
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:118px 1fr;
  row-gap:.62em;
  column-gap:12px;
}
.meta-list dt{
  font-family:var(--mono);
  font-size:.72rem;
  color:var(--ink-soft);
  letter-spacing:.02em;
}
.meta-list dd{
  margin:0;
  font-family:var(--mono);
  font-size:.78rem;
  color:var(--ink);
}
.meta-list dd .cat-tag{
  display:inline-block;
  border:1px solid var(--line-strong);
  border-radius:3px;
  padding:.05em .5em;
  background:rgba(232,213,168,.4);
  color:var(--kraft-deep);
}
.meta-list dd .ref-link{        /* 理论出处：指向发起者/关联百科的引用链接 */
  color:var(--pen);
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:3px;
  overflow-wrap:anywhere;
}
.meta-list dd .ref-link:hover{
  text-decoration-style:solid;
}
.side-card .license{
  margin:16px 0 0;
  padding-top:12px;
  border-top:1px dashed var(--line-strong);
  font-size:.8rem;
  color:var(--ink-soft);
}
/* 侧栏分享：位于「文件夹详情」卡片下方的独立一行（卡片外）——延续钢笔蓝 + 虚线语言，不贴社媒色块（默认藏起，脚本就绪后才现） */
.side-share{
  display:none;
  padding-left:22px;          /* 左内缩与卡片正文（side-card padding 22px）对齐 */
}
.side-share.is-ready{display:block}
.side-share svg{width:.95em;height:.95em;fill:currentColor;flex:none}
.share-cap{                                  /* 分享小标签：与 meta-list dt 同语气 */
  font-family:var(--mono);
  font-size:.72rem;
  color:var(--ink-soft);
  letter-spacing:.02em;
}
.share-links{display:flex;align-items:center;gap:1.1em}
.share-x,.share-li,.share-copy,.share-native{
  font-family:var(--mono);
  font-size:.74rem;
  color:var(--pen);
  background:none;border:none;padding:0;
  display:inline-flex;align-items:center;gap:.35em;
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:3px;
  cursor:pointer;
  transition:color .16s;
}
.share-x:hover,.share-li:hover,.share-copy:hover,.share-native:hover{
  text-decoration-style:solid;
}
.share-x:focus-visible,.share-li:focus-visible,
.share-copy:focus-visible,.share-native:focus-visible{
  outline:2px solid var(--pen);outline-offset:2px;
}
.share-copy.is-done{                         /* 已复制：像手写签收（呼应 skill-copy） */
  color:var(--pen);
  text-decoration-style:solid;
}
.share-native{                               /* 移动端原生分享：单独占一行 */
  font-size:.78rem;
}
/* For AI agents 命令卡：牛皮小抄卡 */
.cmd-card{
  background:var(--kraft);
  background-image:var(--noise-kraft-wide),var(--noise-kraft);
  border:2px solid var(--kraft-deep);
  box-shadow:var(--shadow);
  padding:20px 20px 18px;
}
.cmd-card h2{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:#F4EAD6;
  margin:0 0 12px;
}
.cmd-card .cmd{
  background:rgba(255,252,244,.92);
  border:1px solid var(--kraft-deep);
  border-left:4px solid var(--kraft-deep);
  padding:.65em .85em;
  font-family:var(--mono);
  font-size:.76rem;
  color:var(--ink);
  white-space:pre-wrap;        /* 终端续行：\ 换行按源码呈现 */
  overflow-wrap:break-word;
}
.cmd-card .cmd .ps{color:var(--pen);font-weight:700}
.cmd-card p{
  margin:12px 0 0;
  font-size:.8rem;
  line-height:1.6;
  color:var(--ink);
}
.cmd-card p code{
  font-family:var(--mono);
  font-size:.74rem;
  background:rgba(255,252,244,.6);
  padding:.05em .35em;
  border-radius:2px;
}

/* 关联资源：索引卡三连（散在桌上的摆放感） */
.ws-related{padding:34px 0 66px}
.ws-related h2{
  font-family:var(--serif);
  font-size:clamp(20px,2.8vw,26px);
  margin:0 0 18px;
}
.rel-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.rel-card{
  display:block;
  background:var(--manila);          /* 马尼拉推荐卡：待抽的下一个文件夹 */
  background-image:var(--noise-fiber),var(--noise-ink);
  border:1.5px solid var(--line-strong);
  box-shadow:var(--shadow);
  padding:18px 20px 16px;
  color:var(--ink);
  position:relative;
  transition:transform .16s,box-shadow .16s;
}
.rel-card:nth-child(1){transform:rotate(-.7deg)}
.rel-card:nth-child(2){transform:rotate(.5deg)}
.rel-card:nth-child(3){transform:rotate(-.4deg)}
.rel-card:hover{
  text-decoration:none;
  transform:rotate(0deg);
  box-shadow:var(--shadow-lift);
}
.rel-card::before{             /* 顶部索引卡红线 */
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  border-top:2.5px solid rgba(192,57,43,.55);
}
.rel-card .r-name{font-size:1.05rem}
.rel-card .r-meta{margin-top:5px}
.rel-card .go{
  margin-top:10px;
  font-family:var(--mono);
  font-size:.7rem;
  color:var(--pen);
  letter-spacing:.08em;
}
/* 相关文件夹卡（v2 标记：rel-k 眉标 / rel-n 名称 / rel-b 说明）——补内层排版层级 */
.rel-k{
  display:block;
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.rel-n{
  display:block;
  margin-top:5px;
  font-size:1.05rem;
  line-height:1.25;
  color:var(--ink);
}
.rel-b{
  display:block;
  margin-top:7px;
  font-size:.82rem;
  line-height:1.5;
  color:var(--ink-soft);
}
/* 待归档占位卡：虚线边框、灰墨、不可点（诚实预告，不假装可开） */
.rel-empty{
  background-color:var(--manila);    /* 长写法：保留基础卡的纸纹 */
  border:1.5px dashed var(--line-strong);
  box-shadow:none;
  color:var(--ink-soft);
}
.rel-empty::before{border-top-color:rgba(43,41,38,.18)}
.rel-empty:hover{transform:none;box-shadow:none}
.rel-empty .go{color:var(--ink-soft)}
.rel-note{
  margin:16px 0 0;
  font-family:var(--mono);
  font-size:.76rem;
  color:var(--ink-soft);
}
.rel-note a{color:var(--pen)}

/* ---------- 响应式 ---------- */
@media (max-width:920px){
  .fp-grid{grid-template-columns:1fr}
  .ws-hero .wrap{grid-template-columns:1fr}
  .hero-desk{max-width:430px;margin:10px auto 0}
  .ws-list-head{display:none}
  .ws-row{grid-template-columns:56px 1fr;row-gap:6px}
  .ws-row .r-tag{grid-column:2;justify-self:start;text-align:left}
  .rel-grid{grid-template-columns:1fr}
  .ws-footer .wrap{grid-template-columns:1fr}
  .ws-footer .f-links{justify-content:flex-start}
}
@media (max-width:780px){
  .envelope .stamp{display:none}   /* 窄屏避免与表单重叠，齿孔邮票退场（92px 版重算的阈值） */
}
@media (max-width:620px){
  .file-head{display:none}
  .file-row{grid-template-columns:38px minmax(0,1fr) 30px}
  .file-type,.file-size{display:none}
  .md-sec--script{overflow-x:auto;padding-bottom:8px}   /* 脚本表窄屏横向滚动 */
  .md-sec--script .md-table{min-width:520px}
  .md-sec--fails ol li:nth-child(odd),
  .md-sec--fails ol li:nth-child(even){transform:none}  /* 便利贴窄屏摆正，留满宽 */
  .envelope{padding:22px 18px 20px}
  .envelope .stamp{display:none}
  .ws-hero{padding:54px 0 66px}
  .hero-desk{max-width:350px}
}

/* ---------- 动效总闸：尊重 prefers-reduced-motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation:none !important;
    transition:none !important;
  }
  .cursor{animation:none;opacity:.9}
  .envelope .stamp{animation:none;opacity:1}
  .ws-desk .line-post{stroke-dashoffset:0}
  .ws-desk .scanbar{transform:translateY(48px)}
  .ws-desk .hl{opacity:.9}
  .ws-desk .dot{opacity:1}
}

/* ===== folder page quick-start + fold (kit v2) ===== */
.kit-line{font-size:.82rem;color:var(--ink-soft,#5A564F);margin:.6rem 0 0;line-height:1.6;}
.qs-row{margin:0 0 1.2rem;}
.qs-h{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft,#5A564F);margin-bottom:.6rem;}
.qs-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.7rem;}
.qs-card{display:flex;flex-direction:column;gap:.25rem;border:1px solid var(--line,#CCC1B3);border-left:3px solid var(--stamp,#C0392B);
  border-radius:.5rem;padding:.75rem .9rem;text-decoration:none;color:inherit;background:var(--paper,#FAF7F0);transition:transform .15s ease,box-shadow .15s ease;}
.qs-card b{font-size:.95rem;}
.qs-card small{color:var(--ink-soft,#5A564F);font-size:.78rem;line-height:1.45;}
.qs-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(28,25,23,.12);}
details.all-files{margin-top:.4rem;}
details.all-files>summary{cursor:pointer;font-size:.82rem;letter-spacing:.06em;color:var(--ink-soft,#5A564F);
  border:1px dashed var(--line,#CCC1B3);border-radius:.5rem;padding:.5rem .9rem;list-style:none;}
details.all-files>summary::-webkit-details-marker{display:none;}
details.all-files[open]>summary{border-style:solid;margin-bottom:.8rem;}

/* skip-link：键盘用户跳过导航；平时不可见，聚焦时落到纸面上方 */
.skip-link{position:absolute;left:-9999px;top:0;z-index:99;}
.skip-link:focus{left:.75rem;top:.75rem;display:inline-block;padding:.5rem .9rem;
  background:var(--paper,#FAF7F0);color:var(--pen,#1F5C8B);border:1px solid var(--pen,#1F5C8B);
  border-radius:.4rem;font:600 .8rem/1.4 var(--mono,ui-monospace,Menlo,monospace);
  letter-spacing:.06em;box-shadow:0 2px 0 rgba(31,92,139,.18);}
