.rk-blog{--blog-measure:720px}.rk-blog :focus-visible{outline:2px solid var(--violet);outline-offset:2px}.rk-blog .blog-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:56px;padding-block:72px 56px;display:grid}.rk-blog .blog-hero h1{margin-top:18px;font-size:clamp(40px,5vw,64px);font-weight:500;line-height:1.04}.rk-blog .blog-hero h1 span{background:linear-gradient(100deg, var(--text) 10%, var(--violet-hi) 70%);color:#0000;-webkit-background-clip:text;background-clip:text}.rk-blog .blog-hero-lede{max-width:560px;color:var(--public-muted);margin-top:24px;font-size:17px;line-height:1.8}.rk-blog .blog-hero-stats{flex-wrap:wrap;gap:32px;margin:32px 0 0;display:flex}.rk-blog .blog-hero-stats div{gap:4px;display:grid}.rk-blog .blog-hero-stats dt{color:var(--faint);font-family:var(--landing-mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.rk-blog .blog-hero-stats dd{letter-spacing:-.03em;margin:0;font-size:30px;font-weight:500}.rk-blog .blog-hero-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.rk-blog .blog-hero-actions .btn{flex-direction:row;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;line-height:1;display:inline-flex}.rk-blog .blog-hero-actions .btn svg{flex:none;width:14px;height:14px}.rk-blog .blog-hero-actions .btn.ghost{border:1px solid var(--border);background:var(--panel);color:var(--text)}.rk-blog .blog-hero-art{aspect-ratio:16/11;border:1px solid var(--border);background:radial-gradient(120% 90% at 70% 30%, #8b5cf62e, transparent 60%), var(--bg2);border-radius:2px;position:relative;overflow:hidden}.rk-blog .blog-hero-art img{object-fit:cover;width:100%;height:100%;transition:opacity .8s}.rk-blog .blog-hero-art canvas{position:absolute;inset:0;width:100%!important;height:100%!important}.rk-blog .blog-hero-art[data-live] img{opacity:0}.rk-blog .blog-featured{margin-top:8px}.rk-blog .blog-card{height:100%}.rk-blog .blog-card-link{border:1px solid var(--border);background:var(--panel);border-radius:2px;height:100%;transition:border-color .2s,transform .2s;display:grid;overflow:hidden}.rk-blog .blog-card-link:hover{border-color:var(--violet-line);transform:translateY(-2px)}.rk-blog .blog-card-media{aspect-ratio:16/9;background:var(--bg2);display:block;overflow:hidden}.rk-blog .blog-card-media img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.rk-blog .blog-card-link:hover .blog-card-media img{transform:scale(1.03)}.rk-blog .blog-card-text{align-content:start;gap:12px;padding:22px 22px 24px;display:grid}.rk-blog .blog-card-meta,.rk-blog .blog-post-meta{color:var(--faint);font-family:var(--landing-mono);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;gap:6px 14px;font-size:11px;display:flex}.rk-blog .blog-card h3{font-size:18px;font-weight:500;line-height:1.35}.rk-blog .blog-card-link:hover h3,.rk-blog .blog-card-link:hover h2{color:var(--violet-hi)}.rk-blog .blog-card-desc{color:var(--public-muted);font-size:14px;line-height:1.75}.rk-blog .blog-card-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:4px;display:flex}.rk-blog .blog-card-cves{color:var(--faint);font-family:var(--landing-mono);font-size:11px}.rk-blog .blog-card-featured .blog-card-link{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.rk-blog .blog-card-featured .blog-card-media{aspect-ratio:auto;min-height:340px}.rk-blog .blog-card-featured .blog-card-text{align-content:center;gap:16px;padding:40px}.rk-blog .blog-card-featured h2{font-size:clamp(24px,2.4vw,32px);font-weight:500;line-height:1.2}.rk-blog .blog-card-featured .blog-card-desc{font-size:15px}.rk-blog .blog-badges{flex-wrap:wrap;gap:6px;display:inline-flex}.rk-blog .blog-badge{border:1px solid var(--border);font-family:var(--landing-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:2px;padding:3px 7px;font-size:10px;font-weight:500}.rk-blog .blog-badge-critical{color:var(--red);background:var(--red-bg);border-color:#f8717159}.rk-blog .blog-badge-high{color:var(--amber);background:var(--amber-bg);border-color:#fbbf2459}.rk-blog .blog-badge-medium{color:var(--violet-hi);border-color:var(--violet-line);background:var(--violet-bg)}.rk-blog .blog-badge-kev{color:var(--text);background:var(--bg2)}.rk-blog .blog-index{margin-top:72px;padding-bottom:100px}.rk-blog .blog-index-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:18px;padding-bottom:22px;display:flex}.rk-blog .blog-index-head h2{font-size:26px;font-weight:500}.rk-blog .blog-filters{flex-wrap:wrap;gap:8px;display:flex}.rk-blog .blog-filters button{border:1px solid var(--border);min-height:40px;color:var(--public-muted);font:inherit;cursor:pointer;background:0 0;border-radius:2px;align-items:center;gap:8px;padding:0 14px;font-size:13px;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.rk-blog .blog-filters button span{color:var(--faint);font-family:var(--landing-mono);font-size:11px}.rk-blog .blog-filters button:hover{color:var(--text);border-color:var(--violet-line)}.rk-blog .blog-filters button[aria-pressed=true]{color:var(--text);border-color:var(--violet-line);background:var(--violet-bg)}.rk-blog .blog-sr-status{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.rk-blog .blog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:28px;display:grid}.rk-blog .blog-grid>[hidden]{display:none}.rk-blog .blog-post-head{padding-top:56px}.rk-blog .blog-post-head h1{max-width:920px}.rk-blog .blog-back{min-height:40px;color:var(--public-muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.rk-blog .blog-back svg{width:14px;height:14px}.rk-blog .blog-back:hover{color:var(--violet-hi)}.rk-blog .blog-post-meta{margin-top:28px}.rk-blog .blog-post-head h1{margin-top:16px;font-size:clamp(34px,4.4vw,54px);font-weight:500;line-height:1.1}.rk-blog .blog-post-dek{max-width:760px;color:var(--public-muted);margin-top:20px;font-size:18px;line-height:1.75}.rk-blog .blog-post-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-top:24px;display:flex}.rk-blog .blog-cve{border:1px solid var(--border);min-height:26px;color:var(--public-muted);font-family:var(--landing-mono);border-radius:2px;align-items:center;padding:2px 8px;font-size:11px;display:inline-flex}.rk-blog .blog-cve:hover{color:var(--violet-hi);border-color:var(--violet-line)}.rk-blog .blog-post-cover{margin:40px auto 0}.rk-blog .blog-post-cover img{border:1px solid var(--border);border-radius:2px;width:100%;height:auto}.rk-blog .blog-post-layout{grid-template-columns:minmax(0, var(--blog-measure)) 300px;justify-content:space-between;gap:64px;padding-block:48px 72px;display:grid}.rk-blog .blog-post-main{min-width:0}.rk-blog .blog-post-aside{align-self:start;gap:24px;display:grid;position:sticky;top:100px}.rk-blog .blog-answer{border:1px solid var(--violet-line);background:linear-gradient(120deg, var(--violet-bg), transparent 70%);border-left-width:2px;border-radius:2px;gap:10px;padding:22px 24px;display:grid}.rk-blog .blog-answer strong{font-family:var(--landing-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--violet-hi);font-size:11px;font-weight:500}.rk-blog .blog-answer p{color:var(--text);margin:0;font-size:16px;line-height:1.8}.rk-blog .blog-facts,.rk-blog .blog-toc{border:1px solid var(--border);background:var(--panel);border-radius:2px;padding:20px 22px}.rk-blog .blog-facts h2,.rk-blog .blog-toc p{color:var(--faint);font-family:var(--landing-mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px;font-size:11px;font-weight:500}.rk-blog .blog-facts dl{gap:14px;margin:0;display:grid}.rk-blog .blog-facts dl div{border-bottom:1px solid var(--border2);gap:4px;padding-bottom:14px;display:grid}.rk-blog .blog-facts dl div:last-child{border-bottom:0;padding-bottom:0}.rk-blog .blog-facts dt{color:var(--faint);font-size:12px}.rk-blog .blog-facts dd{color:var(--text);margin:0;font-size:13px;line-height:1.6}.rk-blog .blog-toc{gap:2px;display:grid}.rk-blog .blog-toc a{border-left:1px solid var(--border);color:var(--public-muted);padding:6px 0 6px 12px;font-size:13px;line-height:1.5}.rk-blog .blog-toc a:hover{color:var(--text)}.rk-blog .blog-toc a[aria-current=location]{border-left-color:var(--violet);color:var(--violet-hi)}.rk-blog .blog-prose{margin-top:36px}.rk-blog .blog-prose>p:first-child{color:var(--text);font-size:18px;line-height:1.85}.rk-blog .blog-prose h2{margin-top:56px;scroll-margin-top:96px;font-size:26px;font-weight:500;line-height:1.3}.rk-blog .blog-prose h3{margin-top:36px;scroll-margin-top:96px;font-size:19px;font-weight:500;line-height:1.4}.rk-blog .blog-prose .blog-anchor{color:inherit}.rk-blog .blog-prose .blog-anchor:hover{color:var(--violet-hi)}.rk-blog .blog-prose p{color:var(--public-muted);margin-top:20px;font-size:16px;line-height:1.9}.rk-blog .blog-prose strong{color:var(--text);font-weight:500}.rk-blog .blog-prose p a,.rk-blog .blog-prose li a,.rk-blog .blog-callout a{color:var(--violet-hi);text-decoration:underline;-webkit-text-decoration-color:var(--violet-line);text-decoration-color:var(--violet-line);text-underline-offset:3px}.rk-blog .blog-prose ul,.rk-blog .blog-prose ol{list-style:revert;gap:12px;margin-top:20px;padding-left:22px;display:grid}.rk-blog .blog-prose li{color:var(--public-muted);padding-left:4px;font-size:16px;line-height:1.8}.rk-blog .blog-prose li::marker{color:var(--violet)}.rk-blog .blog-prose :not(pre)>code{border:1px solid var(--border);background:var(--bg2);color:var(--text);font-family:var(--landing-mono);overflow-wrap:anywhere;border-radius:2px;padding:2px 6px;font-size:.84em}.rk-blog .blog-prose figure[data-rehype-pretty-code-figure]{border:1px solid var(--border);background:var(--bg2);border-radius:2px;margin:28px 0 0;overflow:hidden}.rk-blog .blog-prose figcaption[data-rehype-pretty-code-title]{border-bottom:1px solid var(--border);color:var(--faint);font-family:var(--landing-mono);letter-spacing:.04em;padding:10px 18px;font-size:11px}.rk-blog .blog-prose pre{font-family:var(--landing-mono);margin:0;padding:18px 0;font-size:13px;line-height:1.8;overflow-x:auto}.rk-blog .blog-prose pre code{display:grid}.rk-blog .blog-prose pre [data-line]{padding:0 18px}.rk-blog .blog-table-wrap{border:1px solid var(--border);border-radius:2px;margin-top:28px;overflow-x:auto}.rk-blog .blog-table-wrap table{border-collapse:collapse;width:100%;font-size:14px}.rk-blog .blog-table-wrap th{border-bottom:1px solid var(--border);background:var(--bg2);color:var(--text);text-align:left;white-space:nowrap;padding:12px 16px;font-weight:500}.rk-blog .blog-table-wrap td{border-bottom:1px solid var(--border2);color:var(--public-muted);vertical-align:top;padding:12px 16px;line-height:1.6}.rk-blog .blog-table-wrap tr:last-child td{border-bottom:0}.rk-blog .blog-table-wrap td:first-child{color:var(--text);font-family:var(--landing-mono);white-space:nowrap;font-size:13px}.rk-blog .blog-callout{border:1px solid var(--border);background:var(--bg2);border-left-width:2px;border-radius:2px;grid-template-columns:18px minmax(0,1fr);gap:14px;margin-top:28px;padding:18px 20px;display:grid}.rk-blog .blog-callout>svg{width:18px;height:18px;margin-top:3px}.rk-blog .blog-callout strong{color:var(--text);font-size:15px;font-weight:500;display:block}.rk-blog .blog-callout-body p{margin-top:6px;font-size:15px;line-height:1.75}.rk-blog .blog-callout-body p:first-child{color:var(--public-muted);margin-top:6px;font-size:15px}.rk-blog .blog-callout-danger{border-left-color:var(--red)}.rk-blog .blog-callout-danger>svg{color:var(--red)}.rk-blog .blog-callout-warning{border-left-color:var(--amber)}.rk-blog .blog-callout-warning>svg{color:var(--amber)}.rk-blog .blog-callout-info{border-left-color:var(--violet)}.rk-blog .blog-callout-info>svg{color:var(--violet-hi)}.rk-blog .blog-faq,.rk-blog .blog-sources{border-top:1px solid var(--border);margin-top:64px;padding-top:40px}.rk-blog .blog-faq h2,.rk-blog .blog-sources h2,.rk-blog .blog-related h2{font-size:24px;font-weight:500}.rk-blog .blog-faq-item{margin-top:28px}.rk-blog .blog-faq-item h3{font-size:17px;font-weight:500;line-height:1.45}.rk-blog .blog-faq-item p{color:var(--public-muted);margin-top:10px;font-size:15px;line-height:1.85}.rk-blog .blog-sources ol{gap:10px;margin-top:20px;padding-left:22px;display:grid}.rk-blog .blog-sources li{color:var(--faint);font-size:14px;line-height:1.6}.rk-blog .blog-sources a{color:var(--public-muted)}.rk-blog .blog-sources a:hover{color:var(--violet-hi)}.rk-blog .blog-sources a svg{vertical-align:-1px;opacity:.6;width:12px;height:12px;margin-left:6px;display:inline}.rk-blog .blog-updated{color:var(--faint);margin-top:28px;font-size:13px}.rk-blog .blog-related{border-top:1px solid var(--border);padding-block:24px 100px}.rk-blog .blog-related h2{margin-top:40px}@media (max-width:1100px){.rk-blog .blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rk-blog .blog-post-layout{grid-template-columns:minmax(0,1fr);gap:40px}.rk-blog .blog-post-aside{grid-row:1;position:static}.rk-blog .blog-toc{display:none}}@media (max-width:900px){.rk-blog .blog-hero{grid-template-columns:minmax(0,1fr);gap:36px;padding-top:40px}.rk-blog .blog-card-featured .blog-card-link{grid-template-columns:minmax(0,1fr)}.rk-blog .blog-card-featured .blog-card-media{aspect-ratio:16/9;min-height:0}.rk-blog .blog-card-featured .blog-card-text{padding:24px}}@media (max-width:640px){.rk-blog .blog-grid{grid-template-columns:minmax(0,1fr)}.rk-blog .blog-hero-stats{gap:24px}.rk-blog .blog-post-head{padding-top:32px}.rk-blog .blog-post-dek{font-size:16px}.rk-blog .blog-prose>p:first-child{font-size:17px}.rk-blog .blog-prose h2{margin-top:44px;font-size:22px}.rk-blog .blog-answer,.rk-blog .blog-facts{padding:18px}}@media (prefers-reduced-motion:reduce){.rk-blog .blog-card-link,.rk-blog .blog-card-media img,.rk-blog .blog-hero-art img{transition:none}.rk-blog .blog-card-link:hover,.rk-blog .blog-card-link:hover .blog-card-media img{transform:none}}.rk-blog .attack-path{margin-top:32px}.rk-blog .attack-path-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;display:flex}.rk-blog .attack-path-head h2{letter-spacing:-.01em;font-size:20px;font-weight:500}.rk-blog .attack-path-head p{color:var(--faint);font-family:var(--landing-mono);letter-spacing:.04em;font-size:11px}.rk-blog .attack-path-stage{aspect-ratio:16/7;border:1px solid var(--border);background:radial-gradient(60% 70% at 50% 60%, var(--violet-bg), transparent 70%), var(--panel);touch-action:pan-y;border-radius:2px;margin-top:16px;position:relative;overflow:hidden}.rk-blog .attack-path-stage[data-live=true]{cursor:grab}.rk-blog .attack-path-stage[data-live=true]:active{cursor:grabbing}.rk-blog .attack-path-stage canvas{width:100%;height:100%;display:block}.rk-blog .attack-path-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.rk-blog .attack-path-steps button{border:1px solid var(--border);background:var(--panel);width:100%;height:100%;min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:2px;align-content:start;gap:4px;padding:12px 14px;transition:border-color .2s,background .2s;display:grid}.rk-blog .attack-path-steps button:hover,.rk-blog .attack-path-steps button[aria-pressed=true]{border-color:var(--violet-line);background:linear-gradient(160deg, var(--violet-bg), transparent 80%), var(--panel)}.rk-blog .attack-path-steps button:focus-visible{outline:2px solid var(--violet-hi);outline-offset:2px}.rk-blog .attack-path-label{font-family:var(--landing-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--public-muted);font-size:10px}.rk-blog .attack-path-steps [data-tone=violet] .attack-path-label{color:var(--violet-hi)}.rk-blog .attack-path-steps [data-tone=red] .attack-path-label{color:var(--red)}.rk-blog .attack-path-steps [data-tone=green] .attack-path-label{color:var(--green)}.rk-blog .attack-path-steps strong{font-size:14px;font-weight:500}.rk-blog .attack-path-steps button>span:last-child{color:var(--public-muted);font-size:12px;line-height:1.5}@media (max-width:760px){.rk-blog .attack-path-stage{aspect-ratio:4/3}.rk-blog .attack-path-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.rk-blog .attack-path-steps button{transition:none}}
