/* ===== 各内容页共用 hero 头图 (260828.8, 自 slam.css 抽出) =====
   背景为内嵌 SVG data URI, 深蓝渐变 + 光带 + 代码纹理 + HUD, 零外链 */
/* ---------- 头图横幅 (260828.4, 仿 unitree opensource 头图风格, SVG 内嵌零外链) ---------- */
.doc-hero {
    padding: 128px 24px 66px;
    text-align: center;
    background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1920 420%22 preserveAspectRatio=%22xMidYMid slice%22%3E%3Cdefs%3E%3ClinearGradient id=%22bg%22 x1=%220%22 y1=%220%22 x2=%221%22 y2=%221%22%3E%3Cstop offset=%220%22 stop-color=%22%23081226%22/%3E%3Cstop offset=%220.45%22 stop-color=%22%230c1f3e%22/%3E%3Cstop offset=%221%22 stop-color=%22%230a2a3a%22/%3E%3C/linearGradient%3E%3Cfilter id=%22soft%22 x=%22-40%25%22 y=%22-40%25%22 width=%22180%25%22 height=%22180%25%22%3E%3CfeGaussianBlur stdDeviation=%2226%22/%3E%3C/filter%3E%3Cfilter id=%22mid%22 x=%22-40%25%22 y=%22-40%25%22 width=%22180%25%22 height=%22180%25%22%3E%3CfeGaussianBlur stdDeviation=%2210%22/%3E%3C/filter%3E%3C/defs%3E%3Crect width=%221920%22 height=%22420%22 fill=%22url(%23bg)%22/%3E%3Cg stroke=%22%235fb8ff%22 stroke-width=%221%22 opacity=%220.05%22%3E%3Cpath d=%22M0 70 H1920 M0 140 H1920 M0 210 H1920 M0 280 H1920 M0 350 H1920%22/%3E%3Cpath d=%22M160 0 V420 M320 0 V420 M480 0 V420 M640 0 V420 M800 0 V420 M960 0 V420 M1120 0 V420 M1280 0 V420 M1440 0 V420 M1600 0 V420 M1760 0 V420%22/%3E%3C/g%3E%3Cpath d=%22M-100 420 C 420 240, 760 470, 1180 260 S 1820 60, 2020 140%22 stroke=%22%233a7bff%22 stroke-width=%22110%22 fill=%22none%22 opacity=%220.22%22 filter=%22url(%23soft)%22/%3E%3Cpath d=%22M-80 330 C 380 150, 900 380, 1320 180 S 1860 -20, 2040 80%22 stroke=%22%23ff4d9e%22 stroke-width=%2258%22 fill=%22none%22 opacity=%220.30%22 filter=%22url(%23soft)%22/%3E%3Cpath d=%22M-60 260 C 500 120, 980 320, 1420 130 S 1900 -40, 2060 30%22 stroke=%22%2327d9ff%22 stroke-width=%2230%22 fill=%22none%22 opacity=%220.34%22 filter=%22url(%23mid)%22/%3E%3Cpath d=%22M-60 262 C 500 122, 980 322, 1420 132 S 1900 -38, 2060 32%22 stroke=%22%23bffaff%22 stroke-width=%223%22 fill=%22none%22 opacity=%220.5%22 filter=%22url(%23mid)%22/%3E%3Cg fill=%22none%22 stroke=%22%2367d6ff%22%3E%3Ccircle cx=%221560%22 cy=%22200%22 r=%22120%22 opacity=%220.10%22 stroke-width=%221.5%22 stroke-dasharray=%224 7%22/%3E%3Ccircle cx=%221560%22 cy=%22200%22 r=%2288%22 opacity=%220.14%22 stroke-width=%221%22 stroke-dasharray=%2230 14%22/%3E%3Ccircle cx=%221560%22 cy=%22200%22 r=%2252%22 opacity=%220.10%22 stroke-width=%228%22/%3E%3C/g%3E%3Cg%3E%3Ctext x=%2256%22 y=%2296%22 font-family=%22Consolas,monospace%22 font-size=%2215%22 fill=%22%239fe8ff%22 opacity=%220.26%22%3Escan = lidar.read_frame()          %23 200k pts/s%3C/text%3E%3Ctext x=%2256%22 y=%22126%22 font-family=%22Consolas,monospace%22 font-size=%2215%22 fill=%22%239fe8ff%22 opacity=%220.26%22%3Epose = registration.align(scan, submap)%3C/text%3E%3Ctext x=%2256%22 y=%22156%22 font-family=%22Consolas,monospace%22 font-size=%2215%22 fill=%22%239fe8ff%22 opacity=%220.26%22%3Eif pose.fitness %26lt%3B 0.35:%3C/text%3E%3Ctext x=%2256%22 y=%22186%22 font-family=%22Consolas,monospace%22 font-size=%2215%22 fill=%22%239fe8ff%22 opacity=%220.26%22%3E    trigger_relocalization(last_keyframe)%3C/text%3E%3Ctext x=%2256%22 y=%22216%22 font-family=%22Consolas,monospace%22 font-size=%2215%22 fill=%22%239fe8ff%22 opacity=%220.26%22%3Egraph.add_edge(k0, k1, icp_result.T)%3C/text%3E%3Ctext x=%2256%22 y=%22246%22 font-family=%22Consolas,monospace%22 font-size=%2215%22 fill=%22%239fe8ff%22 opacity=%220.26%22%3Eif loop_detected: graph.optimize()%3C/text%3E%3Ctext x=%2256%22 y=%22276%22 font-family=%22Consolas,monospace%22 font-size=%2215%22 fill=%22%239fe8ff%22 opacity=%220.26%22%3Eplanner.update(costmap, tiers=%5BFREE, CAUTION, BLOCKED%5D)%3C/text%3E%3Ctext x=%2256%22 y=%22306%22 font-family=%22Consolas,monospace%22 font-size=%2215%22 fill=%22%239fe8ff%22 opacity=%220.26%22%3Ecmd = follower.track(path, v_max=1.2)%3C/text%3E%3C/g%3E%3Cg%3E%3Ctext x=%221500%22 y=%2290%22 font-family=%22Consolas,monospace%22 font-size=%2214%22 fill=%22%238fd8ff%22 opacity=%220.3%22 transform=%22rotate(-14 1500 90)%22%3E240%3C/text%3E%3Ctext x=%221610%22 y=%22128%22 font-family=%22Consolas,monospace%22 font-size=%2214%22 fill=%22%238fd8ff%22 opacity=%220.3%22 transform=%22rotate(0 1610 128)%22%3E255%3C/text%3E%3Ctext x=%221724%22 y=%2296%22 font-family=%22Consolas,monospace%22 font-size=%2214%22 fill=%22%238fd8ff%22 opacity=%220.3%22 transform=%22rotate(14 1724 96)%22%3E270%3C/text%3E%3Ctext x=%221560%22 y=%22210%22 font-family=%22Consolas,monospace%22 font-size=%2214%22 fill=%22%238fd8ff%22 opacity=%220.3%22 transform=%22rotate(-14 1560 210)%22%3E90%3C/text%3E%3Ctext x=%221680%22 y=%22250%22 font-family=%22Consolas,monospace%22 font-size=%2214%22 fill=%22%238fd8ff%22 opacity=%220.3%22 transform=%22rotate(0 1680 250)%22%3E75%3C/text%3E%3Ctext x=%221770%22 y=%22180%22 font-family=%22Consolas,monospace%22 font-size=%2214%22 fill=%22%238fd8ff%22 opacity=%220.3%22 transform=%22rotate(14 1770 180)%22%3E60%3C/text%3E%3Ctext x=%221470%22 y=%22300%22 font-family=%22Consolas,monospace%22 font-size=%2214%22 fill=%22%238fd8ff%22 opacity=%220.3%22 transform=%22rotate(-14 1470 300)%22%3E30%3C/text%3E%3Ctext x=%221640%22 y=%22330%22 font-family=%22Consolas,monospace%22 font-size=%2214%22 fill=%22%238fd8ff%22 opacity=%220.3%22 transform=%22rotate(0 1640 330)%22%3E0.35%3C/text%3E%3Ctext x=%221745%22 y=%22315%22 font-family=%22Consolas,monospace%22 font-size=%2214%22 fill=%22%238fd8ff%22 opacity=%220.3%22 transform=%22rotate(14 1745 315)%22%3E20%3C/text%3E%3C/g%3E%3Crect width=%221920%22 height=%22420%22 fill=%22%23050d1c%22 opacity=%220.18%22/%3E%3C/svg%3E") center / cover no-repeat, #0c1f3e;
}

.doc-hero h1 {
    font-size: 42px;
    font-weight: 500;
    letter-spacing: 3px;
    color: #fff;
    line-height: 1.3;
}

.doc-hero p {
    margin-top: 12px;
    font-size: 15.5px;
    letter-spacing: 1px;
    color: rgba(255, 255, 255, 0.72);
}

@media (max-width: 992px) {
    .doc-hero {
        padding: 100px 18px 46px;
    }

    .doc-hero h1 {
        font-size: 30px;
        letter-spacing: 2px;
    }

    .doc-hero p {
        font-size: 13.5px;
    }
}
