nav.links a.active{background:var(--violet-soft);color:var(--violet);font-weight:600}
#prog{position:fixed;top:0;right:0;height:3px;background:linear-gradient(90deg,#A78BFF,#6C4CF1);width:0;z-index:100}
.a-hero{padding:52px 0 40px;border-bottom:1px solid var(--line);background:
  radial-gradient(620px 320px at 88% -20%,#EDE6FF 0,transparent 62%),
  radial-gradient(440px 280px at 4% 0%,#E7F6F1 0,transparent 60%)}
.crumb{font-size:13px;color:var(--muted);margin-bottom:18px}
.crumb a:hover{color:var(--violet)}
.a-hero .tagx{display:inline-block;background:var(--violet-soft);color:var(--violet);font-size:12.5px;font-weight:600;border-radius:999px;padding:6px 15px;margin-bottom:16px}
.a-hero h1{font-size:clamp(28px,4vw,46px);font-weight:700;line-height:1.35;letter-spacing:-.02em;max-width:26ch}
.a-hero .sub{margin-top:18px;color:var(--muted);font-size:17.5px;max-width:62ch;line-height:1.9}
.abar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:26px;padding-top:22px;border-top:1px dashed var(--line)}
.author{display:flex;align-items:center;gap:11px}
.avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,var(--violet),#4B2FD1);color:#fff;display:grid;place-items:center;font-family:"Readex Pro",sans-serif;font-weight:600}
.author b{display:block;font-size:14.5px;font-family:"Readex Pro",sans-serif;font-weight:500}
.author span{font-size:12.5px;color:var(--muted)}
.abar .m{font-size:13px;color:var(--muted)}
.share{margin-right:auto;display:flex;gap:8px}
.share a{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;background:#fff;font-size:15px;transition:.18s}
.share a:hover{border-color:var(--violet);color:var(--violet);transform:translateY(-2px)}
.a-wrap{display:grid;grid-template-columns:1fr 290px;gap:52px;align-items:start;padding:56px 0}
.a-body{max-width:74ch;font-size:17px;line-height:2.05;color:#3A3459}
.a-body h2{font-size:clamp(22px,2.6vw,29px);margin:44px 0 16px;scroll-margin-top:100px}
.a-body h2::before{content:"";display:block;width:38px;height:3px;background:var(--violet);border-radius:3px;margin-bottom:14px}
.a-body h3{font-size:19px;margin:30px 0 12px}
.a-body p{margin-bottom:18px}
.a-body strong{color:var(--ink);font-weight:600}
.a-body ul,.a-body ol{margin:0 0 20px;padding-right:22px}
.a-body li{margin-bottom:10px}
.a-body a{color:var(--violet);text-decoration:underline;text-underline-offset:3px}
.callout{background:var(--violet-soft);border-radius:14px;padding:24px 26px;margin:28px 0;border-right:4px solid var(--violet);font-size:16px}
.callout b{display:block;font-family:"Readex Pro",sans-serif;margin-bottom:8px;color:var(--ink)}
.warn{background:#FCF7F7;border-right-color:var(--seal)}
.qt{border-right:4px solid var(--line);padding:6px 22px;margin:28px 0;font-family:"Readex Pro",sans-serif;font-size:19px;line-height:1.8;color:var(--ink)}
.a-body table{width:100%;border-collapse:collapse;margin:26px 0;font-size:15px;background:#fff}
.a-body th,.a-body td{border:1px solid var(--line);padding:13px 15px;text-align:right;vertical-align:top}
.a-body th{background:#F5F2FC;font-family:"Readex Pro",sans-serif;font-weight:600;font-size:14.5px}
.steps{counter-reset:s;list-style:none;padding:0;margin:26px 0}
.steps li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 22px 20px 22px;margin-bottom:12px;display:grid;grid-template-columns:34px 1fr;gap:16px;align-items:start}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--violet);font-weight:600;border:1px solid #DDD2FB;border-radius:8px;width:34px;height:34px;display:grid;place-items:center;background:#FCFAFF}
.steps li b{display:block;font-family:"Readex Pro",sans-serif;font-size:16px;margin-bottom:5px;font-weight:600}
.steps li span{font-size:15px;color:var(--muted);line-height:1.85}
.figure{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;margin:28px 0}
.figure .cap{font-size:12.5px;color:var(--muted);text-align:center;margin-top:14px}
.mini-flow{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0}
.mini-flow div{background:#FCFBFE;border:1px solid var(--line);border-radius:10px;padding:11px 15px;font-size:13.5px}
.mini-flow i{width:26px;height:2px;background:var(--line);display:block}
.side{position:sticky;top:98px;display:grid;gap:18px}
.toc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}
.toc b{font-family:"Readex Pro",sans-serif;font-size:14px;display:block;margin-bottom:14px}
.toc a{display:block;font-size:13.5px;color:var(--muted);padding:7px 12px;border-right:2px solid var(--line);line-height:1.6;transition:.18s}
.toc a:hover{color:var(--violet)}
.toc a.on{color:var(--violet);border-right-color:var(--violet);background:#FBFAFF;font-weight:600}
.sidecta{background:linear-gradient(155deg,#5B3AE8,#8B6BFF);border-radius:14px;padding:24px;color:#fff}
.sidecta h4{font-size:17px;margin-bottom:8px}
.sidecta p{font-size:13.5px;color:rgba(255,255,255,.8);line-height:1.8;margin-bottom:16px}
.sidecta .btn{width:100%;background:#fff;color:var(--ink)}
.tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:36px;padding-top:26px;border-top:1px solid var(--line)}
.tags span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 15px;font-size:13px;color:var(--muted)}
.authorbox{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;margin-top:30px}
.authorbox .avatar{width:56px;height:56px;font-size:19px;flex:none}
.authorbox b{font-family:"Readex Pro",sans-serif;font-size:16px}
.authorbox p{font-size:14px;color:var(--muted);margin-top:6px;line-height:1.8}
.rel{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:26px}
.rel a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;transition:.22s}
.rel a:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#CDBEFB}
.rel .tagx{font-size:11.5px;color:var(--violet);font-weight:600;display:block;margin-bottom:9px}
.rel h3{font-size:16px;line-height:1.65}
.rel span{font-size:12.5px;color:var(--muted);display:block;margin-top:12px}
@media(max-width:1024px){.a-wrap{grid-template-columns:1fr;gap:0}.side{position:static;margin-bottom:34px}.rel{grid-template-columns:1fr}}
