/* =====================================================================
   Shijing WP · modules.css
   WordPress 适配层 + 主题新增模块（下载区/分页/导航 li/空态等）
   视觉令牌一律取自 main.css 的 :root，禁止另造色值。
   ===================================================================== */

/* ---------- 导航：WP 菜单会输出 li 包裹，需在此校准 ---------- */
.nav__menu-wrap{display:flex;align-items:stretch;margin-left:16px;align-self:stretch}
.nav__menu{list-style:none;margin:0;padding:0;display:flex;align-items:stretch;height:100%}
.nav__menu li{list-style:none;display:flex;align-items:stretch;margin:0;padding:0}
.nav__menu a{position:relative;display:flex;align-items:center;padding:0 6px;margin:0 13px;font-size:15.5px;color:var(--text-2);font-weight:500;letter-spacing:.03em;transition:color .15s}
.nav__menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s cubic-bezier(.16,1,.3,1)}
.nav__menu a:hover{color:var(--fg)}
.nav__menu a:hover::after,.nav__menu a:focus-visible::after{transform:scaleX(1)}
.nav__menu a[aria-current="page"]{color:var(--ink);font-weight:600}
.nav__menu a[aria-current="page"]::after{transform:scaleX(1)}

@media (max-width:880px){
  .nav__menu-wrap{display:none}
}

/* ---------- 移动抽屉菜单：WP 输出 ul 包裹 ---------- */
.drawer .drawer__menu__ul{list-style:none;margin:0;padding:0}
.drawer .drawer__menu__ul li{list-style:none}
.drawer .drawer__menu__ul a{display:flex;align-items:center;justify-content:space-between;padding:15px 4px;font-size:17px;font-weight:600;border-bottom:1px solid var(--border);transition:color .15s,padding-left .15s;color:inherit}
.drawer .drawer__menu__ul a:hover{padding-left:8px}
.drawer .drawer__menu__ul a[aria-current="page"]{color:var(--accent-text)}
.drawer .drawer__menu__ul a span{font-family:var(--font-data);color:var(--muted);font-size:15px}

/* ---------- 页脚菜单 ---------- */
.foot-col .foot-list{list-style:none;margin:0;padding:0}
.foot-col .foot-list li{list-style:none;margin-top:11px}

/* ---------- 列表 meta（feed-row / 卡片共用） ---------- */
.entry-meta{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-data);font-size:12px;color:var(--muted);letter-spacing:.04em}
.entry-meta__sep{opacity:.5}
.tag-dl{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-family:var(--font-data);font-size:11px;font-weight:600;letter-spacing:.04em}
.tag-dl::before{content:"";width:5px;height:5px;background:var(--accent);transform:rotate(45deg);flex:none}
.feed-dl-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;border:1px solid color-mix(in oklab,var(--accent) 26%,var(--border-strong));color:var(--accent-text);font-family:var(--font-data);font-size:11px;font-weight:600;letter-spacing:.05em}

/* ---------- 分页 ---------- */
.pagination{margin:clamp(36px,5vw,54px) 0 0;display:flex;justify-content:center}
.pagination ul{list-style:none;margin:0;padding:0;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.pagination li{list-style:none;display:flex}
.pagination .page-numbers{min-width:40px;height:40px;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-2);font-family:var(--font-data);font-size:13.5px;font-weight:600;letter-spacing:.03em;transition:border-color .15s,color .15s,box-shadow .15s;gap:7px}
.pagination .page-numbers:hover{border-color:var(--border-strong);color:var(--fg)}
.pagination .page-numbers:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.pagination .page-numbers.current{background:var(--ink);border-color:var(--ink);color:var(--on-ink);cursor:default}
.pagination .page-numbers.dots{border:0;background:none;color:var(--muted)}
.pagination a.next .svg-rtl,.pagination li:first-child .page-numbers svg{transform:rotate(180deg)}
.pagination svg{display:block}

/* ---------- 404 空态 ---------- */
.empty-404{max-width:640px;margin-inline:auto;text-align:left;padding:20px 0}
.empty-404__no{font-family:var(--font-data);font-size:clamp(96px,16vw,170px);line-height:.9;letter-spacing:-.02em;color:var(--ink);margin:14px 0 22px}
.empty-404 h2{font-family:var(--font-head-serif);font-size:clamp(24px,3vw,34px);margin:0 0 14px}
.empty-404 p{color:var(--text-2);font-size:15.5px;line-height:1.9}
.empty-404__actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:34px}
.empty-404__actions .btn{min-height:46px}

/* ---------- 首页板块渲染容器 ---------- */
.sj-front{background:var(--bg)}
.section--tinted{background:color-mix(in oklab,var(--accent-soft) 46%,var(--bg));border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.section[data-block-disabled]{display:none}

/* ---------- 阅读进度条 ---------- */
.progress-bar i{background:linear-gradient(90deg,var(--accent),color-mix(in oklab,var(--accent) 45%,var(--border-strong)))}

/* ---------- iframe/媒体兼容 ---------- */
.entry-content iframe,.article-body iframe{max-width:100%}
.aligncenter{text-align:center}
.wp-caption{max-width:100%}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- 辅助文本工具 ---------- */
.has-download .feed-row__meta{border-bottom-color:transparent}

/* ---------- hero：无「今日选品」墨卡时的单栏布局 ---------- */
.hero__front--noplate{grid-template-columns:minmax(0,1fr);max-width:920px}
.section--toolbelt{padding-top:18px}

/* ---------- 榜单涨跌箭头方向与名称链接 ---------- */
.rank-row__delta.down svg{transform:rotate(180deg)}
.rank-row__name a{color:inherit}
.rank-row__name a:hover{color:var(--accent-deep)}

/* ---------- 复制轻提示（site.js） ---------- */
.sj-toast{position:fixed;left:50%;bottom:34px;z-index:400;transform:translate(-50%,14px);background:var(--ink);color:var(--on-ink);font-size:13.5px;font-family:var(--font-data);letter-spacing:.06em;padding:10px 20px;border-radius:999px;box-shadow:var(--shadow-md),inset 0 0 0 1px oklch(100% 0 0/.08);opacity:0;pointer-events:none;transition:opacity .22s,transform .28s cubic-bezier(.16,1,.3,1)}
.sj-toast.show{opacity:1;transform:translate(-50%,0)}

/* =====================================================================
   资源下载卡（dl-*）—— 文章页主模块
   ===================================================================== */
.dl{position:relative;max-width:760px;margin:clamp(20px,2.8vw,30px) auto 0;background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-md)}
.dl::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--accent);z-index:1}
.dl__bar{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;padding:15px 20px 13px;background:var(--ink);color:var(--on-ink)}
.dl__mark{width:8px;height:8px;background:var(--accent);transform:rotate(45deg);flex:none;align-self:center}
.dl__title{font-size:15px;font-weight:600;letter-spacing:.06em;color:var(--on-ink);display:inline-flex;align-items:center;gap:10px}
.dl__title em{font-style:normal;font-family:var(--font-data);font-size:10.5px;font-weight:400;letter-spacing:.24em;color:var(--on-ink-mut)}
.dl__count{margin-left:auto;font-family:var(--font-data);font-size:11.5px;letter-spacing:.14em;color:var(--on-ink-mut);text-transform:uppercase}
.dl__count::before{content:"";display:inline-block;width:4px;height:4px;background:var(--accent);transform:rotate(45deg);margin-right:9px;vertical-align:1px}
.dl__body{padding:8px 20px 12px}
.dl__info{display:flex;flex-wrap:wrap;gap:6px 26px;margin:0;padding:12px 0 14px;border-bottom:1px solid var(--border)}
.dl__info-item{display:inline-flex;gap:8px;align-items:baseline}
.dl__info-item dt{font-family:var(--font-data);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.dl__info-item dd{font-size:13.5px;font-weight:600;color:var(--ink)}
.dl__rows{list-style:none;margin:0;padding:0}
.dl-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px 16px;align-items:center;padding:15px 0;border-top:1px solid var(--border)}
.dl-row:first-child{border-top:0}
.dl-row__drive i{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:var(--accent-soft);color:var(--accent-deep);font-style:normal;font-family:var(--font-data);font-size:15px;font-weight:600;border:1px solid color-mix(in oklab,var(--accent) 24%,transparent)}
.dl-row__main{display:flex;flex-direction:column;gap:6px;min-width:0}
.dl-row__name{font-size:15.5px;font-weight:600;letter-spacing:-.01em;color:var(--fg);line-height:1.45}
.dl-row__meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 14px;font-family:var(--font-data);font-size:12px;color:var(--muted);letter-spacing:.03em}
.dl-row__pan{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text-2)}
.dl-row__pan::before{content:"";width:5px;height:5px;background:var(--accent);transform:rotate(45deg);flex:none}
.dl-row__note{color:var(--muted)}
.dl-row__zip code{font-size:12px}
.dl-row__code{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--font-data);font-size:12px;color:var(--muted);letter-spacing:.05em}
.dl-row__code-val{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--accent-deep);background:var(--accent-soft);border:1px solid color-mix(in oklab,var(--accent) 30%,transparent);padding:1px 9px;border-radius:6px;letter-spacing:.08em}
.dl-copy{min-height:34px;border-radius:8px}
.dl-copy.is-copied{background:var(--ok-soft);border-color:transparent;color:var(--ok)}
.dl-copy span{display:inline-flex;align-items:center}
.dl-row__go{min-height:38px;border-radius:8px;font-size:13.5px;align-self:center}
.dl__foot{padding:13px 20px 15px;border-top:1px solid var(--border);background:var(--surface-2)}
.dl__foot p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.85}
.dl__help{margin-top:5px!important;color:var(--text-2)}
.dl__help::before{content:"· 失效反馈：";color:var(--accent-text);font-weight:600}
@media (max-width:620px){
  .dl-row{grid-template-columns:40px minmax(0,1fr);gap:10px 12px}
  .dl-row__drive i{width:36px;height:36px;border-radius:9px;font-size:13px}
  .dl-row__go{grid-column:1/-1;width:100%}
  .dl__count{width:100%;margin-left:22px}
}

/* =====================================================================
   文章页补充（single/page）
   ===================================================================== */
.article-col{max-width:760px;margin-inline:auto}
/* 文章页封面：按原比例完整显示（不裁切）；竖图/长图限高居中，不撑爆版面。 */
.article-cover img{width:100%;height:auto;max-height:min(78vh,760px);object-fit:contain;background:var(--surface);display:block}
.meta-item--link{text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--accent) 40%,transparent);color:var(--accent-text)}
.meta-item--link:hover{color:var(--accent-deep)}
.share .icon-btn{box-shadow:none}
.page-links{margin:2.4em 0;font-family:var(--font-data);display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:13px}
.page-links .post-page-numbers{display:inline-flex;min-width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;color:var(--text-2);font-weight:600;padding:0 10px}
.page-links .post-page-numbers.current{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}

/* =====================================================================
   评论
   ===================================================================== */
.comments{margin-top:clamp(30px,4vw,44px);padding-top:26px;border-top:2px solid var(--ink)}
.comments__title{font-size:19px;font-weight:600;margin:0}
.comments__title .count{font-family:var(--font-data);color:var(--accent-text)}
.comment-list{list-style:none;margin:24px 0 0;padding:0}
.comment-list .comment{list-style:none}
.comment-body{position:relative;padding:20px 0 18px;border-top:1px solid var(--border);overflow:hidden}
.comment-list > .comment:first-child > .comment-body{border-top:0;padding-top:8px}
.comment-author .avatar{border-radius:50%;float:left;margin:0 14px 8px 0;background:var(--accent-soft)}
.comment-author b{font-size:14.5px;font-weight:600}
.comment-author cite{font-style:normal}
.comment-author .says{display:none}
.comment-metadata{font-family:var(--font-data);font-size:11.5px;letter-spacing:.05em;color:var(--muted)}
.comment-metadata a{color:var(--muted)}
.comment-content{margin:10px 0 0;font-size:15px;color:var(--text-2);line-height:1.9}
.comment-content p{margin:0 0 .8em}
.comment-content a{color:var(--accent-text)}
.reply{margin-top:8px}
.reply a{font-family:var(--font-data);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.reply a:hover{color:var(--accent-text)}
.comment-list .children{list-style:none;margin:0 0 0 34px;padding:0}
.comments-pagination{margin:20px 0 0}
.comments-pagination .nav-links{display:flex;justify-content:center;gap:6px}
.comments-pagination .page-numbers{display:inline-flex;min-width:36px;height:36px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;color:var(--text-2);font-family:var(--font-data);font-size:12.5px;font-weight:600;padding:0 11px}
.comments-pagination .page-numbers.current{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.comments__closed{font-size:13.5px;color:var(--muted);margin:18px 0 0}
.comment-respond{margin-top:30px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:22px 24px}
.comment-reply-title{font-size:16.5px;font-weight:600;margin:0 0 6px}
.comment-reply-title small{float:right;font-family:var(--font-data);font-weight:400}
.comment-reply-title #cancel-comment-reply-link{color:var(--danger-ink)}
.comment-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin-top:16px}
.comment-form .comment-notes,.comment-form .logged-in-as{grid-column:1/-1;font-size:12.5px;color:var(--muted);margin:0}
.comment-form label{display:block;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:5px}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{width:100%;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);color:var(--fg);padding:9px 13px;font-size:14px;font-family:inherit;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}
.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--accent-text);box-shadow:0 0 0 3px var(--accent-soft)}
.comment-form textarea{resize:vertical;min-height:120px}
.comment-form-comment,.comment-form-cookies-consent,.form-submit{grid-column:1/-1}
.comment-form-cookies-consent{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.comment-form-cookies-consent label{display:inline;margin:0;font-weight:400}
.comment-form .form-submit{margin:0}
.comment-form .submit{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 24px;border:0;border-radius:9px;background:var(--accent-strong);color:var(--on-accent);font-size:15px;font-weight:600;cursor:pointer;transition:background .16s;box-shadow:inset 0 1px 0 oklch(100% 0 0/.16)}
.comment-form .submit:hover{background:var(--accent-hover)}
.comment-form .submit:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
@media (max-width:620px){
  .comment-form{grid-template-columns:1fr}
  .comment-list .children{margin-left:16px}
}

/* 正文编辑器输出元素兜底 */
.article-body ol{list-style:decimal;margin:1.6em 0;padding-left:1.5em}
.article-body ol li{padding-left:.2em}
.article-body ol li::before{content:none}
.article-body ol li{list-style:decimal}
.article-body table{width:100%;border-collapse:collapse;margin:2.2em 0;font-size:14.5px}
.article-body th,.article-body td{border:1px solid var(--border);padding:9px 13px;text-align:left}
.article-body th{background:var(--surface-2);font-weight:600;color:var(--fg)}
.article-body hr{border:0;border-top:1px solid var(--border-strong);margin:2.6em 0}
.article-body img{max-width:100%;height:auto}
.article-body .aligncenter{display:block;margin-inline:auto}
.article-body .wp-caption{max-width:100%}
.pn--ghost{border-color:transparent!important;background:transparent!important;pointer-events:none}

/* =====================================================================
   首页「下载资源 · 小卡列表」（reslist-*）
   ===================================================================== */
.reslist{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-sm)}
.reslist__row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px 16px;align-items:center;padding:13px 18px;transition:background .18s}
.reslist__row + .reslist__row{border-top:1px solid var(--border)}
.reslist__row:hover{background:color-mix(in oklab,var(--accent) 4.5%,transparent)}
.reslist__badge{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--font-data);font-size:14px;font-weight:600;font-style:normal;transition:border-color .18s,color .18s,transform .18s cubic-bezier(.16,1,.3,1)}
.reslist__row:hover .reslist__badge{border-color:color-mix(in oklab,var(--accent) 40%,var(--border-strong));color:var(--accent-text)}
.reslist__main{min-width:0;display:flex;flex-direction:column;gap:5px}
.reslist__title{font-size:15.5px;font-weight:600;line-height:1.45;letter-spacing:-.01em}
.reslist__title a{color:var(--fg)}
.reslist__title a:hover{color:var(--accent-deep)}
.reslist__meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 13px;font-family:var(--font-data);font-size:12px;color:var(--muted);letter-spacing:.03em}
.reslist__drive{display:inline-flex;align-items:center;gap:7px;font-weight:600;color:var(--text-2)}
.reslist__drive::before{content:"";width:5px;height:5px;background:var(--accent);transform:rotate(45deg);flex:none}
.reslist__act{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end}
.reslist__pwd{font-family:var(--font-mono);font-size:12.5px;font-weight:600;color:var(--accent-deep);background:var(--accent-soft);border:1px solid color-mix(in oklab,var(--accent) 30%,transparent);border-radius:6px;padding:3px 9px;letter-spacing:.08em}
.reslist__copy{min-height:34px;width:34px;padding:0;border-radius:8px;justify-content:center}
.reslist__copy.is-copied{background:var(--ok-soft);border-color:transparent;color:var(--ok)}
.reslist__go{min-height:36px;border-radius:8px;font-size:13.5px}
.reslist__go svg{transition:transform .18s cubic-bezier(.16,1,.3,1)}
.reslist__go:hover svg{transform:translateX(3px)}
@media (max-width:720px){
  .reslist__row{grid-template-columns:38px minmax(0,1fr);gap:10px 12px;padding:13px 14px}
  .reslist__badge{width:36px;height:36px;border-radius:9px;font-size:13px}
  .reslist__act{grid-column:1/-1;justify-content:flex-end;margin-top:2px}
  .reslist__act .btn{min-height:38px}
}
@media (prefers-reduced-motion:reduce){
  .reslist__row,.reslist__badge,.reslist__go svg{transition:none}
}

/* =====================================================================
   首页「下载资源 · 卡片墙」（dlc-*）
   ===================================================================== */
.dlc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.dlc{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:none;transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s ease,border-color .18s ease}
.dlc::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.16,1,.3,1)}
.dlc:hover{border-color:color-mix(in oklab,var(--accent) 34%,var(--border-strong));transform:translateY(-3px);box-shadow:var(--shadow-md)}
.dlc:hover::before{transform:scaleX(1)}
.dlc__top{display:flex;align-items:center;gap:12px;padding:16px 16px 0}
.dlc__badge{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--ink);color:var(--on-ink);font-family:var(--font-data);font-size:15px;font-weight:600;font-style:normal;box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--accent) 45%,transparent);transition:transform .3s cubic-bezier(.16,1,.3,1),background .2s}
.dlc:hover .dlc__badge{background:var(--accent-deep);transform:rotate(-6deg)}
.dlc__top-main{min-width:0;display:flex;flex-direction:column;gap:2px;flex:1}
.dlc__drive{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--text-2);display:inline-flex;align-items:center;gap:7px}
.dlc__drive::before{content:"";width:5px;height:5px;background:var(--accent);transform:rotate(45deg);flex:none}
.dlc__time{margin-left:auto;font-family:var(--font-data);font-size:11.5px;color:var(--muted);letter-spacing:.05em;white-space:nowrap}
.dlc__body{padding:12px 16px 14px;display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.dlc__title{font-size:15.5px;font-weight:600;line-height:1.5;letter-spacing:-.01em;margin:0}
.dlc__title a{color:var(--fg);transition:color .15s}
.dlc__title a:hover{color:var(--accent-deep)}
.dlc__meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;font-size:12px;font-family:var(--font-data);color:var(--muted);line-height:1.6}
.dlc__size{display:inline-flex;align-items:center;padding:1px 8px;border:1px solid var(--border);border-radius:999px;color:var(--text-2)}
.dlc__note{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:2px 0 0;font-size:12.5px;color:var(--muted);line-height:1.7}
.dlc__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 16px 13px;border-top:1px solid var(--border)}
.dlc__foot-left{display:inline-flex;align-items:center;gap:7px;min-width:0}
.dlc__pwd{font-family:var(--font-mono);font-size:12.5px;font-weight:600;color:var(--accent-deep);background:var(--accent-soft);border:1px solid color-mix(in oklab,var(--accent) 30%,transparent);border-radius:6px;padding:3px 9px;letter-spacing:.08em;white-space:nowrap}
.dlc__copy{width:30px;height:30px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text-2);cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.dlc__copy:hover{border-color:var(--accent-text);color:var(--accent-text)}
.dlc__copy:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.dlc__copy.is-copied{background:var(--ok-soft);border-color:transparent;color:var(--ok)}
.dlc__free{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-family:var(--font-data);color:var(--ok);font-weight:600;letter-spacing:.04em}
.dlc__free::before{content:"";width:5px;height:5px;background:currentColor;transform:rotate(45deg)}
.dlc__go{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--fg);font-size:12.5px;font-weight:600;white-space:nowrap;transition:border-color .15s,color .15s,background .15s}
.dlc__go:hover{border-color:var(--ink);color:var(--accent-deep);background:var(--surface-2)}
.dlc__go svg{transition:transform .18s cubic-bezier(.16,1,.3,1)}
.dlc__go:hover svg{transform:translateX(3px)}
@media (max-width:620px){
  .dlc-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .dlc,.dlc__badge,.dlc__go svg,.dlc::before{transition:none}
}

/* =====================================================================
   首屏动效再设计：去掉整区左右扫光 → 顶部中心扩散光（标题逐行扫光保留原样）
   ===================================================================== */
.hero__light::after{display:none}
.hero__light::before{content:"";position:absolute;top:-58%;left:50%;width:130%;aspect-ratio:2.4/1;transform:translate(-50%,-8%) scale(.62);background:radial-gradient(closest-side,oklch(99% 0 220/.5),transparent 72%);animation:heroBloom 7s ease-in-out infinite;filter:blur(2px)}
@keyframes heroBloom{0%,100%{opacity:.4;transform:translate(-50%,-10%) scale(.6)}50%{opacity:.95;transform:translate(-50%,-4%) scale(.82)}}
@media (prefers-reduced-motion:reduce){
  .hero__light::before{display:none}
}

/* =====================================================================
   板块外观模式：密度 + 墨夜底（P0）
   ===================================================================== */
.section--dense{padding:clamp(30px,4vw,54px) 0}
.section--airy{padding:clamp(70px,9vw,124px) 0}

.section--ink{background:var(--ink);color:var(--on-ink);border-top:1px solid color-mix(in oklab,var(--accent) 30%,transparent);border-bottom:1px solid color-mix(in oklab,var(--accent) 30%,transparent)}
.section--ink .sec-head h2{color:var(--on-ink)}
.section--ink .sec-head h2 em{color:var(--on-ink-mut)}
.section--ink .sec-sub{color:var(--on-ink-2)}
.section--ink .idx-no{color:var(--accent)}
.section--ink .link-arrow{color:var(--accent)}
.section--ink .link-arrow:hover{color:var(--on-ink)}
.section--ink .sec-note{color:var(--on-ink-mut)}
.section--ink .feed-row{border-color:color-mix(in oklab,var(--accent) 16%,transparent)}
.section--ink .feed-row h3{color:var(--on-ink)}
.section--ink .feed-row p{color:var(--on-ink-2)}
.section--ink .feed-row__meta,.section--ink .feed-row__foot{color:var(--on-ink-mut)}
.section--ink .feed-row__meta a,.section--ink .feed-row__meta .entry-meta{color:var(--on-ink-2)}
.section--ink .brief{border-color:color-mix(in oklab,var(--accent) 18%,transparent)}
.section--ink .brief h4{color:var(--on-ink)}
.section--ink .brief:hover{background:oklch(100% 0 0/.04)}
.section--ink .brief__more{color:var(--on-ink-mut)}
.section--ink .brief__cat{color:var(--on-ink-mut)}
.section--ink .belt{border-color:color-mix(in oklab,var(--accent) 24%,transparent)}
.section--ink .belt__item{border-color:color-mix(in oklab,var(--accent) 24%,transparent);background:color-mix(in oklab,var(--ink-2) 80%,transparent)}
.section--ink .belt__name{color:var(--on-ink-2)}
.section--ink .belt__note{color:var(--on-ink-mut)}
.section--ink .rank-row{border-color:color-mix(in oklab,var(--accent) 16%,transparent)}
.section--ink .rank-col h3{color:var(--on-ink-2)}
.section--ink .rank-row__name a{color:var(--on-ink)}
.section--ink .rank-track{background:oklch(100% 0 0/.1)}

/* =====================================================================
   首屏选品卡：读数面板化（P0）+ 卡片交互统一
   ===================================================================== */
.hero__plate-link{margin-top:clamp(16px,2vw,22px);position:relative;z-index:1}
.hero__plate-link::before{content:"RUN";font-family:var(--font-data);font-size:10px;letter-spacing:.24em;color:var(--on-ink-mut);margin-right:12px}
.hero__plate-live{z-index:0}

/* 工具/教程卡 hover：顶部青色标尺扫入（与 news-card 呼应） */
.card.tool-card{overflow:hidden;position:relative}
.card.tool-card::before,.card.tut-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.16,1,.3,1);z-index:2}
.card.tool-card:hover::before,.card.tut-card:hover::before{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){
  .hero__plate-link{transition:none}
  .card.tool-card::before,.card.tut-card::before{transition:none}
}

/* =====================================================================
   首屏墨夜终端版（试用）：hero--ink，后台「首屏外观」可一键切回纸白
   ===================================================================== */
.hero--ink{color:var(--on-ink);border-bottom:1px solid color-mix(in oklab,var(--accent) 26%,transparent);
  background-image:
    radial-gradient(85% 85% at 82% 16%,rgba(38,217,220,.3),rgba(38,217,220,0) 70%),
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(135deg,#0e161f 0%,#122733 60%,#0b2a30 100%);
  background-size:auto,72px 72px,72px 72px,auto}
.hero--ink .hero__kicker{color:var(--accent)}
.hero--ink h1{color:var(--on-ink)}
.hero--ink h1 em{color:var(--accent)}
.hero--ink .front-dek{color:var(--on-ink-2)}
.hero--ink .front-dek b{color:var(--on-ink)}
.hero--ink .cta-num{background:color-mix(in oklab,var(--on-ink) 4%,transparent);border-color:oklch(100% 0 0/.22);color:var(--on-ink);box-shadow:none}
.hero--ink .cta-num b{color:var(--accent)}
.hero--ink .cta-num:hover{border-color:var(--accent);box-shadow:inset 0 -2px 0 0 var(--accent)}
.hero--ink .hero__contents::before{background:color-mix(in oklab,var(--on-ink) 72%,transparent)}

/* 今日选品卡：纸白反色 */
.hero--ink .hero__plate{background:var(--paper);color:var(--fg);border:1px solid color-mix(in oklab,var(--accent) 34%,var(--border-strong));box-shadow:0 2px 8px oklch(0% 0 0/.28),0 34px 70px -26px oklch(0% 0 0/.6)}
.hero--ink .hero__plate::after{box-shadow:inset 0 0 0 1px oklch(18% 0.01 258/.06)}
.hero--ink .hero__plate-no{color:var(--muted)}
.hero--ink .hero__plate-tag{color:var(--text-2)}
.hero--ink .hero__plate-tag .dot{background:var(--accent)}
.hero--ink .hero__plate-name{color:var(--fg)}
.hero--ink .hero__plate-line{color:var(--text-2)}
.hero--ink .hero__plate-tags li{border-color:var(--border-strong);color:var(--text-2)}
.hero--ink .hero__plate-link{color:var(--accent-text)}
.hero--ink .hero__plate-link::before{color:var(--muted)}
.hero--ink .hero__plate-link:hover{color:var(--accent-deep);border-bottom-color:var(--accent-deep)}
.hero--ink .hero__guide{border-top-color:var(--border-strong)}
.hero--ink .hero__guide-k{color:var(--muted)}
.hero--ink .hero__guide-t{color:var(--text-2)}
.hero--ink .hero__guide-m{color:var(--muted)}
.hero--ink .hero__guide-go{color:var(--accent-text)}
.hero--ink .hero__guide-main:hover .hero__guide-t{color:var(--accent-deep)}
.hero--ink .hero__guide-main:hover .hero__guide-go{color:var(--accent-deep)}

/* 栏目索引三格：半透明玻璃纸卡 */
.hero--ink .hero__contents-cell{background:color-mix(in oklab,var(--on-ink) 6%,transparent);border-color:oklch(100% 0 0/.14);box-shadow:none}
.hero--ink .hero__contents-cell:hover{border-color:color-mix(in oklab,var(--accent) 55%,transparent)}
.hero--ink .hero__contents-name{color:var(--on-ink)}
.hero--ink .hero__contents-desc{color:var(--on-ink-2)}
.hero--ink .hero__contents-count{color:var(--on-ink-mut)}
.hero--ink .hero__contents-count b{color:var(--on-ink)}
.hero--ink .hero__contents-code{color:var(--accent)}
.hero--ink .hero__contents-go{color:var(--on-ink-mut)}
.hero--ink .hero__contents-cell:hover .hero__contents-name{color:var(--accent)}
.hero--ink .hero__contents-cell:hover .hero__contents-go{color:var(--accent)}
/* 手机端三格横排：墨夜皮肤保留玻璃卡与描边（与 PC 同构），仅由 main.css 压缩内距。 */

/* =====================================================================
   首屏命令搜索栏（hero-cmd）& 资讯时间轨道（tline）—— P1
   ===================================================================== */
.hero-cmd{display:flex;align-items:center;gap:12px;max-width:520px;min-height:50px;margin-top:clamp(20px,2.6vw,30px);padding:0 8px 0 16px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color .18s,box-shadow .18s}
.hero-cmd:focus-within{border-color:var(--accent-text);box-shadow:0 0 0 3px var(--accent-soft)}
.hero-cmd__tag{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--accent-text);line-height:1}
.hero-cmd input{flex:1;min-width:0;height:46px;border:0;background:none;font-size:14.5px;color:var(--fg);font-family:inherit;outline:none}
.hero-cmd input::placeholder{color:var(--muted)}
.hero-cmd kbd{flex:none;font-family:var(--font-data);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--muted);border:1px solid var(--border-strong);border-radius:7px;padding:4px 10px;background:var(--surface-2)}
.hero--ink .hero-cmd{background:color-mix(in oklab,var(--on-ink) 5%,transparent);border-color:oklch(100% 0 0/.2);box-shadow:none}
.hero--ink .hero-cmd:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}
.hero--ink .hero-cmd input{color:var(--on-ink)}
.hero--ink .hero-cmd input::placeholder{color:var(--on-ink-mut)}
.hero--ink .hero-cmd kbd{color:var(--on-ink-2);border-color:oklch(100% 0 0/.18);background:oklch(100% 0 0/.06)}
@media (max-width:560px){
  .hero-cmd kbd{display:none}
}

.tline{position:relative;display:flex;flex-direction:column}
.tline::before{content:"";position:absolute;left:96px;top:8px;bottom:8px;width:1px;background:var(--border-strong)}
.tline__row{display:grid;grid-template-columns:84px 26px minmax(0,1fr);gap:0;align-items:stretch;padding:0;text-decoration:none}
.tline__when{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:2px;padding:15px 0;position:relative;z-index:1}
.tline__when b{font-family:var(--font-data);font-size:19px;font-weight:600;letter-spacing:.01em;color:var(--fg);line-height:1.1}
.tline__when i{font-style:normal;font-family:var(--font-data);font-size:11px;letter-spacing:.12em;color:var(--muted)}
.tline__axis{position:relative;z-index:1;display:flex;justify-content:center}
.tline__dot{width:11px;height:11px;border-radius:50%;border:2.5px solid var(--accent);background:var(--surface);margin-top:22px;box-shadow:0 0 0 3px var(--accent-soft);transition:transform .18s,box-shadow .18s}
.tline__body{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 4px 14px 18px;min-width:0;border-bottom:1px solid var(--border)}
.tline__row:last-child .tline__body{border-bottom:0}
.tline__meta{display:inline-flex;align-items:center;gap:8px}
.tline__meta .tag-pill{margin:0}
.tline__min{font-family:var(--font-data);font-size:11.5px;letter-spacing:.06em;color:var(--muted)}
.tline__title{font-size:17px;font-weight:600;line-height:1.5;letter-spacing:-.012em;color:var(--fg);transition:color .15s}
.tline__row:hover .tline__title{color:var(--accent-deep)}
.tline__row:hover .tline__dot{transform:scale(1.22);box-shadow:0 0 0 5px var(--accent-soft)}
.tline__ex{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;font-size:13.5px;color:var(--text-2);line-height:1.7}
.tline__more{margin-top:2px;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-data);font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);transition:color .15s}
.tline__row:hover .tline__more{color:var(--accent-text)}
.tline__more svg{transition:transform .18s cubic-bezier(.16,1,.3,1)}
.tline__row:hover .tline__more svg{transform:translateX(3px)}
@media (max-width:620px){
  .tline::before{left:60px}
  .tline__row{grid-template-columns:48px 22px minmax(0,1fr)}
  .tline__when b{font-size:16px}
  .tline__when i{font-size:10px}
  .tline__body{padding-left:12px}
}
/* 墨夜板块内时间轨道 */
.section--ink .tline::before{background:oklch(100% 0 0/.18)}
.section--ink .tline__when b{color:var(--on-ink)}
.section--ink .tline__when i{color:var(--on-ink-mut)}
.section--ink .tline__dot{background:var(--ink);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 24%,transparent)}
.section--ink .tline__body{border-color:oklch(100% 0 0/.14)}
.section--ink .tline__title{color:var(--on-ink)}
.section--ink .tline__ex{color:var(--on-ink-2)}
.section--ink .tline__more{color:var(--on-ink-mut)}
.section--ink .tline__row:hover .tline__title{color:var(--accent)}
.section--ink .tline__min{color:var(--on-ink-mut)}
@media (prefers-reduced-motion:reduce){
  .hero-cmd,.tline__dot,.tline__title,.tline__more svg{transition:none}
}

/* =====================================================================
   眉线读数刻度 + 场景直达启动条 + 板块数据网格母题 —— P1
   ===================================================================== */
.sec-head__readout{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-data);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);white-space:nowrap;padding-bottom:4px}
.sec-head__readout::before{content:"";width:5px;height:5px;background:var(--accent);transform:rotate(45deg);flex:none;opacity:.8}
@media (max-width:880px){
  .sec-head__readout{display:none}
}

.launch{display:flex;align-items:stretch;flex-wrap:wrap;gap:14px 22px;margin:-8px 0 26px;padding:15px 18px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);box-shadow:var(--shadow-sm)}
.launch__label{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:112px;padding-right:18px;border-right:1px solid var(--border);font-family:var(--font-data);font-size:10px;font-weight:600;letter-spacing:.26em;color:var(--accent-text);text-transform:uppercase;line-height:1.2}
.launch__label::before{content:"";width:8px;height:8px;background:var(--ok);border-radius:50%;animation:sjLaunchPulse 2.4s ease-out infinite}
.launch__label span{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;letter-spacing:.06em;color:var(--text-2);text-transform:none}
@keyframes sjLaunchPulse{0%{box-shadow:0 0 0 0 color-mix(in oklab,var(--ok) 45%,transparent)}75%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.launch__keys{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.launch__key{display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:0 16px 0 6px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2);color:var(--text-2);font-size:13px;font-weight:600;transition:border-color .16s,background-color .16s,color .16s,transform .16s,box-shadow .16s}
.launch__key i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-family:var(--font-data);font-size:10.5px;font-weight:600;letter-spacing:0;font-style:normal;transition:background-color .16s,color .16s,transform .16s}
.launch__key::after{content:"→";font-size:11px;line-height:1;color:var(--accent);opacity:0;transform:translateX(-5px);transition:opacity .16s,transform .2s cubic-bezier(.16,1,.3,1)}
.launch__key:hover{border-color:var(--ink);background:var(--ink);color:var(--on-ink);transform:translateY(-2px);box-shadow:0 10px 22px -12px oklch(0% 0 0/.4)}
.launch__key:hover i{background:var(--accent);color:var(--on-accent);transform:scale(1.06)}
.launch__key:hover::after{opacity:1;transform:none}
.launch__key:active{transform:translateY(0) scale(.98)}
.section--ink .launch{background:color-mix(in oklab,var(--on-ink) 5%,transparent);border-color:oklch(100% 0 0/.14)}
.section--ink .launch__label{color:var(--accent);border-color:oklch(100% 0 0/.16)}
.section--ink .launch__label span{color:var(--on-ink-2)}
.section--ink .launch__key{background:oklch(100% 0 0/.06);border-color:oklch(100% 0 0/.18);color:var(--on-ink-2)}
.section--ink .launch__key i{background:oklch(100% 0 0/.12);color:var(--accent)}
.section--ink .launch__key:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 12px 26px -12px color-mix(in oklab,var(--accent) 55%,transparent)}
.section--ink .launch__key:hover i{background:var(--on-accent);color:var(--accent)}
.section--ink .launch__key:hover::after{color:var(--on-accent)}
@media (max-width:620px){
  .launch{padding:13px 14px;gap:12px}
  .launch__label{min-width:0;flex-basis:100%;flex-direction:row;align-items:center;gap:7px;padding-right:0;border-right:0}
}

/* =====================================================================
   角标体系（emblem）：资讯=原稿徽标；工具=站点三块几何；教程=三级阶梯
   ===================================================================== */
.kicker--emblem::before{content:none}
.kicker--emblem{display:inline-flex;align-items:center;gap:10px}
.sj-emblem{display:inline-flex;flex:none;overflow:visible}
.em-fg{fill:var(--ink)}
.em-ac{fill:var(--accent)}
.sec-head__ttl .sj-emblem{width:clamp(15px,1.6vw,20px);height:clamp(15px,1.6vw,20px);margin:0;transform:none}
.section--ink .em-fg{fill:var(--on-ink)}
.hero--ink .em-fg{fill:var(--on-ink)}

/* 板块眉题 v2：角标与编号并入标题行（同基线，标题不“悬空”），副文案独立成行 */
.sec-head__g{min-width:0}
.sec-head__g .sec-head__ttl{display:inline-flex;align-items:baseline;flex-wrap:wrap;column-gap:clamp(10px,.9vw,15px);row-gap:3px;margin:0;max-width:100%}
.sec-head__g .sec-head__ttl .sj-emblem{align-self:center}
.sec-head__g .sec-head__ttl .idx-no{padding-bottom:0;line-height:1.2;font-size:clamp(15px,1.5vw,19px);color:var(--accent-text);letter-spacing:.1em}
.sec-head__g .sec-head__ttl .idx-no--mark{height:.85em}
.sec-head__g .sec-head__ttl .idx-no--mark::before{width:11px;height:11px;margin-bottom:1px}
.sec-head__g .sec-head__ttl em{margin-left:clamp(5px,.7vw,10px)}
.sec-head__g .sec-sub{margin:clamp(10px,1.2vw,14px) 0 0;max-width:62ch}
.section--ink .sec-head__g .idx-no{color:var(--accent)}
@media (max-width:680px){
  .sec-head__g .sec-head__ttl{column-gap:8px}
}

/* =====================================================================
   P1 补完：卡片 hover 角标化（右上角标滑入，取代网格纹理）
   ===================================================================== */
.card{position:relative}
.card.tool-card::after,.card.tut-card::after,.news-card::after,.dlc::after{content:"";position:absolute;top:10px;right:10px;width:13px;height:13px;border-top:2px solid var(--accent);border-right:2px solid var(--accent);opacity:0;transform:translate(4px,-4px) scale(.85);transition:opacity .2s ease,transform .24s cubic-bezier(.16,1,.3,1);pointer-events:none;z-index:3}
.card.tool-card:hover::after,.card.tut-card:hover::after,a.card:hover .news-card::after,.dlc:hover::after{opacity:1;transform:none}
.news-card::after{top:auto;right:auto;bottom:10px;left:10px;border:0;border-bottom:2px solid var(--accent);border-left:2px solid var(--accent);transform:translate(-4px,4px) scale(.85)}

/* =====================================================================
   P2：频道三色差（工具青 / 教程墨金 / 资讯蓝，低饱和，仅频道语境）
   ===================================================================== */
/* 亮版 --ch-ac 用于图形/描边/角标（非文本 ≥3:1）；文本一律用深版 --ch-ink（≥4.5:1） */
.ch-tools{--ch-ac:oklch(55% 0.085 188);--ch-ink:oklch(40% 0.095 190)}
.ch-tuts{--ch-ac:oklch(61% 0.1 92);--ch-ink:oklch(46% 0.11 95)}
.ch-news{--ch-ac:oklch(58% 0.075 252);--ch-ink:oklch(44% 0.09 252)}
.ch-tools .em-ac,.ch-tuts .em-ac,.ch-news .em-ac{fill:var(--ch-ac)}
.ch-tools .page-head .kicker,.ch-tuts .page-head .kicker,.ch-news .page-head .kicker{color:var(--ch-ink)}
.ch-tools .page-head .kicker .dot,.ch-tuts .page-head .kicker .dot,.ch-news .page-head .kicker .dot{background:var(--ch-ac)}
.ch-tools .toolbar .chip:hover,.ch-tuts .toolbar .chip:hover,.ch-news .toolbar .chip:hover{border-color:var(--ch-ac);color:var(--fg)}
.ch-tools .panel__title::before,.ch-tuts .panel__title::before,.ch-news .panel__title::before{background:var(--ch-ac)}
.ch-tools .result-count b,.ch-tuts .result-count b,.ch-news .result-count b{color:var(--ch-ink)}
.ch-tools .rail .mini-item__meta .dot,.ch-tuts .rail .mini-item__meta .dot,.ch-news .rail .mini-item__meta .dot{background:var(--ch-ac)}

/* =====================================================================
   P2：排版细节与打印样式
   ===================================================================== */
.article-hero h1{letter-spacing:.005em}
.hero h1{letter-spacing:.008em}
.feed-row h3,.tline__title{text-wrap:pretty}
@media print{
  .meta-bar,.site-header,.drawer,.to-top,.sj-toast,.progress-bar,.hero__light,.hero__amb,.pagination,.comment-form,.nav__menu-wrap,.belt{display:none!important}
  html,body{background:#fff!important;color:#000!important}
  .wrap{max-width:none}
  .section,.section--tinted,.section--ink,.hero--ink{background:#fff!important;color:#000!important}
  .hero--ink h1,.hero--ink .front-dek,.hero--ink .hero__kicker,.section--ink h2,.section--ink .sec-sub,.section--ink .feed-row h3{color:#000!important}
  .hero--ink .hero__contents-cell,.hero--ink .hero__plate{background:#fff!important;border:1px solid #999!important;box-shadow:none!important}
  .hero--ink .hero__plate-name,.hero--ink .hero__plate-line,.hero--ink .hero__contents-name,.hero--ink .hero__contents-desc{color:#000!important}
  .card,.dlc,.dl,.panel,.widget{box-shadow:none!important;border-color:#bbb!important}
  a{color:#000;text-decoration:underline}
  .kicker,.em-fg{color:#000!important;fill:#000!important}
  .em-ac{fill:#000!important}
  img{max-width:100%!important}
  h1,h2,h3{break-after:avoid-page}
  .feed-row,.tline__row,.dl-row,.comment-body{break-inside:avoid-page}
}

/* =====================================================================
   文章页：编辑纸页框架（sheet + 右侧信息栏）
   ===================================================================== */
.layout-article--frame{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(26px,4vw,52px);align-items:start;padding:clamp(26px,4vw,44px) 0 clamp(30px,5vw,60px)}
.article-sheet{position:relative;background:var(--surface);border:1px solid var(--border-strong);border-top:0;box-shadow:var(--shadow-sm);padding:clamp(26px,3.6vw,46px)}
.article-sheet::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent) 0 240px,var(--ink) 240px 100%)}
.article-sheet::after{content:"";position:absolute;inset:10px;pointer-events:none;border:1px solid var(--border);opacity:.6}
.article-sheet > *{position:relative;z-index:1}
.article-sheet .article-hero{padding:4px 0 clamp(22px,3vw,34px);border-bottom:1px solid var(--border-strong)}
.article-sheet .article-hero h1{font-size:clamp(26px,3.6vw,44px);max-width:24ch}
.article-sheet .article-meta{margin-top:26px;padding-bottom:6px}
.article-sheet .dl{margin:clamp(22px,3vw,30px) 0 0}
.article-sheet .article-cover{margin-top:clamp(24px,3.2vw,36px)}
.article-sheet .tag-row{padding-top:24px}
.article-sheet .author-box{margin-top:24px}
.article-sheet .comments{padding-bottom:8px}
.article-sheet .article-body p,.article-sheet .article-body li{font-size:16.5px}
.sj-article--page .article-sheet .article-body{max-width:72ch}

/* 右侧信息栏 */
.article-rail{display:flex;flex-direction:column;gap:18px}
.sj-rail-card{display:block}
.sj-empty{display:none!important}
.sj-rail-card .panel__body{padding-top:10px}
.sj-toc{list-style:none;margin:0;padding:0;counter-reset:stoc}
.sj-toc li{position:relative;margin:0}
.sj-toc li.is-sub{padding-left:16px}
.sj-toc a{display:block;padding:8px 0 8px 16px;font-size:13.5px;line-height:1.55;color:var(--text-2);border-bottom:1px solid var(--border);position:relative;transition:color .15s,padding-left .15s}
.sj-toc li:last-child a{border-bottom:0}
.sj-toc a::before{content:"";position:absolute;left:0;top:13px;width:5px;height:5px;background:var(--border-strong);transform:rotate(45deg);transition:background .15s}
.sj-toc li.is-sub a::before{width:4px;height:4px;left:4px}
.sj-toc a:hover{color:var(--accent-deep);padding-left:20px}
.sj-toc a:hover::before{background:var(--accent)}
.sj-rail-info{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px;margin:0;padding:6px 0 2px}
.sj-rail-info .info-item{display:flex;flex-direction:column;gap:2px;min-width:0}
.sj-rail-info .info-item i{font-family:var(--font-data);font-size:10.5px;font-style:normal;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.sj-rail-info .info-item b{font-size:13px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sj-rail-dl{display:block;margin-top:2px}
.sj-rail-dl .btn{width:100%;justify-content:space-between}
.sj-rail-related{display:flex;flex-direction:column}
.sj-rail-related a{padding:11px 0;border-bottom:1px solid var(--border);font-size:13.5px;font-weight:500;line-height:1.55;color:var(--text-2);transition:color .15s}
.sj-rail-related a:last-child{border-bottom:0}
.sj-rail-related a:hover{color:var(--accent-deep)}
.sj-rail-related .mono{display:block;font-size:11px;color:var(--muted);letter-spacing:.06em;margin-top:2px}
@media (max-width:1024px){
  .layout-article--frame{grid-template-columns:minmax(0,1fr);gap:24px}
  .article-rail{position:static;display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .sj-rail-card--related{grid-column:1/-1}
}
@media (max-width:640px){
  .article-rail{grid-template-columns:1fr}
  .article-sheet{padding:22px 18px}
  .article-sheet::after{inset:6px}
}
.layout-article--page{grid-template-columns:minmax(0,1fr);max-width:920px;margin-inline:auto;width:100%}
.layout-article--page .article-sheet .article-body{max-width:74ch}
@media print{
  .article-sheet{border:0!important;box-shadow:none!important;padding:0!important}
  .article-sheet::before,.article-sheet::after{display:none!important}
  .article-rail{display:none!important}
}

/* =====================================================================
   P2：频道色向内容区渗透 + 搜索/404 引导（em-stroke 描边角标）
   ===================================================================== */
.em-stroke{fill:none;stroke-width:1.7;stroke-linecap:round}
.em-stroke.em-fg{stroke:var(--ink)}
.em-stroke.em-ac{stroke:var(--accent)}
.ch-tools .em-stroke.em-ac,.ch-tuts .em-stroke.em-ac,.ch-news .em-stroke.em-ac{stroke:var(--ch-ac)}

/* 频道内容区色差 */
.ch-tools .feed-row::before,.ch-tuts .feed-row::before,.ch-news .feed-row::before{background:var(--ch-ac)}
.ch-tools .card.tool-card::before,.ch-tuts .card.tool-card::before,.ch-news .card.tool-card::before,
.ch-tools .card.tut-card::before,.ch-tuts .card.tut-card::before,.ch-news .card.tut-card::before{background:var(--ch-ac)}
.ch-tools .card.tool-card::after,.ch-tuts .card.tool-card::after,.ch-news .card.tool-card::after,
.ch-tools .card.tut-card::after,.ch-tuts .card.tut-card::after,.ch-news .card.tut-card::after{border-color:var(--ch-ac)}
.ch-tuts .tline__dot{border-color:var(--ch-ac)}
.ch-news .flash-item time{color:var(--ch-ink)}
.ch-tools .feed-row__meta .tag-pill--accent,.ch-tuts .feed-row__meta .tag-pill--accent,.ch-news .feed-row__meta .tag-pill--accent{color:var(--ch-ink)}
.ch-tools .feed-row:hover h3,.ch-tuts .feed-row:hover h3,.ch-news .feed-row:hover h3{color:var(--ch-ink)}

/* 搜索/404 空态引导 */
.empty-guide{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:22px 0 6px}
.empty-guide__label{font-family:var(--font-data);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.empty-guide .tag-cloud{display:flex;flex-wrap:wrap;gap:8px}
.empty-guide .tag-pill{min-height:30px;display:inline-flex;align-items:center}
.empty-guide .tag-pill:hover{border-color:var(--accent-text);color:var(--accent-text)}
.kicker--emblem .sj-emblem{margin-right:0}
.kicker--emblem .sj-emblem + *{margin-left:0}

/* =====================================================================
   移动端手感复查（P2 · touch/overflow/iOS/节奏）
   ===================================================================== */
html{-webkit-tap-highlight-color:transparent;text-size-adjust:100%}
a,button{-webkit-touch-callout:none}
.brand{min-width:0}
.brand__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav{gap:14px}
.tool-card__foot,.tut-card__meta,.dl-row__meta,.sj-rail-info{min-width:0}
.tool-card__foot{flex-wrap:wrap}
.article-body table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.article-body img,.article-body iframe{max-width:100%}
.sj-toast{bottom:calc(34px + env(safe-area-inset-bottom,0px))}
.foot-bottom{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.to-top{bottom:calc(22px + env(safe-area-inset-bottom,0px));right:max(22px,env(safe-area-inset-right,0px))}
@media (max-width:880px){
  .chip{min-height:38px}
  .tag-pill{min-height:32px}
  .launch__key{min-height:40px}
}
@media (max-width:620px){
  .chip,.btn--sm,.launch__key,.dl-row__go,.dlc__go,.reslist__go{min-height:44px}
  .chip{padding:0 15px;font-size:13.5px}
  .feed-row__meta{flex-wrap:wrap}
  .search input,.hero-cmd input,.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{font-size:16px}
  .hero-cmd input{height:48px}
  .brief-grid[style]{grid-template-columns:1fr!important}
  .toolbar .search{min-width:0}
  .pagination .page-numbers{min-width:44px;height:44px}
  .sj-toc a{padding:10px 0 10px 16px}
  .sj-rail-info .info-item b{white-space:normal;overflow-wrap:anywhere}
  .comment-form .submit{width:100%}
  .article-meta{gap:10px 12px}
  .article-meta .who{flex:1 1 100%}
  .article-meta .share{margin-left:auto}
  .pn-grid .pn a{padding:16px}
  .tline__body{padding-right:2px}
  .meta-bar__in{min-height:36px}
}
@media (max-width:480px){
  .article-hero .share{width:100%;justify-content:flex-start}
  .article-sheet .article-hero h1{font-size:25px}
  .empty-404__actions .search{width:100%}
  .hero__plate-name{font-size:24px}
  .dlc__act{flex-wrap:wrap}
}
@media (hover:none) and (pointer:coarse){
  a.card:active{transform:scale(.985);transition-duration:.08s}
  .btn:active{transform:translateY(1px) scale(.98)}
  .chip:active,.launch__key:active{background:var(--accent-soft)}
  .tline__row:active .tline__title{color:var(--accent-deep)}
  .dlc:active{border-color:color-mix(in oklab,var(--accent) 40%,var(--border-strong))}
}

/* impeccable-design-polish · 终检微调：CJK 行距/断行/焦点/长链接 */
.hero h1{line-height:1.22}
.article-hero h1{line-height:1.3;text-wrap:balance}
.sec-head h2{line-height:1.35}
.hero__contents-name{text-wrap:balance}
.sj-rail-related a{overflow-wrap:anywhere}
.sj-toc a{letter-spacing:.01em}
a:focus-visible,button:focus-visible,.chip:focus-visible{outline-offset:3px}
@media print{
  .sj-rail-related a{overflow-wrap:normal}
}

/* =====================================================================
   「今日资讯」可选双栏（与相邻「热度榜」并排两栏）
   默认关闭：在 首页板块 → 今日资讯 →「与热度榜并排两栏」开启后生效，
   热度榜需紧邻其前；窄屏自动恢复堆叠。开启后本组样式接管版式。
   ===================================================================== */

.duo{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);align-items:stretch;border-top:3px solid var(--ink);border-bottom:1px solid var(--border);background:var(--bg)}
.duo>.section{padding:clamp(34px,4vw,58px) 0 clamp(28px,3.4vw,46px);border-top:0;border-bottom:0;margin:0}
.duo>.section--tinted{border-top:0;border-bottom:0;border-left:0;order:-1;border-right:1px solid var(--border)}
.duo .sec-head{margin-bottom:clamp(20px,2.6vw,30px)}
.duo .sec-head__readout{display:none}
.duo .sec-note{display:none}
@media (max-width:1080px){
  .duo{grid-template-columns:1fr;border-top:1px solid var(--border)}
  .duo>.section{padding:clamp(40px,5vw,60px) 0}
  .duo>.section--tinted{border-right:0;border-bottom:1px solid var(--border)}
  .duo .sec-head__readout{display:inline-flex}
  .duo .sec-note{display:block}
}
@media print{
  .duo{border-top:1px solid #000;border-bottom:0}
  .duo>.section--tinted{border-right:1px solid #000;border-bottom:0}
}

/* =====================================================================
   教程卡 · 封面区（特色图像 / 内置占位）
   「主题设置 → 外观 → 教程卡使用特色图像封面」开启时：有特色图像 →
   16:9 图像封面；未配图 → 16:9 内置占位封面（同几何，杜绝空白）。
   关闭时回退 main.css 原墨色字标墨条。分类字标 + 时长胶囊统一压底。
   ===================================================================== */
.tut-card__cover.has-img{position:relative;display:block;height:auto;padding:0;background:linear-gradient(135deg,#0e161f,#122733 60%,#0b2a30);overflow:hidden}
.tut-card__cover.has-img>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;object-position:center;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.tut-card:hover .tut-card__cover.has-img>img{transform:scale(1.025)}
.tut-card__coverbar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:40px 18px 11px;background:linear-gradient(180deg,transparent,color-mix(in oklab,var(--ink) 28%,transparent) 42%,color-mix(in oklab,var(--ink) 92%,transparent) 98%)}
.tut-card__cover.has-img .tut-card__coverbar b{font-size:20px}
.tut-card__cover.has-img .num{background:color-mix(in oklab,var(--ink) 52%,transparent);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
@media (max-width:620px){
  .tut-card__cover.has-img .tut-card__coverbar b{font-size:18px}
  .tut-card__coverbar{padding-inline:15px}
}
@media (prefers-reduced-motion:reduce){
  .tut-card:hover .tut-card__cover.has-img>img{transform:none}
}
@media print{
  .tut-card__cover.has-img{border:1px solid #000}
  .tut-card__coverbar{padding:10px 0 6px;background:none;position:static}
}

/* =====================================================================
   首页「上手教程」竖版四连小图卡
   竖版卡片 + 16:9 封面原比例完整保留（不裁成方块）；四列一行放满
   默认 4 篇，占用高度约为双大卡的 2/3；教程频道页仍为竖版大图卡。
   ===================================================================== */
.tut-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tut-4 .tut-card__coverbar{padding:30px 12px 9px}
.tut-4 .tut-card__coverbar b{font-size:17px}
.tut-4 .tut-card__cover.has-img .num{font-size:10px;padding:3px 10px}
.tut-4 .tut-card__body{padding:14px 15px 15px;gap:8px}
.tut-4 .tut-card__title{font-size:15.5px;line-height:1.5}
.tut-4 .tut-card__desc{font-size:12.5px;line-height:1.7;-webkit-line-clamp:2}
.tut-4 .tut-card__meta{padding-top:10px}
/* 三连放大档：卡片/封面字标按更宽的画幅成比例放大 */
.tut-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tut-3 .tut-card__coverbar{padding:38px 16px 11px}
.tut-3 .tut-card__coverbar b{font-size:20px}
.tut-3 .tut-card__body{padding:16px 18px 18px;gap:9px}
.tut-3 .tut-card__title{font-size:16.5px;line-height:1.5}
.tut-3 .tut-card__desc{font-size:13px;line-height:1.75;-webkit-line-clamp:2}
.tut-3 .tut-card__meta{padding-top:11px}
@media (max-width:1180px){
  .tut-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tut-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:680px){
  .tut-4{grid-template-columns:minmax(0,1fr)}
  .tut-4 .tut-card__desc{display:none}
  .tut-3{grid-template-columns:minmax(0,1fr)}
  .tut-3 .tut-card__desc{display:none}
}
@media print{
  .tut-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tut-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
   与纸卡共用同一组字段与 hero__plate 外壳（纸刊/墨夜外观自动随皮肤），
   仅附加顶部「窗口点条 + 卡眉行」结构；栏目索引行两种形态都保留。
   ===================================================================== */
.hero__plate--signal{padding-top:0}
.hero__plate--signal .hero__plate-bar{display:flex;align-items:center;gap:12px;padding:18px 0 14px;border-bottom:1px solid color-mix(in oklab,currentColor 14%,transparent)}
.hero__plate--signal .hero__plate-dots{display:inline-flex;gap:6px;flex:none}
.hero__plate--signal .hero__plate-dots i{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.24}
.hero__plate--signal .hero__plate-dots i:first-child{opacity:.55}
.hero__plate--signal .hero__plate-no{top:16px;right:22px}
.hero__plate--signal .hero__plate-tag{padding-right:0}
.hero__plate--signal .hero__plate-name{margin-top:clamp(16px,2.2vw,24px)}
@media (max-width:620px){
  .hero__plate--signal .hero__plate-bar{padding:14px 0 11px}
}
/* =====================================================================
   工具墙 · 行式清单形态（view = row / auto 深色默认 · 词表试点）
   与标签卡共用字段；行 = 编号 + 字标 + 名称/眉行 + 一句判定 + 价格/下载 + 圆钮
   ===================================================================== */
.trows{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface);overflow:hidden}
.trow{display:grid;grid-template-columns:46px 52px minmax(180px,.7fr) minmax(240px,1.1fr) auto 46px;column-gap:clamp(12px,1.8vw,22px);align-items:center;padding:13px 20px;transition:background .15s}
.trow+.trow{border-top:1px solid var(--border)}
.trow:hover{background:color-mix(in oklab,var(--accent-soft) 60%,var(--surface))}
.trow__no{font-family:var(--font-data);font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--muted)}
.trow:hover .trow__no{color:var(--accent-text)}
.trow__logo{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-family:var(--font-data);font-size:17px;font-weight:600;color:var(--fg);background:var(--surface-2);border:1px solid var(--border-strong);transition:border-color .16s,transform .18s}
.trow__logo.tool-logo--tone{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.trow:hover .trow__logo{transform:scale(1.04)}
.trow__ttl{min-width:0;display:flex;flex-direction:column;gap:3px}
.trow__ttl b{font-size:16px;font-weight:600;line-height:1.4;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}
.trow:hover .trow__ttl b{color:var(--accent-deep)}
.trow__ttl i{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trow__v{font-size:13px;line-height:1.8;color:var(--text-2);min-width:0}
.trow__meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:14px;white-space:nowrap;font-family:var(--font-data);font-size:12px;color:var(--muted)}
.trow__meta .text-ok{color:var(--ok);font-weight:600}
.trow__date{color:var(--muted);letter-spacing:.06em}
.trow__go{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:var(--muted);border:1px solid transparent;transition:color .15s,border-color .15s,background .15s,transform .18s}
.trow:hover .trow__go{color:var(--accent-text);border-color:var(--border-strong);background:var(--surface-2)}
.trow__go svg{transition:transform .18s cubic-bezier(.16,1,.3,1)}
.trow:hover .trow__go svg{transform:translateX(2px)}
@media (max-width:1120px){
  .trow{grid-template-columns:38px 46px minmax(0,1fr) auto 44px}
  .trow__v{display:none}
}
@media (max-width:700px){
  .trow{grid-template-columns:34px 44px minmax(0,1fr) 42px;column-gap:12px;padding:12px 14px}
  .trow__v,.trow__meta{display:none}
  .trow__ttl b{font-size:15px}
}

/* ============ 文章页：宽版（侧栏关闭时）+ 正文图片刊物化 ============ */
.layout-article--wide{grid-template-columns:minmax(0,1fr)}
.layout-article--wide .article-body{max-width:none}
.layout-article--wide .article-sheet{max-width:none}
/* 正文图片：居中 + 刊物化卡片感 */
.article-body img,.article-body video,.article-body iframe{display:block;max-width:100%;height:auto;margin:clamp(22px,3vw,34px) auto}
.article-body img{border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-sm)}
.article-body figure{margin:clamp(24px,3vw,36px) auto;text-align:center}
.article-body figure img{margin:0 auto}
.article-body figcaption{margin-top:10px;font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:12px;letter-spacing:.04em;color:var(--muted);text-align:center}
.article-body .wp-block-image{text-align:center}
.article-body img.alignleft{float:left;margin:6px 22px 12px 0;max-width:46%}
.article-body img.alignright{float:right;margin:6px 0 12px 22px;max-width:46%}
.article-body img.aligncenter{clear:both}
.article-body iframe,.article-body video{border:1px solid var(--border);border-radius:10px}
@media (max-width:860px){
  .article-body img.alignleft,.article-body img.alignright{float:none;margin:22px auto;max-width:100%}
}

/* 青色顶部实验 · 文字适配 */
.hero--ink h1{color:oklch(98% .004 205)}
.hero--ink h1 em{color:oklch(86% .09 198)}
.hero--ink .hero__kicker{color:oklch(90% .06 200)}
.hero--ink .front-dek{color:oklch(92% .008 215/.82)}
.hero--ink .front-dek b{color:oklch(98% .004 205)}
.hero--ink .front-meta{color:oklch(90% .01 215/.72)}

/* 关闭首屏移动光晕（实验：青夜顶部） */
.hero--ink .hero__light{display:none!important}