.reveal{opacity:1!important;transform:none!important}.handbook-hero{position:relative;overflow:hidden;background:var(--deep-grad);color:var(--text-light);padding:calc(var(--envbar-h) + var(--header-h) + clamp(3rem,6vh,6.2rem)) 0 5.5rem}.handbook-hero .grid-dots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.6px);background-size:30px 30px;-webkit-mask-image:radial-gradient(ellipse 78% 66% at 50% 12%,#000 12%,transparent 70%);mask-image:radial-gradient(ellipse 78% 66% at 50% 12%,#000 12%,transparent 70%)}.handbook-hero .glow{position:absolute;inset:0;background:radial-gradient(720px 360px at 50% 0,rgba(0,225,255,.13),transparent 62%),radial-gradient(520px 280px at 88% 30%,rgba(11,99,246,.1),transparent 65%)}.handbook-hero .container{position:relative;z-index:1}.hero-badge{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--font-mono);font-size:1.15rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);border:.05rem solid rgba(0,225,255,.22);background:#00e1ff0f;padding:.45rem 1.1rem;border-radius:5rem}.hero-badge b{color:#fff;letter-spacing:.12em}.handbook-hero h1{margin:2rem 0 0;font-size:clamp(34px,5.2vw,64px);font-weight:700;line-height:1.08;letter-spacing:-.02em}.handbook-hero h1 .grad{background:linear-gradient(90deg,#00e1ff,#7ae7ff 45%,#fff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.handbook-hero .hero-lead{margin:1.8rem 0 0;max-width:78rem;font-size:clamp(1.5rem,1.7vw,1.75rem);line-height:1.85;color:#f5f6faad}.handbook-hero .hero-lead b{color:#fff;font-weight:600}.hero-actions{margin-top:3rem;display:flex;flex-wrap:wrap;gap:1rem}.btn-ghost-dark{display:inline-flex;align-items:center;gap:.5rem;padding:1.25rem 2.2rem;border-radius:5rem;border:.1rem solid rgba(0,225,255,.28);background:#00e1ff0f;color:var(--cyan);font-size:1.4rem;font-weight:600;transition:all .15s}.btn-ghost-dark:hover{background:#00e1ff1f;border-color:#00e1ff80;color:#fff}.handbook-meta{margin-top:3.2rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;font-family:var(--font-mono);font-size:1.15rem;letter-spacing:.04em;color:#f5f6fa75}.handbook-meta span{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .85rem;border:.05rem solid rgba(226,228,235,.12);border-radius:5rem;background:#ffffff0a}.handbook-meta .dot{width:.55rem;height:.55rem;border-radius:50%;background:#00e1ff;box-shadow:0 0 8px #00e1ff99}.doc-nav{position:sticky;top:calc(var(--envbar-h) + var(--header-h));z-index:20;background:#ffffffd1;backdrop-filter:saturate(1.2) blur(12px);border-bottom:.05rem solid rgba(226,228,235,.7)}.doc-nav .container{display:flex;align-items:center;gap:1.2rem;overflow-x:auto;padding:1.2rem 32px;scrollbar-width:none}.doc-nav .container::-webkit-scrollbar{display:none}.doc-nav a{flex:none;display:inline-flex;align-items:center;gap:.5rem;font-size:1.3rem;font-weight:500;color:#3d4f63;border:.05rem solid transparent;padding:.65rem 1.2rem;border-radius:5rem;transition:all .15s;white-space:nowrap}.doc-nav a:hover{border-color:#0b63f624;background:#0b63f60f;color:#0a2540}.doc-nav a.is-active{color:#0b63f6;border-color:#0b63f62e;background:#0b63f614}.doc-nav .sep{width:.05rem;height:1.8rem;background:#e2e4ebe6;flex:none}.code-dark{border-radius:1rem;overflow:hidden;border:.05rem solid rgba(226,228,235,.9);background:#0b1c2b;box-shadow:0 16px 40px #00334f14}.code-dark .code-head{display:flex;align-items:center;gap:.6rem;padding:1rem 1.4rem;border-bottom:.05rem solid rgba(255,255,255,.06);font-family:var(--font-mono);font-size:1.15rem;color:#f5f6fa8c;background:#ffffff05}.code-dark .code-head .dot{width:.9rem;height:.9rem;border-radius:50%;background:#ffffff2e}.code-dark .code-head .dot:nth-child(1){background:#ff5f56}.code-dark .code-head .dot:nth-child(2){background:#ffbd2e}.code-dark .code-head .dot:nth-child(3){background:#27c93f}.code-dark .code-head .fname{margin-left:.6rem;color:#f5f6facc}.code-dark .code-head .badge{margin-left:auto;font-size:1.05rem;color:#7fd4de;border:.05rem solid rgba(127,212,222,.35);background:rgba(127,212,222,.12);padding:.2rem .6rem;border-radius:5rem}.code-dark pre{margin:0;padding:1.6rem 1.8rem;font-family:var(--font-mono);font-size:1.28rem;line-height:1.75;overflow:auto;color:#e6edf3;white-space:pre}.tk-c{color:#7fa1b8}.tk-k{color:#ff7ab2}.tk-s{color:#7ae7ff}.tk-n{color:#ffd580}.tk-f{color:#a5ffd6}.tk-b{color:#00e1ff}.tk-g{color:#7dd3a0}.bsp-arch{display:grid;grid-template-columns:1fr;gap:0;margin-top:3.2rem;border:.05rem solid #e4ebf6;border-radius:1.4rem;overflow:hidden;background:linear-gradient(160deg,#fff,#f6fafd);box-shadow:0 14px 40px #00334f0f}.bsp-layers{display:grid;grid-template-columns:repeat(5,1fr);gap:0}.bsp-layer{position:relative;display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:2.2rem 1.2rem;text-align:center;border-right:.05rem solid #edf2f7}.bsp-layer:last-child{border-right:none}.bsp-layer .layer-icon{width:4.2rem;height:4.2rem;border-radius:.9rem;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 8px 20px #0b63f624}.bsp-layer:nth-child(1) .layer-icon{background:linear-gradient(135deg,#0b63f6,#00b8d4)}.bsp-layer:nth-child(2) .layer-icon{background:linear-gradient(135deg,#0b3f6b,#007f87)}.bsp-layer:nth-child(3) .layer-icon{background:linear-gradient(135deg,#007f87,#0b63f6)}.bsp-layer:nth-child(4) .layer-icon{background:linear-gradient(135deg,#4a2cf0,#0b63f6)}.bsp-layer:nth-child(5) .layer-icon{background:linear-gradient(135deg,#0b63f6,#00e1ff)}.bsp-layer h3,.bsp-layer h3,.bsp-layer h4{font-size:1.45rem;font-weight:700;color:#0a2540;margin:0}.bsp-layer p{font-family:var(--font-mono);font-size:1.05rem;line-height:1.6;color:#57768f;margin:0}.bsp-layer .ver{font-family:var(--font-mono);font-size:1rem;letter-spacing:.08em;color:var(--cyan-ink);background:var(--cyan-ink,#007f87)12;border:.05rem solid rgba(0,163,178,.14);padding:.2rem .5rem;border-radius:.35rem}.bsp-layer:after{content:"\2192";position:absolute;right:-.9rem;top:50%;transform:translateY(-50%);width:1.9rem;height:1.9rem;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#007f87;background:#e6f9fb;border:.05rem solid rgba(0,163,178,.18);border-radius:50%;z-index:2}.bsp-layer:last-child:after{display:none}.bsp-foot{padding:1.4rem 2rem;background:#fff;border-top:.05rem solid #edf2f7;font-family:var(--font-mono);font-size:1.15rem;color:#57768f;display:flex;flex-wrap:wrap;gap:1.2rem 2rem}.bsp-foot b{color:#0a2540}@media (max-width:860px){.bsp-layers{grid-template-columns:1fr}.bsp-layer{flex-direction:row;text-align:left;border-right:none;border-bottom:.05rem solid #edf2f7;padding:1.6rem 1.8rem}.bsp-layer:after{right:auto;left:50%;bottom:-.9rem;top:auto;transform:translate(-50%) rotate(90deg)}.bsp-layer:last-child{border-bottom:none}}.tree{font-family:var(--font-mono);font-size:1.28rem;line-height:1.75;color:#3d4f63;background:#fff;border:.05rem solid #e4ebf6;border-radius:1rem;padding:1.8rem 2rem;overflow:auto}.tree b{color:#0a2540}.checklist{display:grid;gap:1rem;margin-top:1.6rem}.check-item{display:flex;gap:1.2rem;padding:1.4rem 1.6rem;border:.05rem solid #e4ebf6;border-radius:.9rem;background:#fff;align-items:flex-start}.check-item .ci{flex:none;width:2.6rem;height:2.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--cyan-ink,#007f87)17;color:var(--cyan-ink);font-weight:700;font-size:1.3rem}.check-item h3,.check-item h3,.check-item h4{margin:0;font-size:1.45rem;color:#0a2540}.check-item p{margin:.25rem 0 0;font-size:1.3rem;line-height:1.6;color:#5b6b84}.status{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:1.05rem;font-weight:600;letter-spacing:.06em;padding:.25rem .6rem;border-radius:5rem;border:.05rem solid}.status.ok{color:#0a7a4a;background:#00c95014;border-color:#00c9502e}.status.warn{color:#8a5a00;background:#ffbd2e1a;border-color:#ffbd2e3d}@media (max-width:980px){.doc-nav{top:calc(var(--envbar-h) + 66px)}}

/* R15 字号协调 · 本页主标题归入全站层级 */
section.handbook-hero div.container h1{font-size:clamp(40px,4.8vw,64px);line-height:1.16}
/* 区块标题统一节奏 */
.section-head h2,.sec-head h2{font-size:clamp(30px,3.2vw,44px);line-height:1.22}

/* R15 字号协调 · 本页主标题归入全站层级 */
body main section.handbook-hero div.container h1{font-size:clamp(40px,4.8vw,64px)!important;line-height:1.16!important}
/* 区块标题统一节奏 */
.section-head h2,.sec-head h2{font-size:clamp(30px,3.2vw,44px)!important;line-height:1.22!important}

/* R15 字号协调 · 本页主标题归入全站层级 */
body main section.handbook-hero div.container h1{font-size:clamp(40px,4.8vw,64px)!important;line-height:1.16!important}
/* 区块标题统一节奏 */
.section-head h2,.sec-head h2{font-size:clamp(30px,3.2vw,44px)!important;line-height:1.22!important}

/* R15 字号协调 · 本页主标题归入全站层级 */
body main section.handbook-hero div.container h1{font-size:clamp(40px,4.8vw,64px)!important;line-height:1.16!important}
/* 区块标题统一节奏 */
.section-head h2,.sec-head h2{font-size:clamp(30px,3.2vw,44px)!important;line-height:1.22!important}

/* R15 字号协调 · 本页主标题归入全站层级 */
body main section.handbook-hero div.container h1{font-size:clamp(40px,4.8vw,64px)!important;line-height:1.16!important}
/* 区块标题统一节奏 */
.section-head h2,.sec-head h2{font-size:clamp(30px,3.2vw,44px)!important;line-height:1.22!important}
/* type-scale:idempotent */
/* R15 字号协调 · 本页主标题归入全站层级 */
body main section.handbook-hero div.container h1{font-size:clamp(40px,4.8vw,64px)!important;line-height:1.16!important}
/* 区块标题统一节奏 */
.section-head h2,.sec-head h2{font-size:clamp(30px,3.2vw,44px)!important;line-height:1.22!important}

/* R15 对比度收尾：浅底 callout 内的 ghost 按钮改深色文字 */
.cp-callout .btn-ghost-dark{color:#00606b;border-color:#7fc0c8;background:#007f870f}

/* R15 对比度收尾：callout 内主按钮白底保底 */
.cp-callout .cp-callout-inner a.btn{background:#ffffff;color:#00334f;border:.1rem solid #dbe6ee}
