﻿/* ============================================
   Aurora 5.1 鈥?Premium Design Language
   Inspired by Apple 路 Thyuu 路 Halosb
   ============================================ */

:root {
  /* —— 表面 —— */
  --bg: #f5f5f7;
  --bg-alt: #e8e8ed;
  --bg-card: #ffffff;
  --bg-card-translucent: rgba(255,255,255,0.92);
  --bg-glass: rgba(245,245,247,0.72);
  --bg-overlay: rgba(255,255,255,0.92);

  /* —— 文字 —— */
  --text: #1d1d1f;
  --text-soft: #86868b;
  --text-faint: #aeaeb2;

  /* —— 边线 / 分隔 —— */
  --line: rgba(0,0,0,0.06);
  --line-strong: rgba(0,0,0,0.12);

  /* —— 主色（桃金） —— */
  --pri: #d4a574;
  --pri-hover: #c39766;
  --pri-deep: #a8845a;
  --pri-soft: rgba(212,165,116,0.12);
  --pri-glow: rgba(212,165,116,0.06);
  --pri-grad: linear-gradient(135deg,#f5d597 0%,#d4a574 50%,#a8845a 100%);

  /* —— 强调色：薄荷绿 / 雾蓝 —— */
  --accent: #6c8eff;
  --accent-soft: rgba(108,142,255,0.12);
  --success: #22c55e;
  --warn: #f59e0b;
  --error: #ef4444;

  /* —— 阴影 —— */
  --shadow-sm: 0 1px 3px rgba(15,15,20,0.04);
  --shadow-md: 0 4px 20px rgba(15,15,20,0.06);
  --shadow-lg: 0 12px 48px rgba(15,15,20,0.08);
  --shadow-glow: 0 0 30px rgba(212,165,116,0.18);

  /* —— 圆角 —— */
  --radius-xs: 6px;
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 28px;

  /* —— 容器 —— */
  --max-w: 700px;
  --max-wide: 1040px;
  --nav-h: 52px;

  /* —— 缓动 —— */
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

[data-theme="dark"] {
  --bg: #0a0a0c;
  --bg-alt: #151517;
  --bg-card: #1c1c1e;
  --bg-card-translucent: rgba(28,28,30,0.92);
  --bg-glass: rgba(10,10,12,0.78);
  --bg-overlay: rgba(10,10,12,0.92);

  --text: #f5f5f7;
  --text-soft: #98989d;
  --text-faint: #636366;

  --line: rgba(255,255,255,0.06);
  --line-strong: rgba(255,255,255,0.10);

  --pri: #e6b984;
  --pri-hover: #f0c79a;
  --pri-deep: #c39766;
  --pri-soft: rgba(212,165,116,0.14);
  --pri-glow: rgba(212,165,116,0.06);

  --accent: #8aa4ff;
  --accent-soft: rgba(138,164,255,0.14);

  --shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
  --shadow-md: 0 4px 20px rgba(0,0,0,0.35);
  --shadow-lg: 0 12px 48px rgba(0,0,0,0.45);
  --shadow-glow: 0 0 30px rgba(212,165,116,0.22);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--bg);color:var(--text);line-height:1.7;
  min-height:100vh;
  /* flex 布局：备案号页脚永远贴底，不再向上蹿 */
  display:flex;
  flex-direction:column;
  overflow-x:clip;       /* clip 替代 hidden —— 不创建新滚动容器，sticky 才能工作 */
  transition:background .35s ease,color .35s ease;
}
/* main 占据剩余空间，把 footer 往下挤 */
main{
  flex:1 0 auto;
  width:100%;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
ul{list-style:none}

/* ============================================
   内页背景（page-bg）
   —— 优先级排错：背景图 > 浮层 > 内容卡片
      浮层默认极透明（0.2），保证用户能看到自己上传的图片
      内容卡片自带 0.92 不透明底，保证文本底线可读
   ============================================ */
html{background:var(--bg)}
/* 当 body 包含 page-bg 时，让 body 自身变成 positioned + 拥有 stacking context */
body:has(.page-bg):not(:has(.hero)):not(:has(.hero-vr-wrap)){
  position:relative;
  background:var(--bg);
  z-index:0;
}
.page-bg{
  position:fixed;inset:0;z-index:0;             /* 浮在 body bg 上，但低于 main */
  background-size:cover;background-position:center;background-repeat:no-repeat;
  background-attachment:fixed;
  pointer-events:none;
}
.page-bg-overlay{
  position:fixed;inset:0;z-index:1;             /* 浮在图片上，但低于 main */
  background:var(--bg);
  opacity:.2;                                   /* CSS 兜底（settings 默认覆盖） */
  backdrop-filter:blur(8px) saturate(120%);
  -webkit-backdrop-filter:blur(8px) saturate(120%);
  transition:background .35s ease,opacity .35s ease;
  pointer-events:none;
}
/* 内容层：把 main 抬到 overlay 之上一层，所有内容卡片自带不透明卡面 */
body:has(.page-bg):not(:has(.hero)):not(:has(.hero-vr-wrap)) > main{
  position:relative;z-index:2;
}
/* 首页（hero / hero-vr-wrap）自动屏蔽内页背景 */
body:has(.hero) .page-bg,
body:has(.hero) .page-bg-overlay,
body:has(.hero-vr-wrap) .page-bg,
body:has(.hero-vr-wrap) .page-bg-overlay{display:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--pri);color:#fff}

/* ===== NAV — floating glass ===== */
.nv{
  position:fixed;top:12px;left:50%;transform:translateX(-50%);
  z-index:1000;width:calc(100% - 32px);max-width:720px;
  background:var(--bg-glass);
  backdrop-filter:blur(24px) saturate(1.6);
  -webkit-backdrop-filter:blur(24px) saturate(1.6);
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  box-shadow:0 4px 24px rgba(15,15,20,0.04), 0 1px 0 rgba(255,255,255,.04) inset;
  transition:background .35s var(--ease),border-color .3s var(--ease),
             transform .3s var(--ease),box-shadow .3s var(--ease);
}
.nv:hover{box-shadow:0 8px 32px rgba(15,15,20,0.06), 0 1px 0 rgba(255,255,255,.04) inset}
.nv-inner{display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 20px}
.nv-logo{
  font-weight:600;font-size:.9rem;letter-spacing:-.01em;
  display:inline-flex;align-items:center;gap:6px;
  transition:transform .3s var(--ease);
}
.nv-logo:hover{transform:scale(1.02)}
.nv-logo::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:var(--pri-grad);
  box-shadow:0 0 12px rgba(212,165,116,.6);
  animation:pulse-dot 2.4s var(--ease) infinite;
}
.nv-menu{display:flex;align-items:center;gap:18px}
.nv-menu a{font-size:.82rem;color:var(--text);transition:color .2s;position:relative;padding:2px 0}
.nv-menu a::after{
  content:'';position:absolute;bottom:-2px;left:0;width:0;height:1.5px;
  background:var(--pri);transition:width .3s ease;border-radius:1px;
}
.nv-menu a:hover{color:var(--pri)}
.nv-menu a:hover::after{width:100%}

/* 瀵艰埅鎼滅储鎸夐挳 */
.nv-search{
  display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:8px;color:var(--text-soft);
  cursor:pointer;transition:all .2s;
}
.nv-search:hover{background:var(--pri-soft);color:var(--pri)}

/* 瀵艰埅鐧诲綍鎸夐挳 */
.nv-login{
  display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:8px;color:var(--text-soft);
  transition:all .2s;text-decoration:none;
}
.nv-login:hover{background:var(--pri-soft);color:var(--pri)}

/* 瀵艰埅鑿滃崟椤规敮鎸佸瓙鑿滃崟涓嬫媺 */
.nv-menu-item{position:relative;display:flex;align-items:center;gap:2px;min-height:30px}
.nv-menu-item>a{font-size:.82rem;color:var(--text);transition:color .2s;position:relative;padding:2px 0;white-space:nowrap}
.nv-menu-item>a::after{
  content:'';position:absolute;bottom:-2px;left:0;width:0;height:1.5px;
  background:var(--pri);transition:width .3s ease;border-radius:1px;
}
.nv-menu-item>a:hover{color:var(--pri)}
.nv-menu-item>a:hover::after{width:100%}

/* 瀛愯彍鍗曚笅鎷夌澶?鈥?鐐瑰嚮鍒囨崲 */
.nv-menu-arrow{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;border-radius:4px;
  color:var(--text-faint);transition:transform .25s,background .2s;opacity:.6;
  cursor:pointer;position:relative;z-index:1101;
  margin-left:0;
}
.nv-menu-arrow:hover{background:var(--pri-soft);color:var(--pri);opacity:1}
.nv-menu-item.open .nv-menu-arrow{transform:rotate(180deg);opacity:1;color:var(--pri)}

/* 瀛愯彍鍗曞鍣?*/
.nv-submenu{
  position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  min-width:150px;
  background:var(--bg-glass);
  backdrop-filter:blur(32px) saturate(1.6);
  -webkit-backdrop-filter:blur(32px) saturate(1.6);
  border:1px solid var(--line);border-radius:var(--radius-md);
  padding:8px;box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;
  pointer-events:none;
  transform:translateX(-50%) translateY(-6px) scale(.96);
  transition:all .22s cubic-bezier(.22,.61,.36,1);
  z-index:1100;
}
.nv-menu-item.open .nv-submenu{
  opacity:1;visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0) scale(1);
}
.nv-submenu a{
  display:block;padding:8px 14px;border-radius:var(--radius-sm);
  font-size:.8rem;color:var(--text-soft);white-space:nowrap;
  transition:all .15s;text-align:left;
  border-left:2px solid transparent;
}
.nv-submenu a::after{display:none !important}
.nv-submenu a:hover{background:var(--pri-soft);color:var(--text);border-left-color:var(--pri)}

.nv-theme{
  display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:8px;color:var(--text-soft);
  transition:all .2s;
}
.nv-theme:hover{background:var(--pri-soft);color:var(--pri)}
[data-theme="dark"] .icon-sun{display:block}
[data-theme="dark"] .icon-moon{display:none}
[data-theme="light"] .icon-sun{display:none}
[data-theme="light"] .icon-moon{display:block}

.nv-toggle{display:none;flex-direction:column;gap:5px;padding:4px}
.nv-toggle span{display:block;width:18px;height:2px;background:var(--text);border-radius:2px;transition:all .25s}
.nv-toggle.active span:first-child{transform:rotate(45deg)translateY(5px)}
.nv-toggle.active span:last-child{transform:rotate(-45deg)translateY(-5px)}

/* ===== LANGUAGE SWITCHER 鈥?Custom Glass Dropdown ===== */
.nv-lang{position:relative;display:flex;align-items:center}

/* Trigger Button */
.nv-lang-btn{
  display:flex;align-items:center;gap:5px;
  padding:4px 10px;height:30px;
  background:var(--bg-glass);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font-size:.8rem;
  font-family:'Inter',sans-serif;
  color:var(--text-soft);
  cursor:pointer;
  transition:all .2s;
  outline:none;
  min-width:80px;
}
.nv-lang-btn:hover{border-color:var(--pri);color:var(--text)}
.nv-lang-btn:focus-visible{border-color:var(--pri);box-shadow:0 0 0 2px var(--pri-soft)}
.nv-lang-flag{font-size:1rem;line-height:1}
.nv-lang-text{line-height:1}
.nv-lang-arrow{
  flex-shrink:0;
  transition:transform .25s;
}
.nv-lang.open .nv-lang-arrow{transform:rotate(180deg)}

/* Dropdown Menu */
.nv-lang-menu{
  position:absolute;top:calc(100% + 6px);right:0;
  min-width:140px;
  background:var(--bg-glass);
  backdrop-filter:blur(24px) saturate(1.4);
  -webkit-backdrop-filter:blur(24px) saturate(1.4);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:6px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-6px) scale(.96);
  transition:all .22s cubic-bezier(.22,.61,.36,1);
  z-index:1100;
  box-shadow:var(--shadow-lg);
}
.nv-lang.open .nv-lang-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}

/* Option Items */
.nv-lang-opt{
  display:flex;align-items:center;gap:8px;
  width:100%;
  padding:8px 12px;
  border:none;border-radius:var(--radius-sm);
  background:transparent;
  font-size:.82rem;
  font-family:'Inter',sans-serif;
  color:var(--text-soft);
  cursor:pointer;
  transition:all .15s;
  text-align:left;
}
.nv-lang-opt:hover{background:var(--pri-soft);color:var(--text)}
.nv-lang-opt:active{background:var(--pri-soft)}
.nv-lang-opt-flag{font-size:.95rem}

@media(max-width:640px){
  .nv{top:8px;width:calc(100% - 16px)}
  .nv-toggle{display:flex}
  .nv-menu{position:fixed;top:56px;left:16px;right:16px;flex-direction:column;gap:12px;background:var(--bg-glass);backdrop-filter:blur(24px);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:all .25s}
  .nv-menu.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nv-lang-btn{min-width:70px}
  /* 绉诲姩绔細璇█鍒囨崲鍖哄煙涓嶅彈鑿滃崟 pointer-events:none 褰卞搷锛屼繚鎸佸彲鐐瑰嚮 */
  .nv-lang{pointer-events:auto}
  /* 绉诲姩绔瓙鑿滃崟锛氭敼涓哄睍寮€寮忥紝涓嶆偓娴?*/
  .nv-menu-item{flex-direction:column;width:100%}
  .nv-menu-item>a{width:100%;text-align:center}
  .nv-menu-arrow{display:inline-flex}
  .nv-submenu{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;box-shadow:none;background:var(--bg-alt);border-radius:var(--radius-sm);padding:6px;margin-top:6px;display:none;transition:none}
  .nv-menu-item.open.has-sub .nv-submenu{display:block}
  .nv-submenu a{text-align:center;padding:8px 12px;font-size:.8rem;border-left:none}
  .nv-submenu a:hover{border-left:none}
  .nv-search{width:100%;justify-content:center;padding:4px 0}
}

/* ===== HERO — Background Video / Image / Reveal ===== */
.hero{
  padding:140px 24px 80px;text-align:center;
  position:relative;overflow:hidden;
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  isolation:isolate;
}
/* 纯色模式：双层渐变晕染，比之前更立体 */
.hero::before{
  content:'';position:absolute;top:-40%;left:50%;transform:translateX(-50%);
  width:780px;height:780px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 55%);
  pointer-events:none;z-index:-1;
  animation:hero-glow 8s var(--ease) infinite alternate;
}
.hero::after{
  content:'';position:absolute;bottom:-30%;right:18%;
  width:480px;height:480px;
  background:radial-gradient(circle,rgba(108,142,255,.08) 0%,transparent 70%);
  pointer-events:none;z-index:-1;
  animation:hero-glow-2 12s var(--ease) infinite alternate;
}
@keyframes hero-glow{
  0%{transform:translateX(-50%) scale(1);opacity:1}
  100%{transform:translateX(-50%) scale(1.12);opacity:.7}
}
@keyframes hero-glow-2{
  0%{transform:translateX(0) scale(1);opacity:.7}
  100%{transform:translateX(-20px) scale(1.15);opacity:1}
}
/* 鑳屾櫙妯″紡涓嬮殣钘忔笎鍙樿楗?*/
.hero.has-bg::before{display:none}
.hero-hl{position:relative;z-index:10}

/* 鑳屾櫙瑙嗛 / 鍗曞紶鑳屾櫙鍥剧墖 */
.hero-video,
.hero-bg-img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;z-index:0;
}
/* 瑙嗛鍔犺浇鏈熼棿鐨勫厜鐣楅粦搴﹀箷锛岄伩鍏嶇櫧鐣嚭鐜?*/
.hero-video{
  background-color:var(--bg);
  background-image:linear-gradient(135deg,var(--bg) 0%,var(--bg-alt) 50%,var(--bg) 100%);
  transition:opacity .35s ease;
}
.hero-bg-img{
  background-size:cover;background-position:center;
  background-repeat:no-repeat;
}

/* 鍙屽浘鎿﹂櫎妯″紡锛堢函鍥?瑙嗛鍙犲姞鍏辩敤锛?*/
.hero-reveal-bg{
  position:absolute;inset:0;z-index:1;
  background-size:cover;background-position:center;
  background-repeat:no-repeat;
}
/* 椤跺眰锛坈lip-path 瑁佸垏闇插嚭搴曞眰锛夆€?鍦ㄩ伄缃╀箣涓?*/
.hero-reveal-top{
  position:absolute;inset:0;z-index:4;
  background-size:cover;background-position:center;
  background-repeat:no-repeat;
  /* 鐢?mask 鏇夸唬 clip-path 瀹炵幇鏌旇竟鎿﹂櫎鏁堟灉 */
  -webkit-mask-size:cover;mask-size:cover;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
}

/* 閬僵灞?鈥?鍦ㄨ儗鏅箣涓娿€侀《灞傚浘鐗囦箣涓嬶紙涓嶉伄鎸℃摝闄や氦浜掞級 */
.hero-overlay{
  position:absolute;inset:0;z-index:2;
  background:#000;opacity:.3;
  transition:opacity .3s;
  pointer-events:none;
}

/* 鏈夎儗鏅椂鏍囬鍦ㄦ渶涓婂眰 */
.hero.has-bg .hero-hl{z-index:10}

/* 鏍囬鏂囧瓧鍦ㄨ儗鏅ā寮忎笅淇濇寔鍙 */
.has-bg .hero-badge{background:rgba(0,0,0,.3);backdrop-filter:blur(8px);color:#fff}
.has-bg .hero-title{-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 2px 20px rgba(0,0,0,.45))}
.has-bg .hero-desc{-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 1px 10px rgba(0,0,0,.4))}

.hero-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 16px;background:var(--pri-soft);border-radius:100px;
  font-size:.76rem;color:var(--pri);font-weight:500;margin-bottom:24px;
  border:1px solid transparent;
  backdrop-filter:blur(8px);
  animation:fade-up .7s var(--ease-out) both;
}
.hero-badge-dot{
  width:4px;height:4px;border-radius:50%;
  background:var(--pri);
  animation:pulse-dot 2.4s var(--ease) infinite;
  display:inline-block;
}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.4)}}
.hero-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(2.6rem,7vw,4.6rem);font-weight:700;
  line-height:1.08;letter-spacing:-.025em;margin-bottom:18px;
  background:var(--pri-grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:fade-up .8s .1s var(--ease-out) both;
  position:relative;
}
.hero-title::after{
  content:'';display:block;width:60px;height:2px;
  background:var(--pri-grad);
  margin:18px auto 0;border-radius:2px;
  opacity:.4;
  animation:fade-up .8s .3s var(--ease-out) both;
}
.hero-desc{
  font-size:1.08rem;line-height:1.65;max-width:520px;margin:8px auto 0;
  background:linear-gradient(135deg,#e8c989 0%,#c39766 50%,#a8845a 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:fade-up .8s .25s var(--ease-out) both;
}
[data-theme="dark"] .hero-desc{background:linear-gradient(135deg,#cfb28a 0%,#c39766 50%,#a8845a 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
@keyframes fade-up{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}

/* ===== VIDEO-REVEAL 涓濇粦杩囨浮瀹瑰櫒 ===== */
.hero-vr-wrap{
  position:relative;
  min-height:100vh;
}
/* 鍥哄畾鏍囬锛歷ideo-reveal 妯″紡涓嬫爣棰樺缁堝湪瑙嗗彛姝ｄ腑澶?*/
.hero-vr-wrap .hero-hl{
  position:fixed;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  z-index:100;
  pointer-events:none;
  text-align:center;
}
/* 瑙嗛灞?sticky 鈥?淇濇寔鍦ㄨ鍙ｉ《閮?*/
.hero-vr-wrap .hero-vr-video{
  position:sticky;
  top:0;
  min-height:100vh;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
}
/* 瑙嗛灞備腑鐨勯伄缃╅€忎紶 */
.hero-vr-wrap .hero-vr-video .hero-overlay{
  position:absolute;inset:0;z-index:2;
  background:#000;opacity:.3;
  pointer-events:none;
}
/* 鍙屽浘鎿﹂櫎灞?鈥?鍏ㄥ睆鍥哄畾鍦ㄨ鍙ｏ紝浣滀负鑳屾櫙锛堜繚鐣欓紶鏍囦氦浜掍緵鎿﹂櫎锛?*/
.hero-vr-wrap .hero-reveal-fixed{
  position:fixed;
  inset:0;
  z-index:0;
  min-height:100vh;
  overflow:hidden;
}
.hero-vr-wrap .hero-reveal-fixed .hero-reveal-bg,
.hero-vr-wrap .hero-reveal-fixed .hero-reveal-top{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-vr-wrap .hero-reveal-fixed .hero-reveal-bg{z-index:0}
.hero-vr-wrap .hero-reveal-fixed .hero-reveal-top{z-index:4}
.hero-vr-wrap .hero-reveal-fixed .hero-overlay{z-index:2}
/* 鏂囩珷鍒楄〃娴湪瑙嗛鍜屽弻鍥捐儗鏅箣涓?*/
.hero-vr-wrap .entries{
  position:relative;
  z-index:10;
}
.hero-vr-wrap .entry{
  background:var(--bg-glass);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-radius:var(--radius-md);
  padding:20px 24px;
  margin-bottom:12px;
  border:1px solid var(--line);
  box-shadow:var(--shadow-md);
}
.hero-vr-wrap .pager{
  position:relative;
  z-index:10;
  padding:24px;
}
/* 椤佃剼娴湪鍙屽浘鑳屾櫙涔嬩笂 */
body:has(.hero-vr-wrap) .ft{
  position:relative;
  z-index:10;
  background:var(--bg-glass);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
}

/* ===== IMAGE-REVEAL 绮樻€ц繃娓″鍣紙鍙屽浘鎿﹂櫎鈫掓枃绔犲垪琛ㄤ笣婊戣繃娓★級 ===== */
.hero-reveal-sticky{
  position:sticky;
  top:0;
  z-index:1;
}
.hero-reveal-sticky .hero-reveal-bg,
.hero-reveal-sticky .hero-reveal-top{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  background-repeat:no-repeat;
}
.hero-reveal-sticky .hero-reveal-bg{z-index:1}
.hero-reveal-sticky .hero-reveal-top{z-index:4}
.hero-reveal-sticky .hero-overlay{z-index:2}
/* 鏂囩珷鍒楄〃娴湪 sticky 鑻遍泟鍖轰箣涓婏紝甯︾幓鐠冭儗鏅?*/
.entries-over-reveal{
  position:relative;
  z-index:2;
  margin-top:-50vh;
  padding-top:calc(50vh + 24px);
}
.entries-over-reveal .entry{
  background:var(--bg-glass);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-radius:var(--radius-md);
  padding:20px 24px;
  margin-bottom:12px;
  border:1px solid var(--line);
  box-shadow:var(--shadow-md);
}
.entries-over-reveal .entry:first-child{border-top:none}
.entries-over-reveal .pager{
  background:var(--bg-glass);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-radius:var(--radius-md);
  padding:16px 24px;
  border:1px solid var(--line);
}
/* 椤佃剼鑷€傚簲 */
body:has(.entries-over-reveal) .ft{
  position:relative;
  z-index:2;
  background:var(--bg-glass);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
}

/* ===== 绉诲姩绔€傞厤 鈥?Hero / 鍙屽浘鎿﹂櫎 / video-reveal ===== */
@media(max-width:640px){
  .hero{min-height:90vh;padding:100px 16px 60px}
  .hero-title{font-size:clamp(1.8rem,6vw,2.8rem)}
  .hero-desc{font-size:.92rem;max-width:320px;padding:0 8px}
  .hero-badge{font-size:.7rem;padding:3px 12px;margin-bottom:16px}
  /* 鍙屽浘鎿﹂櫎绮樻€ц繃娓?*/
  .entries-over-reveal{margin-top:-40vh;padding-top:calc(40vh + 16px)}
  .entries-over-reveal .entry{padding:14px 16px;border-radius:var(--radius-sm)}
  /* video-reveal 鍥哄畾鏍囬 */
  .hero-vr-wrap .hero-hl{max-width:85vw}
  .hero-vr-wrap .hero-hl .hero-title{font-size:clamp(1.6rem,5vw,2.4rem)}
  .hero-vr-wrap .hero-hl .hero-desc{font-size:.85rem}
  .hero-vr-wrap .entry{padding:14px 16px}
}
/* ===== ENTRIES ===== */
.entries{max-width:var(--max-wide);margin:0 auto;padding:0 24px 60px}
.entry{
  display:flex;gap:24px;
  padding:22px 18px;
  border-radius:var(--radius-md);
  border:1px solid transparent;
  transition:all .3s var(--ease);
  position:relative;
}
.entry:not(:last-child){margin-bottom:4px}
.entry:hover{
  background:var(--bg-card-translucent);
  border-color:var(--line);
  transform:translateX(2px);
  box-shadow:var(--shadow-md);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
}
.entry-cover{
  flex-shrink:0;width:160px;height:110px;
  border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-alt);
  position:relative;
}
.entry-cover::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,transparent 60%,rgba(0,0,0,.08) 100%);
  pointer-events:none;
}
.entry-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.entry:hover .entry-cover img{transform:scale(1.06)}
.entry-cover.pc{display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-family:'Playfair Display',serif;font-size:1.8rem}
.entry-body{flex:1;min-width:0}
.entry-date{font-size:.74rem;color:var(--text-faint);font-weight:500;letter-spacing:.04em;text-transform:uppercase}
.entry-title{
  font-size:1.15rem;font-weight:600;line-height:1.4;margin:5px 0 8px;
  transition:color .25s var(--ease);
  letter-spacing:-.005em;
}
.entry:hover .entry-title{color:var(--pri)}
.entry-excerpt{font-size:.88rem;color:var(--text-soft);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.entry-meta{display:flex;align-items:center;gap:8px;margin-top:10px}
.entry-cat{
  font-size:.72rem;padding:3px 11px;
  border:1px solid var(--line);
  border-radius:100px;color:var(--pri);
  transition:all .2s var(--ease);
  text-decoration:none;
}
.entry-cat:hover{background:var(--pri-soft);border-color:var(--pri)}

@media(max-width:640px){
  .entry{flex-direction:column;gap:12px}
  .entry-cover{width:100%;height:180px}
}

/* ===== PAGER ===== */
.pager{max-width:var(--max-wide);margin:0 auto;padding:32px 24px 60px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.pager-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 18px;border:1px solid var(--line);border-radius:100px;
  font-size:.85rem;color:var(--text-soft);transition:all .25s var(--ease);
  text-decoration:none;
  background:var(--bg-card-translucent);backdrop-filter:blur(8px);
  font-weight:500;
}
.pager-btn:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.pager-btn:active{transform:translateY(0)}
.pager-info{font-size:.82rem;color:var(--text-faint);font-family:'JetBrains Mono',monospace;letter-spacing:.03em}

/* ===== POST ARTICLE ===== */
.post-h{
  padding:110px 24px 56px;
  background:transparent;
  position:relative;overflow:hidden;
  isolation:isolate;
}
.post-h::before{
  content:'';position:absolute;top:-30%;left:50%;transform:translateX(-50%);
  width:680px;height:680px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 60%);
  pointer-events:none;z-index:-1;
}
.post-h-inner{max-width:var(--max-w);margin:0 auto;text-align:center;position:relative;z-index:1}
.post-back{
  font-size:.82rem;color:var(--text-soft);display:inline-flex;align-items:center;gap:4px;
  margin-bottom:22px;transition:all .25s var(--ease);
  padding:5px 14px;border-radius:100px;border:1px solid var(--line);
  background:var(--bg-card-translucent);backdrop-filter:blur(8px);
  text-decoration:none;
}
.post-back:hover{color:var(--pri);border-color:var(--pri);background:var(--pri-soft);transform:translateX(-2px)}
.post-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:700;
  line-height:1.2;letter-spacing:-.018em;margin-bottom:16px;
  position:relative;display:inline-block;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}
.post-title::after{display:none !important}
.post-meta{font-size:.84rem;color:var(--text-faint);display:flex;justify-content:center;gap:14px;flex-wrap:wrap;align-items:center}
.post-cat{color:var(--pri);font-weight:500}
.post-meta-dot{width:3px;height:3px;border-radius:50%;background:var(--text-faint);opacity:.5}

/* ===== 三栏文章布局 ===== */
.post-layout{
  display:grid;
  grid-template-columns:220px minmax(0,var(--max-w)) 220px;
  gap:36px;justify-content:center;
  padding:48px 24px 0;
  max-width:calc(var(--max-w) + 524px);
  margin:0 auto;
  align-items:start;
}
.post-main{
  grid-column:2;
  min-width:0;
  overflow-wrap:break-word;
  word-break:break-word;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:40px 44px;
  box-shadow:var(--shadow-md);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  transition:border-color .25s var(--ease);
}
.post-body{padding:0}
.post-nav{margin-top:48px}
.pn-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-top:32px;border-top:1px solid var(--line)}
.pn{
  padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--bg-card-translucent);backdrop-filter:blur(8px);
  transition:all .3s var(--ease);text-decoration:none;color:inherit;
}
.pn:hover{border-color:var(--pri);background:var(--pri-soft);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.pn.next{text-align:right}
.pn-label{font-size:.74rem;color:var(--text-faint);font-weight:500;letter-spacing:.03em;text-transform:uppercase}
.pn-title{font-size:.92rem;display:block;margin-top:6px;transition:color .2s;font-weight:500;line-height:1.45}
.pn:hover .pn-title{color:var(--pri)}
.post-comments{padding-top:48px;border-top:1px solid var(--line);margin-top:48px}

/* 文章侧边栏 —— sticky 直接做在 .post-side 上 —— 可靠性更高
   —— align-self:start + height:max-content 防止被 grid 拉伸
   —— top:72px 让开 nav 高度 (52+12) */
.post-side{
  position:-webkit-sticky;
  position:sticky;
  top:72px;
  align-self:start;
  height:max-content;
  max-height:calc(100vh - 92px);
  overflow-y:auto;
  overflow-x:visible;
  scrollbar-width:thin;
  scrollbar-color:var(--line-strong) transparent;
  padding-right:6px;margin-right:-6px;
}
.post-side::-webkit-scrollbar{width:4px}
.post-side::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:2px}
/* .side-sticky 现在只是布局容器，不再做 sticky */
.side-sticky{position:relative}
.side-block{
  padding:16px 18px;margin-bottom:16px;
  background:var(--bg-card-translucent);border:1px solid var(--line);
  border-radius:var(--radius-md);
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  transition:border-color .25s var(--ease),transform .25s var(--ease);
}
.side-block:last-child{margin-bottom:0}
.side-block:hover{border-color:var(--pri-soft);transform:translateY(-1px)}
.side-title{
  display:flex;align-items:center;gap:8px;
  font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  color:var(--text-faint);margin-bottom:14px;
}
.side-title::before{
  content:'';width:3px;height:11px;background:var(--pri);border-radius:2px;flex-shrink:0;
}

/* 目录 */
.toc-nav{font-size:.82rem;max-height:60vh;overflow-y:auto;padding-right:4px}
.toc-nav::-webkit-scrollbar{width:3px}
.toc-nav a{
  display:block;padding:6px 12px;color:var(--text-soft);
  transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease),padding-left .2s var(--ease);
  border-left:2px solid transparent;border-radius:0 var(--radius-xs) var(--radius-xs) 0;
  text-decoration:none;
}
.toc-nav a:hover,.toc-nav a.active{
  color:var(--pri);border-left-color:var(--pri);background:var(--pri-soft);padding-left:14px;
}
.toc-nav a.toc-h3{padding-left:24px;font-size:.76rem}

/* 作者卡片 */
.side-author{text-align:center;padding:6px 4px 2px;margin-bottom:0}
.side-author-avatar{
  width:60px;height:60px;border-radius:50%;
  background:var(--pri-soft);color:var(--pri);
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;
  margin:0 auto 12px;font-family:'Playfair Display',serif;
  border:2px solid var(--bg-card);
  box-shadow:var(--shadow-md),inset 0 0 0 2px var(--pri-soft);
}
.side-author-name{font-weight:600;font-size:.95rem}
.side-author-bio{font-size:.78rem;color:var(--text-soft);margin-top:6px;line-height:1.55}

/* 文章底部标签 */
.post-tags{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.post-tags-label{font-size:.85rem;color:var(--text-faint);margin-right:6px;font-weight:500}
.post-tag{
  padding:5px 14px;border:1px solid var(--line);border-radius:100px;
  font-size:.8rem;color:var(--text-soft);transition:all .2s var(--ease);
  text-decoration:none;
}
.post-tag:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft);transform:translateY(-1px)}

/* 侧边统计 */
.side-stats{margin-bottom:0;padding-top:4px}
.side-stat{display:flex;align-items:baseline;gap:10px;padding:6px 0}
.side-stat-num{font-family:'Playfair Display',serif;font-size:1.65rem;font-weight:600;color:var(--text);line-height:1}
.side-stat-label{font-size:.78rem;color:var(--text-faint)}
.side-quick{display:flex;flex-direction:column;gap:6px}
.side-quick a{
  font-size:.82rem;color:var(--text-soft);
  transition:all .2s var(--ease);
  display:flex;align-items:center;gap:6px;
  padding:6px 10px;border-radius:var(--radius-xs);
  text-decoration:none;border:1px solid transparent;
}
.side-quick a::before{
  content:'';width:4px;height:4px;border-radius:50%;background:var(--pri);
  opacity:0;transition:opacity .2s var(--ease),transform .2s var(--ease);
}
.side-quick a:hover{color:var(--pri);background:var(--pri-soft);padding-left:14px;border-color:var(--pri-soft)}
.side-quick a:hover::before{opacity:1;transform:scale(1.4)}

/* 侧边标签 */
.side-tags{display:flex;flex-wrap:wrap;gap:6px}
.side-tag{padding:4px 11px;border:1px solid var(--line);border-radius:100px;font-size:.74rem;color:var(--text-soft);transition:all .2s var(--ease);text-decoration:none}
.side-tag:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft);transform:translateY(-1px)}
.side-tag.empty{color:var(--text-faint);pointer-events:none}

@media(max-width:1200px){
  .post-layout{grid-template-columns:200px minmax(0,var(--max-w))}
  .post-side-right{display:none}
}
@media(max-width:900px){
  .post-layout{grid-template-columns:1fr;max-width:var(--max-w)}
  .post-side-left{display:none}
  .post-main{padding:28px 24px}
}

/* ===== TYPOGRAFIA ===== */
.tp{font-size:1rem;line-height:1.95;color:var(--text)}
.tp p{margin-bottom:1.4em;letter-spacing:.005em}
.tp h1,.tp h2,.tp h3,.tp h4{
  font-family:'Playfair Display',serif;font-weight:600;line-height:1.25;margin:2em 0 .5em;
  letter-spacing:-.01em;
}
.tp h1{font-size:1.7rem}
.tp h2{font-size:1.4rem;position:relative;padding-left:14px}
.tp h2::before{
  content:'';position:absolute;left:0;top:.35em;bottom:.35em;width:3px;
  background:var(--pri-grad);border-radius:2px;opacity:.7;
}
.tp h3{font-size:1.2rem}
.tp a{color:var(--pri);border-bottom:1px solid transparent;transition:border-color .2s var(--ease),color .2s var(--ease)}
.tp a:hover{border-bottom-color:var(--pri);color:var(--pri-hover)}
.tp blockquote{
  margin:1.4em 0;padding:14px 22px;border-left:3px solid var(--pri);
  color:var(--text-soft);font-style:italic;background:linear-gradient(90deg,var(--pri-soft) 0%,transparent 100%);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;position:relative;
}
.tp blockquote::before{
  content:'“';position:absolute;top:-6px;left:14px;
  font-family:'Playfair Display',serif;font-size:2.4rem;color:var(--pri);opacity:.4;line-height:1;
}
.tp pre{
  margin:1.4em 0;padding:18px 22px;background:var(--bg-alt);
  border:1px solid var(--line);border-radius:var(--radius-sm);
  overflow-x:auto;font-family:'JetBrains Mono',monospace;font-size:.85rem;line-height:1.65;
  position:relative;
}
.tp pre::before{
  content:'';position:absolute;top:14px;left:14px;width:10px;height:10px;border-radius:50%;
  background:#ff5f57;box-shadow:14px 0 0 #febc2e,28px 0 0 #28c840;
  opacity:.6;
}
.tp pre{padding-top:30px}
.tp code{font-family:'JetBrains Mono',monospace;font-size:.85em;padding:2px 6px;background:var(--bg-alt);border-radius:4px;color:var(--pri-deep)}
[data-theme="dark"] .tp code{color:var(--pri)}
.tp pre code{padding:0;background:none;color:inherit}
.tp img{max-width:100%;height:auto;margin:1.4em auto;border-radius:var(--radius-sm);cursor:zoom-in;transition:transform .3s var(--ease);box-shadow:var(--shadow-md)}
.tp img:hover{transform:scale(1.005)}
.tp hr{margin:2em 0;border:none;height:1px;background:var(--line)}
.tp ul,.tp ol{margin:1em 0;padding-left:1.5em}
.tp ul{list-style:disc}
.tp ol{list-style:decimal}
.tp li{margin-bottom:.4em}
.tp li::marker{color:var(--pri)}
.tp table{width:100%;border-collapse:collapse;margin:1.4em 0;border-radius:var(--radius-sm);overflow:hidden}
.tp th,.tp td{padding:10px 14px;border:1px solid var(--line);text-align:left}
.tp th{background:var(--bg-alt);font-weight:600;border-bottom:2px solid var(--pri-soft)}
.tp tr:nth-child(even) td{background:rgba(0,0,0,.015)}

/* ===== LIST HEADERS (categories / tags / archives) =====
   —— 标题白字 + text-shadow，浅色/深色模式都一致
   —— 不要下面那个黑框 ===== */
.lh{
  text-align:center;padding:90px 24px 32px;
  position:relative;overflow:hidden;
  background:transparent;isolation:isolate;
}
.lh::before{
  content:'';position:absolute;top:-40%;left:50%;
  transform:translateX(-50%);width:580px;height:580px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:-1;
}
.lh-badge{display:none !important}
.lh-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:700;
  letter-spacing:-.018em;line-height:1.2;
  margin:0 0 12px;
  position:relative;z-index:1;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
  animation:fade-up .7s var(--ease-out) both;
}
.lh-title::after{display:none !important}
.lh-count{
  font-size:.88rem;
  color:#fff;
  opacity:.78;
  text-shadow:0 1px 6px rgba(0,0,0,.3);
  position:relative;z-index:1;
  animation:fade-up .7s .15s var(--ease-out) both;
}

.tags-w{max-width:620px;margin:-10px auto 60px;padding:12px 0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;
  background:transparent;border:none;border-radius:0;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  box-shadow:none;position:relative;overflow:visible;
}
.tags-w::before{display:none}
.tag-it{
  padding:7px 18px;border:1px solid var(--line);border-radius:100px;
  font-size:.86rem;color:var(--text-soft);transition:all .25s var(--ease);
  text-decoration:none;position:relative;background:var(--bg-card);
  z-index:1;
}
.tag-it:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft);transform:translateY(-1px);box-shadow:var(--shadow-sm)}

/* ===== 3D TAG CLOUD —— 透明容器，药丸浮起（去掉正方形框） ===== */
.tagcloud-wrap{
  max-width:620px;margin:0 auto 60px;
  padding:24px 0;
  position:relative;perspective:800px;
  background:transparent;
  border:none;
  border-radius:0;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:none;
  overflow:visible;
}
.tagcloud-wrap::before{display:none}
.tagcloud-hint{
  text-align:center;font-size:.74rem;color:var(--text-faint);
  margin-top:10px;letter-spacing:.04em;user-select:none;
  position:relative;
}
.tagcloud-hint::before{
  content:'';display:inline-block;width:14px;height:1px;background:var(--pri);
  margin-right:8px;vertical-align:middle;opacity:.6;
}
.tagcloud-hint::after{
  content:'';display:inline-block;width:14px;height:1px;background:var(--pri);
  margin-left:8px;vertical-align:middle;opacity:.6;
}
.tagcloud{
  position:relative;width:100%;height:420px;margin:0 auto;
  transform-style:preserve-3d;
  cursor:grab;
}
.tagcloud:active{cursor:grabbing}
.tagcloud-item{
  position:absolute;left:50%;top:50%;
  padding:7px 18px;
  border:1px solid var(--line);
  background:var(--bg-card);
  border-radius:100px;
  font-size:.86rem;
  color:var(--text);
  white-space:nowrap;
  transition:color .25s var(--ease),border-color .25s var(--ease),
             background .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease);
  transform:translate(-50%,-50%);
  will-change:transform,opacity;
  backface-visibility:hidden;
  user-select:none;
  text-decoration:none;
  box-shadow:var(--shadow-sm);
}
.tagcloud-item:hover{
  color:var(--pri);border-color:var(--pri);
  background:linear-gradient(135deg,var(--pri-soft) 0%,var(--bg-card) 100%);
  box-shadow:0 8px 24px var(--pri-glow),0 0 0 4px var(--pri-soft);
  z-index:10;
  transform:translate(-50%,-50%) scale(1.08);
}

/* ===== CATEGORIES 列表（玻璃卡） ===== */
.cats-w{
  max-width:var(--max-w);
  margin:0 auto 60px;
  padding:0 24px;
  display:flex;flex-direction:column;gap:12px;
}
.cat-it{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 22px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  transition:all .3s var(--ease);
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  text-decoration:none;
  position:relative;overflow:hidden;
}
.cat-it::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--pri-grad);
  transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease);
}
.cat-it:hover{
  border-color:var(--pri-soft);
  box-shadow:var(--shadow-md);
  transform:translateY(-2px) translateX(2px);
}
.cat-it:hover::before{transform:scaleY(1)}
.cat-name{
  font-weight:600;font-size:1rem;color:var(--text);
  display:inline-flex;align-items:center;gap:8px;
  transition:color .2s var(--ease);
}
.cat-it:hover .cat-name{color:var(--pri)}
.cat-name::before{
  content:'#';color:var(--pri);font-weight:700;font-size:.85em;opacity:.6;
}
.cat-count{
  font-size:.78rem;
  color:var(--text-soft);
  padding:4px 12px;
  background:var(--pri-soft);
  border-radius:100px;
  font-variant-numeric:tabular-nums;font-weight:500;
  transition:all .2s var(--ease);
}
.cat-it:hover .cat-count{background:var(--pri);color:#fff}

/* ===== ARCHIVES 时间线（玻璃卡） ===== */
.archives{
  max-width:var(--max-w);margin:0 auto;
  padding:8px 24px 60px;
  display:flex;flex-direction:column;gap:18px;
}
.arch-yr{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:26px 30px;
  transition:all .3s var(--ease);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  position:relative;
}
.arch-yr:hover{
  border-color:var(--pri-soft);
  box-shadow:var(--shadow-md);
  transform:translateY(-2px);
}
.arch-yr-title{
  font-family:'Playfair Display',serif;
  font-size:1.5rem;font-weight:700;
  color:var(--text);margin:0 0 18px;
  padding-left:16px;
  display:flex;align-items:baseline;gap:10px;
  position:relative;
}
.arch-yr-title::before{
  content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;
  background:var(--pri-grad);border-radius:2px;
}
.arch-yr-title::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,var(--line) 0%,transparent 100%);
}
.arch-yr-meta{
  font-size:.78rem;font-weight:400;color:var(--text-faint);
  font-family:'JetBrains Mono',monospace;
}
.arch-mo{
  font-size:.84rem;color:var(--text-soft);
  margin:14px 0 8px;padding-left:22px;
  letter-spacing:.02em;
  display:flex;align-items:center;gap:8px;
}
.arch-mo::before{
  content:'';width:8px;height:8px;border-radius:50%;
  background:var(--pri-soft);
  border:2px solid var(--pri);
  flex-shrink:0;
}
.arch-post{
  display:flex;align-items:baseline;gap:12px;
  padding:7px 0 7px 22px;
  border-radius:var(--radius-xs);
  transition:background .2s var(--ease),padding-left .2s var(--ease);
  text-decoration:none;
}
.arch-post:hover{background:var(--pri-soft);padding-left:28px}
.arch-dt{
  font-family:'JetBrains Mono',monospace;
  font-size:.72rem;color:var(--text-faint);
  min-width:34px;
  flex-shrink:0;
}
.arch-tl{
  font-size:.9rem;color:var(--text);
  transition:color .2s var(--ease);font-weight:500;
}
.arch-post:hover .arch-tl{color:var(--pri)}

/* ===== 404 ===== */
.e404{
  position:relative;min-height:80vh;display:flex;align-items:center;justify-content:center;
  padding:120px 24px;overflow:hidden;isolation:isolate;
}
.e404::before{
  content:'';position:absolute;top:-30%;left:50%;transform:translateX(-50%);
  width:680px;height:680px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:-1;
  animation:hero-glow 10s var(--ease) infinite alternate;
}
.e404-bg{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  gap:20px;pointer-events:none;user-select:none;
}
.e404-bg-digit{
  font-family:'Playfair Display',serif;
  font-size:clamp(16rem,40vw,36rem);font-weight:700;line-height:1;
  color:var(--line);opacity:.5;transform:translateY(0);
  -webkit-text-fill-color:transparent;
  -webkit-text-stroke-width:1.5px;
  -webkit-text-stroke-color:var(--text-faint);
  animation:e404-float 6s var(--ease) infinite alternate;
}
.e404-bg-digit.zero{
  color:transparent;
  -webkit-text-stroke-color:var(--pri);
  animation:e404-float 8s var(--ease) infinite alternate-reverse;
  opacity:.85;
}
@keyframes e404-float{
  0%{transform:translateY(0) rotate(-2deg)}
  100%{transform:translateY(-18px) rotate(2deg)}
}
.e404-body{position:relative;text-align:center;z-index:1;max-width:560px}
.e404-code{
  font-family:'Playfair Display',serif;
  font-size:clamp(3.5rem,8vw,6.5rem);font-weight:700;line-height:1;margin-bottom:20px;
  letter-spacing:-.04em;display:inline-flex;align-items:center;gap:6px;
}
.e404-zero{
  background:var(--pri-grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  position:relative;display:inline-block;
}
.e404-zero::after{
  content:'';position:absolute;top:18%;left:12%;width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,.4);
  box-shadow:24px 18px 0 rgba(255,255,255,.3), 38px 60px 0 rgba(255,255,255,.25);
}
.e404-title{font-size:1.35rem;font-weight:600;margin-bottom:10px;font-family:'Playfair Display',serif}
.e404-desc{color:var(--text-soft);margin-bottom:32px;font-size:.98rem;line-height:1.7}
.e404-actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.e404-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:11px 26px;border:1px solid var(--line);border-radius:100px;
  font-size:.88rem;font-weight:500;color:var(--text-soft);
  transition:all .3s var(--ease);
  text-decoration:none;
  background:var(--bg-card-translucent);backdrop-filter:blur(8px);
}
.e404-btn:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.e404-btn.primary{
  background:var(--pri-grad);color:#fff;border-color:transparent;
  box-shadow:var(--shadow-glow);
}
.e404-btn.primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--shadow-glow)}

/* ===== FOOTER ===== */
.ft{
  border-top:1px solid var(--line);
  padding:48px 24px 28px;
  background:linear-gradient(180deg,transparent 0%,var(--bg-alt) 100%);
  position:relative;
}
.ft::before{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:60%;max-width:480px;height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--pri-soft) 50%,transparent 100%);
}
.ft-inner{max-width:var(--max-wide);margin:0 auto}
.ft-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px;gap:24px}
.ft-brand{flex:1;min-width:0}
.ft-name{
  font-weight:700;font-size:1.1rem;letter-spacing:-.005em;
  background:var(--pri-grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  display:inline-block;
}
.ft-desc{font-size:.86rem;color:var(--text-soft);margin-top:6px;line-height:1.55}
.ft-author{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.ft-author-label{
  font-size:.7rem;padding:2px 10px;border:1px solid var(--line);border-radius:100px;
  color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-card);
}
.ft-author-name{font-size:.84rem;color:var(--text-soft);font-weight:500}
.ft-nav{display:flex;flex-wrap:wrap;gap:8px 20px}
.ft-nav a{font-size:.84rem;color:var(--text-soft);transition:color .2s var(--ease);text-decoration:none;position:relative}
.ft-nav a:hover{color:var(--pri)}
.ft-nav a::before{
  content:'#';font-size:.7em;color:var(--pri);margin-right:4px;opacity:.5;font-weight:600;
}
.ft-btm{font-size:.78rem;color:var(--text-faint);padding-top:20px;border-top:1px solid var(--line);text-align:center}
.ft-dot{margin:0 6px;opacity:.3}
.ft-btm a{color:var(--text-soft);transition:color .2s var(--ease);text-decoration:none}
.ft-btm a:hover{color:var(--pri)}

/* 椤佃剼鑷畾涔?HTML锛堝悎鍏?ft-btm 鍐呴儴锛?*/
.ft-custom{
  margin-top:10px;padding-top:10px;border-top:1px solid var(--line);
  font-size:.82rem;color:var(--text-soft);line-height:1.7;
}
.ft-custom a{color:var(--pri);transition:color .2s}
.ft-custom a:hover{opacity:.8}
.ft-custom p{margin-bottom:.6em}
.ft-custom p:last-child{margin-bottom:0}
.ft-custom img{max-width:100%;height:auto;border-radius:4px;display:inline-block;vertical-align:middle}

@media(max-width:640px){
  .ft-top{flex-direction:column;gap:20px}
  .ft-nav{flex-wrap:wrap;gap:14px}
  .pn-grid{grid-template-columns:1fr}
}

/* ===== LINKS — Redesigned ===== */

/* -- Header -- */
.links-h{
  padding:90px 24px 32px;
  background:transparent;
  border-bottom:none;
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.links-h::before{
  content:'';position:absolute;top:-40%;left:50%;
  transform:translateX(-50%);width:580px;height:580px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:-1;
}
.links-h::after{
  content:'';position:absolute;bottom:-30%;right:18%;
  width:380px;height:380px;
  background:radial-gradient(circle,rgba(108,142,255,.08) 0%,transparent 70%);
  pointer-events:none;z-index:-1;
}
.links-h-inner{max-width:var(--max-w);margin:0 auto;position:relative;z-index:1;text-align:center}
.links-back{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.82rem;color:var(--text-soft);
  margin-bottom:14px;transition:all .25s var(--ease);
  text-decoration:none;padding:6px 14px;border-radius:100px;
  border:1px solid var(--line);background:var(--bg-card-translucent);backdrop-filter:blur(8px);
}
.links-back:hover{color:var(--pri);border-color:var(--pri);background:var(--pri-soft);transform:translateX(-2px)}
.links-back svg{width:15px;height:15px;transition:transform .25s var(--ease)}
.links-back:hover svg{transform:translateX(-3px)}
.links-title{
  display:inline-block;
  padding:0;
  margin-bottom:12px;
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.4rem);
  font-weight:700;letter-spacing:-.018em;line-height:1.2;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
  animation:fade-up .7s var(--ease-out) both;
}
.links-title::after{display:none !important}
.links-desc{
  display:block;
  padding:0;margin:0 auto;
  max-width:520px;
  font-size:.92rem;line-height:1.65;
  color:#fff;opacity:.78;
  text-shadow:0 1px 6px rgba(0,0,0,.3);
  animation:fade-up .7s .1s var(--ease-out) both;
}

/* -- Body & Groups -- */
.links-body{max-width:var(--max-wide);margin:0 auto;padding:28px 24px 60px}

.feed-group{margin-bottom:40px}
.feed-group:last-child{margin-bottom:0}
.feed-group-h{
  display:flex;align-items:baseline;gap:10px;margin-bottom:10px;
  padding-left:14px;
  position:relative;
}
.feed-group-h::before{
  content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;
  background:var(--pri-grad);border-radius:2px;
}
.feed-group-title{
  font-family:'Playfair Display',serif;
  font-size:1.3rem;font-weight:600;color:var(--text);
}
.feed-group-count{
  font-size:.74rem;color:var(--text-soft);
  padding:3px 11px;background:var(--pri-soft);
  border-radius:100px;font-weight:500;
  font-variant-numeric:tabular-nums;
}
.feed-group-desc{font-size:.86rem;color:var(--text-soft);margin-bottom:18px;padding-left:14px;line-height:1.65}

/* -- Feed List (menu) -- */
.feed-list{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:12px;
}
.feed-list li{list-style:none;margin:0;padding:0}

/* -- Feed Card Wrapper (用于定位 tooltip) -- */
.feed-card-wrapper{
  position:relative;
  animation:slideUp .5s var(--ease-out) both;
  animation-delay:var(--delay,0s);
}

/* -- Gradient Card (feed card base) — 玻璃卡 -- */
.gradient-card{
  display:flex;align-items:center;gap:10px;
  padding:14px 14px;
  text-decoration:none;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  transition:all .3s var(--ease);
  position:relative;
  overflow:hidden;
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
}
.gradient-card::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,var(--pri-soft) 0%,transparent 60%);
  opacity:0;transition:opacity .35s var(--ease);
  pointer-events:none;
}
.gradient-card:hover{
  border-color:var(--pri);
  box-shadow:var(--shadow-md);
  transform:translateY(-3px);
}
.gradient-card:hover::before{opacity:1}

/* -- Feed Card (avatar + author) -- */
.feed-card{flex-direction:column;text-align:center;padding:22px 16px}
.feed-card .avatar{
  width:58px;height:58px;border-radius:50%;overflow:hidden;
  background:var(--pri-soft);flex-shrink:0;
  position:relative;z-index:1;
  border:2px solid transparent;transition:border-color .35s var(--ease),transform .35s var(--ease);
}
.gradient-card:hover .avatar{border-color:var(--pri-soft);transform:scale(1.05)}
.feed-card .avatar img{width:100%;height:100%;object-fit:cover;display:block}
.feed-card .avatar-fallback{
  display:none;align-items:center;justify-content:center;
  width:100%;height:100%;
  font-size:1.2rem;font-weight:700;color:var(--pri);
  background:var(--pri-soft);font-family:'Playfair Display',serif;
}
.feed-card .avatar.no-logo .avatar-fallback{display:flex}
.feed-card .avatar.no-logo img{display:none}
.feed-card .author{
  font-size:.9rem;font-weight:600;color:var(--text);
  position:relative;z-index:1;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
  margin-top:6px;
  transition:color .2s var(--ease);
}
.gradient-card:hover .author{color:var(--pri)}

/* -- Feed Tooltip (hover 显示详情) -- */
.feed-tooltip{
  position:absolute;left:50%;transform:translateX(-50%);
  bottom:calc(100% + 10px);
  width:240px;
  background:var(--bg-glass);
  backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:16px;
  box-shadow:var(--shadow-lg);
  visibility:hidden;opacity:0;
  transition:opacity .22s ease,visibility .22s ease,transform .22s ease;
  transform:translateX(-50%) translateY(4px);
  z-index:100;
  pointer-events:none;
}
.feed-card-wrapper:hover .feed-tooltip{
  visibility:visible;opacity:1;transform:translateX(-50%) translateY(0);
}
/* Tooltip arrow */
.feed-tooltip::after{
  content:'';position:absolute;top:100%;left:50%;
  transform:translateX(-50%);
  border:7px solid transparent;border-top-color:var(--line);
}
.feed-tooltip::before{
  content:'';position:absolute;top:100%;left:50%;
  transform:translateX(-50%);
  border:6px solid transparent;border-top-color:var(--bg-glass);
  z-index:1;
}
/* Tooltip bottom (褰撲笂鏂圭┖闂翠笉瓒虫椂) */
.feed-tooltip.tooltip-bottom{
  top:calc(100% + 10px);bottom:auto;
}
.feed-tooltip.tooltip-bottom::after{
  top:auto;bottom:100%;
  border-top-color:transparent;border-bottom-color:var(--line);
}
.feed-tooltip.tooltip-bottom::before{
  top:auto;bottom:100%;
  border-top-color:transparent;border-bottom-color:var(--bg-glass);
}

.site-content{
  display:flex;align-items:flex-start;gap:12px;margin-bottom:10px;
}
.site-icon{
  width:36px;height:36px;border-radius:8px;object-fit:cover;flex-shrink:0;
  background:var(--bg-alt);
}
.site-info{flex:1;min-width:0}
.site-name{
  font-family:'Playfair Display',serif;
  font-size:.88rem;font-weight:600;margin:0 0 2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.domain{
  font-size:.72rem;color:var(--text-faint);
  font-family:'JetBrains Mono',monospace;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;
}
.desc-content p{
  font-size:.8rem;color:var(--text-soft);line-height:1.5;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* -- Empty state -- */
.links-empty{
  text-align:center;padding:60px 24px;
}
.links-empty-icon{color:var(--text-faint);margin-bottom:16px}
.links-empty-text{font-size:1.05rem;font-weight:500;margin-bottom:6px}
.links-empty-hint{font-size:.85rem;color:var(--text-soft)}

/* ===== CUSTOM TABS CONTAINER ===== */
.custom-tabs-container{
  max-width:var(--max-wide);margin:0 auto;padding:0 24px 60px;
}
.custom-tabs-header{margin-bottom:28px}
.custom-tabs-nav{
  display:flex;gap:4px;border-bottom:1px solid var(--line);position:relative;
}
.custom-tab-item{
  display:flex;align-items:center;gap:6px;padding:11px 22px;margin-bottom:-1px;
  background:none;border:none;border-bottom:2px solid transparent;
  color:var(--text-soft);font-size:.88rem;cursor:pointer;transition:all .25s var(--ease);
  font-family:inherit;position:relative;font-weight:500;
  border-radius:var(--radius-md) var(--radius-md) 0 0;
}
.custom-tab-item svg{width:15px;height:15px;flex-shrink:0;transition:transform .25s var(--ease)}
.custom-tab-item:hover{color:var(--text);background:var(--pri-soft)}
.custom-tab-item.active{border-color:var(--pri);color:var(--pri)}
.custom-tab-item.active svg{transform:scale(1.1)}
.custom-tabs-content{min-height:200px}
.custom-tab-pane{display:none}
.custom-tab-pane.active{display:block;animation:fadeIn .3s var(--ease)}

/* -- Link Tab wrapper -- */
.link-tab{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:26px 30px;
  animation:none;
  transition:border-color .25s var(--ease);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-md);
}
.link-tab:hover{border-color:var(--pri-soft)}

/* ===== MY FEED CARD (gradient-card) — 玻璃卡 ===== */
.my-feed-card{
  display:flex;align-items:center;gap:16px;margin-bottom:20px;
  padding:22px 24px;
}
.my-feed-card .avatar{
  width:58px;height:58px;border-radius:50%;overflow:hidden;flex-shrink:0;
  background:var(--pri-soft);
  position:relative;z-index:1;border:2px solid var(--bg-card);
  box-shadow:var(--shadow-sm);
}
.my-feed-card .avatar img{width:100%;height:100%;object-fit:cover;display:block}
.my-feed-card .avatar-fallback{
  display:none;align-items:center;justify-content:center;
  width:100%;height:100%;font-size:1.3rem;font-weight:700;color:var(--pri);
  background:var(--pri-soft);font-family:'Playfair Display',serif;
}
.my-feed-card .avatar.no-logo .avatar-fallback{display:flex}
.my-feed-card .avatar.no-logo img{display:none}
.my-feed-card .info{flex:1;min-width:0;position:relative;z-index:1}
.my-feed-card .author{
  display:block;font-size:1rem;font-weight:600;color:var(--text);margin-bottom:4px;
}
.my-feed-card .desc{
  display:block;font-size:.84rem;color:var(--text-soft);line-height:1.5;
}

/* ===== COPY FIELDS — 玻璃卡内的更深一档行 ===== */
.copy-fields{display:flex;flex-direction:column;gap:10px}
.copy-item{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  transition:all .25s var(--ease);
}
.copy-item:hover{border-color:var(--pri);background:var(--pri-soft);transform:translateX(2px)}
.copy-item .prompt{
  flex-shrink:0;font-size:.8rem;font-weight:500;color:var(--text-soft);
  min-width:48px;
}
.copy-item .code{
  flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:.82rem;color:var(--text);font-family:'JetBrains Mono',monospace;
  background:var(--bg-card);padding:5px 10px;border-radius:var(--radius-xs);border:1px solid var(--line);
}
.copy-btn{
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;background:transparent;
  border:1px solid var(--line);
  border-radius:8px;cursor:pointer;color:var(--text-soft);transition:all .2s var(--ease);
}
.copy-btn:hover{background:var(--pri-soft);border-color:var(--pri);color:var(--pri)}
.copy-btn.copied{background:rgba(34,197,94,.15);border-color:var(--success);color:var(--success)}

/* ===== APPLY TAB CONTENT — 玻璃卡 ===== */
.apply-content{padding:8px 6px;color:var(--text)}
.apply-content p{font-size:.94rem;color:var(--text-soft);line-height:1.75;margin-bottom:12px}
.apply-content ul{padding-left:20px;margin-bottom:16px}
.apply-content li{font-size:.9rem;color:var(--text-soft);line-height:1.85}
.apply-content h1,.apply-content h2,.apply-content h3,.apply-content h4{
  font-family:'Playfair Display',serif;font-weight:600;line-height:1.25;margin:1.6em 0 .4em;color:var(--text);
}
.apply-content h1{font-size:1.4rem}
.apply-content h2{font-size:1.2rem}
.apply-content h3{font-size:1.1rem}
.apply-content h4{font-size:1rem}
.apply-content img{max-width:100%;height:auto;border-radius:var(--radius-sm);margin:1em auto;display:block}
.apply-content a{color:var(--pri);border-bottom:1px solid transparent;transition:border-color .2s}
.apply-content a:hover{border-bottom-color:var(--pri)}
.apply-content blockquote{
  margin:1em 0;padding:12px 20px;border-left:3px solid var(--pri);
  color:var(--text-soft);font-style:italic;
  background:linear-gradient(90deg,var(--pri-soft) 0%,transparent 100%);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.apply-content pre{
  margin:1em 0;padding:14px 18px;
  background:var(--bg-alt);
  border:1px solid var(--line);border-radius:var(--radius-sm);
  overflow-x:auto;font-family:'JetBrains Mono',monospace;font-size:.84rem;line-height:1.6;
  color:var(--text);
}
.apply-content code{font-family:'JetBrains Mono',monospace;font-size:.85em;padding:2px 6px;background:var(--bg-alt);border-radius:4px;color:var(--pri-deep)}
.apply-content pre code{padding:0;background:none;color:inherit}
.apply-content hr{margin:1.6em 0;border:none;height:1px;background:var(--line)}
.apply-content ol{padding-left:20px;margin-bottom:16px}
.apply-content ol li{font-size:.9rem;color:var(--text-soft);line-height:1.85}
.apply-content strong{color:var(--text);font-weight:600}
.apply-content table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.9rem}
.apply-content th,.apply-content td{padding:10px 14px;border:1px solid var(--line);text-align:left}
.apply-content th{background:var(--bg-alt);font-weight:600;color:var(--text)}
.apply-content td{color:var(--text-soft)}

/* ===== COMMENT SECTION ===== */
.links-comment{
  max-width:var(--max-wide);margin:0 auto;padding:0 24px 60px;
}
.links-comment-title{
  font-size:1.05rem;font-weight:600;margin-bottom:20px;
  font-family:'Playfair Display',serif;
}

/* ===== RANDOM VISIT BUTTON ===== */
.links-random-btn{
  position:fixed;right:28px;bottom:100px;z-index:500;
  width:44px;height:44px;border-radius:50%;
  background:var(--bg-glass);backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid var(--line);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  color:var(--text-soft);transition:all .3s;
  box-shadow:var(--shadow-md);
}
.links-random-btn:hover{
  color:var(--pri);border-color:var(--pri);box-shadow:var(--shadow-lg);
  transform:scale(1.05) rotate(180deg);
}
.links-random-btn svg{width:18px;height:18px}

/* ===== 绉诲姩绔€傞厤 鈥?Moments / Friends ===== */
@media(max-width:640px){
  .moments-list{padding:24px 16px 60px}
  .moments-tags-wrapper{padding:0 8px}
  .moment-card{padding:14px;margin-bottom:12px}
  .moment-card-header{flex-direction:column;align-items:flex-start;gap:6px}
  .moment-card-footer{flex-direction:column;align-items:flex-start}
  .page-moments-list{padding:16px 16px 60px}
  .moment-list-item{padding:12px}
  .friends-list{padding:24px 16px 60px;gap:10px}
  .friend-card{padding:14px}
  .friend-header{flex-direction:column;align-items:flex-start;gap:6px}
  .f-header{padding:80px 16px 40px}
  .links-h{padding:80px 16px 40px}
  .f-grid{padding:20px 16px 60px;gap:12px}
}

/* ===== ERROR STATE ===== */
.links-error{text-align:center;padding:60px 24px}
.links-error-text{font-size:.95rem;color:var(--text-soft)}

/* ===== ANIMATIONS ===== */
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* ===== RESPONSIVE ===== */
@media(max-width:640px){
  .feed-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
  .feed-card{padding:16px 10px}
  .feed-card .avatar{width:48px;height:48px}
  .feed-card .author{font-size:.8rem}
  .feed-tooltip{display:none}
  .copy-item{padding:8px 12px}
  .custom-tab-item{padding:8px 14px;font-size:.8rem}
}

/* ===== MISC ===== */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--pri-soft)}

.lightbox{
  position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:10000;
  display:flex;align-items:center;justify-content:center;cursor:zoom-out;
  animation:lbin .25s var(--ease);
}
.lightbox img{max-width:90vw;max-height:90vh;border-radius:12px;box-shadow:var(--shadow-lg)}
.lightbox::after{
  content:'×';position:absolute;top:24px;right:24px;
  font-size:2.5rem;color:#fff;opacity:.7;font-family:'Playfair Display',serif;
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:rgba(255,255,255,.08);
  transition:all .25s var(--ease);
}
.lightbox:hover::after{background:rgba(255,255,255,.18);opacity:1}
@keyframes lbin{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}

/* ===== PAGE HEADER (shared) =====
   —— 标题统一白字 + 柔和 text-shadow（不依赖图片也清晰）
   —— 不要"下面那个黑框 / 胶囊" ===== */
.page-header{
  padding:96px 24px 40px;
  text-align:center;
  background:transparent;
  border-bottom:none;
  position:relative;overflow:hidden;isolation:isolate;
}
.page-header::before{
  content:'';position:absolute;top:-40%;left:50%;transform:translateX(-50%);
  width:580px;height:580px;background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:-1;
}
.page-title{
  display:inline-block;
  padding:0;
  margin-bottom:14px;
  font-family:'Playfair Display',serif;
  font-size:clamp(1.4rem,2.8vw,2.2rem);
  font-weight:700;line-height:1.2;
  letter-spacing:-.018em;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
  background:none;border:none;border-radius:0;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  position:relative;
}
.page-title::after{display:none !important}
.page-desc{
  display:block;
  padding:0;margin:0 auto;
  max-width:520px;
  font-size:.92rem;letter-spacing:0;line-height:1.65;
  color:#fff;
  opacity:.78;
  text-shadow:0 1px 6px rgba(0,0,0,.3);
  background:none;border:none;border-radius:0;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
/* 兼容 photos-header / equipment-header 等 —— 别再回退到旧胶囊 */
.photos-header .page-title,
.equipment-header .page-title{
  display:inline-block !important;
  padding:0 !important;
  margin-bottom:14px !important;
  background:none !important;
  color:#fff !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  text-shadow:0 2px 14px rgba(0,0,0,.32) !important;
}
.photos-header .page-desc,
.equipment-header .page-desc{
  padding:0 !important;
  background:none !important;
  border:none !important;
  border-radius:0 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  color:#fff !important;
  opacity:.78 !important;
}

/* ===== EMPTY STATE (shared) ===== */
.empty-state{text-align:center;padding:80px 24px}
.empty-state p{font-size:.95rem;color:var(--text-soft);margin-bottom:4px}

/* ===== OUTDATED NOTICE ===== */
.outdated-notice{
  display:flex;align-items:center;gap:10px;
  padding:13px 18px;margin-bottom:20px;
  background:rgba(255,193,7,0.10);
  border:1px solid rgba(255,193,7,0.32);
  border-radius:var(--radius-sm);
  font-size:.88rem;color:#a8740a;
  border-left:3px solid #f59e0b;
}
[data-theme="dark"] .outdated-notice{background:rgba(255,193,7,0.06);border-color:rgba(255,193,7,0.22);color:#e8c547;border-left-color:#f59e0b}
.outdated-icon{font-size:1rem;flex-shrink:0}
.outdated-text{flex:1;line-height:1.55}

/* ===== POST EXCERPT (typewriter) ===== */
.post-excerpt{
  display:flex;align-items:flex-start;gap:10px;
  padding:14px 20px;margin-bottom:24px;
  background:linear-gradient(135deg,var(--pri-soft) 0%,rgba(255,255,255,0.4) 100%);
  border:1px solid var(--pri-soft);
  border-left:3px solid var(--pri);
  border-radius:var(--radius-sm);
  font-size:.92rem;color:var(--text);line-height:1.7;
}
[data-theme="dark"] .post-excerpt{background:linear-gradient(135deg,var(--pri-soft) 0%,rgba(255,255,255,0.02) 100%)}
.excerpt-label{font-size:1rem;flex-shrink:0;margin-top:2px;color:var(--pri)}
.excerpt-caret{animation:blink-caret .8s step-end infinite;font-weight:700;color:var(--pri)}
@keyframes blink-caret{0%,100%{opacity:1}50%{opacity:0}}

/* ===== COMMENT ===== */
/* 评论插件未安装时的占位提示 */
.comment-placeholder{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:32px 24px;text-align:center;
  background:var(--bg-card);border:1px dashed var(--line);
  border-radius:var(--radius-lg);min-height:120px;
}
.comment-placeholder-icon{color:var(--text-dim);opacity:.5}
.comment-placeholder-text{font-size:.9rem;color:var(--text-dim);margin:0;max-width:440px;line-height:1.6}
/* 评论数据为空时的提示 */
.comment-empty{padding:24px;text-align:center;color:var(--text-dim);font-size:.9rem}
/* 评论块自身的标题 */
.comment-title{
  font-family:'Playfair Display',serif;
  font-size:1.2rem;font-weight:600;
  margin:0 0 20px;
  display:flex;align-items:center;gap:8px;
  color:var(--text);
}
.comment-title::before{
  content:'';width:3px;height:14px;background:var(--pri-grad);border-radius:2px;
}
/* Halo 评论容器：完全不透明 + 圆角 + 阴影，明确边界 */
.comment-body{
  min-height:160px;
  padding:26px 30px;
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);
  position:relative;
  overflow:hidden;
}
.comment-body::before{
  content:'';position:absolute;top:-40%;right:-10%;
  width:340px;height:340px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:0;
}
.comment-body > *{position:relative;z-index:1}

/* ============================================================
   Halo 评论组件可读性 —— 一刀切策略：
   - 浅色模式：评论卡内所有文本强制为 #1d1d1f（深色文字）
   - 深色模式：评论卡内所有文本强制为 #f5f5f7（白色文字）
   - 不依赖 Shadow DOM 内部 CSS 变量是否能透出，最简单可靠
   ============================================================ */
[data-theme="light"] .comment-body,
[data-theme="light"] .comment-body *:not(svg):not(svg *):not(input):not(textarea):not(button){
  color:#1d1d1f !important;
}
[data-theme="dark"] .comment-body,
[data-theme="dark"] .comment-body *:not(svg):not(svg *):not(input):not(textarea):not(button){
  color:#f5f5f7 !important;
}
[data-theme="light"] .comment-body a:not([class*="icon"]){color:#a8845a !important}
[data-theme="dark"] .comment-body a:not([class*="icon"]){color:#d4a574 !important}
/* 输入框保留主题色 */
[data-theme="light"] .comment-body input,
[data-theme="light"] .comment-body textarea{
  background:#fff !important;color:#1d1d1f !important;border-color:rgba(0,0,0,.12) !important;
}
[data-theme="dark"] .comment-body input,
[data-theme="dark"] .comment-body textarea{
  background:#151517 !important;color:#f5f5f7 !important;border-color:rgba(255,255,255,.12) !important;
}
[data-theme="light"] .comment-body input::placeholder,
[data-theme="light"] .comment-body textarea::placeholder{color:#aeaeb2 !important}
[data-theme="dark"] .comment-body input::placeholder,
[data-theme="dark"] .comment-body textarea::placeholder{color:#636366 !important}
/* 评论卡主按钮始终保留主色 brand */
.comment-body button[type="submit"],
.comment-body .submit-btn,
.comment-body [class*="submit"],
.comment-body [class*="primary"]:not([class*="icon"]){
  background:#d4a574 !important;color:#fff !important;border-color:#d4a574 !important;
}
/* 头像圆环友好 */
.comment-body [class*="avatar"] img{object-fit:cover}

/* ===== PHOTOS ===== */
/* 头部：缩小尺寸，去掉暗色胶囊，与 about-hero / gb-hero 风格一致 */
.photos-header{
  padding:78px 24px 28px !important;
  position:relative;overflow:visible;
}
.photos-header::before{
  content:'';position:absolute;top:-40%;left:50%;
  transform:translateX(-50%);width:520px;height:520px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:0;
}
.photos-header .page-title{
  display:inline-block;
  padding:0;margin:0 0 8px;
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:700;
  letter-spacing:-.015em;line-height:1.15;
  color:var(--text);
  background:none;border:none;border-radius:0;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.photos-header .page-desc{
  display:block;
  padding:0;margin:0 auto;
  max-width:520px;
  font-size:.92rem;line-height:1.65;
  color:var(--text-soft);
  background:none;border:none;border-radius:0;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}

.photos-container{max-width:var(--max-wide);margin:0 auto;padding:28px 24px 60px}
.photo-tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap;justify-content:center}
.photo-tab{padding:6px 16px;border:1px solid var(--line);border-radius:100px;font-size:.85rem;color:var(--text-soft);transition:all .2s;cursor:pointer}
.photo-tab:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft)}
.photo-tab.active{border-color:var(--pri);color:var(--pri);background:var(--pri-soft)}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.photo-item{
  border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;
  background:var(--bg-card-translucent);
  backdrop-filter:blur(8px) saturate(140%);
  -webkit-backdrop-filter:blur(8px) saturate(140%);
  transition:all .3s var(--ease);
  box-shadow:var(--shadow-sm);
}
.photo-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--pri)}
.photo-link{display:block;overflow:hidden;cursor:zoom-in}
.photo-img{width:100%;height:200px;object-fit:cover;transition:transform .4s ease}
.photo-item:hover .photo-img{transform:scale(1.04)}
.photo-info{padding:10px 14px}
.photo-name{font-size:.85rem;font-weight:500;color:var(--text-soft)}

/* ===== EQUIPMENT ===== */
.equipment-container{max-width:var(--max-wide);margin:0 auto;padding:32px 24px 60px}
.equipment-breadcrumb{display:flex;align-items:center;gap:10px;margin-bottom:20px;font-size:.85rem;color:var(--text-soft)}
.equipment-back-link{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:100px;border:1px solid var(--line);background:var(--bg-card);color:var(--text-soft);text-decoration:none;transition:all .2s}
.equipment-back-link:hover{color:var(--pri);border-color:var(--pri);background:var(--pri-soft)}
.equipment-breadcrumb-sep{color:var(--text-faint);opacity:.6}
.equipment-breadcrumb-current{color:var(--text);font-weight:500}

.equipment-header .page-title{font-family:'Playfair Display',serif}

/* ----- Equipment 头部：浅薄透明 + 桃色光晕（仅作用于 .equipment-header）----- */
.equipment-header{
  padding:78px 24px 28px !important;
  position:relative;overflow:visible;
}
.equipment-header::before{
  content:'';position:absolute;top:-40%;left:50%;
  transform:translateX(-50%);width:520px;height:520px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:0;
}
.equipment-header .page-title{
  display:inline-block;
  padding:0;margin:0 0 8px;
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:700;
  letter-spacing:-.015em;line-height:1.15;
  color:var(--text);
  background:none;border:none;border-radius:0;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.equipment-header .page-desc{
  display:block;
  padding:0;margin:0 auto;
  max-width:520px;
  font-size:.92rem;line-height:1.65;
  color:var(--text-soft);
  background:none;border:none;border-radius:0;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}

/* ----- Equipment 容器 ----- */
.equipment-container{max-width:var(--max-wide);margin:0 auto;padding:24px 24px 60px}

/* ----- 装备分组卡（玻璃卡）----- */
.equipment-section-title{
  font-family:'Playfair Display',serif;
  font-size:1.3rem;font-weight:700;
  color:var(--text);margin:24px 0 16px;
  display:flex;align-items:center;gap:10px;
  position:relative;padding-left:14px;
}
.equipment-section-title::before{
  content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;
  background:var(--pri-grad);border-radius:2px;
}

.equipment-group-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:16px;margin-bottom:32px;
}
.equipment-group-card{
  display:flex;align-items:center;gap:16px;
  padding:20px 22px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  box-shadow:var(--shadow-sm);
  text-decoration:none;
  color:var(--text);
  transition:all .3s var(--ease);
  position:relative;
  overflow:hidden;
}
.equipment-group-card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;
  width:3px;background:var(--pri-grad);
  transform:scaleY(0);transform-origin:top;
  transition:transform .35s var(--ease);
}
.equipment-group-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color:var(--pri);
}
.equipment-group-card:hover::before{transform:scaleY(1)}

.equipment-group-icon{
  flex:0 0 56px;width:56px;height:56px;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:var(--pri-soft);
  color:var(--pri);
  font-size:1.5rem;font-weight:600;
  font-family:'Playfair Display',serif;
  transition:all .3s var(--ease);
  border:1px solid transparent;
}
.equipment-group-card:hover .equipment-group-icon{
  transform:scale(1.08) rotate(-4deg);
  background:var(--pri);color:#fff;
}
.equipment-group-info{flex:1;min-width:0}
.equipment-group-name{font-size:1.02rem;font-weight:600;color:var(--text);margin:0 0 4px;line-height:1.3}
.equipment-group-desc{
  font-size:.82rem;color:var(--text-soft);
  line-height:1.5;margin:0 0 6px;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
.equipment-group-meta{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;
  font-size:.78rem;color:var(--text-faint);margin-top:6px;
}
.equipment-group-count{display:inline-flex;align-items:center;gap:4px}
.equipment-group-arrow{display:inline-flex;color:var(--text-faint);transition:transform .25s var(--ease),color .25s var(--ease)}
.equipment-group-card:hover .equipment-group-arrow{
  color:var(--pri);transform:translateX(4px);
}

/* ----- 装备卡（玻璃底配图片，与图库风格一致）----- */
.equipment-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:14px;
}
.equipment-card{
  display:flex;flex-direction:column;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  overflow:hidden;
  background:var(--bg-card-translucent);
  backdrop-filter:blur(8px);
  transition:all .3s var(--ease);
  cursor:pointer;outline:none;
  box-shadow:var(--shadow-sm);
}
.equipment-card:hover,.equipment-card:focus-visible{
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
  border-color:var(--pri);
}
.equipment-card:focus-visible{box-shadow:0 0 0 3px var(--pri-soft),var(--shadow-md)}
.equipment-cover{width:100%;aspect-ratio:1/1;overflow:hidden;background:var(--bg-alt)}
.equipment-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.equipment-card:hover .equipment-cover img{transform:scale(1.08)}
.equipment-card-name{
  padding:13px 14px;
  font-size:.92rem;font-weight:500;
  color:var(--text);
  text-align:center;line-height:1.4;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:var(--bg-card);
  border-top:1px solid var(--line);
}

/* ===== EQUIPMENT DETAIL MODAL ===== */
.equipment-modal{position:fixed;inset:0;width:100vw;height:100vh;z-index:10000;background:var(--bg);display:flex;flex-direction:column;opacity:0;transition:opacity .25s ease}
.equipment-modal.open{opacity:1}
.equipment-modal-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:var(--bg-glass);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border-bottom:1px solid var(--line)}
.equipment-modal-back,.equipment-modal-close{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:100px;background:transparent;border:1px solid var(--line);color:var(--text-soft);font-size:.85rem;cursor:pointer;transition:all .2s}
.equipment-modal-back:hover,.equipment-modal-close:hover{color:var(--pri);border-color:var(--pri);background:var(--pri-soft)}
.equipment-modal-close{width:36px;height:36px;padding:0;justify-content:center}
.equipment-modal-title{flex:1;font-family:'Playfair Display',serif;font-size:1.05rem;font-weight:600;color:var(--text);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.equipment-modal-body{max-width:780px;width:100%;margin:0 auto;padding:24px 24px 60px;overflow-y:auto;flex:1}
.equipment-modal-figure{margin:0 0 20px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}
.equipment-modal-figure img{display:block;width:100%;max-height:60vh;object-fit:contain;background:#000}
.equipment-modal-header{margin-bottom:18px}
.equipment-modal-name{font-family:'Playfair Display',serif;font-size:1.8rem;font-weight:600;color:var(--text);margin:0 0 8px;line-height:1.25}
.equipment-modal-spec{display:inline-block;font-size:.82rem;color:var(--text-faint);padding:4px 12px;border-radius:100px;background:var(--bg-alt);letter-spacing:.02em}
.equipment-modal-desc{font-size:1rem;line-height:1.85;color:var(--text-soft);white-space:pre-wrap;margin-bottom:24px}
.equipment-modal-link{display:inline-flex;align-items:center;gap:6px;padding:10px 22px;border-radius:100px;background:var(--pri);color:#fff;font-size:.9rem;text-decoration:none;transition:all .2s;border:none}
.equipment-modal-link:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);opacity:.92}
body.equipment-modal-open{overflow:hidden}

@media (max-width: 640px){
  .equipment-container{padding:20px 16px 40px}
  .equipment-group-grid{grid-template-columns:1fr;gap:12px}
  .equipment-group-card{padding:14px 16px;gap:12px}
  .equipment-group-icon{width:44px;height:44px;font-size:1.15rem}
  .equipment-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .equipment-card-name{padding:10px;font-size:.85rem}
  .equipment-section-title{font-size:1.1rem;margin:20px 0 12px}
  .equipment-modal-bar{padding:10px 14px}
  .equipment-modal-body{padding:16px 16px 40px}
  .equipment-modal-name{font-size:1.4rem}
}

/* ===== MOMENTS (鍗＄墖妯″紡) ===== */
.page-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.page-action-link{font-size:.82rem;color:var(--pri);text-decoration:none;transition:opacity .2s}
.page-action-link:hover{opacity:.7}
.page-count{font-size:.82rem;color:var(--text-faint)}

.moments-list{max-width:var(--max-w);margin:0 auto;padding:40px 24px 60px}
.moments-list .pager{width:100%;flex-basis:100%;margin-top:24px}
.moments-tags-wrapper{max-width:var(--max-w);margin:0 auto;padding:0 24px}
.moments-tags{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.moments-tags .tag-item{display:flex;align-items:center;gap:4px;padding:6px 14px;border-radius:999px;font-size:.82rem;color:var(--text-soft);background:var(--bg-card);border:1px solid var(--line);transition:all .2s;white-space:nowrap;text-decoration:none}
.moments-tags .tag-item:hover,.moments-tags .tag-item.active{color:var(--pri);border-color:var(--pri);background:var(--pri-soft)}
.tag-count{font-size:.72rem;padding:0 5px;border-radius:10px;background:var(--bg-alt);line-height:1.4}
.tag-item.active .tag-count{background:var(--pri);color:#fff}

.moment-card{
  padding:22px 24px;
  margin-bottom:16px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  transition:all .3s var(--ease);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-sm);
  position:relative;overflow:hidden;
}
.moment-card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--pri-grad);transform:scaleY(0);transform-origin:top;
  transition:transform .35s var(--ease);
}
.moment-card:hover{border-color:var(--pri-soft);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.moment-card:hover::before{transform:scaleY(1)}
.moment-card-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
.moment-author-info{display:flex;align-items:center;gap:8px}
.moment-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--bg-card);box-shadow:var(--shadow-sm)}
.moment-author-name{font-weight:600;font-size:.9rem;color:var(--text)}
.moment-card .moment-time{font-size:.76rem;color:var(--text-faint)}
.moment-body{font-size:.94rem;line-height:1.8;color:var(--text);margin-bottom:12px}
.moment-body a{color:var(--pri);transition:color .2s var(--ease)}
.moment-body a:hover{color:var(--pri-hover)}
.moment-text img{max-width:100%;border-radius:var(--radius-sm);margin:8px 0;box-shadow:var(--shadow-sm)}
.moment-card-footer{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;
  padding-top:12px;
  border-top:1px solid var(--line);
}

/* Moment Media */
.moment-media{display:grid;gap:6px;margin-top:10px}
.moment-media.single{grid-template-columns:1fr}
.moment-media.double{grid-template-columns:1fr 1fr}
.moment-media.grid{grid-template-columns:repeat(3,1fr)}
.media-item{margin:0;position:relative;overflow:hidden;border-radius:var(--radius-sm)}
.media-item img,.media-item video{width:100%;display:block;object-fit:cover;max-height:300px;border-radius:var(--radius-sm);transition:transform .3s}
.media-item img:hover{transform:scale(1.02)}
.media-item.audio{grid-column:1/-1}
.media-item.audio audio{width:100%;border-radius:var(--radius-sm)}

/* Moment Tags inside card */
.moment-card .moment-tags{display:flex;flex-wrap:wrap;gap:6px}
.moment-tag{
  padding:3px 11px;background:var(--pri-soft);border-radius:100px;
  font-size:.76rem;color:var(--pri);text-decoration:none;transition:all .2s var(--ease);
  border:1px solid transparent;font-weight:500;
}
.moment-tag:hover{background:var(--pri);color:#fff;transform:translateY(-1px)}

/* Moment Actions */
.moment-actions{display:flex;align-items:center;gap:8px}
.action-btn{
  display:inline-flex;align-items:center;gap:4px;
  padding:6px 13px;
  background:var(--bg-alt);
  border-radius:100px;
  font-size:.8rem;
  color:var(--text-soft);
  cursor:pointer;transition:all .2s var(--ease);text-decoration:none;
  border:1px solid var(--line);
}
.action-btn:hover{background:var(--pri-soft);color:var(--pri);border-color:var(--pri-soft);transform:translateY(-1px)}
.action-btn.liked{background:var(--pri-soft);color:var(--pri);border-color:var(--pri-soft)}
.action-btn.liked .like-icon{fill:var(--pri)}
.action-btn.loading{opacity:.5;pointer-events:none}
.action-btn.copied{background:var(--pri-soft);color:var(--pri);border-color:var(--pri-soft)}
.action-btn.comment svg,.action-btn.share svg{flex-shrink:0}

/* Moment Comment Section */
.moment-comment{
  display:none;
  margin-top:14px;padding-top:14px;
  border-top:1px solid var(--line);
}
.moment-comment.show{display:block}
.comment-header{
  display:flex;align-items:center;gap:6px;
  font-size:.84rem;color:var(--text-soft);
  margin-bottom:8px;font-weight:500;
}

/* Empty State */
.empty-state{padding:60px 20px;text-align:center;color:var(--text-faint)}
.empty-state p{margin:4px 0}
.empty-state p:first-child{font-size:1rem}
.empty-state p:last-child{font-size:.82rem;color:var(--text-faint)}

/* ===== MOMENTS锛堝垪琛ㄦā寮忥級 ===== */
.moments-banner{min-height:220px;display:flex;align-items:flex-end;padding:40px 24px 24px;background-size:cover;background-position:center;background-color:var(--bg-alt);position:relative;border-radius:0 0 var(--radius-md) var(--radius-md);margin-bottom:0}
.moments-banner::before{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0,transparent 100%);border-radius:0 0 var(--radius-md) var(--radius-md)}
.moments-banner-content{position:relative;z-index:1;max-width:var(--max-w);margin:0 auto;width:100%;color:#fff}
.moments-banner-title{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:700;margin:0 0 8px}
.moments-banner-bottom{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px}
.moments-banner-desc{font-size:.9rem;opacity:.85;margin:0}
.moments-banner-meta{display:flex;align-items:center;gap:12px}
.moments-banner-count{font-size:.82rem;opacity:.8}
.moments-banner-rss{font-size:.78rem;color:#fff;opacity:.7;text-decoration:none;transition:opacity .2s}
.moments-banner-rss:hover{opacity:1}

.moments-list-tags{max-width:var(--max-w);margin:0 auto;padding:16px 24px 0}
.page-moments-list{max-width:var(--max-w);margin:0 auto;padding:24px 24px 60px}
.moment-list-items{display:flex;flex-direction:column;gap:16px}
.moment-list-items .pager{flex-basis:100%;margin-top:8px}
.moment-list-item{
  display:flex;flex-wrap:wrap;gap:14px;
  padding:18px 22px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  transition:all .3s var(--ease);
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  box-shadow:var(--shadow-sm);
}
.moment-list-item:hover{border-color:var(--pri);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.moment-list-meta{display:flex;align-items:flex-start;gap:10px;flex-shrink:0;width:180px}
.moment-list-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--bg-card);box-shadow:var(--shadow-sm)}
.moment-list-avatar-placeholder{
  width:42px;height:42px;border-radius:50%;
  background:var(--pri-soft);color:var(--pri);
  display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;
  border:2px solid var(--bg-card);font-family:'Playfair Display',serif;font-weight:600;
  box-shadow:var(--shadow-sm);
}
.moment-list-info{flex:1;min-width:0}
.moment-list-nick{font-weight:600;font-size:.9rem;margin-bottom:2px;color:var(--text)}
.moment-list-date{font-size:.74rem;color:var(--text-faint)}
.moment-list-content{flex:1;min-width:280px}
.moment-list-content .moment-text{font-size:.92rem;line-height:1.7;color:var(--text)}
.moment-list-bottom{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--line)}
.moment-list-tags{display:flex;flex-wrap:wrap;gap:4px}
.moment-list-tag{padding:2px 10px;border-radius:100px;font-size:.74rem;color:var(--pri);background:var(--pri-soft);text-decoration:none;font-weight:500;transition:all .2s var(--ease)}
.moment-list-tag:hover{background:var(--pri);color:#fff}

/* ===== MOMENT DETAIL ===== */
.moment-back{padding:78px 24px 0;max-width:var(--max-w);margin:0 auto;position:relative;overflow:visible}
.moment-back::before{
  content:'';position:absolute;top:-40%;left:50%;
  transform:translateX(-50%);width:520px;height:520px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:0;
}
.moment-back-simple{padding:78px 24px 0}
.back-link{font-size:.88rem;color:var(--text-soft);text-decoration:none;transition:color .2s;display:inline-flex;align-items:center;gap:4px;position:relative;z-index:1}
.back-link:hover{color:var(--pri)}
.moment-detail,.moment-detail-list{
  max-width:var(--max-w);margin:0 auto;
  padding:26px 30px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-md);
  transition:border-color .25s var(--ease);
}
.moment-detail:hover,.moment-detail-list:hover{border-color:var(--pri-soft)}
.moment-detail .moment-header,.moment-detail-list .moment-header{
  display:flex;align-items:center;gap:10px;margin-bottom:16px;
  padding-bottom:14px;border-bottom:1px solid var(--line);
}
.moment-detail .author-info,.moment-detail-list .author-info{display:flex;align-items:center;gap:8px}
.moment-detail .author-avatar,.moment-detail-list .author-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid var(--bg-card);box-shadow:var(--shadow-sm)}
.moment-detail .author-name,.moment-detail-list .author-name{font-weight:600;font-size:.95rem;color:var(--text)}
.moment-detail .moment-time,.moment-detail-list .moment-time{font-size:.78rem;color:var(--text-faint)}
.moment-detail .moment-body,.moment-detail-list .moment-body{font-size:.96rem;line-height:1.85;margin-bottom:16px;color:var(--text)}
.moment-detail .moment-body a,
.moment-detail-list .moment-body a{color:var(--pri)}
.moment-detail .moment-footer,.moment-detail-list .moment-footer{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:8px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.moment-detail .moment-tags,.moment-detail-list .moment-tags{display:flex;flex-wrap:wrap;gap:6px}
.moment-detail .moment-actions,.moment-detail-list .moment-actions{display:flex;align-items:center;gap:8px}
.moment-detail-list .moment-header{flex-direction:column;align-items:flex-start;gap:6px}
.moment-comments{max-width:var(--max-w);margin:0 auto;padding:24px}

/* ===== DOCS ===== */
.docs-grid{max-width:var(--max-wide);margin:0 auto;padding:28px 24px 60px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.docs-card{
  display:flex;align-items:center;gap:16px;padding:22px 24px;
  border:1px solid var(--line);border-radius:var(--radius-lg);
  background:var(--bg-card-translucent);
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  box-shadow:var(--shadow-sm);
  transition:all .3s var(--ease);
  text-decoration:none;
}
.docs-card:hover{border-color:var(--pri);background:var(--bg-card);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.docs-card-icon{
  flex-shrink:0;width:52px;height:52px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.8rem;
  background:var(--pri-soft);
  border-radius:14px;
  transition:all .3s var(--ease);
}
.docs-card:hover .docs-card-icon{transform:scale(1.08) rotate(-4deg);background:var(--pri);color:#fff}
.docs-card-icon img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.docs-card-body{flex:1;min-width:0}
.docs-card-title{font-weight:600;font-size:1rem;margin-bottom:4px;color:var(--text)}
.docs-card-desc{font-size:.82rem;color:var(--text-soft);line-height:1.5}

/* ===== DOC PAGE ===== */
.doc-page{max-width:var(--max-wide);margin:0 auto;padding:28px 24px 60px;display:grid;grid-template-columns:1fr 240px;gap:32px}
.doc-breadcrumb{grid-column:1/-1;font-size:.82rem;color:var(--text-soft);margin-bottom:20px;display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px;
  background:var(--bg-card-translucent);border:1px solid var(--line);border-radius:100px;
  backdrop-filter:blur(8px);width:fit-content;
}
.doc-breadcrumb a{color:var(--text-soft);transition:color .2s var(--ease);text-decoration:none}
.doc-breadcrumb a:hover{color:var(--pri)}
.breadcrumb-sep{color:var(--text-faint);margin:0 4px}
.doc-main{
  min-width:0;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:32px 36px;
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-md);
}
.doc-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.4rem,2.5vw,2rem);font-weight:700;
  margin-bottom:24px;line-height:1.2;letter-spacing:-.018em;
  display:inline-block;
  padding:0;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}
.doc-title::after{display:none !important}
.doc-content{margin-bottom:40px}
.doc-nav-surround{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-top:32px;border-top:1px solid var(--line);margin-bottom:40px}
.surround-link{
  padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius-md);
  transition:all .3s var(--ease);
  background:var(--bg-card-translucent);backdrop-filter:blur(8px);
  text-decoration:none;
}
.surround-link:hover{border-color:var(--pri);background:var(--pri-soft);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.surround-link.next{text-align:right}
.surround-label{font-size:.74rem;color:var(--text-faint);display:block;margin-bottom:4px;font-weight:500;text-transform:uppercase;letter-spacing:.04em}
.surround-title{font-size:.92rem;transition:color .2s;font-weight:500;line-height:1.45}
.surround-link:hover .surround-title{color:var(--pri)}
.doc-comments{padding-top:20px;border-top:1px solid var(--line)}

/* ===== DOC CATALOG ===== */
.doc-catalog-list{display:flex;flex-direction:column;gap:10px}
.doc-catalog-item{
  display:flex;align-items:center;gap:12px;padding:14px 18px;
  border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--bg-card-translucent);backdrop-filter:blur(8px);
  transition:all .25s var(--ease);
  text-decoration:none;
}
.doc-catalog-item:hover{border-color:var(--pri);background:var(--pri-soft);transform:translateX(3px)}
.doc-catalog-icon{
  font-size:1.4rem;flex-shrink:0;
  width:38px;height:38px;border-radius:10px;
  background:var(--pri-soft);
  display:flex;align-items:center;justify-content:center;
  transition:all .25s var(--ease);
}
.doc-catalog-item:hover .doc-catalog-icon{background:var(--pri);color:#fff;transform:scale(1.05)}
.doc-catalog-title{font-size:.92rem;font-weight:500;color:var(--text)}

/* ===== DOC TREE SIDEBAR ===== */
.doc-tree-sidebar{position:relative}
.doc-tree-nav{
  position:sticky;top:80px;max-height:calc(100vh - 100px);overflow-y:auto;font-size:.84rem;
  padding:18px;background:var(--bg-card-translucent);border:1px solid var(--line);border-radius:var(--radius-md);
  backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);
}
.doc-tree-list{list-style:none;padding:0}
.doc-tree-item{list-style:none}
.doc-tree-link{
  display:block;padding:6px 12px;color:var(--text-soft);
  border-left:2px solid transparent;
  transition:all .2s var(--ease);border-radius:0 var(--radius-xs) var(--radius-xs) 0;
  text-decoration:none;
}
.doc-tree-link:hover,.doc-tree-link.active{color:var(--pri);border-left-color:var(--pri);background:var(--pri-soft);padding-left:16px}
.doc-tree-details{margin:0}
.doc-tree-summary{cursor:pointer;padding:2px 0;list-style:none}
.doc-tree-summary::marker,.doc-tree-summary::-webkit-details-marker{display:none}
.doc-tree-sublist{padding-left:14px;margin:2px 0}

@media(max-width:900px){
  .doc-page{grid-template-columns:1fr}
  .doc-tree-sidebar{display:none}
  .doc-main{padding:24px}
}

/* ===== STEAM ===== */
.steam-page{max-width:var(--max-wide);margin:0 auto;padding:28px 24px 60px}
.steam-profile{
  display:flex;align-items:center;gap:22px;padding:26px 30px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);border-radius:var(--radius-lg);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-md);
  margin-bottom:24px;
  position:relative;overflow:hidden;
}
.steam-profile::before{
  content:'';position:absolute;top:-50%;right:-10%;
  width:300px;height:300px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 60%);
  pointer-events:none;
}
.steam-profile-avatar{width:84px;height:84px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--bg-alt);
  border:3px solid var(--bg-card);box-shadow:var(--shadow-md);
  position:relative;z-index:1;
}
.steam-profile-avatar img{width:100%;height:100%;object-fit:cover}
.steam-profile-info{flex:1;position:relative;z-index:1}
.steam-profile-name{font-size:1.2rem;font-weight:600;margin-bottom:4px;font-family:'Playfair Display',serif}
.steam-profile-link{display:inline-block;font-size:.82rem;color:var(--pri);margin-bottom:8px;text-decoration:none;transition:color .2s var(--ease)}
.steam-profile-link:hover{color:var(--pri-hover);text-decoration:underline}
.steam-profile-status{display:flex;gap:10px;flex-wrap:wrap;font-size:.82rem;color:var(--text-soft)}
.steam-profile-status span{
  padding:4px 12px;border-radius:100px;
  background:var(--bg-alt);border:1px solid var(--line);font-weight:500;
}
.steam-section{margin-bottom:32px}
.steam-section-title{
  font-family:'Playfair Display',serif;
  font-size:1.25rem;font-weight:600;margin-bottom:18px;
  padding-left:14px;position:relative;
}
.steam-section-title::before{
  content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;
  background:var(--pri-grad);border-radius:2px;
}
.steam-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:24px}
.steam-stat-item{
  text-align:center;padding:18px 14px;
  border:1px solid var(--line);border-radius:var(--radius-md);
  background:var(--bg-card-translucent);
  backdrop-filter:blur(8px);
  transition:all .3s var(--ease);
}
.steam-stat-item:hover{border-color:var(--pri);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.steam-stat-value{
  font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;
  background:var(--pri-grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  display:block;line-height:1;
}
.steam-stat-label{font-size:.78rem;color:var(--text-faint);margin-top:6px;display:block}
.steam-recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.steam-games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.steam-game-card{
  border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;
  background:var(--bg-card);
  transition:all .3s var(--ease);
  box-shadow:var(--shadow-sm);
}
.steam-game-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--pri)}
.steam-game-link{display:block}
.steam-game-img{width:100%;height:140px;object-fit:cover;display:block;transition:transform .4s var(--ease)}
.steam-game-card:hover .steam-game-img{transform:scale(1.05)}
.steam-game-meta{padding:12px 14px}
.steam-game-name{display:block;font-size:.84rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;color:var(--text)}
.steam-game-time{font-size:.76rem;color:var(--text-faint)}
.steam-error{display:flex;align-items:center;gap:8px;padding:16px;background:rgba(239,68,68,0.08);border:1px solid rgba(239,68,68,0.2);border-radius:var(--radius-sm);font-size:.88rem;color:#dc2626}
[data-theme="dark"] .steam-error{background:rgba(239,68,68,0.06);color:#f87171}
.steam-error-icon{font-size:1rem;flex-shrink:0}
.steam-error-text{flex:1}

/* ===== FRIENDS 通用 ===== */
.f-header{
  padding:78px 24px 32px;text-align:center;
  background:transparent;border-bottom:none;
  background-size:cover;background-position:center;position:relative;
  overflow:visible;
}
.f-header::before{
  content:'';position:absolute;top:-40%;left:50%;
  transform:translateX(-50%);width:520px;height:520px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:0;
}
.f-header-inner{max-width:var(--max-w);margin:0 auto;position:relative;z-index:1}
.f-header .f-title{
  display:inline-block;
  padding:0;
  margin:0 0 12px;
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.4rem);
  font-weight:700;letter-spacing:-.018em;line-height:1.2;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}
.f-header .f-title::after{display:none !important}
.f-header .f-desc{
  display:block;
  padding:0;max-width:520px;
  font-size:.92rem;letter-spacing:0;line-height:1.65;
  color:#fff;opacity:.78;
  text-shadow:0 1px 6px rgba(0,0,0,.3);
  margin:0 auto 6px;
}
.f-header .f-count{
  display:inline-block;margin-top:6px;
  font-size:.78rem;color:var(--text-faint);
  background:var(--bg-card);
  border:1px solid var(--line);
  padding:4px 14px;border-radius:100px;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}

/* ===== FRIENDS（卡片模式） ===== */
.friends-list{max-width:var(--max-w);margin:0 auto;padding:28px 24px 60px;display:flex;flex-direction:column;gap:14px}
.friends-list .pager{flex-shrink:0;margin-top:12px}

/* — 玻璃卡片 — */
.friend-card{
  padding:22px 24px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  transition:all .3s var(--ease);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-sm);
  position:relative;overflow:hidden;
}
.friend-card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--pri-grad);transform:scaleY(0);transform-origin:top;
  transition:transform .35s var(--ease);
}
.friend-card:hover{border-color:var(--pri-soft);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.friend-card:hover::before{transform:scaleY(1)}
.friend-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.friend-header .author-info{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.friend-header .author-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid var(--bg-card);box-shadow:var(--shadow-sm)}
.author-avatar-placeholder{
  width:38px;height:38px;border-radius:50%;
  background:var(--pri-soft);color:var(--pri);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  border:2px solid var(--bg-card);box-shadow:var(--shadow-sm);
  font-family:'Playfair Display',serif;font-weight:600;
}
.friend-header .author-name{font-weight:600;font-size:.9rem;color:var(--text)}
.friend-time{font-size:.74rem;color:var(--text-faint);white-space:nowrap}
.friend-content{display:block;text-decoration:none;margin-bottom:12px;color:inherit}
.friend-title{
  font-family:'Playfair Display',serif;
  font-size:1.1rem;font-weight:600;
  color:var(--text);margin:0 0 6px;line-height:1.3;
  transition:color .2s var(--ease);
}
.friend-content:hover .friend-title{color:var(--pri)}
.friend-desc{
  font-size:.87rem;line-height:1.6;
  color:var(--text-soft);margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.friend-footer{margin-top:0}
.read-more{display:inline-flex;align-items:center;gap:4px;font-size:.84rem;color:var(--pri);text-decoration:none;transition:all .2s var(--ease);font-weight:500}
.read-more:hover{opacity:.8;transform:translateX(3px)}

/* ===== FRIENDS（多列网格模式） ===== */
.f-grid{
  max-width:var(--max-wide);margin:0 auto;
  padding:28px 24px 60px;
  display:grid;
  grid-template-columns:repeat(var(--grid-cols, 3), 1fr);
  gap:16px;
}
.f-grid .pager{
  grid-column:1 / -1;
  margin-top:12px;
}
/* — 玻璃卡片 — */
.f-grid-card{
  padding:20px 22px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  transition:all .3s var(--ease);
  display:flex;flex-direction:column;
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  box-shadow:var(--shadow-sm);
}
.f-grid-card:hover{border-color:var(--pri);box-shadow:var(--shadow-md);transform:translateY(-3px)}
.f-grid-card-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.f-grid-avatar-link{flex-shrink:0;display:block;text-decoration:none}
.f-grid-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;display:block;border:2px solid var(--bg-card)}
.f-grid-avatar-placeholder{
  width:42px;height:42px;border-radius:50%;
  background:var(--pri-soft);color:var(--pri);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  border:2px solid var(--bg-card);
  font-family:'Playfair Display',serif;font-weight:600;
}
.f-grid-author{
  font-size:.9rem;font-weight:600;color:var(--text);text-decoration:none;
  transition:color .2s var(--ease);
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.f-grid-author:hover{color:var(--pri)}
.f-grid-body{flex:1;text-decoration:none;display:block;min-width:0;color:inherit}
.f-grid-title{
  font-size:.96rem;font-weight:600;color:var(--text);margin:0 0 6px;line-height:1.35;
  transition:color .2s var(--ease);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.f-grid-card:hover .f-grid-title{color:var(--pri)}
.f-grid-desc{
  font-size:.84rem;line-height:1.55;color:var(--text-soft);margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.f-grid-bottom{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;padding-top:12px;
  border-top:1px solid var(--line);
}
.f-grid-date{font-size:.76rem;color:var(--text-faint)}
.f-grid-link{color:var(--text-faint);text-decoration:none;transition:color .2s var(--ease);display:flex}
.f-grid-link:hover{color:var(--pri)}

@media(max-width:900px){
  .f-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .f-grid{grid-template-columns:1fr}
  .f-header{padding:80px 16px 40px}
  .links-h{padding:80px 16px 40px}
}

/* ===== CONTENT (自定义页面 - 全新玻璃设计) ===== */
.content-header{
  padding:96px 24px 48px;text-align:center;position:relative;overflow:hidden;
  background:transparent;isolation:isolate;
}
.content-header::before{
  content:'';position:absolute;top:-40%;left:50%;transform:translateX(-50%);
  width:580px;height:580px;background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:-1;
}
.content-header-inner{max-width:var(--max-w);margin:0 auto;position:relative;z-index:1}
.content-header-bg{
  display:none !important;   /* 去掉自定页面顶上的大图标 */
}
.content-header-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.6rem);
  font-weight:700;
  line-height:1.2;letter-spacing:-.018em;
  margin:0 auto 14px;
  display:inline-block;
  padding:0;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}
.content-header-title::after{display:none !important}
.content-header-desc{
  display:block;
  padding:0;margin:14px auto 16px;
  max-width:520px;
  font-size:.92rem;color:#fff;opacity:.78;line-height:1.65;
  text-shadow:0 1px 6px rgba(0,0,0,.3);
}
.content-header-meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;font-size:.82rem;color:var(--text-soft)}
.content-meta-item{display:inline-flex;align-items:center;gap:5px;padding:5px 14px;
  background:var(--bg-card-translucent);border:1px solid var(--line);border-radius:100px;
  backdrop-filter:blur(8px);
}
.content-meta-item svg{flex-shrink:0;color:var(--pri)}

/* 内容卡片 */
.content-body-area{max-width:var(--max-w);margin:0 auto;padding:8px 24px 0}
.content-body-card{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:28px 32px;
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-md);
  transition:border-color .25s var(--ease),transform .25s var(--ease);
}
.content-body-card:hover{border-color:var(--pri-soft);transform:translateY(-1px)}
.content-body-icon{
  display:flex;align-items:center;gap:8px;margin-bottom:16px;
  color:var(--pri);font-weight:600;font-size:.88rem;
}
.content-body-icon::before{
  content:'';width:4px;height:14px;background:var(--pri-grad);border-radius:2px;
}
.content-body-text.tp{font-size:.95rem}
.content-body-text.tp p:last-child{margin-bottom:0}

/* 评论区 */
.content-comments-area{max-width:var(--max-w);margin:0 auto;padding:24px 24px 60px}
.content-comments-card{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:26px 32px;
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-md);
  transition:border-color .25s var(--ease);
}
.content-comments-card:hover{border-color:var(--pri-soft)}
.content-comments-header{
  display:flex;align-items:center;gap:8px;margin-bottom:20px;
  font-weight:600;font-size:1rem;color:var(--text);
}
.content-comments-header svg{color:var(--pri);flex-shrink:0}

@media(max-width:640px){
  .content-body-card,.content-comments-card{padding:18px 16px}
  .content-header{padding:80px 20px 36px}
}

/* ===== FOOTER BADGE ICONS ===== */
.ft-badge-icon{display:inline;height:1em;width:auto;vertical-align:text-bottom;margin-right:2px}

/* ===== PAGINATION MODULE ===== */
.pager{margin-top:40px}

/* ===== CUSTOM PAGE (card-based redesign) ===== */
.page-card-wrap{
  padding:24px 24px 60px;
}
.page-card-inner{max-width:var(--max-w);margin:0 auto;display:flex;flex-direction:column;gap:20px}

/* 页首装饰区 */
.page-card-head{
  text-align:center;position:relative;overflow:hidden;isolation:isolate;
  padding:68px 32px 42px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-md);
}
.page-card-head::before{
  content:'';position:absolute;top:-50%;left:50%;transform:translateX(-50%);
  width:520px;height:520px;background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:-1;
}
.page-card-head-icon{
  display:none !important;   /* 去掉自定义页面顶上的大图标 "遮挡" */
}
.page-card-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.5rem,3.2vw,2.4rem);font-weight:700;
  line-height:1.2;letter-spacing:-.018em;
  margin:0 auto 14px;
  display:inline-block;
  padding:0;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}
.page-card-title::after{display:none !important}
.page-card-desc{
  display:block;
  padding:0;margin:14px auto 12px;
  max-width:520px;
  font-size:.92rem;
  color:#fff;opacity:.78;
  line-height:1.65;
  text-shadow:0 1px 6px rgba(0,0,0,.3);
}
.page-card-meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;font-size:.82rem;color:var(--text-soft)}
.page-card-meta-item{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;
  background:var(--bg-card-translucent);border:1px solid var(--line);border-radius:100px;
  backdrop-filter:blur(8px);
}
.page-card-meta-item svg{color:var(--pri)}

/* 内容卡片 */
.page-card-body{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:32px 36px;
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-md);
  transition:border-color .25s var(--ease);
}
.page-card-body:hover{border-color:var(--pri-soft)}

/* 评论区 */
.page-card-comments{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:26px 32px;
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-md);
  transition:border-color .25s var(--ease);
}
.page-card-comments:hover{border-color:var(--pri-soft)}
.page-card-comments-hd{
  display:flex;align-items:center;gap:8px;margin-bottom:20px;
  font-weight:600;font-size:1rem;color:var(--text);
}
.page-card-comments-hd svg{color:var(--pri);flex-shrink:0}
.page-card-cover{width:100%;max-height:340px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:24px;display:block;box-shadow:var(--shadow-md)}

@media(max-width:640px){
  .page-card-wrap{padding:16px 16px 48px}
  .page-card-head{padding:48px 20px 30px}
  .page-card-body{padding:20px}
  .page-card-comments{padding:18px 16px}
}

/* ====================================================
   APPLY LINKS PAGE (apply-links.html)
   —— 申请友链独立页面：邮件 + 在线表单，两种方式都用 mailto 真发
   ==================================================== */
.apply-hero{
  position:relative;
  padding:96px 24px 36px;
  text-align:center;
  background:transparent;
  isolation:isolate;overflow:hidden;
}
.apply-hero::before{
  content:'';position:absolute;top:-40%;left:50%;transform:translateX(-50%);
  width:580px;height:580px;background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:-1;
}
.apply-hero-inner{position:relative;z-index:1;max-width:640px;margin:0 auto}
.apply-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:700;
  letter-spacing:-.018em;line-height:1.2;
  margin:0 0 12px;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}
.apply-title::after{display:none !important}
.apply-desc{
  display:block;max-width:520px;margin:0 auto;
  font-size:.92rem;line-height:1.65;
  color:#fff;opacity:.78;
  text-shadow:0 1px 6px rgba(0,0,0,.3);
}

.apply-container{
  max-width:760px;margin:0 auto 80px;
  padding:0 24px;
  display:flex;flex-direction:column;gap:20px;
}

/* —— 主卡片（两个 tab 共用）—— */
.apply-tabs{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  overflow:hidden;
  position:relative;
}
.apply-tab{
  flex:1;padding:14px 16px;
  background:none;border:none;border-bottom:2px solid transparent;
  font-family:inherit;font-size:.88rem;font-weight:500;
  color:var(--text-soft);
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  gap:8px;transition:all .25s var(--ease);
  position:relative;bottom:-1px;
}
.apply-tab:hover{color:var(--text);background:var(--pri-soft)}
.apply-tab.active{color:var(--pri);border-bottom-color:var(--pri)}
.apply-tab svg{flex-shrink:0;transition:transform .25s var(--ease)}
.apply-tab.active svg{transform:scale(1.08)}

.apply-tab-body{padding:26px 28px}
.apply-pane{display:none;animation:fade-in .35s var(--ease)}
.apply-pane.active{display:block}
@keyframes fade-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* —— 简介文字 —— */
.apply-intro{
  margin:0 0 20px;
  padding:14px 18px;
  background:var(--pri-soft);
  border:1px solid var(--pri-soft);
  border-left:3px solid var(--pri);
  border-radius:var(--radius-sm);
  font-size:.9rem;line-height:1.7;color:var(--text);
}
.apply-intro b{color:var(--pri);font-weight:600}

/* —— 邮件 tab 的核心按钮 —— */
.apply-mailto-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 24px;
  background:linear-gradient(135deg,var(--pri) 0%,#c89564 100%);
  color:#fff;
  border-radius:var(--radius-sm);
  font-size:.92rem;font-weight:600;
  text-decoration:none;
  box-shadow:0 4px 16px rgba(212,165,116,.32);
  transition:all .25s var(--ease);
  margin-bottom:18px;
}
.apply-mailto-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(212,165,116,.42);
}
.apply-mailto-btn:active{transform:translateY(0)}

/* —— 收件邮箱行 —— */
.apply-email-row{
  display:flex;align-items:center;gap:10px;
  padding:11px 14px;
  margin-bottom:20px;
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
}
.apply-email-label{
  flex-shrink:0;width:64px;font-size:.78rem;color:var(--text-soft);font-weight:500;
}
.apply-email-code{
  flex:1;min-width:0;
  font-family:'JetBrains Mono',monospace;font-size:.86rem;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.apply-copy-btn,
.my-info-copy{
  flex-shrink:0;width:30px;height:30px;border-radius:7px;
  background:var(--bg-card);
  border:1px solid var(--line);color:var(--text-soft);
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .2s var(--ease);
  text-decoration:none;
}
.apply-copy-btn:hover,
.my-info-copy:hover{background:var(--pri-soft);color:var(--pri);border-color:var(--pri-soft)}
.apply-copy-btn.copied,
.my-info-copy.copied{background:rgba(52,199,89,.15);color:var(--success);border-color:rgba(52,199,89,.3)}

/* —— 模板区块 —— */
.apply-template-wrap{position:relative;margin-top:8px}
.apply-template-hint{
  display:flex;align-items:center;gap:6px;
  font-size:.8rem;color:var(--text-soft);margin:0 0 8px;
}
.apply-template-hint svg{color:var(--pri)}
.apply-template{
  margin:0;
  padding:16px 18px;
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font-family:'JetBrains Mono',monospace;
  font-size:.78rem;line-height:1.7;color:var(--text-soft);
  white-space:pre-wrap;word-break:break-word;
}
.apply-template-copy{
  position:absolute;top:0;right:0;
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 12px;
  background:var(--bg-card);color:var(--text-soft);
  border:1px solid var(--line);border-radius:7px;
  font-size:.76rem;cursor:pointer;transition:all .2s var(--ease);
  font-family:inherit;
}
.apply-template-copy:hover{background:var(--pri-soft);color:var(--pri);border-color:var(--pri-soft)}
.apply-template-copy.copied{background:rgba(52,199,89,.15);color:var(--success);border-color:rgba(52,199,89,.3)}

/* —— 表单 —— */
.apply-form{display:flex;flex-direction:column;gap:14px}
.apply-row{display:flex;flex-direction:column;gap:6px}
.apply-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.apply-row label{
  font-size:.82rem;color:var(--text-soft);font-weight:500;
}
.apply-row label .req{color:#ef4444;font-size:.7rem;margin-left:2px}
.apply-row input,
.apply-row textarea{
  width:100%;padding:11px 14px;
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  color:var(--text);
  font:inherit;font-size:.9rem;
  transition:all .25s var(--ease);
}
.apply-row textarea{min-height:88px;resize:vertical;line-height:1.55}
.apply-row input:focus,
.apply-row textarea:focus{
  outline:none;border-color:var(--pri);
  background:var(--bg-card);
  box-shadow:0 0 0 3px var(--pri-soft);
}
.apply-row input::placeholder,
.apply-row textarea::placeholder{color:var(--text-faint)}
.apply-hint{font-size:.76rem;color:var(--text-faint)}

.apply-actions{
  display:flex;gap:10px;align-items:center;margin-top:6px;
}
.apply-btn-primary{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 24px;
  background:linear-gradient(135deg,var(--pri) 0%,#c89564 100%);
  color:#fff;border:none;border-radius:var(--radius-sm);
  font:inherit;font-size:.92rem;font-weight:600;
  cursor:pointer;
  box-shadow:0 4px 16px rgba(212,165,116,.32);
  transition:all .25s var(--ease);
}
.apply-btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 22px rgba(212,165,116,.42);
}
.apply-btn-primary:active{transform:translateY(0)}
.apply-btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.apply-btn-ghost{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 18px;
  background:var(--bg-alt);color:var(--text);
  border:1px solid var(--line);border-radius:var(--radius-sm);
  font:inherit;font-size:.9rem;
  cursor:pointer;transition:all .2s var(--ease);
  text-decoration:none;
}
.apply-btn-ghost:hover{background:var(--pri-soft);color:var(--pri);border-color:var(--pri-soft)}

/* —— 成功状态 —— */
.apply-success{
  text-align:center;padding:24px 12px;
  animation:fade-in .4s var(--ease);
}
.apply-success-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:64px;height:64px;border-radius:50%;
  background:rgba(34,197,94,.15);color:var(--success);
  margin-bottom:16px;
}
.apply-success h3{
  font-family:'Playfair Display',serif;
  font-size:1.3rem;font-weight:700;color:var(--text);
  margin:0 0 8px;
}
.apply-success p{
  font-size:.92rem;color:var(--text-soft);
  max-width:420px;margin:0 auto 20px;line-height:1.65;
}
.apply-success p b{color:var(--pri);font-weight:600}
.apply-success-actions{
  display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
}

/* —— 插件特性列表 —— */
.apply-plugin-features{
  list-style:none;padding:0;margin:20px 0 0;
  display:flex;flex-direction:column;gap:8px;
}
.apply-plugin-features li{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font-size:.86rem;color:var(--text-soft);
}
.apply-plugin-features li svg{
  flex-shrink:0;color:var(--success);
}
.apply-hint-block{display:block;margin:16px 0 0}

/* —— 在线提交 tab 内的"修改友链"次要链接 —— */
.apply-update-link{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:16px;
  padding:6px 12px;
  background:transparent;
  border:1px dashed var(--line);
  border-radius:var(--radius-sm);
  font:inherit;font-size:.78rem;color:var(--text-soft);
  cursor:pointer;
  transition:all .2s var(--ease);
  text-decoration:none;
}
.apply-update-link:hover{
  color:var(--pri);
  border-color:var(--pri);
  background:var(--pri-soft);
}
.apply-update-link svg{transition:transform .25s var(--ease)}
.apply-update-link:hover svg{transform:rotate(-12deg) scale(1.1)}

/* —— 我的信息卡片（底部辅助卡）—— */
.my-info-card{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:22px 26px;
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  box-shadow:var(--shadow-sm);
}
.my-info-card h3{
  font-family:'Playfair Display',serif;
  font-size:1.1rem;font-weight:600;color:var(--text);
  margin:0 0 6px;
  display:flex;align-items:center;gap:8px;
}
.my-info-card h3::before{
  content:'';width:4px;height:14px;
  background:var(--pri-grad);border-radius:2px;
  display:inline-block;
}
.my-info-card p{
  font-size:.86rem;color:var(--text-soft);
  margin:0 0 16px;line-height:1.55;
}
.my-info-fields{display:flex;flex-direction:column;gap:8px}
.my-info-row{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
}
.my-info-label{
  flex-shrink:0;width:64px;
  font-size:.76rem;color:var(--text-soft);font-weight:500;
}
.my-info-code{
  flex:1;min-width:0;
  font-family:'JetBrains Mono',monospace;font-size:.84rem;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* —— Toast —— */
.apply-toast{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 20px;border-radius:100px;
  background:var(--bg-card);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  font-size:.88rem;color:var(--text);
  margin-bottom:8px;
  pointer-events:auto;
  animation:toast-in .35s cubic-bezier(.34,1.56,.64,1);
}
.apply-toast-success{color:var(--success);border-color:rgba(34,197,89,.32)}
.apply-toast-warning{color:var(--warn);border-color:rgba(255,149,0,.32)}
.apply-toast-error{color:#ef4444;border-color:rgba(239,68,68,.32)}
@keyframes toast-in{
  from{opacity:0;transform:translateY(-12px)}
  to  {opacity:1;transform:translateY(0)}
}
.apply-toast.fade-out{animation:toast-out .3s ease forwards}
@keyframes toast-out{to{opacity:0;transform:translateY(-12px)}}

/* —— 响应式 —— */
@media(max-width:640px){
  .apply-tab-body{padding:20px 16px}
  .apply-row-2{grid-template-columns:1fr}
  .apply-hero{padding:80px 20px 28px}
  .apply-actions{flex-direction:column;align-items:stretch}
  .apply-btn-primary,.apply-btn-ghost{justify-content:center}
  .apply-email-label,.my-info-label{width:54px}
  .apply-container{padding:0 16px 60px}
}

/* ===== LINK SUBMIT / UPDATE MODAL ===== */
.link-submit-modal{
  position:fixed;top:0;left:0;width:100%;height:100%;
  z-index:9999;display:none;align-items:center;justify-content:center;
}
.link-submit-modal.open{display:flex}
.ls-btn:disabled{opacity:.6;cursor:not-allowed}
.link-submit-overlay{
  position:absolute;top:0;left:0;width:100%;height:100%;
  background:rgba(0,0,0,.45);backdrop-filter:blur(4px);
}
.link-submit-content{
  position:relative;width:92%;max-width:540px;max-height:85vh;
  overflow-y:auto;background:var(--bg-card);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:0;animation:modalIn .25s ease;
}
@keyframes modalIn{
  from{opacity:0;transform:scale(.95) translateY(12px)}
  to{opacity:1;transform:scale(1) translateY(0)}
}
.link-submit-header{
  display:flex;align-items:flex-start;justify-content:space-between;
  padding:20px 24px;border-bottom:1px solid var(--line);
}
.header-info{display:flex;align-items:flex-start;gap:12px}
.header-icon{
  display:flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:10px;
  background:var(--pri-soft);color:var(--pri);flex-shrink:0;
}
.header-info h3{margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}
.header-desc{margin:3px 0 0;font-size:.82rem;color:var(--text-soft)}
.link-submit-close{
  display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border:none;border-radius:8px;
  background:transparent;color:var(--text-soft);cursor:pointer;
  transition:all .2s;flex-shrink:0;
}
.link-submit-close:hover{background:var(--bg-alt);color:var(--text)}
.submit-message{
  padding:12px 24px;font-size:.85rem;font-weight:500;
}
.submit-message.success{background:#dcfce7;color:#166534;border-bottom:1px solid #bbf7d0}
.submit-message.error{background:#fef2f2;color:#991b1b;border-bottom:1px solid #fecaca}
.link-submit-form{padding:20px 24px}
.form-section{margin-bottom:20px}
.form-section:last-child{margin-bottom:0}
.section-title{
  display:flex;align-items:center;gap:8px;font-size:.88rem;
  font-weight:600;color:var(--text);margin-bottom:14px;
}
.section-title svg{color:var(--pri);flex-shrink:0}
.form-group{margin-bottom:14px;flex:1}
.form-group:last-child{margin-bottom:0}
.form-group label{
  display:block;font-size:.8rem;font-weight:500;color:var(--text);
  margin-bottom:5px;
}
.required{color:#ef4444;margin-left:1px}
.form-group input,.form-group textarea,.form-group select{
  width:100%;box-sizing:border-box;padding:9px 12px;font-size:.85rem;
  background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius-sm);
  color:var(--text);outline:none;transition:border-color .2s;
  font-family:inherit;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
  border-color:var(--pri);box-shadow:0 0 0 2px var(--pri-soft);
}
.form-group textarea{resize:vertical;min-height:60px}
.form-hint{font-size:.75rem;color:var(--text-faint);margin:4px 0 0}
.form-row{display:flex;gap:12px}
.form-row .form-group{flex:1}
.input-with-btn{display:flex;gap:8px}
.input-with-btn input{flex:1}
.ls-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 16px;border:none;border-radius:var(--radius-sm);
  font-size:.82rem;font-weight:500;font-family:inherit;
  cursor:pointer;transition:all .2s;white-space:nowrap;
  background:var(--bg-alt);color:var(--text);border:1px solid var(--line);
}
.ls-btn:hover{background:var(--bg-glass);border-color:var(--pri-soft);color:var(--text)}
.ls-btn.primary{
  background:var(--pri);color:#fff;border-color:var(--pri);
}
.ls-btn.primary:hover{filter:brightness(1.1)}
.ls-btn.fetch-btn{
  background:var(--pri-soft);color:var(--pri);border-color:transparent;
}
.ls-btn.fetch-btn:hover{filter:brightness(.95)}
.ls-btn:disabled{opacity:.5;cursor:not-allowed}
.form-actions{
  display:flex;justify-content:flex-end;gap:10px;
  padding:16px 24px;border-top:1px solid var(--line);
}
.collapsible .section-content{overflow:hidden;max-height:300px;transition:max-height .3s ease,opacity .25s;opacity:1}
.collapsible .section-content{overflow:hidden}
.collapsible.collapsed .section-content{max-height:0;opacity:0;margin:0}
.section-title .caret{transition:transform .25s;margin-left:auto}
.collapsible.collapsed .caret{transform:rotate(180deg)}
.link-submit-actions{
  display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;align-items:center;
}
.link-submit-actions .ls-btn{width:auto !important}
.link-submit-tip{
  display:flex;align-items:center;gap:6px;
  margin:14px 0 0;
  padding:8px 14px;
  background:rgba(34,197,94,.08);
  border:1px solid rgba(34,197,94,.22);
  border-radius:var(--radius-sm);
  font-size:.78rem;color:var(--success);
}
.link-submit-tip svg{flex-shrink:0}
[data-theme="dark"] .link-submit-tip{
  background:rgba(34,197,94,.06);
  border-color:rgba(34,197,94,.18);
}
.link-submit-unavailable{
  display:flex;align-items:center;justify-content:center;
  padding:16px 20px;background:var(--bg-alt);border-radius:var(--radius-md);
  color:var(--text-soft);font-size:.85rem;text-align:center;
  border:1px dashed var(--line);width:100%;
}
.captcha-row{display:flex;gap:10px;align-items:stretch}
.captcha-row input{flex:1}
.captcha-img{
  height:38px;border-radius:var(--radius-sm);cursor:pointer;
  border:1px solid var(--line);background:var(--bg-alt);
}
@media(max-width:640px){
  .link-submit-content{max-width:100%;border-radius:var(--radius-md)}
  .link-submit-header,.link-submit-form,.form-actions{padding-left:16px;padding-right:16px}
  .form-row{flex-direction:column;gap:0}
  .input-with-btn{flex-direction:row}
}

/* ====================================================
   ABOUT PAGE (page_about.html)
   — 档案式布局：浅薄 Hero + 玻璃卡片网格
   风格复用 .page-card-* 的 glassmorphism 卡片
   ==================================================== */

/* Hero：尺寸收紧，背景透明，仅保留点光晕 */
.about-hero{
  position:relative;
  padding:78px 24px 28px;
  text-align:center;
  overflow:hidden;
  background:transparent;
}
.about-hero::before{
  content:'';position:absolute;top:-40%;left:50%;
  transform:translateX(-50%);width:520px;height:520px;
  background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;
}
.about-hero-inner{position:relative;z-index:1;max-width:var(--max-w);margin:0 auto}

.about-avatar-ring{
  width:88px;height:88px;
  margin:0 auto 14px;
  padding:4px;
  background:linear-gradient(135deg,var(--pri) 0%,var(--pri-soft) 100%);
  border-radius:50%;
  box-shadow:var(--shadow-md);
}
.about-avatar{
  width:100%;height:100%;border-radius:50%;
  object-fit:cover;display:block;
  background:var(--bg-card);
  border:3px solid var(--bg);
}
.about-avatar-fallback{
  width:100%;height:100%;border-radius:50%;
  background:var(--bg-card);border:3px solid var(--bg);
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-size:2rem;
  color:var(--pri);
}
.about-hero-name{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.4rem);
  font-weight:700;letter-spacing:-.018em;line-height:1.2;
  margin-bottom:14px;
  display:inline-block;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}
.about-hero-name::after{display:none !important}
.about-hero-sub{
  font-size:.92rem;color:var(--text-soft);
  margin:0 auto 18px;max-width:520px;line-height:1.65;
}

.about-socials{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px;
}
.about-social{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 14px;
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:100px;
  font-size:.8rem;color:var(--text-soft);
  transition:all .25s;
}
.about-social:hover{
  border-color:var(--pri);color:var(--pri);background:var(--pri-soft);
  transform:translateY(-1px);
}
.about-social-dot{
  width:6px;height:6px;border-radius:50%;background:var(--pri);
  display:inline-block;
}

/* — Stats — 跟 page-card-* 同色玻璃卡片 */
.about-wrap{padding-top:0}
.about-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:12px;
  margin:-32px auto 24px;
  max-width:var(--max-w);
  padding:0 24px;
  position:relative;z-index:2;
}
.about-stat{
  text-align:center;padding:20px 14px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-md);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  transition:all .3s var(--ease);
}
.about-stat:hover{transform:translateY(-3px);border-color:var(--pri);box-shadow:var(--shadow-lg),var(--shadow-glow)}
.about-stat-num{
  font-family:'Playfair Display',serif;
  font-size:1.6rem;font-weight:600;
  background:var(--pri-grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  line-height:1;display:block;margin-bottom:6px;
  font-variant-numeric:tabular-nums;
}
.about-stat-label{font-size:.75rem;color:var(--text-soft);letter-spacing:.04em}

/* — Section heading within about cards — */
.about-body-hd{
  display:flex;align-items:center;gap:10px;
  margin-bottom:18px;padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.about-body-hd svg{color:var(--pri);flex-shrink:0}
.about-body-hd h2{
  font-family:'Playfair Display',serif;
  font-size:1.15rem;font-weight:600;
  margin:0;color:var(--text);
}

.about-content{font-size:.94rem;color:var(--text-soft);line-height:1.85}
.about-content p:first-child{margin-top:0}
.about-content a{color:var(--pri)}

.about-contact-desc{
  font-size:.88rem;color:var(--text-soft);
  line-height:1.7;margin:0 0 18px;
}
.about-contact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:10px;
}
.about-contact-item{
  display:flex;align-items:center;gap:12px;
  padding:13px 15px;
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  transition:all .3s var(--ease);
  color:var(--text);text-decoration:none;
}
.about-contact-item:hover{
  border-color:var(--pri);background:var(--pri-soft);
  transform:translateX(3px);box-shadow:var(--shadow-sm);
}
.about-contact-item:hover .about-contact-icon{
  background:var(--pri);color:#fff;transform:scale(1.08);
}
.about-contact-icon{
  flex-shrink:0;
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  border-radius:12px;background:var(--pri-soft);
  color:var(--pri);
  transition:all .3s var(--ease);
}
.about-contact-text{display:flex;flex-direction:column;min-width:0}
.about-contact-label{font-size:.86rem;font-weight:600;color:var(--text);line-height:1.3}
.about-contact-value{
  font-size:.76rem;color:var(--text-faint);
  font-family:'JetBrains Mono',monospace;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color .25s var(--ease);
}
.about-contact-item:hover .about-contact-value{color:var(--pri)}

/* — page-card-* 在 about 页内被复用到玻璃卡片 */
.about-wrap .page-card-body{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
}
.about-wrap .page-card-body:hover{border-color:var(--pri-soft)}
.about-wrap .page-card-comments{
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
}
.about-wrap .page-card-comments:hover{border-color:var(--pri-soft)}
.about-wrap .page-card-comments-hd{border-bottom:1px solid var(--line);color:var(--text)}

/* 内嵌 .tp 内容文字色保持可读 */
.about-wrap .post-body.tp,
.about-wrap .tb{color:var(--text);font-size:.94rem;line-height:1.85}
.about-wrap .tp a{color:var(--pri)}
.about-wrap .tp blockquote{
  background:linear-gradient(90deg,var(--pri-soft) 0%,transparent 100%);
  color:var(--text-soft);border-left-color:var(--pri);
}
.about-wrap .tp pre,.about-wrap .tp code{background:var(--bg-alt);color:var(--text)}
.about-wrap .tp hr{background:var(--line)}
.about-wrap .tp table{border-color:var(--line)}
.about-wrap .tp th{background:var(--bg-alt);color:var(--text)}
.about-wrap .tp td{border-color:var(--line);color:var(--text-soft)}

@media(max-width:640px){
  .about-hero{padding:64px 16px 22px}
  .about-avatar-ring{width:72px;height:72px;margin-bottom:10px}
  .about-stat{padding:14px 10px}
  .about-stat-num{font-size:1.3rem}
  .about-contact-grid{grid-template-columns:1fr}
}

/* ====================================================
   GUESTBOOK / MESSAGE BOARD (page_guestbook.html)
   — 浅薄气泡 Hero + 玻璃卡片矩阵
   ==================================================== */
.gb-hero{
  position:relative;
  padding:90px 24px 32px;
  text-align:center;
  overflow:hidden;
  background:transparent;isolation:isolate;
}
.gb-hero::before{
  content:'';position:absolute;top:-40%;left:50%;transform:translateX(-50%);
  width:580px;height:580px;background:radial-gradient(circle,var(--pri-soft) 0%,transparent 65%);
  pointer-events:none;z-index:-1;
}
.gb-hero-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.gb-bubble{
  position:absolute;
  width:22px;height:22px;
  border-radius:50%;
  background:var(--pri-soft);
  border:1.5px solid var(--pri-soft);
  opacity:.55;
}
.gb-bubble-1{top:18%;left:14%;width:16px;height:16px;animation:gb-float 7s var(--ease) infinite}
.gb-bubble-2{top:32%;right:18%;width:26px;height:26px;animation:gb-float 9s var(--ease) infinite reverse;opacity:.45}
.gb-bubble-3{bottom:18%;left:42%;width:12px;height:12px;animation:gb-float 6s var(--ease) infinite}
.gb-bubble-4{top:60%;left:8%;width:14px;height:14px;animation:gb-float 8s var(--ease) infinite;opacity:.4}
.gb-bubble-5{bottom:30%;right:8%;width:18px;height:18px;animation:gb-float 10s var(--ease) infinite reverse;opacity:.5}
@keyframes gb-float{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-14px) scale(1.05)}
}
.gb-hero-inner{
  position:relative;z-index:1;
  max-width:var(--max-w);margin:0 auto;
  animation:fade-up .7s var(--ease-out) both;
}
/* 去掉留言板标题前那块大图标"遮挡" */
.gb-hero-icon{display:none !important}
.gb-hero-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3.5vw,2.4rem);
  font-weight:700;letter-spacing:-.018em;line-height:1.2;
  margin:0 auto 14px;display:inline-block;
  padding:0;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.32);
}
.gb-hero-title::after{display:none !important}
.gb-hero-desc{
  display:block;
  padding:0;margin:14px auto 20px;
  max-width:520px;
  font-size:.92rem;color:#fff;opacity:.78;line-height:1.65;
  text-shadow:0 1px 6px rgba(0,0,0,.3);
}
.gb-hero-counters{
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;
  justify-content:center;
}
.gb-counter{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 16px;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:100px;
  font-size:.84rem;color:var(--text-soft);
  backdrop-filter:blur(8px);
  transition:all .25s var(--ease);
}
.gb-counter:hover{border-color:var(--pri);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.gb-counter svg{color:var(--pri)}
.gb-counter span{
  font-family:'Playfair Display',serif;
  font-weight:600;color:var(--text);
  font-variant-numeric:tabular-nums;
}
.gb-counter em{font-style:normal;color:var(--text-faint);font-size:.78rem}

/* 主体容器 */
.gb-wrap{padding:28px 24px 56px}
.gb-inner{max-width:var(--max-w);margin:0 auto;display:flex;flex-direction:column;gap:16px}

/* — 通用玻璃卡片 — */
.gb-card{
  position:relative;
  background:var(--bg-card-translucent);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:24px 28px;
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  box-shadow:var(--shadow-sm);
  transition:all .3s var(--ease);
}
.gb-card:hover{border-color:var(--pri-soft);box-shadow:var(--shadow-md)}
.gb-card-hd{
  display:flex;align-items:center;gap:10px;margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
.gb-card-hd svg{color:var(--pri);flex-shrink:0}
.gb-card-hd h2{
  font-family:'Playfair Display',serif;
  font-size:1.15rem;font-weight:600;
  margin:0;color:var(--text);
}
.gb-card-tag{
  display:inline-flex;align-items:center;
  padding:4px 14px;border-radius:100px;
  background:var(--pri-grad);color:#fff;
  font-size:.76rem;font-weight:600;
  letter-spacing:.04em;
  box-shadow:var(--shadow-sm);
}
.gb-card-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:10px;
  background:var(--pri-soft);color:var(--pri);
  flex-shrink:0;
  border:1px solid transparent;
}

/* 站长寄语 */
.gb-card-master .gb-card-body{
  font-size:.95rem;line-height:1.85;
  color:var(--text);
}
.gb-card-master .post-body.tp{color:var(--text);font-size:.95rem;line-height:1.85}
.gb-card-master .post-body.tp a{color:var(--pri)}
.gb-card-master .post-body.tp blockquote{
  background:linear-gradient(90deg,var(--pri-soft) 0%,transparent 100%);
  color:var(--text-soft);border-left-color:var(--pri);
}
.gb-card-master .post-body.tp pre,.gb-card-master .post-body.tp code{background:var(--bg-alt);color:var(--text)}
.gb-card-master .post-body.tp p{margin:0 0 1em}
.gb-card-master .post-body.tp p:last-child{margin-bottom:0}

.gb-card-meta{
  display:flex;align-items:center;flex-wrap:wrap;
  gap:4px;
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid var(--line);
  font-size:.84rem;color:var(--text-soft);
}
.gb-card-meta-dot{
  width:6px;height:6px;border-radius:50%;background:var(--pri);
  margin-right:8px;
}
.gb-card-meta-sep{margin:0 6px;color:var(--line-strong)}

/* 留言公约 — 玻璃卡上的更深一档衬底 */
.gb-rules{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
  margin:0;padding:0;list-style:none;
}
.gb-rules li{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font-size:.87rem;color:var(--text);line-height:1.55;
  transition:all .25s var(--ease);
}
.gb-rules li:hover{background:var(--pri-soft);border-color:var(--pri);transform:translateX(3px)}
.gb-rule-no{
  flex-shrink:0;
  font-family:'Playfair Display',serif;
  font-size:.9rem;font-weight:700;
  background:var(--pri-grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  letter-spacing:.04em;
}
@media(max-width:640px){
  .gb-rules{grid-template-columns:1fr}
}

/* 留言面板 */
.gb-card-comments-hd{color:var(--text)}
.gb-card-comments-hd h2{font-size:1.15rem}
.gb-comment-tips{
  display:flex;align-items:center;gap:8px;
  padding:11px 16px;
  margin-bottom:16px;
  background:var(--pri-soft);
  border:1px solid var(--pri-soft);
  border-radius:var(--radius-sm);
  font-size:.84rem;color:var(--text);
  line-height:1.6;
}
.gb-comment-tips svg{color:var(--pri);flex-shrink:0}
.gb-comment-tips p{margin:0}

/* 不便留言？ */
.gb-shortcut-text{
  font-size:.94rem;color:var(--text);line-height:1.75;
  margin:0;
}

@media(max-width:640px){
  .gb-hero{padding:64px 16px 24px}
  .gb-card{padding:18px 16px}
  .gb-bubble{display:none}
  .gb-wrap{padding:24px 16px 40px}
}
