.article-page *,.article-page :before,.article-page :after{box-sizing:border-box}.article-page{--at-bg:#14436b;--at-surface:#153d61;--at-card:#153d61;--at-card-hv:#1a4d73;--at-border:#5d97d514;--at-border-b:#5d97d552;--at-accent:#5d97d5;--at-accent2:#3c82cd;--at-text:#e5ebf0;--at-muted:#a8c4df;--at-dimmer:#5d84a8;background:var(--at-bg);min-height:100vh;padding-top:70px}body:has(.article-page){background-color:#14436b!important}html[data-at-theme=light] body:has(.article-page){background-color:#fff!important}html[data-at-theme=light] .article-page{--at-bg:#fff;--at-surface:#f7f7f5;--at-card:#fff;--at-card-hv:#f2f2f0;--at-border:#00000017;--at-border-b:#00000038;--at-accent:#1d5a99;--at-accent2:#153e6e;--at-text:#1a1a1a;--at-muted:#3f3f3f;--at-dimmer:#6b6b6b}html[data-at-theme=light] .article-page .at-tag-blue{color:#1d5a99;background:#1d5a9914;border-color:#1d5a9966}html[data-at-theme=light] .article-page .at-tag-sky{color:#1e6fae;background:#1e6fae12;border-color:#1e6fae59}html[data-at-theme=light] .article-page .at-tag-green{color:#1a7f4b;background:#1a7f4b12;border-color:#1a7f4b59}html[data-at-theme=light] .article-page .at-tag-red{color:#c53030;background:#c530300f;border-color:#c5303059}html[data-at-theme=light] .article-page .at-tag-orange{color:#b5560f;background:#b5560f0f;border-color:#b5560f59}html[data-at-theme=light] .article-page .at-tag-purple{color:#6b46c1;background:#6b46c10f;border-color:#6b46c159}html[data-at-theme=light] body:has(.article-page) .header{--background-color:#15222beb;box-shadow:0 0 18px #0000001f}html[data-at-theme=light] .article-page .at-abtn-pri{color:#fff!important}.at-prog-bar{background:linear-gradient(90deg, var(--at-accent2), var(--at-accent));z-index:300;height:2px;transition:width 80ms linear;position:fixed;top:0;left:0;box-shadow:0 0 10px #5d97d580}.at-bc{max-width:1200px;font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.1em;flex-wrap:wrap;align-items:center;gap:8px;margin:0 auto;padding:1rem 2rem;font-size:.62rem;display:flex}.at-bc a{color:var(--at-dimmer);text-decoration:none;transition:color .2s}.at-bc a:hover{color:var(--at-accent)}.at-bc-sep{opacity:.5}.at-bc-cur{color:var(--at-muted)}.at-hero-wrap{max-width:1200px;margin:0 auto;padding:0 2rem 3rem}.at-hero-box{background:var(--at-card);border:1px solid var(--at-border);border-top:2px solid var(--at-accent);border-left:none;border-right:none;overflow:hidden}.at-visual{background:#102e4a;height:300px;position:relative;overflow:hidden}.at-hero-content{padding:2.5rem 3rem}.at-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:1.25rem;display:flex}.at-tag{font-family:var(--font-inter), monospace;letter-spacing:.12em;text-transform:uppercase;border:1px solid;padding:3px 8px;font-size:.6rem;font-weight:500}.at-tag-blue{color:#7fb8f0;background:#5d97d51a;border-color:#5d97d580}.at-tag-sky{color:#93c5fd;background:#93c5fd14;border-color:#93c5fd66}.at-tag-green{color:#4ade80;background:#4ade8012;border-color:#4ade8059}.at-tag-red{color:#f87171;background:#f8717112;border-color:#f8717159}.at-tag-orange{color:#fb923c;background:#fb923c12;border-color:#fb923c59}.at-tag-purple{color:#a78bfa;background:#a78bfa12;border-color:#a78bfa59}.at-dt{font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.08em;font-size:.62rem}.at-title{font-family:var(--font-raleway), sans-serif!important;letter-spacing:-.02em!important;color:var(--at-text)!important;margin:0 0 1rem!important;font-size:clamp(1.7rem,3vw,2.6rem)!important;font-weight:800!important;line-height:1.1!important}.at-deck{color:var(--at-muted);max-width:680px;margin-bottom:2rem;font-size:1.05rem;line-height:1.8}.at-author-bar{border-top:1px solid var(--at-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.5rem;display:flex}.at-av-row{align-items:center;gap:12px;display:flex}.at-av{background:linear-gradient(135deg, var(--at-accent), #1a4d73);color:#fff;letter-spacing:.05em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:.68rem;font-weight:700;display:flex}.at-av-name{font-family:var(--font-raleway), sans-serif;color:var(--at-text);font-size:.8rem;font-weight:700}.at-av-role{font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.08em;margin-top:2px;font-size:.58rem}.at-stats{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.at-sp{font-family:var(--font-inter), monospace;color:var(--at-muted);letter-spacing:.08em;align-items:center;gap:5px;font-size:.62rem;display:flex}.at-sbtn{border:1px solid var(--at-border-b);color:var(--at-accent);font-family:var(--font-inter), monospace;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;padding:5px 12px;font-size:.6rem;transition:all .2s}.at-sbtn:hover{background:#5d97d51a}.at-layout{grid-template-columns:210px 1fr;align-items:start;gap:3rem;max-width:1200px;margin:0 auto;padding:0 2rem 5rem;display:grid}.at-toc{position:sticky;top:100px}.at-toc-lbl{font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--at-border);margin-bottom:1rem;padding-bottom:.75rem;font-size:.6rem}.at-toc-list{margin:0;padding:0;list-style:none}.at-toc-list li a{font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.05em;border-left:2px solid #0000;padding:7px 10px;font-size:.63rem;line-height:1.4;text-decoration:none;transition:all .18s;display:block}.at-toc-list li a:hover{color:var(--at-text);border-left-color:var(--at-dimmer)}.at-toc-list li a.active{color:var(--at-accent);border-left-color:var(--at-accent);background:#5d97d50d}.at-toc-sub a{padding-left:18px!important;font-size:.58rem!important}.at-prog-ring{flex-direction:column;align-items:center;gap:6px;margin-top:2rem;display:flex}.at-pr-wrap{width:54px;height:54px;position:relative}.at-pr-bg{fill:none;stroke:#5d97d51f;stroke-width:3px}.at-pr-fill{fill:none;stroke:var(--at-accent);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset .15s}.at-pr-num{font-family:var(--font-inter), monospace;color:var(--at-accent);justify-content:center;align-items:center;font-size:.62rem;font-weight:500;display:flex;position:absolute;inset:0}.at-pr-lbl{font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.1em;text-transform:uppercase;font-size:.56rem}.at-body{min-width:0}.at-body section,.at-body .at-sec{color:inherit;background-color:#0000!important}.at-sec{margin-bottom:3rem;scroll-margin-top:90px}.at-sec h2{border-bottom:1px solid var(--at-border);padding-bottom:.7rem;font-family:var(--font-raleway), sans-serif!important;letter-spacing:-.02em!important;color:var(--at-text)!important;margin:0 0 1.2rem!important;font-size:1.4rem!important;font-weight:800!important}.at-sec h3{scroll-margin-top:90px;font-family:var(--font-raleway), sans-serif!important;color:var(--at-text)!important;margin:1.75rem 0 .7rem!important;font-size:1rem!important;font-weight:700!important}.at-sec p{color:var(--at-muted);font-size:1.02rem;line-height:1.88;margin-bottom:1.2rem!important}.at-sec p strong{color:var(--at-text);font-weight:600}.at-sec ul,.at-sec ol{margin-bottom:1.2rem;padding-left:1.5rem}.at-sec ul li,.at-sec ol li{color:var(--at-muted);margin-bottom:.4rem;font-size:1.02rem;line-height:1.7;position:relative}.at-sec ul{list-style:none}.at-sec ul li:before{content:"";background-color:var(--at-accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.75rem;left:-1.25rem;box-shadow:0 0 8px #5d97d599}.at-sec ol{counter-reset:at-counter;list-style:none}.at-sec ol li{counter-increment:at-counter}.at-sec ol li:before{content:counter(at-counter) ".";color:var(--at-accent);font-family:var(--font-raleway), sans-serif;font-size:.95rem;font-weight:700;position:absolute;top:0;left:-1.5rem}.at-sec ul ul,.at-sec ol ol,.at-sec ul ol,.at-sec ol ul{margin-top:.4rem;margin-bottom:0}.at-sec code{font-family:var(--font-inter), monospace;color:var(--at-accent);background:#5d97d51a;padding:1px 5px;font-size:.82em}.at-callout{border-left:3px solid var(--at-accent);background:#5d97d50f;margin:2rem 0;padding:1.2rem 1.5rem}.at-call-warn{background:#fb923c0f;border-left-color:#fb923c}.at-call-danger{background:#f871710f;border-left-color:#f87171}.at-call-lbl{font-family:var(--font-inter), monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--at-accent);margin-bottom:.5rem;font-size:.6rem;display:block}.at-call-warn .at-call-lbl{color:#fb923c}.at-call-danger .at-call-lbl{color:#f87171}.at-callout p{color:var(--at-muted)!important;margin:0!important;font-size:.88rem!important;line-height:1.7!important}.at-callout code{font-family:var(--font-inter), monospace;color:var(--at-accent);background:#5d97d51f;padding:1px 5px;font-size:.82em}.at-cb{background:var(--at-surface);border:1px solid var(--at-border);border-left:3px solid var(--at-accent2);margin:1.5rem 0;padding:1.2rem 1.5rem;overflow-x:auto}.at-cb-head{border-bottom:1px solid var(--at-border);justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;display:flex}.at-cb-lang{font-family:var(--font-inter), monospace;color:var(--at-accent2);letter-spacing:.1em;text-transform:uppercase;font-size:.6rem}.at-cpbtn{font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;font-size:.58rem;transition:color .2s}.at-cpbtn:hover{color:var(--at-accent)}.at-cb pre{font-family:var(--font-inter), monospace;color:var(--at-muted);white-space:pre;font-size:.77rem;line-height:1.72;overflow-x:auto}.at-tbl-wrap{margin:1.5rem 0;overflow-x:auto}.at-dtbl{border-collapse:collapse;width:100%}.at-dtbl th{font-family:var(--font-inter), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--at-dimmer);background:var(--at-surface);text-align:left;border-bottom:1px solid var(--at-border);padding:10px 14px;font-size:.6rem}.at-dtbl td{font-family:var(--font-inter), monospace;color:var(--at-muted);border-bottom:1px solid var(--at-border);vertical-align:top;padding:10px 14px;font-size:.72rem;line-height:1.5}.at-dtbl tr:hover td{background:#5d97d50a}.at-td-cve{color:var(--at-accent);font-weight:500}.at-td-h{color:#f87171}.at-td-m{color:#fb923c}.at-mitre{flex-wrap:wrap;gap:8px;margin:1.5rem 0;display:flex}.at-mb{font-family:var(--font-inter), monospace;letter-spacing:.06em;background:var(--at-surface);border:1px solid var(--at-border);color:var(--at-muted);cursor:default;padding:5px 10px;font-size:.6rem;transition:all .2s}.at-mb:hover{border-color:var(--at-border-b);color:var(--at-accent);background:#5d97d512}.at-mb-id{color:var(--at-accent);margin-bottom:2px;font-size:.56rem;display:block}.at-pq{color:var(--at-text);border-left:3px solid var(--at-accent);margin:2.5rem 0;padding:1rem 2rem;font-size:1.25rem;font-style:italic;line-height:1.5;position:relative}.at-pq:before{content:"\"";color:var(--at-accent);opacity:.15;font-size:4rem;line-height:1;position:absolute;top:-10px;left:14px}.at-fig{margin:2rem 0}.at-fig-inner{background:var(--at-surface);border:1px solid var(--at-border);overflow:hidden}.at-fig-cap{font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.06em;border-top:1px solid var(--at-border);padding:10px 14px;font-size:.62rem}.at-divider{border:none;border-top:1px solid var(--at-border);margin:3rem 0}.at-end{background:var(--at-surface);border:1px solid var(--at-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:3rem;padding:1.75rem 2rem;display:flex}.at-end-lbl{font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.12em;text-transform:uppercase;font-size:.6rem}.at-end-acts{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.at-abtn{font-family:var(--font-inter), monospace;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--at-border);color:var(--at-muted);cursor:pointer;background:0 0;align-items:center;padding:7px 14px;font-size:.63rem;text-decoration:none;transition:all .2s;display:inline-flex}.at-abtn:hover{border-color:var(--at-border-b);color:var(--at-accent);background:#5d97d512}.at-abtn-liked{color:var(--at-accent)!important;border-color:var(--at-border-b)!important}.at-abtn-pri{background:var(--at-accent)!important;border-color:var(--at-accent)!important;color:#0d2a45!important;font-weight:700!important}.at-abtn-pri:hover{background:var(--at-accent2)!important;border-color:var(--at-accent2)!important;color:#fff!important}.at-more{background:var(--at-surface);border-top:1px solid var(--at-border);padding:4rem 2rem}.at-more-inner{max-width:1200px;margin:0 auto}.at-more-lbl{font-family:var(--font-inter), monospace;color:var(--at-dimmer);letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:12px;margin-bottom:2rem;font-size:.62rem;display:flex}.at-more-lbl:after{content:"";background:var(--at-border);flex:1;height:1px}.at-more-grid{background:var(--at-bg);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.at-mc{background:var(--bl-card);cursor:pointer;padding:1.5rem;transition:background .2s;position:relative;overflow:hidden}.at-mc a.at-rml:before{content:"";z-index:10;position:absolute;inset:0}.at-mc:before{content:"";background:linear-gradient(90deg, var(--at-accent2), transparent);opacity:0;height:2px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.at-mc:hover{background:var(--at-card-hv)}.at-mc:hover:before{opacity:1}.at-mc h3{transition:color .2s;font-family:var(--font-raleway), sans-serif!important;color:var(--at-text)!important;margin:.75rem 0!important;font-size:1rem!important;font-weight:700!important;line-height:1.3!important}.at-mc:hover h3{color:var(--at-accent)!important}.at-mc p{color:var(--at-muted);font-size:.82rem;line-height:1.65;margin-bottom:1rem!important}a.at-rml{font-family:var(--font-inter), monospace;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:4px;font-size:.63rem;transition:gap .2s;display:inline-flex;color:var(--at-accent)!important;text-decoration:none!important}a.at-rml:hover{gap:12px}@media (max-width:1080px){.at-layout{grid-template-columns:1fr}.at-toc{display:none}}@media (max-width:780px){.at-layout,.at-more-grid{grid-template-columns:1fr}.at-hero-content{padding:1.5rem}}@media (max-width:500px){.at-more-grid{grid-template-columns:1fr}}
