*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:16px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#0f172a;background:#fff;-webkit-font-smoothing:antialiased}
a{color:var(--c)}img,svg{max-width:100%}
.w{max-width:1160px;margin:0 auto;padding:0 24px}.ic{flex:0 0 auto;vertical-align:-4px}
header.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.88);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid #eef1f5}
.hn{display:flex;align-items:center;gap:24px;height:64px}.brand{white-space:nowrap;display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;color:#0f172a;text-decoration:none;white-space:nowrap}
.brand i{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--c),var(--c2));display:inline-flex;align-items:center;justify-content:center;color:#fff;font-style:normal;font-size:15px}
nav.pn{display:flex;gap:6px;margin:0 auto}nav.pn a{white-space:nowrap;color:#475569;text-decoration:none;font-size:14.5px;padding:6px 12px;border-radius:999px}nav.pn a:hover{background:#f1f5f9}nav.pn a.on{color:#0f172a;font-weight:700;background:#f1f5f9}
.pill{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;background:#0f172a;color:#fff!important;text-decoration:none;font-weight:600;font-size:14.5px;border-radius:999px;padding:9px 18px}.pill:hover{background:#1e293b}
details.mm{display:none;position:relative}details.mm summary{list-style:none;cursor:pointer;border:1px solid #e2e8f0;border-radius:999px;padding:7px 14px;font-size:14px}details.mm summary::-webkit-details-marker{display:none}
details.mm div{position:absolute;right:0;top:44px;width:220px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:8px;box-shadow:0 18px 40px rgba(15,23,42,.14)}details.mm a{display:block;padding:9px 12px;color:#334155;text-decoration:none;border-radius:8px}details.mm a:hover{background:#f1f5f9}
.hero{position:relative;padding:84px 0 70px;overflow:hidden;background:radial-gradient(circle at 18% 12%,rgba(var(--cr),.10),transparent 42%),radial-gradient(circle at 88% 8%,rgba(var(--cr),.07),transparent 38%),#fff}
.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(15,23,42,.14) 1px,transparent 1.3px);background-size:26px 26px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%);pointer-events:none}
.hero .w{position:relative}.badge{display:inline-flex;align-items:center;gap:8px;background:rgba(var(--cr),.09);color:var(--c);border:1px solid rgba(var(--cr),.2);border-radius:999px;font-size:13px;font-weight:600;padding:5px 14px}
.hero h1{font-size:clamp(34px,6.2vw,64px);line-height:1.12;letter-spacing:-.02em;margin:22px 0 18px;max-width:880px}
.gt{background:linear-gradient(90deg,var(--c),var(--c2));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.hero p.sub{font-size:18.5px;color:#475569;max-width:680px;margin:0 0 30px}
.acts{display:flex;gap:12px;flex-wrap:wrap}.bt{display:inline-flex;align-items:center;gap:9px;border-radius:12px;font-weight:700;font-size:15.5px;text-decoration:none;padding:13px 22px;border:1px solid transparent}
.bt.dark{background:#0f172a;color:#fff}.bt.dark:hover{background:#1e293b}.bt.light{background:#f1f5f9;color:#0f172a;border-color:#e2e8f0}.bt.light:hover{background:#e8edf4}
.hero .note{margin-top:18px;font-size:13.5px;color:#64748b}
.stats{border-top:1px solid #eef1f5;border-bottom:1px solid #eef1f5;background:#fafbfd}.sg{display:grid;grid-template-columns:repeat(4,1fr)}.st{padding:26px 22px;border-left:1px solid #eef1f5}.st:first-child{border-left:0}
.st b{display:block;font-size:34px;line-height:1.1;letter-spacing:-.02em}.st span{display:block;color:#334155;font-weight:600;margin-top:4px}.st small{display:block;color:#94a3b8;font-size:12.5px;margin-top:3px}
section.sec{padding:76px 0}section.sec.alt{background:#f8fafc}.sh{max-width:720px;margin:0 0 38px}.sh h2{font-size:clamp(26px,3.6vw,38px);line-height:1.2;letter-spacing:-.015em;margin:0 0 12px}.sh p{margin:0;color:#475569;font-size:17px}
.cg{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{border:1px solid #e8edf3;border-radius:18px;padding:24px;background:#fff;transition:.18s}.card:hover{border-color:rgba(var(--cr),.45);box-shadow:0 14px 36px rgba(15,23,42,.07);transform:translateY(-2px)}
a.card{color:inherit;text-decoration:none;display:block}.card .ib{width:44px;height:44px;border-radius:12px;background:rgba(var(--cr),.1);color:var(--c);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.card .tag{display:inline-block;font-size:12px;font-weight:700;color:var(--c);background:rgba(var(--cr),.08);border-radius:999px;padding:2px 10px;margin-bottom:10px}.card h3{font-size:19px;margin:0 0 8px}.card p{margin:0;color:#475569;font-size:15px}
.card .more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-weight:700;font-size:14px;color:var(--c)}.card .file{margin:12px 0 0;font-size:13px;color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.dg{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.dl .card .acts{margin-top:16px}.dl .card .bt{padding:10px 16px;font-size:14px;border-radius:10px}
.pr{display:flex;flex-wrap:wrap;gap:10px}.pr span{border:1px solid #dbe3ec;border-radius:999px;padding:8px 18px;font-weight:700;background:#fff;font-size:15px}.prn{margin-top:18px;color:#64748b;font-size:14px}
.stp{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}.stp .it{position:relative;border:1px solid #e8edf3;border-radius:18px;padding:26px 22px 22px;background:#fff}
.stp .it:before{counter-increment:s;content:counter(s);position:absolute;top:-16px;left:20px;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--c),var(--c2));color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center}
.stp h3{margin:6px 0 8px;font-size:18px}.stp p{margin:0;color:#475569;font-size:15px}.stp a{color:var(--c);font-weight:700;text-decoration:none;font-size:14px;display:inline-block;margin-top:10px}
.tw{overflow-x:auto;border:1px solid #e8edf3;border-radius:16px;background:#fff}table{border-collapse:collapse;width:100%;font-size:15px}th,td{padding:14px 18px;text-align:left;border-bottom:1px solid #eef1f5;vertical-align:top}tr:last-child td{border-bottom:0}th{background:#f8fafc;font-weight:700;white-space:nowrap}td:first-child{font-weight:600;color:#334155;white-space:nowrap}
.cd{background:#0b1220;color:#dbe4f3;border-radius:16px;padding:22px 24px;overflow-x:auto;font:14px/1.75 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:0}.cd .c{color:#7c8aa5}
.fq details{border:1px solid #e8edf3;border-radius:14px;padding:4px 20px;margin-bottom:12px;background:#fff}.fq summary{cursor:pointer;font-weight:700;padding:14px 0;list-style:none;display:flex;justify-content:space-between;gap:16px}.fq summary::-webkit-details-marker{display:none}.fq summary:after{content:"+";color:var(--c);font-size:22px;line-height:1}.fq details[open] summary:after{content:"\2212"}.fq details p{margin:0 0 16px;color:#475569}
.cta{padding:30px 0 80px}.cb{border-radius:28px;background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;padding:56px 40px;text-align:center}.cb h2{margin:0 0 12px;font-size:clamp(26px,3.6vw,38px)}.cb p{margin:0 auto 26px;max-width:620px;color:#cbd5e1}.cb .acts{justify-content:center}.cb .bt.dark{background:#fff;color:#0f172a}.cb .bt.light{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.22)}
.fl{padding:26px 0;border-top:1px solid #eef1f5}.fl h2{font-size:15px;margin:0 0 8px;color:#334155}.fl a{margin-right:16px;font-size:14.5px;color:#475569}
footer.ft{background:#f8fafc;border-top:1px solid #eef1f5;padding:44px 0 34px;font-size:14px;color:#64748b}.fg{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr;gap:28px}footer h4{margin:0 0 10px;color:#0f172a;font-size:14.5px}footer ul{list-style:none;padding:0;margin:0}footer li{margin:6px 0}footer a{color:#64748b;text-decoration:none}footer a:hover{color:var(--c)}
.crumb{font-size:13.5px;color:#64748b;padding:22px 0 0}.crumb a{color:#64748b}
.dh{padding:48px 0 30px;border-bottom:1px solid #eef1f5;background:radial-gradient(circle at 12% 0,rgba(var(--cr),.08),transparent 45%),#fff}.dh h1{font-size:clamp(28px,4.4vw,44px);line-height:1.2;letter-spacing:-.015em;margin:12px 0 10px;max-width:860px}.dh p{margin:0 0 18px;color:#475569;font-size:17px;max-width:760px}
.doc{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:44px;padding:34px 0 70px}
article{min-width:0;max-width:820px}article h2{font-size:25px;margin:40px 0 12px;padding-top:6px;scroll-margin-top:84px}article h3{font-size:19px;margin:26px 0 8px;scroll-margin-top:84px}article p{margin:0 0 14px}article li{margin:4px 0}
article code{background:#f1f5f9;padding:2px 7px;border-radius:6px;font-size:.9em}article .tip{background:rgba(var(--cr),.07);border-left:4px solid var(--c);padding:12px 16px;border-radius:8px}
aside.toc{position:sticky;top:84px;align-self:start;border:1px solid #e8edf3;border-radius:16px;padding:18px 18px 12px;font-size:14px;max-height:calc(100vh - 110px);overflow:auto}aside.toc b{display:block;margin-bottom:8px;color:#0f172a}aside.toc a{display:block;color:#475569;text-decoration:none;padding:5px 0}aside.toc a:hover{color:var(--c)}aside.toc a.l3{padding-left:14px;font-size:13.5px;color:#64748b}
.next{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}.next a{border:1px solid #e2e8f0;border-radius:999px;padding:8px 16px;text-decoration:none;font-size:14.5px;color:#334155}.next a:hover{border-color:var(--c);color:var(--c)}
.sec-note{background:#fff7ed;border:1px solid #fed7aa;border-radius:16px;padding:20px 24px;color:#7c2d12}.sec-note h3{margin:0 0 8px;font-size:18px}.sec-note ul{margin:0;padding-left:20px}
@media(max-width:1240px){nav.pn{display:none}details.mm{display:block;margin-left:auto}.hn>.pill{margin-left:0}}
@media(max-width:980px){nav.pn{display:none}details.mm{display:block;margin-left:auto}.hn>.pill{margin-left:0}.cg,.dg{grid-template-columns:1fr 1fr}.stp{grid-template-columns:1fr 1fr;row-gap:30px}.sg{grid-template-columns:1fr 1fr}.st:nth-child(3){border-left:0}.st{border-top:1px solid #eef1f5}.st:nth-child(-n+2){border-top:0}.doc{grid-template-columns:1fr}aside.toc{position:static;order:-1;max-height:none}.fg{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.cg,.dg,.stp{grid-template-columns:1fr}.hero{padding:56px 0 48px}section.sec{padding:52px 0}.w{padding:0 18px}.cb{padding:40px 22px}.hn>.pill{display:none}.sg{grid-template-columns:1fr}.st{border-left:0;border-top:1px solid #eef1f5}.st:first-child{border-top:0}}

article{max-width:720px;font-size:17px;line-height:1.9;color:#1e293b}
article p{margin:0 0 1.1em}article li{margin:.4em 0;line-height:1.85}article ul,article ol{margin:0 0 1.1em}
article h2{font-size:29px;line-height:1.3;margin:2.2em 0 .7em;padding:2px 0 10px 16px;border-left:5px solid var(--c);border-bottom:1px solid #e8edf3;color:#0f172a}
article>h2:first-child{margin-top:0}
article h3{font-size:21px;line-height:1.4;margin:1.6em 0 .5em;color:#0f172a}
article code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f8fafc;border:1px solid #e2e8f0;padding:1px 6px;border-radius:5px;font-size:.86em;color:#334155}
article pre code{border:0;background:transparent;padding:0;color:inherit}
article table{border-collapse:collapse;font-size:15.5px;line-height:1.7;margin:1.2em 0 1.6em}article th,article td{border:1px solid #dfe6ee;padding:13px 16px;text-align:left;vertical-align:top}article th{background:#eef2f7;font-weight:700;color:#0f172a}article tbody tr:nth-child(even) td{background:#f8fafc}
article .lead{font-size:20px;line-height:1.85;color:#0f172a;background:rgba(var(--cr),.06);border:1px solid rgba(var(--cr),.16);border-radius:14px;padding:18px 22px;margin:0 0 1.4em}
aside.toc{font-size:13px}aside.toc a{color:#64748b;border-left:2px solid transparent;padding:4px 0 4px 10px;margin-left:-10px;line-height:1.5}aside.toc a.l3{font-size:12.5px;padding-left:22px;color:#94a3b8}aside.toc a.on{color:var(--c);border-left-color:var(--c);font-weight:700}
@media(max-width:620px){article{font-size:16.5px}article h2{font-size:24px}article h3{font-size:19px}article .lead{font-size:18px;padding:14px 16px}article table{display:block;overflow-x:auto}}
/* 10-17 站长「v2rayzh 全部页面截图分析，然后优化排版」：手机端目录改成横滑胶囊、内页标题区压矮、点按区放大、导语不再误套到卡片文字 */
article .dg .card p{font-size:14.5px;line-height:1.7;color:#475569}article .dg .card p.file{font-size:12.5px;color:#64748b;word-break:break-all}
@media(max-width:980px){aside.toc{display:flex;gap:8px;overflow-x:auto;white-space:nowrap;padding:10px 12px;border-radius:14px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}aside.toc b{display:none}aside.toc a,aside.toc a.l3{flex:0 0 auto;margin:0;padding:8px 14px;border:1px solid #e2e8f0;border-left:1px solid #e2e8f0;border-radius:999px;background:#fff;font-size:13.5px;color:#334155}aside.toc a.l3{display:none}aside.toc a.on{border-color:var(--c);color:var(--c);background:rgba(var(--cr),.07)}.doc{padding-top:22px;gap:22px}}
@media(max-width:620px){.dh{padding:26px 0 20px}.dh h1{font-size:27px;margin:8px 0 8px}.dh p{font-size:15.5px;margin-bottom:14px}.dh .acts{display:grid;gap:10px}.dh .bt{width:100%;justify-content:center;min-height:46px;padding:11px 16px;font-size:15px}.crumb{padding-top:14px}.next a{padding:12px 18px;font-size:15px}.doc{padding-bottom:48px}article table{font-size:14.5px}summary{min-height:48px}}

/* L神 10-27：导航 12 项在 1366 撑出视口 */
@media(min-width:1241px){.hn{height:auto;flex-wrap:wrap;padding:8px 0;row-gap:2px}.hn>.pill{order:2;margin-left:auto}nav.pn{order:3;flex:1 1 100%;justify-content:center;margin:0;flex-wrap:wrap}}

/* 首页统计条说明小字 #94a3b8 在白底只有 2.56:1（3 处×多页）→ #475569（7.5:1） */
.st small,aside.toc a.l3{color:#475569}
@media(max-width:700px){.brand{min-height:44px}.crumb a{display:inline-block;padding:13px 3px}aside.toc a{display:block;padding-top:11px;padding-bottom:11px}.it a,.w>a.more{display:inline-block;padding-top:11px;padding-bottom:11px}}

@media(max-width:700px){.w>a{display:inline-block;padding:12px 8px}}
