@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4f6667dd39116621-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07935285219a259d-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f58031ded4338640-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/77814b00d5ca94a4-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/605ce01b664af129-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.T19VSG_className{font-family:Geist,Geist Fallback;font-style:normal}.T19VSG_variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b0c6b664fd57c2c6-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6e342921ee4dcd9d-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bb852295097cd96-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9eb5a876700c0028-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2a04751c893bf294-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07a39a8a4660cc7c-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}._8Li5zG_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}._8Li5zG_variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg:#f7f8fa;--panel:#fff;--panel2:#f3f5f9;--text:#0f172a;--muted:#4b5563;--navy:#00255c;--navy-hover:#0a3a85;--navy-soft:#eaf0fa;--red:#e61624;--yellow:#facc15;--yellow-ink:#713f12;--border:#e5e7eb;--critical:#dc2626;--high:#ea580c;--medium:#d97706;--low:#2563eb;--info:#64748b;--ok:#15803d;--radius:12px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-geist-sans), system-ui, sans-serif;margin:0;padding:0;line-height:1.55}body{background:linear-gradient(180deg, #eef3fb 0%, var(--bg) 520px) no-repeat, var(--bg)}a{color:var(--navy);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--font-geist-mono), ui-monospace, monospace}.container{max-width:1120px;margin:0 auto;padding:0 20px}.nav{align-items:center;gap:24px;padding:16px 0;display:flex}.logo{flex:none;align-items:center;display:flex}.logo img{width:auto;height:40px;display:block}.nav-links{flex:1;justify-content:space-evenly;align-items:center;gap:12px;display:flex}.nav-links a{color:var(--text);font-size:15px;font-weight:500}.nav-links a.btn,.nav-links a.btn:visited,.nav-links a.btn:hover{color:#fff}.btn{border:1px solid var(--navy);cursor:pointer;background:var(--navy);color:#fff;border-radius:10px;padding:11px 18px;font-family:inherit;font-size:15px;font-weight:600;line-height:1.3;display:inline-block;text-decoration:none!important}.btn:hover{background:var(--navy-hover);border-color:var(--navy-hover)}.btn.big{padding:14px 24px;font-size:17px}.btn.secondary{color:var(--navy);background:#fff;border:1px solid #cbd5e1}.btn.secondary:hover{background:var(--navy-soft)}.btn.danger{color:var(--critical);background:#fff;border:1px solid #fecaca}.btn.small{padding:7px 12px;font-size:13px}.hero{grid-template-columns:1fr 1fr;align-items:center;gap:48px;padding:56px 0 40px;display:grid}.hero h1{letter-spacing:-.03em;color:var(--navy);margin:0 0 18px;font-size:clamp(34px,4.4vw,52px);line-height:1.08}.hero h1 .accent{color:var(--red)}.hero p.lead{color:var(--muted);max-width:520px;margin:0 0 26px;font-size:19px}.hero .fine{color:var(--muted);margin-top:12px;font-size:14px}.hero-pic figcaption{text-align:center;color:var(--muted);margin-top:10px;font-size:13px}.hero-pic{margin:0}@media (max-width:860px){.hero{grid-template-columns:1fr;gap:32px;padding-top:32px}}.pill{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:999px;margin-bottom:18px;padding:4px 10px;font-size:13px;display:inline-block}.badge{background:var(--yellow);color:var(--yellow-ink);vertical-align:middle;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.grid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card h3{color:var(--text);margin:0 0 8px;font-size:17px}.card p{color:var(--muted);margin:0;font-size:15px}.card .num{background:var(--navy-soft);width:28px;height:28px;color:var(--navy);border-radius:999px;justify-content:center;align-items:center;margin-bottom:10px;font-size:14px;font-weight:700;display:inline-flex}section{padding:40px 0}section h2{letter-spacing:-.02em;text-align:center;color:var(--navy);margin:0 0 28px;font-size:30px}.price{color:var(--navy);font-size:40px;font-weight:800}.price small{color:var(--muted);font-size:15px;font-weight:400}.plan{flex-direction:column;display:flex}.plan .btn{text-align:center;margin-top:auto}.plan.featured{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}ul.checks{margin:14px 0 20px;padding:0;list-style:none}ul.checks li{color:var(--muted);padding:4px 0 4px 24px;position:relative}ul.checks li:before{content:"✓";color:var(--navy);font-weight:700;position:absolute;left:0}input[type=text],input[type=email],input[type=url],textarea{width:100%;color:var(--text);background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:11px 13px;font-family:inherit;font-size:15px}input:focus{outline:2px solid var(--navy-soft);border-color:var(--navy)}label{color:var(--muted);margin:12px 0 6px;font-size:14px;display:block}label.inline{align-items:flex-start;gap:8px;display:flex}.form-row{flex-wrap:wrap;gap:10px;margin:14px 0;display:flex}.notice{background:var(--panel2);border:1px solid var(--border);border-radius:10px;margin:14px 0;padding:12px 14px}.notice.error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.notice.ok{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.sev{text-transform:uppercase;color:#fff;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.sev.critical{background:var(--critical)}.sev.high{background:var(--high)}.sev.medium{background:var(--medium)}.sev.low{background:var(--low)}.sev.info{background:var(--info)}.finding{border-left:3px solid var(--border)}.finding.critical{border-left-color:var(--critical)}.finding.high{border-left-color:var(--high)}.finding.medium{border-left-color:var(--medium)}.finding.low{border-left-color:var(--low)}pre.prompt{white-space:pre-wrap;word-break:break-word;background:var(--panel2);border:1px solid var(--border);color:#1f2937;border-radius:8px;padding:12px;font-size:13px}.grade{border:1px solid var(--border);background:var(--panel2);border-radius:14px;justify-content:center;align-items:center;width:84px;height:84px;font-size:56px;font-weight:800;line-height:1;display:flex}.grade.A,.grade.B{color:var(--ok);background:#f0fdf4;border-color:#bbf7d0}.grade.C{color:var(--medium);background:#fffbeb;border-color:#fde68a}.grade.D,.grade.F{color:var(--critical);background:#fef2f2;border-color:#fecaca}table{border-collapse:collapse;width:100%}td,th{text-align:left;border-bottom:1px solid var(--border);padding:10px 8px;font-size:15px}th{color:var(--muted);font-weight:500}.table-wrap{overflow-x:auto}.muted{color:var(--muted)}.stack>*+*{margin-top:14px}footer{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;align-items:flex-start;gap:20px;margin-top:60px;padding:28px 0;font-size:14px;display:flex}footer img{width:auto;height:28px}footer a{color:var(--muted);margin-right:16px}.prose{max-width:760px}.prose h1{color:var(--navy);font-size:34px}.prose h2{text-align:left;margin:28px 0 8px;font-size:21px}.prose p,.prose li{color:#374151}.summary{border:1px solid var(--border);border-left:4px solid var(--navy);border-radius:var(--radius);background:#fff;padding:16px 20px}.summary h2{margin-top:0}.blog{max-width:760px;padding:24px 0 8px}.blog h1{color:var(--navy);margin:0 0 8px;font-size:34px}.blog .lead{margin:0 0 6px;font-size:18px}.post-card h2{text-align:left;margin:0 0 8px;font-size:21px}.post-card h2 a{color:var(--navy);text-decoration:none}.post-card h2 a:hover{text-decoration:underline}.post-card p{margin:0 0 10px}.post-card .read-more{font-size:15px;font-weight:600}.post-date{font-size:14px;margin:0 0 6px!important}.blog-post h1{margin-bottom:4px}.post-body{font-size:17px;line-height:1.7}.post-body h2{color:var(--navy)}.post-body h3,.post-body h4{color:var(--navy);margin:22px 0 6px}.post-body img{border-radius:8px;max-width:100%;height:auto}.post-body pre{border:1px solid var(--border);background:#f3f5f9;border-radius:8px;padding:12px 14px;font-size:14px;overflow-x:auto}.post-body blockquote{border-left:4px solid var(--border);color:#4b5563;margin:16px 0;padding:4px 16px}.post-cta{margin-top:36px}.post-cta .btn{margin-top:12px}.report-pic{border:1px solid var(--border);background:#fff;border-radius:16px;padding:18px;box-shadow:0 12px 32px #00255c14}.report-pic .head{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding-bottom:14px;display:flex}.report-pic .head .grade{width:64px;height:64px;font-size:40px}.report-pic .host{font-size:17px;font-weight:700}.report-pic .row{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:12px 0;display:flex}.report-pic .row:last-child{border-bottom:0;padding-bottom:0}.report-pic .row b{font-size:15px;display:block}.report-pic .row span.muted{font-size:13px}.report-pic .sev{text-align:center;flex:0 0 72px;margin-top:2px}.report-pic .fix{color:var(--navy);background:var(--navy-soft);border-radius:6px;margin-top:6px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}@media (max-width:640px){.nav{flex-wrap:wrap;gap:10px}.logo img{height:34px}.nav-links{flex-basis:100%;justify-content:space-between;gap:8px}.nav-links a{white-space:nowrap;font-size:14px}.nav-links a.btn{padding:8px 12px}section h2{font-size:26px}}table.kv td.mono{word-break:break-all}@media (max-width:380px){.nav-links{gap:6px}.nav-links a{font-size:13px}.nav-links a.btn{padding:7px 10px}}.table-wrap td{white-space:nowrap}.table-wrap table.kv td{white-space:normal}th{white-space:nowrap}
