/* 由 landing/oldlp.css 自动加 .engsec 作用域生成(首页最后的引擎一节);改源文件后重跑 */
.engsec .olp{padding:72px 28px;border-top:1px solid var(--line);background:var(--ink)}
.engsec .olp .in{max-width:1080px;margin:0 auto}
.engsec .olp h1{font-size:clamp(30px,3.6vw,46px);line-height:1.15;font-weight:600;margin:12px 0 10px;text-wrap:balance}
.engsec .olp h2{font-size:clamp(24px,2.8vw,34px);line-height:1.2;font-weight:600;margin:10px 0 8px;text-wrap:balance}
.engsec .olp .sub{color:var(--dim);font-size:14px;max-width:62ch;margin-bottom:28px;line-height:1.7}
.engsec .olp .cta{display:flex;gap:10px;flex-wrap:wrap}
.engsec .olp.hero2{padding-top:96px}
.engsec .terms{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.engsec .term{border:1px solid var(--line);border-radius:12px;background:#0d0e11;overflow:hidden}
.engsec .term .tb{display:flex;align-items:center;gap:6px;padding:9px 12px;border-bottom:1px solid var(--line);font:11px ui-monospace,monospace;color:var(--dim)}
.engsec .term .tb i{width:9px;height:9px;border-radius:50%;background:#3a4149}
.engsec .term .tb i:nth-child(1){background:#e0503c}
.engsec .term .tb i:nth-child(2){background:#e9b25a}
.engsec .term .tb i:nth-child(3){background:#4fb38a}
.engsec .term .tb span{margin-left:8px}
.engsec .term .tbody{display:flex}
.engsec .term .tl{flex:1;min-width:0;padding:14px 16px;display:flex;flex-direction:column;gap:3px}
.engsec .term pre{margin:0;font:11px/1.6 ui-monospace,"JetBrains Mono",monospace;color:#9aa0a8;white-space:pre-wrap;min-height:1.5em}
.engsec .term .tl.big pre{font-size:12px;color:#e8e6df}
.engsec .term pre.say{color:#c9b2ff}
.engsec .term pre.hl{color:#8fe0c8}
.engsec .term .pic{position:relative;width:38%;flex:none;min-height:300px}
.engsec .term .pic img{width:100%;height:100%;object-fit:cover;opacity:.45;display:block}
.engsec .term .pic i{position:absolute;inset:0;background:linear-gradient(to right,#0d0e11 0%,transparent 50%)}
.engsec .term .ts.up{border-top:0;border-bottom:1px solid var(--line)}
.engsec .tease{margin-top:14px;padding:16px;border:1px dashed var(--line);border-radius:12px;text-align:center;font:11px ui-monospace,monospace;letter-spacing:.12em;color:var(--dim);opacity:.7}
@media(max-width:760px){.engsec .term .pic{display:none}}
.engsec .term .ts{padding:8px 16px;border-top:1px solid var(--line);font:11px ui-monospace,monospace;color:var(--amber)}
.engsec .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.engsec .card2{padding:22px 22px 20px;border:1px solid var(--line);border-radius:16px;background:rgba(242,239,232,.04);display:flex;flex-direction:column;gap:8px;min-height:200px}
.engsec .card2 .tag{font:10.5px ui-monospace,monospace;letter-spacing:.16em;color:var(--amber)}
.engsec .card2 h3{font-size:22px;margin:2px 0}
.engsec .card2 .tl{color:var(--paper);font-size:14px}
.engsec .card2 p{color:var(--dim);font-size:13px;line-height:1.75;flex:1}
.engsec .card2 .row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.engsec .card2 .st{font:11px ui-monospace,monospace;color:#8fe0c8}
.engsec .rm{display:grid;grid-template-columns:140px repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:13px}
.engsec .rm>div{background:var(--ink);padding:14px 16px}
.engsec .rm .hd{background:rgba(242,239,232,.04)}
.engsec .rm .hd b{display:block;font-size:16px}
.engsec .rm .hd small{display:block;color:var(--dim);font:11px ui-monospace,monospace;margin-top:3px}
.engsec .rm .hd i{display:inline-block;margin-top:8px;font-style:normal;font:10.5px ui-monospace,monospace;color:var(--amber)}
.engsec .rm .lab{color:var(--dim);font:11px ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}
.engsec .rm .cell{color:var(--paper);line-height:1.6}
.engsec .rmcta{display:inline-block;margin-top:22px}
@media(max-width:760px){.engsec .terms{grid-template-columns:1fr}
.engsec .rm{grid-template-columns:1fr}
.engsec .rm .lab{display:none}}
.engsec .olp.engine2{font-family:ui-monospace,"JetBrains Mono",monospace;color:#cfd3d8}
.engsec .olp.engine2 .in{padding:28px;border:1px solid #23272e;border-radius:18px;background:rgba(12,14,17,.6);background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:40px 40px}
.engsec .olp.engine2 .hd{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.engsec .olp.engine2 .hd h2{margin:0}
.engsec .tag2{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid #8fe0c8;color:#8fe0c8}
.engsec .olp.engine2 .lede{max-width:72ch;font-size:13px;line-height:1.8;color:#9aa0a8;font-family:"Noto Sans SC",sans-serif;margin:14px 0 22px}
.engsec .os{grid-column:1/-1;padding:18px 20px;border:1px solid #23272e;border-radius:14px;background:rgba(12,14,17,.7);font-family:"Noto Sans SC",sans-serif}
.engsec .os h3{font-size:18px;color:#fff;margin:6px 0 8px;font-weight:600}
.engsec .os p{font-size:12.5px;line-height:1.8;color:#9aa0a8;max-width:80ch}
.engsec .os table{margin:12px 0 14px;border-collapse:collapse;font-size:12px}
.engsec .os td{padding:6px 10px 6px 0;vertical-align:top;color:#cfd3d8;line-height:1.6}
.engsec .os td:first-child{color:#8fe0c8;font-family:ui-monospace,monospace;white-space:nowrap;padding-right:18px}
.engsec .os .gh{display:flex;gap:8px;flex-wrap:wrap}
.engsec .os .btn{font-size:12px;padding:8px 12px;color:#cfd3d8;border-color:#2c3139}
.engsec .os .btn:first-child{background:#8fe0c8;color:#07080a;border-color:#8fe0c8;font-weight:700}
.engsec .flow{grid-column:1/-1;position:relative}
.engsec .flow svg{width:100%;height:auto;display:block;font-family:ui-monospace,"JetBrains Mono",monospace}
.engsec .flow .box{fill:rgba(12,14,17,.9);stroke:#23272e;stroke-width:1;transition:stroke .3s,fill .3s}
.engsec .flow .box.hot{stroke:#8fe0c8;fill:rgba(143,224,200,.1)}
.engsec .flow .tri{fill:none;stroke:#2c3139;stroke-width:1;stroke-dasharray:4 5}
.engsec .flow .tri.hot{stroke:#8fe0c8;animation:dash 1.2s linear infinite}
.engsec .flow .node{fill:#15181c;stroke:#3a4149;stroke-width:1.2;transition:fill .25s,stroke .25s}
.engsec .flow .node.hot{fill:#8fe0c8;stroke:#8fe0c8;filter:url(#glow)}
.engsec .flow .arr{fill:none;stroke:#5a6470;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;marker-end:url(#ah);transition:stroke .25s}
.engsec .flow .arr.hot{stroke:#8fe0c8;marker-end:url(#ahh);filter:url(#glow)}
.engsec .flow .arr.back{stroke-dasharray:3 4}
.engsec .flow text{fill:#cfd3d8;font-size:12px}
.engsec .flow text.h{fill:#fff;font-size:14px;font-weight:600}
.engsec .flow text.s{fill:#8a9099;font-size:10.5px}
.engsec .flow text.c{fill:#8fe0c8;font-size:10px;letter-spacing:.12em}
.engsec .flow text.cn{font-family:"Noto Sans SC",sans-serif}
.engsec .layers{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.engsec .layer{padding:12px 14px;border-left:2px solid #2c3139;font-size:12px;line-height:1.7;color:#8a9099;font-family:"Noto Sans SC",sans-serif}
.engsec .layer b{display:block;color:#fff;font-weight:600;font-family:ui-monospace,monospace;font-size:12px}
.engsec .schema{grid-column:1/-1;display:flex;gap:18px;font-size:11.5px;color:#8a9099;font-family:"Noto Sans SC",sans-serif;flex-wrap:wrap}
.engsec .schema span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:7px;vertical-align:middle;background:#ffb17a}
.engsec .schema span+span::before{background:#8fb4ff;border-radius:50%}
.engsec .words{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:18px 0 14px}
.engsec .word{padding:12px 14px;border:1px solid #23272e;border-radius:12px;background:rgba(12,14,17,.7)}
.engsec .word b{display:block;color:#8fe0c8;font-size:12.5px;margin-bottom:5px}
.engsec .word span{font-size:12px;line-height:1.65;color:#9aa0a8;font-family:"Noto Sans SC",sans-serif}
.engsec .olp.engine2 .layers{margin-top:22px}
@keyframes dash{to{stroke-dashoffset:-16}}
.engsec .stack{display:flex;flex-direction:column;align-items:stretch;max-width:760px;margin:10px auto 0}
.engsec .srow{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:14px 16px;border:1px solid #23272e;border-radius:12px;background:rgba(12,14,17,.8)}
.engsec .srow .sno{font:12px ui-monospace,monospace;color:#8fe0c8}
.engsec .srow b{display:block;color:#fff;font-size:14px;margin-bottom:4px}
.engsec .srow p{font-size:12px;line-height:1.65;color:#9aa0a8;font-family:"Noto Sans SC",sans-serif;margin:0}
.engsec .schips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.engsec .schip{flex:1 1 220px;padding:9px 11px;border:1px dashed #2c3139;border-radius:9px}
.engsec .schip b{color:#8fe0c8;font-size:12px;margin-bottom:3px}
.engsec .schip span{font-size:11.5px;line-height:1.6;color:#8a9099;font-family:"Noto Sans SC",sans-serif}
.engsec .sarr{text-align:center;color:#3a4149;font-size:14px;line-height:1.2;padding:2px 0}
.engsec .olp.news{padding:0 28px;border-top:0}
.engsec .nbar{display:flex;align-items:center;gap:16px;padding:14px 18px;margin-top:-28px;border:1px solid var(--line);border-radius:14px;background:rgba(242,239,232,.04);flex-wrap:wrap}
.engsec .nitems{display:flex;gap:6px 22px;flex-wrap:wrap;flex:1;min-width:0}
.engsec .nit{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--paper);text-decoration:none;max-width:100%}
.engsec .nit i{font:10px ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);border:1px solid rgba(233,178,90,.5);border-radius:999px;padding:1px 7px;font-style:normal;flex:none}
.engsec .nit span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.engsec .nit small{color:var(--dim);font:10.5px ui-monospace,monospace;flex:none}
.engsec .nit:hover span{color:var(--amber)}
.engsec .nmore{font:11px ui-monospace,monospace;letter-spacing:.08em;color:var(--dim);text-decoration:none;white-space:nowrap}
.engsec .nmore:hover{color:var(--paper)}
.engsec{background:#0b0e14;border-top:1px solid var(--line);color:#cfd3d8}
.engsec .btn{display:inline-flex;align-items:center;gap:8px;font:12.5px ui-monospace,monospace;padding:9px 13px;border:1px solid var(--line);border-radius:8px;color:var(--paper);text-decoration:none;background:transparent}
.engsec .btn:hover{border-color:var(--paper)}
