/* TJ Sentinel 组件层 —— dev 流派。代码块是主视觉，动效克制到近乎没有。
 * 光学一致：高光左上、阴影右下。圆角只有 2 种，阴影只有 2 种。
 */
*{box-sizing:border-box}
body{margin:0;background:var(--tj-bg);color:var(--tj-ink);font-family:var(--tj-font-body);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--tj-accent);outline-offset:2px;border-radius:6px}

.sn-wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* ---------- 顶栏 ---------- */
.sn-nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--tj-bg) 92%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--tj-line-soft)}
.sn-nav-in{display:flex;align-items:center;gap:24px;height:60px}
.sn-logo{display:flex;align-items:center;gap:9px;font-family:var(--tj-font-display);font-weight:700;font-size:14.5px;letter-spacing:-.01em;text-decoration:none}
.sn-logo svg{width:20px;height:20px;flex:none;color:var(--tj-accent)}
.sn-nav-links{display:flex;gap:2px;margin-left:8px}
.sn-nav-links a{padding:6px 11px;border-radius:6px;font-size:13.5px;color:var(--tj-ink-2);text-decoration:none}
.sn-nav-links a:hover{background:var(--tj-surface-2);color:var(--tj-ink)}
.sn-nav-right{margin-left:auto;display:flex;align-items:center;gap:9px}
#langBtn{border:1px solid var(--tj-line);background:var(--tj-surface);border-radius:6px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--tj-ink-2)}
#langBtn:hover{border-color:var(--tj-ink-3)}

/* ---------- 按钮 ---------- */
.sn-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:6px;padding:11px 20px;font:inherit;font-weight:600;font-size:14.5px;cursor:pointer;text-decoration:none;transition:background .12s ease,border-color .12s ease}
.sn-btn-primary{background:var(--tj-accent);color:var(--tj-accent-ink)}
.sn-btn-primary:hover{background:var(--tj-accent-hover)}
.sn-btn-ghost{background:var(--tj-surface);border:1px solid var(--tj-line);color:var(--tj-ink)}
.sn-btn-ghost:hover{border-color:var(--tj-ink-3)}
.sn-btn-sm{padding:7px 14px;font-size:13px}

/* ---------- Hero：代码块即主视觉 ---------- */
.sn-hero{padding:76px 0 64px;border-bottom:1px solid var(--tj-line-soft)}
.sn-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.sn-eyebrow{font-family:var(--tj-font-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--tj-ink-3);margin-bottom:18px}
.sn-h1{font-family:var(--tj-font-display);font-weight:700;font-size:clamp(30px,4.2vw,46px);line-height:1.12;letter-spacing:-.025em;margin:0 0 18px}
.sn-sub{font-size:16.5px;color:var(--tj-ink-2);max-width:48ch;margin:0 0 26px}
.sn-cta{display:flex;gap:11px;flex-wrap:wrap}
.sn-hero-note{font-family:var(--tj-font-mono);font-size:12px;color:var(--tj-ink-3);margin-top:18px}

/* 代码窗 */
.sn-code{background:var(--tj-ink);border-radius:10px;overflow:hidden;box-shadow:0 12px 32px rgba(22,24,29,.10)}
.sn-code-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.sn-code-bar i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18);display:block}
.sn-code-bar span{margin-left:6px;font-family:var(--tj-font-mono);font-size:11.5px;color:rgba(255,255,255,.45)}
.sn-code pre{margin:0;padding:18px;overflow-x:auto;font-family:var(--tj-font-mono);font-size:12.5px;line-height:1.75;color:#D8DBE0}
.sn-code .c{color:#6E7681}       /* 注释 */
.sn-code .k{color:#A8B6BA}       /* 关键字 */
.sn-code .s{color:#AFBCAF}       /* 字符串 */
.sn-code .f{color:#D8DBE0}       /* 函数 */
.sn-code .hl{color:#B4D6DA;font-weight:600}

/* ---------- 判定演示（产品核心：allow/observe/challenge/block） ---------- */
.sn-verdicts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}
.sn-verdict{border:1px solid var(--tj-line);border-radius:10px;padding:14px;background:var(--tj-surface)}
.sn-verdict b{display:block;font-family:var(--tj-font-mono);font-size:12px;font-weight:700;margin-bottom:5px}
.sn-verdict span{font-size:12.5px;color:var(--tj-ink-2)}
.sn-verdict.allow b{color:var(--sn-allow)} .sn-verdict.allow{background:var(--sn-allow-bg)}
.sn-verdict.observe b{color:var(--sn-observe)} .sn-verdict.observe{background:var(--sn-observe-bg)}
.sn-verdict.challenge b{color:var(--sn-challenge)} .sn-verdict.challenge{background:var(--sn-challenge-bg)}
.sn-verdict.block b{color:var(--sn-block)} .sn-verdict.block{background:var(--sn-block-bg)}

/* ---------- 分区 ---------- */
.sn-section{padding:66px 0;border-bottom:1px solid var(--tj-line-soft)}
.sn-section-head{max-width:62ch;margin-bottom:38px}
.sn-h2{font-family:var(--tj-font-display);font-weight:700;font-size:clamp(22px,2.8vw,30px);line-height:1.2;letter-spacing:-.02em;margin:0 0 12px}
.sn-lead{font-size:15.5px;color:var(--tj-ink-2);margin:0}

.sn-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sn-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.sn-card{background:var(--tj-surface);border:1px solid var(--tj-line-soft);border-radius:10px;padding:22px}
.sn-card h3{margin:0 0 9px;font-family:var(--tj-font-display);font-size:15.5px;font-weight:700;letter-spacing:-.01em}
.sn-card p{margin:0;font-size:13.8px;color:var(--tj-ink-2)}
.sn-card .ico{width:24px;height:24px;color:var(--tj-accent);margin-bottom:12px;display:block}

/* 边界清单（产品的七道边界） */
.sn-boundary{display:flex;gap:14px;padding:15px 0;border-top:1px solid var(--tj-line-soft)}
.sn-boundary:first-child{border-top:0}
.sn-boundary .num{font-family:var(--tj-font-mono);font-size:12px;color:var(--tj-ink-3);flex:none;width:26px;padding-top:2px}
.sn-boundary b{display:block;font-size:14.5px;font-weight:600;margin-bottom:3px}
.sn-boundary p{margin:0;font-size:13.5px;color:var(--tj-ink-2)}

/* 诚实限制区 —— 反向信任资产 */
.sn-limits{background:var(--tj-surface-2);border:1px solid var(--tj-line);border-radius:10px;padding:26px}
.sn-limits h3{margin:0 0 14px;font-family:var(--tj-font-display);font-size:16px;font-weight:700}
.sn-limits li{font-size:13.8px;color:var(--tj-ink-2);margin-bottom:7px}
.sn-limits ul{margin:0;padding-left:20px}

/* 适配器标签 */
.sn-stacks{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.sn-stack{font-family:var(--tj-font-mono);font-size:12.5px;border:1px solid var(--tj-line);background:var(--tj-surface);border-radius:6px;padding:6px 12px;color:var(--tj-ink-2)}

/* FAQ（GEO：结构化问答，AI 最爱抓） */
.sn-faq details{border-top:1px solid var(--tj-line-soft);padding:16px 0}
.sn-faq details:first-of-type{border-top:0}
.sn-faq summary{font-weight:600;font-size:15px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:9px}
.sn-faq summary::-webkit-details-marker{display:none}
.sn-faq summary::before{content:'+';font-family:var(--tj-font-mono);color:var(--tj-accent);font-weight:700}
.sn-faq details[open] summary::before{content:'−'}
.sn-faq p{margin:11px 0 0 20px;font-size:14px;color:var(--tj-ink-2)}

/* 页尾 CTA */
.sn-final{background:var(--tj-ink);color:#F2F3F5;border-radius:10px;padding:46px 40px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.sn-final .sn-h2{color:#F2F3F5;margin-bottom:8px}
.sn-final p{margin:0;color:rgba(242,243,245,.62);font-size:14.5px}

@media (max-width:900px){
  .sn-hero-grid{grid-template-columns:1fr;gap:36px}
  .sn-grid-3,.sn-grid-2{grid-template-columns:1fr}
  .sn-verdicts{grid-template-columns:1fr 1fr}
  .sn-nav-links{display:none}
  .sn-final{padding:32px 24px}
}
@media (prefers-reduced-motion:reduce){ *{transition:none !important} }
