  * { box-sizing: border-box; margin: 0; padding: 0; }
  :root {
    --ink:#1a1a1a; --sub:#8a8a88; --faint:#b5b5b3; --line:#f0f0ef; --pics-w: 480px;
    --bg-page:#eeeeee; --bg-card:#ffffff; --bg-soft:#fbfbfa; --bg-soft2:#f7f7f6; --bg-soft3:#f5f5f4;
    --border-strong:#dcdcdc; --border-card:#e3e3e1;
    --shadow-hover: rgba(0,0,0,.07);
  }
  /* 夜间模式:整体翻转(黑白灰体系),带全局过渡 */
  [data-theme="dark"] {
    --ink:#e2e2e0; --sub:#9a9a98; --faint:#6a6a68; --line:#2a2a29;
    --bg-page:#141413; --bg-card:#1e1e1d; --bg-soft:#242423; --bg-soft2:#202020; --bg-soft3:#262625;
    --border-strong:#3a3a39; --border-card:#333331;
    --shadow-hover: rgba(0,0,0,.4);
  }
  /* 夜间模式细节:横滚条、浮层描边、文章覆盖层 */
  [data-theme="dark"] body { background: var(--bg-page); }
  [data-theme="dark"] .pin-grid { scrollbar-color: #3a3a39 transparent; }
  [data-theme="dark"] .backtop { background: var(--bg-card); border-color: var(--border-strong); }
  [data-theme="dark"] .backtop:hover { background: var(--ink); color: #141413; border-color: var(--ink); }
  [data-theme="dark"] .backtop svg path { stroke: var(--ink); }
  [data-theme="dark"] .backtop:hover svg path { stroke: #141413; }
  [data-theme="dark"] .hbtn:hover { border-color: var(--ink); }
  [data-theme="dark"] #articleView { background: var(--bg-page); }
  [data-theme="dark"] #articleView .av-scroll { background: var(--bg-card); }
  [data-theme="dark"] .mini-music { border-color: var(--border-strong); }
  [data-theme="dark"] .mini-music .icon { color: #e2e2e0; }
  [data-theme="dark"] .act-btn { background: var(--bg-soft2); color: var(--sub); }
  [data-theme="dark"] .act-btn:hover { background: var(--bg-soft); color: var(--ink); }
  [data-theme="dark"] .act-panel { background: var(--border-strong); }
  [data-theme="dark"] .like-bar .lk-name { color: #8fa8d0; }
  [data-theme="dark"] .search-pop { background: rgba(30,30,29,.96); }
  [data-theme="dark"] .search-pop .sinput { background: var(--bg-soft2); color: var(--ink); border-color: var(--border-strong); }
  [data-theme="dark"] .banner .cover::after { background: linear-gradient(to top, rgba(0,0,0,.5), rgba(0,0,0,0) 55%); }
  [data-theme="dark"] .music-shell .aplayer { background: transparent; }
  [data-theme="dark"] .aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-title { color: var(--ink); }
  [data-theme="dark"] .aplayer .aplayer-bar { background: var(--bg-soft2) !important; }
  [data-theme="dark"] .aplayer .aplayer-bar .aplayer-played { background: var(--ink) !important; }
  [data-theme="dark"] .aplayer .aplayer-played { background: var(--ink) !important; }
  [data-theme="dark"] .aplayer .aplayer-thumb { background: var(--ink) !important; border-color: var(--bg-card) !important; }
  [data-theme="dark"] .aplayer .aplayer-author { color: var(--sub) !important; }
  [data-theme="dark"] .aplayer .aplayer-icon path { fill: var(--sub); }
  [data-theme="dark"] .aplayer .aplayer-lrc p { color: var(--sub) !important; }
  [data-theme="dark"] .aplayer .aplayer-lrc p.aplayer-lrc-current { color: var(--ink) !important; }
  [data-theme="dark"] .linkcard .t, [data-theme="dark"] .linkcard .d { color: var(--ink); }
  [data-theme="dark"] .entry .foot { color: var(--sub); }
  [data-theme="dark"] .footer, [data-theme="dark"] .footer a { color: var(--sub); }
  [data-theme="dark"] .aplayer .aplayer-play, [data-theme="dark"] .aplayer .aplayer-pause { background: var(--bg-soft2); border-color: var(--border-strong); }
  [data-theme="dark"] .pcard { background: var(--bg-card); border-color: var(--border-card); }
  [data-theme="dark"] .pcard .p-article { background: var(--bg-soft); border-left-color: var(--ink); }
  [data-theme="dark"] .pin-title { color: var(--ink); }
  [data-theme="dark"] .entry .text { color: var(--ink); }
  [data-theme="dark"] .footer { border-top-color: var(--line); }
  /* 主题切换全局平滑过渡(0.35s),布局属性除外 */
  body, .page, .pcard, .pinned-entry, .linkcard, .music-shell, .backtop, .search-pop, .tags-pop,
  .banner .cover, .pin-badge, .aplayer, .p-article, .p-music, .like-bar, .act-btn, .footer, .month, .entry {
    transition: background-color .35s ease, color .35s ease, border-color .35s ease;
  }
  html { -webkit-text-size-adjust: 100%; }
  body {
    font-family: "TsangerJinKai02", -apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", "Microsoft YaHei", sans-serif;
    -webkit-font-smoothing: antialiased;
    color: var(--ink); background: var(--bg-page); line-height: 1.6;
  }
  .mono { font-family: ui-monospace, "SF Mono", "JetBrains Mono", Consolas, monospace; }
  .page { max-width: 760px; margin: 0 auto; background: var(--bg-card); min-height: 100vh; position: relative; }
  /* ===== 头部 ===== */
  .banner { position: relative; }
  .banner .cover { height: clamp(200px, 38vw, 300px); position: relative; overflow: hidden; background:#222; }
  .banner .cover img { width: 100%; height: 100%; object-fit: cover; display: block; will-change: transform; transform: scale(1.07); }
  .banner .sig { will-change: transform; }
  .banner .cover::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.38), rgba(0,0,0,0) 55%);
  }
  .banner .sig {
    position: absolute; right: 28px; bottom: 16px; z-index: 2;
    color: rgba(255,255,255,.92); font-size: 13px; letter-spacing: .16em; text-align: right;
  }
  .head-row { display: flex; align-items: center; gap: 18px; padding: 0 28px; position: relative; }
  .avatar {
    width: 88px; height: 88px; border-radius: 50%; flex-shrink: 0;
    background: linear-gradient(135deg, #d6d6d4, #9a9a98);
    border: 4px solid #fff; box-shadow: 0 4px 16px rgba(0,0,0,.12);
    object-fit: cover; display: block;
    transform: translateY(-34px);
  }
  .head-row .who { min-width: 0; }
  .head-row h1 { font-size: 26px; font-weight: 700; letter-spacing: .02em; }
  .head-row .tagline { font-size: 14.5px; color: var(--sub); margin-top: 4px; }
  /* ===== 头部动作按钮:搜索/标签/RSS(黑白灰线框风) ===== */
  .head-actions { margin-left: auto; display: flex; gap: 10px; flex-shrink: 0; transform: translateY(-8px); }
  .hbtn {
    width: 38px; height: 38px; border-radius: 50%;
    border: 1px solid #dcdcda; background: var(--bg-card); color: var(--ink);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; position: relative;
    transition: border-color .18s ease, background .18s ease, color .18s ease;
    -webkit-tap-highlight-color: transparent;
  }
  .hbtn:hover { border-color: var(--ink); }
  .hbtn svg { width: 16px; height: 16px; display: block; }
  /* 夜间模式按钮:月亮/太阳图标按主题切换 */
  #btnTheme .ic-sun { display: none; }
  #btnTheme .ic-moon { display: block; }
  [data-theme="dark"] #btnTheme .ic-sun { display: block; }
  [data-theme="dark"] #btnTheme .ic-moon { display: none; }
  .hbtn .tip {
    position: absolute; top: calc(100% + 7px); left: 50%; transform: translateX(-50%);
    font-size: 11px; letter-spacing: .08em; color: var(--sub); background: var(--bg-card);
    border: 1px solid var(--line); border-radius: 4px; padding: 2px 8px;
    white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .15s ease;
  }
  .hbtn:hover .tip { opacity: 1; }
  /* 搜索下拉框 */
  /* 弹层打开时的全屏遮罩:backdrop-blur 模糊整个页面,弹层(z-index 更高)保持清晰 */
  .pop-mask {
    position: absolute; inset: 0; z-index: 55;
    background: rgba(255,255,255,.3);
    backdrop-filter: blur(10px) saturate(1.1);
    -webkit-backdrop-filter: blur(10px) saturate(1.1);
    opacity: 0; pointer-events: none; transition: opacity .22s ease;
  }
  .pop-mask.on { opacity: 1; pointer-events: auto; }
  .search-pop {
    position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%); z-index: 60;
    width: min(460px, calc(100vw - 40px));
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(0,0,0,.07); border-radius: 12px;
    box-shadow: 0 16px 44px rgba(0,0,0,.12); padding: 10px;
    display: none;
  }
  .search-pop.open { display: block; }
  .search-pop .fopt { cursor: pointer; display: flex; justify-content: space-between; gap: 18px;
    font-size: 13.5px; color: var(--ink); padding: 7px 10px; border-radius: 7px; letter-spacing: .04em; }
  .search-pop .fopt:hover { background: #f6f6f5; }
  .search-pop .fopt.sel { font-weight: 700; background: #f6f6f5; }
  .search-pop .fopt .n { color: var(--faint); font-size: 12px; }
  .hbtn.active { border-color: var(--ink); background: var(--ink); color: #fff; }
  [data-theme="dark"] .hbtn.active { color: var(--bg-page); }
  .search-pop .sinput {
    width: 100%; border: none; outline: none; background: transparent;
    font-family: inherit; font-size: 15px; color: var(--ink);
    padding: 8px 10px; border-bottom: 1px solid var(--line);
  }
  .search-pop .sinput::placeholder { color: var(--faint); }
  .search-pop .sres { max-height: 320px; overflow-y: auto; margin-top: 6px;
    scrollbar-width: thin; scrollbar-color: #d9d9d7 transparent;
    -webkit-mask-image: linear-gradient(to bottom, #000 88%, transparent);
    mask-image: linear-gradient(to bottom, #000 88%, transparent); }
  .search-pop .sres::-webkit-scrollbar { width: 4px; }
  .search-pop .sres::-webkit-scrollbar-track { background: transparent; margin: 4px 0; }
  .search-pop .sres::-webkit-scrollbar-thumb { background: #d9d9d7; border-radius: 2px; }
  .search-pop .sres::-webkit-scrollbar-thumb:hover { background: #bdbdbb; }
  .search-pop .sitem { padding: 9px 10px; border-radius: 7px; cursor: pointer; display: block; text-decoration: none; }
  .search-pop .sitem:hover { background: #f6f6f5; }
  .search-pop .sitem .st { font-size: 14px; color: var(--ink); }
  .search-pop .sitem .sd { font-size: 12.5px; color: var(--sub); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .search-pop .sempty { padding: 18px 10px; text-align: center; color: var(--faint); font-size: 13px; }
  @media (max-width: 560px){
    .head-row h1 { font-size: 22px; }
    .avatar { width: 72px; height: 72px; }
    .head-actions { gap: 8px; transform: translateY(-4px); }
    .hbtn { width: 34px; height: 34px; }
    .search-pop { left: 16px !important; right: 16px !important; width: auto !important; transform: none !important; }
    /* 移动端置顶:卡片62%宽横滑,分隔线/标题留白收紧 */
    .pin-section { margin: 14px 0 16px; padding-bottom: 14px; }
    .pin-title { margin: 0 20px 10px; }
    .pin-grid, .pin-grid.two { grid-auto-columns: 62%; gap: 10px; margin: 0 20px; }
    .pcard { padding: 12px; height: 160px; }
    .pcard .p-text { font-size: 12.5px; -webkit-line-clamp: 3; }
  }
  .rule { margin: 22px 0 0; border-bottom: 1px solid var(--line); }
  .month { padding: 30px 28px 4px; display: flex; justify-content: space-between; align-items: baseline; }
  .month .m1 { font-size: 15px; font-weight: 700; letter-spacing: .2em; }
  .month .m2 { font-size: 12px; color: #c5c5c3; }
  /* ===== 动态条目 ===== */
  .entry { display: grid; grid-template-columns: 86px 1fr; gap: 22px; padding: 26px 28px; border-bottom: 1px solid var(--line); }
  .entry .date .d1 { font-size: 19px; font-weight: 700; }
  .entry .date .d2 { font-size: 12px; color: var(--faint); margin-top: 2px; }
  .entry .text { font-size: 15.5px; line-height: 1.8; color: var(--ink); white-space: pre-wrap; word-break: break-word; max-width: 620px; }
  .entry .foot { margin-top: 12px; display: flex; justify-content: space-between; font-size: 13px; color: var(--faint); }
  .entry .time { visibility: visible; }
  .entry .reltime { color: var(--sub); font-size: 12.5px; letter-spacing: .04em; }
  .entry .tags { display: inline-flex; gap: 10px; flex-wrap: wrap; }
  .entry .tag { color: var(--sub); font-size: 13px; }
  /* ===== 动作栏(sigge 风): 左下角横排 ♡N 💬N ===== */
  /* 恢复: 评论区迁移时被误删的列表动作栏样式(heart/评论图标尺寸+布局) */
  .act-bar { display: flex; align-items: center; gap: 20px; margin-top: 12px; }
  .act-bar button { border: none; background: none; padding: 0; cursor: pointer;
    display: inline-flex; align-items: center; gap: 5px; color: var(--sub); font-size: 13px;
    -webkit-tap-highlight-color: transparent; transition: color .15s ease; }
  .act-bar button:hover { color: var(--ink); }
  .act-bar svg { width: 16px; height: 16px; flex-shrink: 0; }
  .act-bar button.liked { color: #e0524d; }
  .act-bar button.liked svg { fill: #e0524d; stroke: #e0524d; }
  .act-wrap { position: relative; display: inline-flex; }
  /* ===== 点赞/评论: 仿微信动作面板(黑白灰) ===== */
  /* 置顶动态:并排卡片,最多3张横向滚动(无滚动条);PINNED 区域标题 + 底部通栏分隔线 */
  .pin-section { margin: 18px 0 20px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
  .pin-title { display: flex; align-items: center; gap: 7px; margin: 0 28px 12px;
    font-size: 11px; font-weight: 700; letter-spacing: .26em; color: var(--ink); }
  .pin-title svg { width: 13px; height: 13px; }
  .pin-grid { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 28px) / 3);
    gap: 14px; margin: 0 28px; overflow-x: auto;
    scrollbar-width: none; -ms-overflow-style: none; }
  .pin-grid::-webkit-scrollbar { display: none; }
  .pin-grid.two { grid-auto-columns: calc((100% - 14px) / 2); }
  /* PINNED 底部指示器:仅卡片溢出时显示;当前点拉长胶囊,点击跳转到对应卡片 */
  .pin-dots { display: flex; align-items: center; justify-content: center; gap: 6px;
    margin: 12px 0 0; padding: 0; }
  .pin-dots .pin-dot { width: 6px; height: 6px; border-radius: 4px; background: var(--border-card, #cfcfcd);
    border: 0; padding: 0; cursor: pointer; transition: width .28s ease, background .28s ease;
    -webkit-tap-highlight-color: transparent; }
  .pin-dots .pin-dot.on { width: 18px; background: var(--ink); }
  .pin-dots .pin-dot:hover { background: var(--sub); }
  .pin-dots .pin-dot.on:hover { background: var(--ink); }
  .pin-dots.dense { gap: 4px; }
  .pin-dots.dense .pin-dot { width: 5px; height: 5px; }
  .pin-dots.dense .pin-dot.on { width: 13px; }
  .pcard {
    height: 185px; border-radius: 12px; overflow: hidden;
    background: var(--bg-card); border: 1px solid var(--border-card);
    display: flex; flex-direction: column;
    padding: 14px 16px; position: relative;
  }
  .pcard:hover { box-shadow: 0 4px 14px var(--shadow-hover); }
  .pcard .ph-top { display:flex; align-items:center; gap:6px; color:#1a1a1a; }
  .pcard .ph-top svg { width:14px; height:14px; }
  .pcard .ph-top .pinned-t { font-size:11px; font-weight:700; letter-spacing:.22em; }
  .pcard .p-text {
    flex:1; margin-top:10px; font-size:13.5px; line-height:1.7; color:var(--ink); white-space:pre-wrap; word-break:break-word;
    display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
  }
  .pcard .p-foot { display:flex; justify-content:space-between; align-items:baseline; margin-top:8px;
    font-size:11.5px; color:#b5b5b3; }
  .pcard .p-foot .tags { color:#8a8a88; }
  /* 形态:音乐(唱片机卡:黑胶盘+唱臂,整卡可点,播放旋转;仅置顶音乐动态用)
     卡片无底部信息行,整组(盘+歌名+作者)严格居中于卡片中心 */
  .pcard.kind-music { justify-content: center; align-items: center; padding: 0; }
  .pcard.kind-music .p-music { flex:1; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:10px; min-height:0; cursor:pointer; }
  .pcard .pm-deck { position:relative; width:min(96px, 70%); aspect-ratio:1/1; flex-shrink:0; }
  .pcard .pm-disc {
    position:absolute; left:1px; top:1px; width:calc(100% - 2px); height:calc(100% - 2px); border-radius:50%;
    background-size:cover; background-position:center;
    box-shadow: inset 0 0 0 8px rgba(12,12,12,.5), inset 0 0 0 9px rgba(0,0,0,.72),
                0 5px 16px rgba(0,0,0,.2);
    transition: box-shadow .25s ease;
  }
  .pcard .p-music:hover .pm-disc { box-shadow: inset 0 0 0 8px rgba(12,12,12,.5), inset 0 0 0 9px rgba(0,0,0,.72),
    0 5px 20px rgba(0,0,0,.3); }
  .pcard .pm-disc::before {  /* 黑胶沟槽纹(透出唱片质感) */
    content:""; position:absolute; inset:0; border-radius:50%;
    background: repeating-radial-gradient(circle at 50% 50%, transparent 0 3.5px, rgba(255,255,255,.06) 3.5px 4.5px);
    mix-blend-mode: overlay; }
  .pcard .p-music.playing .pm-disc { animation: pmSpin 7s linear infinite; }
  @keyframes pmSpin { to { transform: rotate(360deg); } }
  /* 中心小孔 */
  .pcard .pm-disc::after { content:""; position:absolute; left:50%; top:50%; width:10%; aspect-ratio:1/1;
    transform:translate(-50%,-50%); border-radius:50%; background:#161616; box-shadow: inset 0 0 2px rgba(0,0,0,.9); }
  /* 唱臂:细杆自右上方斜落向盘缘(尺寸随盘等比) */
  .pcard .pm-arm { position:absolute; top:-1px; right:-2px; width:52%; aspect-ratio:52/5; border-radius:3px;
    background:linear-gradient(180deg,#dcdcd9,#8f8f8c); transform-origin:100% 50%;
    transform: rotate(-38deg); transition: transform .5s ease;
    box-shadow: 0 1px 2px rgba(0,0,0,.25); z-index:2; }
  .pcard .pm-arm::before { content:""; position:absolute; right:-2px; top:50%; width:20%; aspect-ratio:1/1;
    margin-top:-10%; border-radius:50%; background:#555; }
  .pcard .p-music.playing .pm-arm { transform: rotate(-10deg); }   /* 播放:唱臂落针 */
  /* 中心播放/暂停钮 */
  .pcard .pm-badge { position:absolute; left:50%; top:50%; width:32%; aspect-ratio:1/1; transform:translate(-50%,-50%);
    border-radius:50%; background:rgba(15,15,15,.58); color:#fff; display:flex; align-items:center; justify-content:center;
    font-size:0; border:1px solid rgba(255,255,255,.3); backdrop-filter: blur(2px);
    box-shadow: 0 2px 8px rgba(0,0,0,.25); transition:opacity .2s, transform .2s; z-index:3; }
  .pcard .pm-badge::before { content:"▶"; font-size:clamp(8px, .9vw, 11px); transform:translateX(1px); }
  .pcard .p-music.playing .pm-badge { opacity:.82; }
  .pcard .p-music.playing .pm-badge::before { content:"❚❚"; font-size:clamp(7px, .75vw, 9px); transform:none; }
  .pcard .pm-meta { min-width:0; max-width:86%; text-align:center; line-height:1.35; }
  .pcard .pm-t { font-size:clamp(12px, 1.05vw, 14px); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pcard .pm-a { font-size:clamp(10.5px, .85vw, 12px); color:#8a8a88; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  /* 形态:文章/外链(标题+meta,点击进文章/外站) */
  .pcard .p-article { margin-top:10px; padding:10px 12px; background:var(--bg-soft2); border-radius:8px; cursor:pointer;
    border-left: 2px solid #1a1a1a; }
  .pcard .pa-t { font-size:13.5px; font-weight:600; line-height:1.5; }
  .pcard .pa-m { font-size:11px; color:#8a8a88; margin-top:4px; }
  a.pcard { text-decoration: none; color: inherit; }
  /* 形态:视频(海报+播放键) */
  .pcard .p-video { margin-top:10px; border-radius:8px; aspect-ratio:16/9; background-size:cover;
    background-position:center; position:relative; cursor:pointer; }
  .pcard .pv-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
    width:34px; height:34px; border-radius:50%; background:rgba(20,20,20,.72); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:12px; }
  .pcard .pv-dur { position:absolute; right:6px; bottom:6px; background:rgba(0,0,0,.6); color:#fff;
    font-size:10px; padding:1px 6px; border-radius:4px; }
  .pcard .p-video video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:none; border-radius:8px; }
  .pcard .p-video.playing video { display:block; }
  .pcard .p-video.playing { aspect-ratio:auto; height:110px; }
  .pcard .p-video.playing .pv-dur { display:none; }
  /* 隐藏式 APlayer(置顶音乐卡的音频内核,UI 由 .p-music 壳承担) */
  .hidden-audio { height: 0 !important; overflow: hidden !important; margin: 0 !important; border: none !important; }
  .hidden-audio .aplayer-body, .hidden-audio .aplayer-miniswitcher { display: none !important; }
  /* 正文统一 */
  .pcard .p-text { flex:1; margin-top:10px; font-size:13.5px; line-height:1.7; color:var(--ink);
    display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
  /* ===== 定位:仿微信朋友圈,灰蓝小字 + 定位图标,显示在内容与附件之后 ===== */
  .entry .loc {
    margin-top: 10px; display: inline-flex; align-items: center; gap: 5px;
    font-size: 13.5px; color: #5879a8; text-decoration: none;
  }
  .entry .loc svg { width: 14px; height: 14px; flex-shrink: 0; }
  /* 详情页(.entry-detail)定位: 与主页同款;ID 特异性防被 av-body a 覆盖 */
  #articleView .entry-detail .loc, #articleView .entry-detail a.loc {
    margin-top: 10px; display: inline-flex; align-items: center; gap: 5px;
    font-size: 13.5px; color: #5879a8; text-decoration: none;
  }
  #articleView .entry-detail a.loc:hover { text-decoration: none; color: #40608c; }
  #articleView .entry-detail .loc svg { width: 14px; height: 14px; flex-shrink: 0; }
  /* ===== 图片栅格(小图统一正方形,容器 480px) ===== */
  .pics { margin-top: 12px; width: var(--pics-w); max-width: 100%; display: flex; flex-direction: column; gap: 6px; }
  .pics .row { display: flex; gap: 6px; }
  .pics .col { display: flex; flex-direction: column; gap: 6px; }
  .ph { border-radius: 5px; overflow: hidden; cursor: pointer; position: relative; background:var(--bg-soft2); }
  /* 视频卡:点击播放(非灯箱),手势用 pointer(播放三角已示意) */
  .ph.video:not(.playing) { cursor: pointer; }
  .ph.live:not(.playing) { cursor: pointer; }
  .ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
  /* 1张:容器宽 3:2 */
  .pics.n1 .ph { width: 100%; aspect-ratio: 3/2; }
  /* 2张:两个等大正方形 */
  .pics.n2 .ph { width: calc(50% - 3px); aspect-ratio: 1/1; }
  /* 3张:左大正方形 + 右侧两个等大小正方形竖叠(全部正方形) */
  .pics.n3 .row > .ph:first-child { width: calc(66.666% - 2px); aspect-ratio: 1/1; }
  .pics.n3 .col { width: calc(33.333% - 4px); height: auto; justify-content: flex-start; }
  .pics.n3 .col .ph { width: 100%; aspect-ratio: 1/1; height: auto; }
  /* 4张:2×2 等大正方形 */
  .pics.n4 .row .ph { width: calc(50% - 3px); aspect-ratio: 1/1; }
  /* 6张:CSS Grid,单格强制正方形,大图跨格自动等宽等高 */
  .pics.n6 { display: grid; gap: 6px; }
  .pics.n6 .ph { aspect-ratio: 1/1; width: auto; }
  /* 5张(设计图·480版):上区左大正方形+右两个小正方形竖叠,底部长方形加高,总高=容器 */
  .pics.n5 { display: flex; flex-direction: column; gap: 6px; }
  .pics.n5 .row { display: flex; gap: 6px; }
  .pics.n5 .row.top { height: calc(var(--pics-w) * 2 / 3); }
  .pics.n5 .row.top > .ph:first-child { width: calc(66.666% - 2px); height: 100%; }
  .pics.n5 .row.top .col { width: calc(33.333% - 4px); height: 100%; justify-content: space-between; }
  .pics.n5 .row.top .col .ph { width: 100%; height: calc(50% - 3px); }
  .pics.n5 .row.bottom { height: calc(var(--pics-w) / 3 - 6px); }
  .pics.n5 .row.bottom .ph { width: calc(50% - 3px); height: 100%; }
  /* 6张:3列网格,大图占2×2(正方形318px),右两小+底三小,全部 156px 正方形(设计图) */
  .pics.n6 { grid-template-columns: repeat(3, 1fr); }
  .pics.n6 .ph:first-child { grid-column: 1 / 3; grid-row: 1 / 3; aspect-ratio: auto; }
  /* 7张:骨架同6张,底部一行四个;右侧两小图微扁(6:5),大图随行高成为正方形 */
  /* 8列网格:大图占5列(298px正方形),右列3列两小(176×146),底部四小(116方格),总高420 */
  .pics.n7 { display: grid; grid-template-columns: repeat(8, 1fr); gap: 6px; }
  .pics.n7 .ph { aspect-ratio: 1/1; width: auto; }
  .pics.n7 .ph:first-child { grid-column: 1 / 6; grid-row: 1 / 3; aspect-ratio: auto; }
  .pics.n7 .ph:nth-child(2) { grid-column: 6 / 9; grid-row: 1; aspect-ratio: 6/5; }
  .pics.n7 .ph:nth-child(3) { grid-column: 6 / 9; grid-row: 2; aspect-ratio: 6/5; }
  .pics.n7 .ph:nth-child(n+4) { grid-column: auto / span 2; }
  /* 8张(480版):上3正方形(160px) + 中2横长方形(3:2) + 下3正方形(160px),总高=容器 */
  .pics.n8 { display: flex; flex-direction: column; gap: 6px; }
  .pics.n8 .row { display: flex; gap: 6px; }
  .pics.n8 .row .ph { width: calc(33.33% - 4px); height: calc((var(--pics-w) - 12px) / 3); }
  .pics.n8 .row.mid .ph { width: calc(50% - 3px); }
  /* 9张:九宫格 */
  .pics.n9 .row .ph { width: calc(33.33% - 4px); aspect-ratio: 1/1; }
  /* >9张溢出:第 9 格仅叠加模糊蒙版+白字计数,图片样式本身不动;隐藏 ghost 格(保留 data-src 供灯箱组翻阅)。
     类名用 over 不用 more——.more 是「加载更多」按钮的全局样式(margin/padding),会撑高 flex 行殃及同排格子。
     模糊走 ::after 的 backdrop-filter 而非 img 上的 filter——filter 会把图片边缘糊成半透明露出白底,
     四角双边缘叠加成方形白晕,视觉上像直角;backdrop-filter 模糊区域天然跟圆角(inherit) */
  .pics .ph.over::after {
    content: ''; position: absolute; inset: 0;
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
    background: rgba(0,0,0,.34); pointer-events: none;
    border-radius: inherit;
  }
  .pics .more-cnt {
    position: absolute; z-index: 2; inset: 0;
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 22px; font-weight: 600;
    text-shadow: 0 1px 6px rgba(0,0,0,.45); pointer-events: none;
    letter-spacing: .5px;
  }
  .grid-ghost { display: none; }
  /* 可配置布局:n2v/n3h/n3v/n4b */
  .pics.n2v .row { flex-direction: column; }
  .pics.n2v .ph { width: 100%; aspect-ratio: 3/2; }
  .pics.n3h .row { flex-direction: column; }
  .pics.n3h .row .ph { width: 100%; aspect-ratio: 3/2; }
  .pics.n3v .row .ph { width: calc(33.333% - 4px); aspect-ratio: 1/1; }
  .pics.n4b .row.banner .ph { width: 100%; aspect-ratio: 16/7; }
  .pics.n4b .row.small .ph { width: calc(33.333% - 4px); aspect-ratio: 1/1; }
  /* ===== 视频卡与 Live 图 ===== */
  .ph .play {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    pointer-events: none;
  }
  .ph .play i {
    width: 44px; height: 44px; border-radius: 50%; font-style: normal;
    background: rgba(20,20,20,.55); backdrop-filter: blur(4px);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 15px;
  }
  .ph .badge {
    position: absolute; top: 8px; left: 8px; z-index: 2;
    background: rgba(20,20,20,.72); color: #fff;
    font-size: 10.5px; letter-spacing: .12em; padding: 3px 9px; border-radius: 999px;
  }
  .ph.video .badge { pointer-events: none; }
  /* Live 徽章:纯同心圆图标(无底色),呼吸在SVG上(热区稳定不飘),悬停/点击动起来 */
  .ph.live .badge {
    pointer-events: auto; cursor: pointer;
    background: none; padding: 10px; margin: -10px; border-radius: 24px;
    display: inline-flex; align-items: center;
    filter: drop-shadow(0 1px 3px rgba(0,0,0,.55));
  }
  .ph.live .badge svg {
    width: 22px; height: 22px; display: block;
    animation: livebreath 2.2s ease-in-out infinite;
  }
  .ph.live.playing .badge svg { animation: none; }
  @keyframes livebreath {
    0%,100% { transform: scale(1); opacity: .82; }
    50%     { transform: scale(1.15); opacity: 1; }
  }
  /* 视频卡:ArtPlayer 容器(点开后挂载,替换原生控制条) */
  .ph.video .artbox { display: none; width: 100%; height: 100%; background: #000; }
  .ph.video .artbox .artplayer-app { width: 100%; height: 100%; }
  .ph.video.playing img, .ph.video.playing .play, .ph.video.playing .badge { display: none; }
  .ph.video.playing .artbox { display: block; }
  .ph.video.playing { cursor: default; }
  .ph.live .vwrap { display: none; position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; }
  .ph.live .vwrap video { width: 100%; height: 100%; object-fit: cover; display: block; }
  .ph.live.playing { cursor: default; }
  .ph.live.playing .vwrap { display: block; }
  /* 灯箱内 Live 层: 视频覆盖全屏图,同心圆图标左上角(桌面悬停播/移动自动播) */
  .lg-item:has(.lg-live-layer) { position: relative; }
  .lg-live-layer { position: absolute; inset: 0; z-index: 30; }
  .lg-live-layer video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: none; }
  .lg-live-layer.playing video { display: block; }
  /* 灯箱打开时锁 html 滚动(LG 只锁 body,我们页面 html 也参与滚动) */
  html.lg-on { overflow: hidden; }
  .lg-live-badge {
    position: fixed; top: 60px; left: 18px; z-index: 1080; cursor: pointer;
    color: #fff; display: inline-flex; align-items: center;
    filter: drop-shadow(0 1px 4px rgba(0,0,0,.6));
  }
  .lg-live-badge svg { width: 26px; height: 26px; display: block; animation: livebreath 2.2s ease-in-out infinite; }
  .lg-live-layer.playing .lg-live-badge svg { animation: none; }
  /* ArtPlayer 黑白灰主题微调(贴合站内) */
  .art-video-player .art-control-progress .art-progress-tip,
  .art-video-player .art-settings { font-family: inherit; }
  .art-video-player .art-icon { color: #fff; }
  @media (max-width: 620px) { :root { --pics-w: 100%; } }
  @media (max-width: 560px) {
    .entry { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 22px 20px; }
    .entry > * { min-width: 0; max-width: 100%; }
    .head-row, .rule, .month { padding-left: 20px; padding-right: 20px; }
    .rule { margin: 20px 0 0; }
    /* 小屏 3张改回紧凑:大图+右侧两小 */
    .pics.n3 .row { height: auto; }
    .pics.n3 .row > .ph:first-child { height: auto; aspect-ratio: 1/1; }
    .pics.n3 .col { height: auto; }
    .pics.n3 .col .ph { height: auto; aspect-ratio: 1/1; }
  }
  /* ===== 音乐卡片:自定义壳 + APlayer 内核 ===== */
  .music-shell {
    margin-top: 12px; width: var(--pics-w); max-width: 100%;
    border: 1px solid var(--line); border-radius: 10px; overflow: hidden;
    background: var(--bg-soft);
  }
  .music-shell .aplayer { margin: 0; background: transparent; box-shadow: none; font-family: inherit; }
  .aplayer .aplayer-body .aplayer-info { padding: 10px 14px 10px 10px; }
  .aplayer .aplayer-body .aplayer-pic { border-radius: 8px; margin: 8px; height: 56px; width: 56px; }
  .aplayer .aplayer-body .aplayer-info .aplayer-music { margin: 0 0 4px; }
  .aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-title { font-size: 14.5px; font-weight: 600; color: var(--ink); }
  .aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-author { font-size: 12.5px; color: var(--sub); }
  .aplayer .aplayer-bar-wrap { margin: 0 14px 0 10px; }
  .aplayer .aplayer-time { color: var(--faint); font-size: 12px; }
  .aplayer .aplayer-icon { width: 16px; height: 16px; }
  .aplayer .aplayer-play, .aplayer .aplayer-pause { width: 22px; height: 22px; }
  /* 歌词区墨色化:紧凑化,歌词在进度条上方 */
  .aplayer .aplayer-lrc { background: transparent; height: 16px; }
  .aplayer .aplayer-lrc .aplayer-lrc-contents { padding-top: 0; }
  .aplayer .aplayer-lrc p { text-align: center; }
  .aplayer .aplayer-body { display: flex; flex-wrap: wrap; align-items: flex-start; }
  .aplayer .aplayer-body .aplayer-info { flex: 1 1 auto; min-width: 0; height: auto;
    margin-left: 0 !important; padding: 8px 14px 8px 12px; display: flex; flex-direction: column; gap: 6px; }
  .aplayer .aplayer-body .aplayer-info .aplayer-music { margin-bottom: 0; margin-left: 0 !important; width: auto !important; text-align: left; order: 0; }
  .aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-title { font-size: 15.5px; font-weight: 600; }
  /* 长歌名(超 18 字符):歌名/作者分两行,短歌名保持原生同行样式 */
  .aplayer .aplayer-body .aplayer-info .aplayer-music.long-title .aplayer-title { font-size: 15.5px; }
  .aplayer .aplayer-body .aplayer-info .aplayer-music.long-title .aplayer-author { display: block; margin: 2px 0 0; font-size: 12.5px; }
  /* 顺序:歌名作者最上 → 歌词其下 → 进度条最下 */
  .aplayer .aplayer-body .aplayer-info .aplayer-lrc { order: 1; flex: 0 0 100%; height: 16px; max-height: 16px; overflow: hidden; margin: 0; padding: 0; }
  .aplayer .aplayer-body .aplayer-info .aplayer-controller { order: 2; }
  .aplayer .aplayer-body .aplayer-pic { height: 72px; width: 72px; flex-shrink: 0; margin: 8px; border-radius: 8px; align-self: flex-start; }
  .aplayer .aplayer-body .aplayer-info .aplayer-controller { display: flex; align-items: center; margin-top: 0; }
  .aplayer .aplayer-body .aplayer-info .aplayer-controller .aplayer-bar-wrap { flex: 1; margin: 0 12px 0 0 !important; }
  .aplayer .aplayer-body .aplayer-info .aplayer-time { display: none; }
  .aplayer .aplayer-body .aplayer-info .aplayer-controller .aplayer-volume-wrap { display: none; }
  .aplayer .aplayer-body .aplayer-info .aplayer-music { margin-bottom: 8px; }
  .aplayer .aplayer-lrc:before, .aplayer .aplayer-lrc:after { display: none; }
  .aplayer .aplayer-lrc p { font-size: 12.5px !important; color: var(--sub) !important; line-height: 16px !important; height: 16px !important; margin: 0 !important; }
  .aplayer .aplayer-lrc p.aplayer-lrc-current { color: var(--ink) !important; font-weight: 600; opacity: 1; }
  /* ===== 移动端音乐卡片自适应(≤560px) ===== */
  @media (max-width: 560px) {
    /* 歌名/歌手强制左对齐,窄屏不被居中挤乱 */
    .aplayer .aplayer-body .aplayer-info .aplayer-music { text-align: left; }
    .aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-title,
    .aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-author {
      display: inline; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-author { margin-left: 6px; }
    /* 封面缩到 44px,信息区清掉原生 90px 缩进,自然跟随封面 */
    .aplayer .aplayer-body .aplayer-pic { height: 44px; width: 44px; margin: 6px; border-radius: 6px; }
    .aplayer .aplayer-body .aplayer-info { margin-left: 0 !important; height: auto !important; padding: 6px 10px 6px 6px; }
    .aplayer .aplayer-body .aplayer-info .aplayer-music { width: auto !important; margin-left: 0; }
    .aplayer .aplayer-body .aplayer-info .aplayer-controller { margin-left: 0; }
    /* 歌词只显 1 行,与进度条拉开间距,防重叠 */
    .aplayer .aplayer-lrc { height: 16px !important; margin-top: 4px; }
    .music-shell .aplayer { padding-bottom: 2px; }
    /* 文章卡片:meta 换行不挤压,隐藏右侧箭头(站内文章无需域名提示) */
    .linkcard.article-card { flex-wrap: wrap; }
    .linkcard.article-card .host { display: none; }
    .linkcard.article-card .ameta { width: 100%; line-height: 1.6; }
    /* 播放键保持可见 */
    .aplayer .aplayer-play, .aplayer .aplayer-pause { width: 20px; height: 20px; }
  }
  /* ===== 链接卡片 ===== */
  .linkcard {
    margin-top: 12px; display: flex; gap: 12px; align-items: center;
    padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px;
    background: var(--bg-soft); max-width: var(--pics-w); text-decoration: none; color: inherit;
    transition: border-color .15s;
  }
  .linkcard:hover { border-color: var(--border-strong); background: var(--bg-soft2); }
  .linkcard .fav {
    width: 40px; height: 40px; border-radius: 8px; flex-shrink: 0;
    background: #1a1a1a; color: #fff; font-size: 17px; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
  }
  .linkcard .meta { flex: 1; min-width: 0; }
  .linkcard .t { font-size: 14.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .linkcard .d { font-size: 12.5px; color: var(--sub); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .linkcard .host { font-size: 11.5px; color: var(--faint); flex-shrink: 0; }
  /* ===== 站内文章详情覆盖层 ===== */
  .article-card .ameta { font-size: 11.5px; color: var(--faint); margin-top: 4px; }
  .article-card .d { white-space: normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  #articleView { position: fixed; inset: 0; z-index: 90; display: none; background: var(--bg-page); }
  #articleView.show { display: block; animation: avIn .22s ease; }
  @keyframes avIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
  #articleView .av-scroll { height: 100%; overflow-y: auto; max-width: 760px; margin: 0 auto; background: var(--bg-card);
    box-shadow: 0 0 24px rgba(0,0,0,.05);
    scrollbar-width: none; -ms-overflow-style: none; }
  #articleView .av-scroll::-webkit-scrollbar { display: none; }
  #articleView .av-topbar { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between;
    padding: 12px 18px; background: rgba(255,255,255,.92); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(0,0,0,.04); position: sticky;
    box-shadow: 0 2px 12px rgba(0,0,0,.07), 0 1px 3px rgba(0,0,0,.04); }
  #articleView .av-topbar .av-close { display: flex; align-items: center; gap: 5px; background: none; border: none;
    font-size: 14px; color: var(--ink); cursor: pointer; padding: 6px 8px; border-radius: 8px; }
  #articleView .av-topbar .av-close:active { background: var(--bg-soft2); }
  #articleView .av-topbar .av-close svg { width: 17px; height: 17px; }
  #articleView .av-topbar .av-site { font-size: 12px; color: var(--faint); letter-spacing: .08em; }
  #articleView .av-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
    background: transparent; pointer-events: none; }
  #articleView .av-progress .av-progress-bar { height: 100%; width: 0; background: #1a1a1a;
    transition: width .12s linear; }
  #articleView .av-head { padding: 30px 28px 6px; }
  #articleView .av-title { font-size: 22px; font-weight: 700; line-height: 1.5; }
  #articleView .av-meta { font-size: 12.5px; color: var(--faint); margin-top: 8px; }
  #articleView .av-body { padding: 10px 28px 34px; font-size: 15.5px; line-height: 1.9; color: #2c3e50; letter-spacing: 0.02em; font-weight: 500; }
  #articleView .av-body p { margin: 0 0 1.35em; }
  #articleView .av-music { margin: 14px 0 4px; max-width: var(--pics-w);
    border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--bg-soft); }
  #articleView .av-music.aplayer { margin: 0; box-shadow: none; }   /* 容器即 aplayer,压掉自带阴影 */
  #articleView .av-music .aplayer { margin: 0; background: transparent; box-shadow: none; }
  #articleView .av-music .aplayer .aplayer-lrc p { font-size: 12.5px !important; color: var(--sub) !important; line-height: 16px !important; height: 16px !important; margin: 0 !important; }
  #articleView .av-music .aplayer .aplayer-lrc p.aplayer-lrc-current { color: var(--ink) !important; font-weight: 600; opacity: 1; }
  #articleView .md-table { margin: 1.35em 0; overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; }
  #articleView .md-table table { border-collapse: collapse; width: 100%; font-size: 0.92em; }
  #articleView .md-table th { background: #f6f6f5; font-weight: 600; color: var(--ink); }
  #articleView .md-table th, #articleView .md-table td { padding: 8px 14px; border-bottom: 1px solid var(--line); white-space: nowrap; }
  #articleView .md-table tbody tr:last-child td { border-bottom: none; }
  #articleView .md-table tbody tr:nth-child(even) { background: var(--bg-soft); }
  /* 标题露头:上边距>下边距,章标题底部极淡分隔线 */
  #articleView .av-body h2.ph { font-size: 1.35em; margin: 2.2em 0 0.6em; padding-bottom: 0.35em;
    border-bottom: 1px solid #eaeef2; color: var(--ink); font-weight: 700;
    background: transparent; border-radius: 0; overflow: visible; cursor: default; position: static; }
  #articleView .sh { font-size: 1.12em; margin: 1.7em 0 0.5em; color: var(--ink); font-weight: 600; }
  #articleView .av-body ul { margin: 0 0 1.35em 1.4em; }
  #articleView .av-body li { margin: 0.45em 0; }
  #articleView .av-body ol { margin: 0 0 1.35em 1.6em; }
  #articleView .av-body ol li { padding-left: 2px; }
  #articleView .av-body a { color: var(--ink); text-decoration: underline; text-decoration-color: #c9c9c7; text-underline-offset: 3px; }
  #articleView .av-body a:hover { text-decoration-color: var(--ink); }
  #articleView .av-body code { background: #f2f2f0; border: 1px solid var(--line); border-radius: 4px;
    padding: 0.15em 0.4em; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 0.88em; color: #c7254e; }
  /* 中英混排自动间隙(渐进增强,未来标准) */
  #articleView .av-body { text-autospace: ideograph-alpha ideograph-numeric; }
  #articleView .av-body del { color: var(--faint); }
  #articleView .av-body .task-list { list-style: none; margin-left: 4px; }
  #articleView .av-body .task-list li { display: flex; align-items: baseline; gap: 9px; }
  #articleView .av-body .task-list .cb { width: 17px; height: 17px; flex-shrink: 0; border: 1.5px solid #c9c9c7;
    border-radius: 4px; display: inline-flex; align-items: center; justify-content: center;
    font-size: 12px; color: #fff; transform: translateY(2px); }
  #articleView .av-body .task-list li.done .cb { background: var(--ink); border-color: var(--ink); }
  #articleView .av-body .task-list li.done { color: var(--faint); text-decoration: line-through; }
  #articleView .av-body .md-hr { border: none; border-top: 1px solid var(--line); margin: 18px 0; }
  #articleView .av-body .md-img { max-width: 100%; border-radius: 8px; display: block;
    margin: 1.4em auto; box-shadow: 0 2px 12px rgba(0,0,0,0.08); }
  #articleView .md-pics { margin: 12px auto; display: flex; justify-content: center; }
  #articleView .md-pics .pics { margin-top: 0; }
  #articleView .md-pics .pics.n1 { width: var(--pics-w); }   /* 单图也限宽居中,不撑满 */
  /* 视频卡:封面播放态在文章内尺寸与首页一致 */
  #articleView .av-body pre { margin: 12px 0; border-radius: 8px; overflow: hidden; position: relative; }
  #articleView .av-body pre .pre-lang { position: absolute; top: 0; right: 64px; padding: 6px 8px;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 11px;
    color: rgba(232,232,230,.45); background: transparent; pointer-events: none; }
  #articleView .av-body pre .pre-copy { position: absolute; top: 6px; right: 6px; z-index: 3;
    background: rgba(255,255,255,.08); color: rgba(232,232,230,.75); border: none; border-radius: 6px;
    padding: 4px 8px; font-size: 11.5px; cursor: pointer; display: flex; align-items: center; gap: 4px;
    transition: background .15s, color .15s; font-family: inherit; }
  #articleView .av-body pre .pre-copy:hover { background: rgba(255,255,255,.16); color: #fff; }
  #articleView .av-body pre .pre-copy.ok { color: #a6e22e; }
  #articleView .av-body pre .pre-copy svg { width: 12px; height: 12px; }
  #articleView .av-body pre code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 13.5px; line-height: 1.7; display: block; padding: 13px 15px; }
  #articleView .av-body pre code.hljs { background: #272822 !important; color: #ddd; }
  /* 代码块横向滚动条:Monokai 风格细条,贴底无padding突兀 */
  #articleView .av-body pre code { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.18) transparent; }
  #articleView .av-body pre code::-webkit-scrollbar { height: 6px; }
  #articleView .av-body pre code::-webkit-scrollbar-track { background: transparent; }
  #articleView .av-body pre code::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18);
    border-radius: 3px; }
  #articleView .av-body pre code::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.32); }
  /* 代码块折叠:两态通用的底部渐隐遮罩 + 纯白箭头居中 */
  /* 遮罩+底部预留只用于可折叠块(foldable,>30行);普通短代码块不留白 */
  #articleView .av-body pre.foldable::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 44px;
    background: linear-gradient(to bottom, rgba(39,40,34,0), rgba(39,40,34,.96) 82%);
    pointer-events: none; }
  #articleView .av-body pre.folded code { max-height: 510px; overflow: hidden; }
  #articleView .av-body pre.foldable:not(.folded) code { padding-bottom: 46px; }   /* 展开态留出箭头区,末行不被盖 */
  /* 纯白箭头:无底框无投影,悬在代码框内底部居中 */
  #articleView .av-body pre .pre-fold { position: absolute; left: 50%; bottom: 7px; transform: translateX(-50%);
    z-index: 3; width: 32px; height: 26px; border: none; padding: 0;
    background: transparent; color: #fff; cursor: pointer;
    display: flex; align-items: center; justify-content: center; }
  #articleView .av-body pre .pre-fold svg { width: 22px; height: 22px; transition: transform .2s; }
  #articleView .av-body pre .pre-fold svg path { stroke: currentColor; stroke-width: 2.4;
    stroke-linecap: round; stroke-linejoin: round; fill: none; }
  #articleView .av-body pre .pre-fold:hover svg { transform: scale(1.15); }
  /* ===== 文章目录(TOC):av-scroll 左侧悬浮,≥1200px 宽屏显示 ===== */
  #articleView .av-toc { position: fixed; top: 130px; z-index: 95;
    left: calc(50% - 380px - 200px); width: 170px; max-height: 62vh; overflow-y: auto;
    scrollbar-width: none; }
  #articleView .av-toc::-webkit-scrollbar { display: none; }
  #articleView .av-toc .toc-title { font-size: 12px; letter-spacing: .12em; color: var(--faint);
    padding: 0 0 8px 14px; }
  #articleView .av-toc a { display: block; padding: 5px 14px; font-size: 13px; color: var(--sub);
    text-decoration: none; border-left: 2px solid var(--line); line-height: 1.5;
    transition: color .15s, border-color .15s; }
  #articleView .av-toc a:hover { color: var(--ink); }
  #articleView .av-toc a.cur { color: var(--ink); font-weight: 600; border-left-color: var(--ink); }
  #articleView .av-toc a.sub { padding-left: 28px; font-size: 12.5px; }
  @media (max-width: 1240px) { #articleView .av-toc { display: none; } }
  #articleView blockquote { margin: 1.6em 0; padding: 0.6em 1.3em; border-left: 4px solid var(--ink);
    background: #f8f9fa; color: #555; border-radius: 0 6px 6px 0; }
  #articleView .av-back { margin: 26px 28px 50px; width: calc(100% - 56px); text-align: center; background: #f6f6f5;
    border: none; border-radius: 8px; padding: 11px 0; font-size: 14px; color: #555; cursor: pointer; }
  .empty { padding: 60px 28px; text-align: center; color: var(--faint); font-size: 14px; }
  .more { display:block; margin: 30px auto 44px; padding: 9px 26px; font-size: 13.5px; color: var(--ink);
    background:var(--bg-card); border:1px solid var(--border-strong); border-radius:999px; cursor:pointer; }
  .more:disabled { color:#c5c5c3; border-color: var(--line); cursor: default; }
  .more.hidden { display: none; }
  /* ===== 页脚 ===== */
  .footer { padding: 44px 28px 52px; text-align: center; font-size: 13px; color: var(--faint); line-height: 2.1; border-top: 1px solid var(--line); }
  .footer a { color: var(--sub); text-decoration: none; }
  .footer a:hover { color: var(--ink); }
  .footer .sep { margin: 0 10px; color: #dcdcdc; }
  .footer .runtime { font-size: 12.5px; letter-spacing: .04em; }
  /* 两行共享三列 grid:左段右对齐、| 钉同一列、右段左对齐 → 两个分隔符严格垂直对齐 */
  .footer .foot-block { display: inline-grid; grid-template-columns: auto auto auto; column-gap: 0;
    justify-items: center; align-items: baseline; text-align: center; }
  .footer .cr-line, .footer .icp-line { display: contents; }
  .footer .cr-line > span:nth-child(1), .footer .icp-line > *:nth-child(1) { justify-self: end; text-align: right; }
  .footer .cr-line > span:nth-child(3), .footer .icp-line > *:nth-child(3) { justify-self: start; text-align: left; }
  .footer .cr-line .sep, .footer .icp-line .sep { justify-self: center; margin: 0 8px; }
  /* ===== 回顶部按钮 ===== */
  .backtop {
    position: fixed; right: 42px; bottom: 42px; z-index: 40;
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--bg-card); color: var(--ink); border: 1px solid var(--border-strong);
    font-size: 16px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 14px var(--shadow-hover);
    opacity: 0; visibility: hidden;
    transition: opacity .25s, visibility .25s;
  }
  .backtop.on { opacity: 1; visibility: visible; }
  .backtop:hover { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
  .backtop svg { width: 18px; height: 18px; display: block; }
  .backtop svg path { stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; fill: none; }
  .backtop:hover svg path { stroke: #fff; }
  /* ===== 夜间模式悬浮按钮:默认贴地 42px;回顶出现 → 平滑上移 98px ===== */
  .theme-fab {
    position: fixed; right: 42px; bottom: 42px; z-index: 40;
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--bg-card); color: var(--ink); border: 1px solid var(--border-strong);
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 14px var(--shadow-hover);
    transition: bottom .3s ease, background .35s ease, color .35s ease, border-color .35s ease;
  }
  .theme-fab.shift { bottom: 98px; }   /* 回顶出现时让位到回顶上方 */
  .theme-fab svg { width: 17px; height: 17px; display: block; }
  .theme-fab .ic-sun { display: none; }
  .theme-fab .ic-moon { display: block; }
  [data-theme="dark"] .theme-fab .ic-sun { display: block; }
  [data-theme="dark"] .theme-fab .ic-moon { display: none; }
  .theme-fab:hover { border-color: var(--ink); }
  /* 详情页打开时,悬浮按钮组浮到文章覆盖层之上 */
  body.article-open .backtop, body.article-open .mini-music, body.article-open .theme-fab { z-index: 100; }
  /* ===== 音乐悬浮迷你按钮:播放后默认 98px;回顶出现 → 平滑上移 154px ===== */
  .mini-music {
    position: fixed; right: 42px; bottom: 98px; z-index: 40;
    width: 48px; height: 48px; border-radius: 50%;
    background: #1a1a1a; border: 2px solid #fff;
    box-shadow: 0 4px 16px rgba(0,0,0,.3);
    cursor: pointer; display: none; align-items: center; justify-content: center;
    transition: bottom .3s ease;
  }
  .mini-music.lifted { bottom: 154px; }  /* 回顶+音乐都在时音乐最高 */
  .mini-music.on { display: flex; }
  /* 封面层:占满按钮,播放时顺时针旋转 */
  .mini-music .disc {
    position: absolute; inset: 0; border-radius: 50%;
    background-size: cover; background-position: center;
    animation: spin 16s linear infinite; animation-play-state: paused;
  }
  .mini-music.playing .disc { animation-play-state: running; }
  @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
  /* 图标层:不旋转,暂停时灰色蒙版+白色▶,播放时隐藏 */
  .mini-music .icon {
    position: absolute; inset: 0; z-index: 2; display: none;
    align-items: center; justify-content: center;
    color: #fff; font-size: 15px;
    background: rgba(30,30,30,.45);
    backdrop-filter: blur(1px);
    border-radius: 50%;
  }
  .mini-music:not(.playing) .icon { display: flex; }
  /* ===== 移动端按钮组自适应(≤560px):边距收紧,同套动态让位 ===== */
  @media (max-width: 560px) {
    .backtop { right: 16px; bottom: 16px; width: 40px; height: 40px; }
    .theme-fab { right: 16px; bottom: 16px; width: 40px; height: 40px; }
    .theme-fab.shift { bottom: 72px; }
    .mini-music { right: 16px; bottom: 72px; width: 42px; height: 42px; }
    .mini-music.lifted { bottom: 128px; }
  }
  /* 播放特效:音符从按钮上方飘出 */
  .mini-music .note {
    position: absolute; bottom: 55%; z-index: 3;
    color: #1a1a1a; font-size: 13px; pointer-events: none;
    text-shadow: 0 0 6px rgba(255,255,255,.9);
    animation: floatNote 2s ease-out forwards;
  }
  [data-theme="dark"] .mini-music .note { color: #e2e2e0; text-shadow: 0 0 6px rgba(0,0,0,.8); }
  @keyframes floatNote {
    0%   { opacity: 0; transform: translate(0,0) scale(.5); }
    15%  { opacity: .95; }
    100% { opacity: 0; transform: translate(var(--dx,0), -64px) scale(1.15) rotate(var(--rot,0deg)); }
  }
    .emoji-apple { width: 1.15em; height: 1.15em; vertical-align: -0.18em; display: inline-block; margin: 0 0.12em; }
  /* lightGallery 墨色微调 */
  .lg-backdrop { background-color: rgba(10,10,10,.94) !important; }
  /* 灯箱打开时压住 APlayer 歌词/控件浮层 */
  body.lg-on .aplayer-lrc, body.lg-on .aplayer-body { z-index: auto !important; }
  .lg-outer { z-index: 1200 !important; }
  .lg-toolbar .lg-download { color: #e8e8e6 !important; }
  .lg-sub-html { background: transparent !important; }
  .lg-thumbnail-item img { border-radius: 4px; }
  .lg-thumbnail-item.active img { border-color: #fff !important; }
  /* 灯箱关闭按钮:不依赖 icon font(Via 等浏览器字体加载失败时图标空白),直接内联 SVG */
  .lg-toolbar .lg-close { font-size: 0 !important; }
  .lg-toolbar .lg-close::after { content: none !important; }
  .lg-toolbar .lg-close { position: relative; }
  .lg-toolbar .lg-close svg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
  /* reduce-motion(部分安卓浏览器省电模式):只禁装饰性过渡,功能性动画(唱片旋转/音符)保留 */
  @media (prefers-reduced-motion: reduce) {
    * { transition: none !important; }
    *:not(.pm-disc):not(.disc):not(.note) { animation: none !important; }
  }
  /* ===== 唱片机卡响应式 =====
     音乐置顶卡无底部信息行,整组居中;盘随卡高自适应,文字限宽防溢出 */
  .pcard.kind-music { align-items: center; justify-content: center; }
  .pcard.kind-music .p-music { width: 100%; }
  /* 高度驱动:盘最多占卡高 ~55%,文字两行 ~34px + 间距 */
  .pcard.kind-music .pm-deck { width: auto; height: min(92px, calc(100% - 56px)); aspect-ratio: 1/1; }
  .pcard.kind-music .pm-disc { width: calc(100% - 2px); height: calc(100% - 2px); }
  .pcard.kind-music .pm-badge { width: 30%; height: auto; aspect-ratio: 1/1; }
  .pcard.kind-music .pm-badge::before { font-size: clamp(9px, 1vw, 12px); }
  .pcard.kind-music .pm-badge.playing::before,
  .pcard.kind-music .p-music.playing .pm-badge::before { font-size: clamp(7px, .8vw, 9px); }
  .pcard.kind-music .pm-arm { width: 50%; height: auto; aspect-ratio: 52/5; }
  .pcard.kind-music .pm-arm::before { width: 16%; height: auto; aspect-ratio: 1/1; margin-top: -8%; }
  @media (max-width: 560px){
    .pcard.kind-music { height: 160px; }
    .pcard.kind-music .p-music { gap: 8px; }
    .pcard.kind-music .pm-deck { height: min(64px, calc(100% - 46px)); }
    .pcard.kind-music .pm-badge { width: 30%; }
    .pcard.kind-music .pm-meta { max-width: 92%; }
    .pcard.kind-music .pm-t { font-size: 12px; }
    .pcard.kind-music .pm-a { font-size: 10.5px; }
  }
  @media (min-width: 561px) and (max-width: 900px){
    /* 中屏/平板:卡片多列较窄,盘保持 84px 级、防文字挤压 */
    .pcard.kind-music .pm-deck { height: min(76px, calc(100% - 52px)); }
    .pcard.kind-music .pm-meta { max-width: 90%; }
  }
  @media (max-width: 360px){
    .pcard.kind-music .pm-deck { height: 56px; }
    .pcard.kind-music .p-music { gap: 6px; }
  }
  /* ===== 移动端点击去方框/高亮(仅按钮组)===== */
  .backtop, .theme-fab, .mini-music {
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
  }
  .backtop:focus, .theme-fab:focus, .mini-music:focus { outline: none; }
  /* ===== 移动端置顶区(≤560px):一屏 2 张正方形卡 =====
     注意:此块必须位于 .pin-grid/.pcard 桌面定义之后,否则源顺序被覆盖不生效 */
  @media (max-width: 560px){
    .pin-section { margin: 14px 0 16px; padding-bottom: 14px; }
    .pin-title { margin: 0 20px 10px; }
    .pin-grid, .pin-grid.two { grid-auto-columns: calc((100% - 10px) / 2); gap: 10px; margin: 0 20px; }
    .pcard, .pcard.kind-music { padding: 12px; height: auto; aspect-ratio: 1 / 1; }
    .pcard .p-text { font-size: 12.5px; -webkit-line-clamp: 3; }
  }
