/* ══════ SoDebug 首页 V6（2026-10-07 第二批）—— 自 prototype.html 移植，类名统一 sdh- 前缀 ══════
   仅首页加载。变量使用 tokens.css 现有值 + 本批新增（--text-2/--glyph/--accent-text/--surface-hover/--slant/--serif/--latin）。 */

/* 自托管字体子集（SIL OFL）：标题=H1 那 10 个字；引文=Cohen 那句的字母 */
@font-face{font-family:"SoDebug Title";src:url(../fonts/sodebug-title-900.ttf) format("truetype");font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:"SoDebug Quote";src:url(../fonts/sodebug-quote-italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}

/* layout 列 + 各区块 */
.sdh-page{max-width:var(--mw);margin:0 auto;padding-inline:32px}
@media (max-width:640px){.sdh-page{padding-inline:16px}}

/* ── hero: 切口 ── */
.sdh-hero{position:relative;overflow:hidden;padding-block:64px 44px;display:grid;grid-template-columns:minmax(0,1fr) 320px;column-gap:48px;align-items:end}
.sdh-hero-l{min-width:0}
h1.sdh-cut .sdh-p2,h1.sdh-cut .sdh-p3,h1.sdh-cut .sdh-beam{display:none}
.cut-ready h1.sdh-cut .sdh-p2,.cut-ready h1.sdh-cut .sdh-p3,.cut-ready h1.sdh-cut .sdh-beam{display:block}
.cut-ready h1.sdh-cut .sdh-p1{clip-path:polygon(0 0,4.718em 0,3.845em 2.4em,0 2.4em)}
h1.sdh-cut{position:relative;margin:0;font:900 clamp(44px,6.8vw,84px)/1.2 var(--serif);color:var(--text-bright);width:7.2em;height:2.4em}
h1.sdh-cut .sdh-p{position:absolute;inset:0;white-space:nowrap}
h1.sdh-cut .sdh-p2{clip-path:polygon(4.718em 0,5.718em 0,4.845em 2.4em,3.845em 2.4em);transform:translate(.052em,.019em)}
h1.sdh-cut .sdh-p3{clip-path:polygon(5.718em 0,100% 0,100% 100%,4.845em 2.4em);transform:translate(.104em,.038em)}
.sdh-beam{position:absolute;top:-.8em;width:2px;height:7em;transform:translate(-50%,-50%) rotate(var(--slant));pointer-events:none;background:linear-gradient(to bottom,transparent 0 59.1%,var(--accent) 59.1% 83.4%,transparent 83.4%)}
.sdh-beam.sdh-b1{left:5.036em}
.sdh-beam.sdh-b2{left:6.098em}
.sdh-guang{color:var(--accent)}
.sdh-stderr{display:flex;flex-direction:column;border-left:1px solid var(--border-soft);padding-left:22px;padding-bottom:4px}
.sdh-stderr a{display:grid;grid-template-columns:3.6em minmax(0,1fr);column-gap:10px;align-items:baseline;padding-block:5px;font:12px/1.55 var(--mono);color:var(--text-2);transition:color .15s}
.sdh-stderr a time{color:var(--text-faint);font-variant-numeric:tabular-nums;transition:color .15s}
.sdh-stderr a span{overflow-wrap:anywhere}
.sdh-stderr a:hover{color:var(--text-bright)}
.sdh-stderr a:hover time{color:var(--accent-text)}
.sdh-stderr .sdh-cap{margin:12px 0 0;font-size:12px;line-height:1.6;color:var(--text-faint)}
.sdh-stderr .sdh-cap a{display:inline;padding:0;font:inherit;color:var(--text-2)}
.sdh-stderr .sdh-cap a::after{content:" →";color:var(--accent-text);font-family:var(--mono)}
.sdh-stderr .sdh-cap a:hover{color:var(--accent-text)}
.sdh-epi{margin:22px 0 0;display:flex;flex-direction:column;gap:10px}
.sdh-epi blockquote{margin:0;padding:0;font:italic 400 clamp(19px,2.1vw,25px)/1.5 var(--latin);color:var(--text-2);letter-spacing:.005em}
.sdh-epi blockquote p{margin:0}
.sdh-epi .sdh-l2{display:block}
.sdh-epi em{font-style:italic;color:var(--text-bright)}
.sdh-epi b{font-weight:400;color:var(--accent-text)}
.sdh-epi figcaption{font:12px/1.6 var(--mono);color:var(--text-faint)}
.sdh-epi figcaption::before{content:"— "}
.sdh-intro{grid-column:1 / -1;margin-top:36px;padding-top:22px;border-top:1px solid var(--border-soft);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;column-gap:40px;row-gap:8px;width:100%}
.sdh-lead{margin:0;font-size:17px;line-height:1.85;color:var(--text-2);max-width:31em;text-wrap:pretty}
.sdh-lead .sdh-nw{white-space:nowrap}
.sdh-since{margin:0;font:12px var(--mono);color:var(--text-faint);letter-spacing:.02em;white-space:nowrap}
.sdh-hero:not(:has(.sdh-stderr)){grid-template-columns:minmax(0,1fr)}

/* 区块小标题：切口的小回声 */
.sdh-sec{padding-top:72px}
.sdh-sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:16px}
.sdh-sec-h h2{margin:0;font-size:15px;font-weight:700;color:var(--text-bright);display:flex;align-items:baseline;gap:10px}
.sdh-sec-h h2::before{content:"//";font:700 15px var(--mono);color:var(--accent);letter-spacing:-.04em}
.sdh-sec-h a{display:inline-flex;align-items:baseline;gap:6px;font-size:14px;color:var(--text);transition:color .15s}
.sdh-sec-h a::after{content:"→";font-family:var(--mono);color:var(--accent-text);transition:transform .15s}
.sdh-sec-h a:hover{color:var(--accent-text)}
.sdh-sec-h a:hover::after{transform:translateX(3px)}

/* 症状行 */
.sdh-sym{display:block;font:12.5px/1.6 var(--mono);color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sdh-sym.sdh-zh{font-family:var(--font);font-size:13px}
.sdh-list .sdh-sym.sdh-ex{display:block;max-width:100%;font-family:var(--font);font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── 精选 ── */
.sdh-feat{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:48px;padding-block:32px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.sdh-feat::after{content:"";position:absolute;inset:-1px -20px;z-index:-1;background:var(--surface-hover);border-left:2px solid var(--accent);opacity:0;transition:opacity .15s}
.sdh-feat:hover::after,.sdh-feat:focus-within::after{opacity:1}
.sdh-feat-l{display:flex;flex-direction:column;gap:14px}
.sdh-feat:not(:has(.sdh-tree)){grid-template-columns:minmax(0,1fr)}
.sdh-feat:not(:has(.sdh-tree)) .sdh-feat-l{max-width:44em}
.sdh-meta{display:flex;gap:14px;align-items:baseline;font-size:13px;color:var(--text-faint)}
.sdh-meta time,.sdh-meta .sdh-rt{font:12px var(--mono);font-variant-numeric:tabular-nums;transition:color .15s}
.sdh-feat:hover .sdh-meta time{color:var(--accent-text)}
.sdh-feat h3{margin:0;font-size:26px;line-height:1.42;font-weight:700;color:var(--text-bright);text-wrap:balance}
.sdh-feat h3 a{color:inherit;transition:color .15s}
.sdh-feat h3 a::after{content:"";position:absolute;inset:0}
.sdh-feat h3 a:hover{color:#fff}
.sdh-feat p{margin:0;font-size:15px;line-height:1.85;color:var(--text-2);text-wrap:pretty}
.sdh-feat .sdh-term{font:13px/1.75 var(--mono);color:var(--text-2)}
.sdh-feat .sdh-term .sdh-o{color:var(--accent-text)}
.sdh-feat .sdh-go{display:inline-flex;align-items:baseline;gap:6px;font-size:14px;color:var(--text);transition:color .15s}
.sdh-feat .sdh-go::after{content:"→";font-family:var(--mono);color:var(--accent-text);transition:transform .15s}
.sdh-feat:hover .sdh-go{color:var(--accent-text)}
.sdh-feat:hover .sdh-go::after{transform:translateX(3px)}
.sdh-tree{border-left:1px solid var(--border-soft);padding-left:32px;align-self:stretch;display:flex;flex-direction:column}
.sdh-tree .sdh-tp{font:12px var(--mono);color:var(--text-faint);margin-bottom:10px}
.sdh-tree a,.sdh-tree .sdh-more{position:relative;z-index:1;display:block;text-wrap:pretty;font-size:14px;line-height:1.75;padding-block:3px;color:var(--text-2);padding-left:2.2em;text-indent:-2.2em;transition:color .15s}
.sdh-tree .sdh-g{font:13px var(--mono);color:var(--glyph);display:inline-block;width:2.2em;text-indent:0;transition:color .15s}
.sdh-tree a:hover{color:#fff}
.sdh-tree a:hover .sdh-g{color:var(--accent)}
.sdh-tree .sdh-more{color:var(--text-faint)}

/* ── 最新 ── */
.sdh-list a{position:relative;isolation:isolate;display:grid;grid-template-columns:6.4em minmax(0,1fr) 5.5em;column-gap:20px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--border-soft)}
.sdh-list a:first-child{border-top:1px solid var(--border-soft)}
.sdh-list a::after{content:"";position:absolute;inset:-1px -20px;z-index:-1;background:var(--surface-hover);border-left:2px solid var(--accent);opacity:0;transition:opacity .15s}
.sdh-list time{font:12px var(--mono);color:var(--text-faint);font-variant-numeric:tabular-nums;transition:color .15s}
.sdh-list .sdh-m{display:flex;flex-direction:column;gap:4px;min-width:0}
.sdh-list .sdh-t{font-size:15px;color:var(--text);transition:color .15s;text-wrap:pretty}
.sdh-list .sdh-sym{transition:color .15s}
.sdh-list .sdh-c{font-size:13px;color:var(--text-faint);text-align:right;transition:color .15s}
.sdh-list a:hover::after,.sdh-list a:focus-visible::after{opacity:1}
.sdh-list a:hover time,.sdh-list a:focus-visible time{color:var(--accent-text)}
.sdh-list a:hover .sdh-t,.sdh-list a:focus-visible .sdh-t{color:#fff}
.sdh-list a:hover .sdh-sym,.sdh-list a:hover .sdh-c{color:var(--text-2)}

/* ── 分类 ── */
.sdh-cats-wrap{border-block:1px solid var(--border-soft)}
.sdh-cats{display:grid;grid-template-columns:repeat(20,minmax(0,1fr))}
.sdh-cat{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:6px;padding:20px 20px 22px;border-left:1px solid var(--border-soft);grid-column:span 5}
.sdh-cat.sdh-sm{grid-column:span 4}
.sdh-cat:nth-child(1),.sdh-cat:nth-child(5){border-left:0;padding-left:0}
.sdh-cat:nth-child(n+5){border-top:1px solid var(--border-soft)}
.sdh-cat::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--surface-hover);opacity:0;transition:opacity .15s}
.sdh-cat:nth-child(1)::after,.sdh-cat:nth-child(5)::after{left:-20px}
.sdh-cat:hover::after{opacity:1}
.sdh-cat .sdh-n{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:18px;font-weight:600;color:var(--text-bright);transition:color .15s}
.sdh-cat .sdh-n i{font:400 12px var(--mono);font-style:normal;color:var(--text-faint);font-variant-numeric:tabular-nums}
.sdh-cat .sdh-d{font-size:13px;line-height:1.6;color:var(--text-faint);margin-bottom:10px;text-wrap:pretty}
.sdh-cat .sdh-bar{height:2px;margin-top:auto;background:var(--border);position:relative}
.sdh-cat .sdh-bar::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--glyph);transition:background .15s}
.sdh-cat:hover .sdh-n{color:var(--accent-text)}
.sdh-cat:hover .sdh-bar::before{background:var(--accent)}
.sdh-cat.sdh-sm .sdh-n{font-size:15px}

/* ── 代码片段 ── */
.sdh-snip a{position:relative;isolation:isolate;display:grid;grid-template-columns:6.4em minmax(0,1fr);column-gap:20px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--border-soft)}
.sdh-snip a:first-child{border-top:1px solid var(--border-soft)}
.sdh-snip .sdh-tag{font:12px var(--mono);color:var(--text-faint);transition:color .15s}
.sdh-snip .sdh-t{font-size:14px;line-height:1.7;color:var(--text);text-wrap:pretty}
.sdh-snip code{color:var(--text-bright)}
.sdh-snip a::after{content:"";position:absolute;inset:-1px -20px;z-index:-1;background:var(--surface-hover);border-left:2px solid var(--accent);opacity:0;transition:opacity .15s}
.sdh-snip a:hover::after,.sdh-snip a:focus-visible::after{opacity:1}
.sdh-snip a:hover .sdh-tag{color:var(--accent-text)}
.sdh-snip a:hover .sdh-t{color:#fff}

/* ── 订阅 ── */
.sdh-sub{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-block:30px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.sdh-sub-l{display:flex;flex-direction:column;gap:6px;flex:1 1 320px}
.sdh-sub .sdh-h{font-size:20px;font-weight:600;color:var(--text-bright)}
.sdh-sub .sdh-d{font-size:14px;color:var(--text-2)}
.sdh-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 30px;background:var(--accent);color:#0A0A09;font-size:15px;font-weight:600;border-radius:2px;transition:background .15s,color .15s}
.sdh-btn:hover{background:var(--accent-hover);color:#fff}
.sdh-sub-r{display:flex;align-items:center;gap:20px}
.sdh-rss{font-size:14px;color:var(--text-2);transition:color .15s}
.sdh-rss:hover{color:var(--accent-text)}

/* ── 关于 ── */
.sdh-about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22em);column-gap:56px;align-items:start;padding-top:22px;border-top:1px solid var(--border)}
.sdh-about p{margin:0;font-size:16px;line-height:1.95;color:var(--text-2);max-width:34em;text-wrap:pretty}
.sdh-about p b{font-weight:400;color:var(--text)}
.sdh-facts{margin:0;display:flex;flex-direction:column;border-left:1px solid var(--border-soft);padding-left:28px}
.sdh-facts div{display:grid;grid-template-columns:4.2em minmax(0,1fr);column-gap:14px;align-items:baseline;padding-block:7px}
.sdh-facts dt{font:12px var(--mono);color:var(--text-faint)}
.sdh-facts dd{margin:0;font-size:14px;color:var(--text)}
.sdh-facts dd a{color:var(--text);border-bottom:1px solid var(--glyph);transition:color .15s,border-color .15s}
.sdh-facts dd a:hover{color:var(--accent-text);border-color:var(--accent)}

/* ── 响应式 ── */
@media (max-width:900px){
  .sdh-hero{grid-template-columns:minmax(0,1fr)}
  h1.sdh-cut{font-size:clamp(44px,9vw,84px)}
  .sdh-stderr{display:none}
  .sdh-feat{grid-template-columns:1fr;row-gap:24px}
  .sdh-tree{border-left:0;padding-left:0;border-top:1px solid var(--border-soft);padding-top:18px}
}
@media (max-width:640px){
  .sdh-hero{padding-block:48px 36px}
  .sdh-epi .sdh-l2{display:inline}
  .sdh-tree a{padding-block:8px}
  .sdh-intro{margin-top:28px}
  .sdh-lead{font-size:16px}
  .sdh-sec{padding-top:56px}
  .sdh-feat h3{font-size:21px}
  .sdh-list a{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}
  .sdh-list .sdh-m{grid-column:1 / -1;grid-row:1}
  .sdh-list time{grid-row:2;grid-column:1}
  .sdh-list .sdh-c{grid-row:2;grid-column:2}
  .sdh-sym{white-space:normal}
  .sdh-list .sdh-sym.sdh-ex{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .sdh-feat::after{inset:-1px -16px}
  .sdh-cats{grid-template-columns:repeat(6,minmax(0,1fr))}
  .sdh-cat{grid-column:span 3;padding:16px 12px 18px}
  .sdh-cat.sdh-sm{grid-column:span 2}
  .sdh-cat.sdh-sm .sdh-n{font-size:14px}
  .sdh-cat.sdh-sm:nth-last-child(2),.sdh-cat.sdh-sm:last-child{grid-column:span 3}
  .sdh-cat:nth-child(n){border-left:1px solid var(--border-soft);padding-left:12px;border-top:0}
  .sdh-cat:nth-child(1),.sdh-cat:nth-child(3),.sdh-cat:nth-child(5),.sdh-cat:nth-child(8){border-left:0;padding-left:0}
  .sdh-cat:nth-child(n+3){border-top:1px solid var(--border-soft)}
  .sdh-cat::after,.sdh-cat:nth-child(4n+1)::after{left:0}
  .sdh-cat:nth-child(1)::after,.sdh-cat:nth-child(3)::after,.sdh-cat:nth-child(5)::after,.sdh-cat:nth-child(8)::after{left:-12px}
  .sdh-sec-h a{padding-block:10px;margin-block:-10px}
  .sdh-sub-r{flex-direction:column;align-items:stretch;width:100%;gap:6px}
  .sdh-rss{text-align:center;padding-block:10px}
  .sdh-about{grid-template-columns:1fr;row-gap:24px}
  .sdh-facts{border-left:0;padding-left:0;border-top:1px solid var(--border-soft);padding-top:12px}
  .sdh-list a::after,.sdh-snip a::after{inset:-1px -12px}
  .sdh-snip a{grid-template-columns:1fr;row-gap:2px}
  .sdh-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){.sdh-page *,.sdh-page *::after,.sdh-page *::before{transition:none!important}}

/* ── 2026-10-07 复验返工：手机关于区链接点击区 ≥31px ── */
@media(max-width:640px){.sdh-facts dd a{display:inline-block;padding-block:6px}}
