@font-face{font-family:Plex;
src:url('/assets/fonts/sans-500-latin.woff2')}
@font-face{font-family:Plex;
src:url('/assets/fonts/sans-500-cyrillic.woff2');
unicode-range:U+0400-04FF}
@font-face{font-family:Plex;
src:url('/assets/fonts/sans-600-latin.woff2');
font-weight:600}
@font-face{font-family:Plex;
src:url('/assets/fonts/sans-600-cyrillic.woff2');
font-weight:600;
unicode-range:U+0400-04FF}
@font-face{font-family:Mono;
src:url('/assets/fonts/mono-400-latin.woff2')}

:root{color-scheme:light;
--bg:#f5f5ef;
--surface:#fff;
--text:#202720;
--muted:#596157;
--line:#d4d9cc;
--accent:#294a13;
--lime:#c4f05d;
--soft:#e9edde;
--radius:16px;
--grade-good:#276139;
--grade-caution:#766000;
--grade-warning:#984400;
--grade-danger:#a22b1c;
--p0-text:#a22b1c;
--p0-bg:#fbe4df;
--p1-text:#86500e;
--p1-bg:#fbedd1}
html[data-theme=dark]{color-scheme:dark;
--bg:#121812;
--surface:#1b231b;
--text:#edf0e7;
--muted:#b0b9a8;
--line:#364032;
--accent:#c4f05d;
--soft:#232f20;
--grade-good:#a5dfa9;
--grade-caution:#f4d766;
--grade-warning:#ffba80;
--grade-danger:#ffc1b4;
--p0-text:#ffc1b4;
--p0-bg:#4a2721;
--p1-text:#f7d394;
--p1-bg:#42331d}
@media(prefers-color-scheme:dark){html:not([data-theme=light]){color-scheme:dark;
--bg:#121812;
--surface:#1b231b;
--text:#edf0e7;
--muted:#b0b9a8;
--line:#364032;
--accent:#c4f05d;
--soft:#232f20;
--grade-good:#a5dfa9;
--grade-caution:#f4d766;
--grade-warning:#ffba80;
--grade-danger:#ffc1b4;
--p0-text:#ffc1b4;
--p0-bg:#4a2721;
--p1-text:#f7d394;
--p1-bg:#42331d}
}

*{box-sizing:border-box}
body{margin:0;
background:var(--bg);
color:var(--text);
font:500 17px/1.65 Plex,Arial,sans-serif}
a{color:inherit;
text-underline-offset:4px}
button{font:inherit}
a,button{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);
outline-offset:5px}
.wrap{max-width:1280px;
margin:auto;
padding:0 48px}
.header{min-height:108px;
display:flex;
align-items:center;
justify-content:space-between;
gap:24px;
border-bottom:1px solid var(--line)}
.brand{display:flex;
align-items:center;
gap:10px;
font-size:25px;
font-weight:600;
text-decoration:none;
letter-spacing:-1px}
.brand-mark{background:var(--lime);
color:#172016;
width:34px;
height:34px;
text-align:center;
line-height:30px;
border-radius:9px;
font-size:31px}
.brand-caption{font:400 12px/1.4 Mono,monospace;
letter-spacing:1px;
width:120px;
margin-left:10px}
.header nav{display:flex;
align-items:center;
gap:28px;
font-size:14px}
.header nav a{text-decoration:none}
.theme{border:1px solid var(--line);
border-radius:50%;
background:var(--surface);
color:var(--text);
height:36px;
width:36px;
cursor:pointer}
.skip{position:absolute;
left:12px;
top:-100px;
background:var(--surface);
padding:12px;
z-index:10}
.skip:focus{top:12px}
.section{padding:80px 0;
border-bottom:1px solid var(--line)}
.narrow{max-width:850px;
margin:auto;
min-height:45vh}
.eyebrow{color:var(--accent);
font:400 12px/1.5 Mono,monospace;
letter-spacing:1.5px;
text-transform:uppercase;
margin:0 0 24px}
h1,h2,h3{font-weight:600;
line-height:1.12;
letter-spacing:-.045em;
margin:0 0 24px}
h1{font-size:clamp(40px,4.6vw,66px)}
h2{font-size:clamp(30px,3vw,42px)}
h3{font-size:23px;
letter-spacing:-.025em;
line-height:1.3}
p{margin:0 0 20px}
.lead{font-size:20px;
line-height:1.6;
color:var(--muted);
max-width:670px}
.muted,.small{color:var(--muted)}
.small{font-size:14px}
.button{display:inline-flex;
align-items:center;
justify-content:center;
gap:12px;
padding:13px 22px;
border:1px solid var(--text);
border-radius:7px;
font-size:15px;
font-weight:600;
text-decoration:none;
background:var(--text);
color:var(--bg)}
.button.secondary{background:transparent;
color:var(--text);
border-color:var(--line)}
.actions{display:flex;
flex-wrap:wrap;
gap:12px;
margin:28px 0 20px}
.hero{display:grid;
grid-template-columns:1.18fr 1fr;
gap:64px;
align-items:center;
padding:82px 0}
.hero h1{max-width:700px}
.grid,.steps,.cards{display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:24px}
.two-col{display:grid;
grid-template-columns:1fr 1fr;
gap:40px}
.card,.report-preview,.price-card{padding:30px;
border:1px solid var(--line);
border-radius:var(--radius);
background:var(--surface)}
.card p:last-child{margin-bottom:0}
.step-number{font:400 13px Mono,monospace;
color:var(--accent);
display:block;
margin-bottom:28px}
.section-intro{display:flex;
justify-content:space-between;
gap:36px;
margin-bottom:36px}
.section-intro p{max-width:460px;
color:var(--muted)}
.report-preview{box-shadow:0 24px 70px #0000000b;
transform:rotate(1deg)}
.preview-top,.report-row{display:flex;
align-items:center;
justify-content:space-between;
gap:14px;
padding:16px 0;
border-bottom:1px solid var(--line)}
.preview-top{font:400 12px Mono,monospace;
padding-top:0;
color:var(--muted)}
.score{font:600 78px/1 Plex,sans-serif;
letter-spacing:-6px;
margin:25px 0}
.score small{font-size:20px;
letter-spacing:0;
color:var(--muted)}
.badge{font:400 12px Mono,monospace;
background:var(--soft);
padding:5px 9px;
border-radius:4px;
color:var(--accent)}
.report-row{font-size:14px}
.report-row:last-child{border:0}
.price{font-size:64px;
line-height:1.1;
letter-spacing:-3px;
margin-bottom:14px}
.price small{font-size:16px;
letter-spacing:0;
color:var(--muted)}
.price-card.featured{border-color:var(--accent);
background:var(--soft)}
details{border-top:1px solid var(--line);
padding:22px 0}
summary{font-size:20px;
cursor:pointer;
font-weight:600}
details p{color:var(--muted);
max-width:850px;
margin:18px 0 0}
.legal h1{font-size:46px}
.legal h2{font-size:25px;
margin-top:38px}
.legal ul{padding-left:23px}
.legal li{margin-bottom:10px}
.footer{padding-top:45px;
padding-bottom:28px;
display:grid;
grid-template-columns:1fr 1fr;
gap:28px;
color:var(--muted);
font-size:14px}
.footer .brand{color:var(--text)}
.footer nav{display:flex;
flex-wrap:wrap;
gap:12px 22px;
align-content:start}
.footer-meta{grid-column:1/-1;
border-top:1px solid var(--line);
padding-top:20px;
font:400 12px Mono,monospace}
.note{margin-top:28px;
padding:20px 24px;
border-left:3px solid var(--accent);
background:var(--soft)}
code{font-family:Mono,monospace;
overflow-wrap:anywhere}
 [hidden]{display:none!important}

@media(max-width:760px){.wrap{padding-left:22px;
padding-right:22px}
.header{min-height:85px;
gap:12px;
flex-wrap:wrap;
padding-top:18px;
padding-bottom:18px}
.brand-caption{display:none}
.header nav{gap:16px;
font-size:13px}
.hero{grid-template-columns:1fr;
gap:36px;
padding:48px 0}
.section{padding:48px 0}
.grid,.steps,.cards,.two-col{grid-template-columns:1fr;
gap:18px}
.section-intro{display:block;
margin-bottom:24px}
.card,.report-preview,.price-card{padding:24px}
.report-preview{transform:none}
.lead{font-size:18px}
.footer{grid-template-columns:1fr}
.legal h1{font-size:clamp(28px,8.4vw,36px)}
h1{font-size:42px}
.header .brand{font-size:22px}
.header nav a:first-child{max-width:85px;
line-height:1.3}
.score{font-size:68px}
}

h1,h2,h3,.eyebrow{overflow-wrap:anywhere}
.header nav a{display:inline-flex;align-items:center;min-height:44px}
.theme{width:44px;height:44px}

/* Навигация и короткие метки сохраняют целые строки. */
.header nav a,.badge,time{white-space:nowrap}
.badge{flex-shrink:0}
.eyebrow{overflow-wrap:normal}
.footer{grid-template-columns:1fr 2fr}
.footer nav{display:grid;grid-template-columns:repeat(3,max-content);justify-content:end;gap:12px 22px}
summary{display:grid;grid-template-columns:18px 1fr;column-gap:12px;list-style:none}
summary::-webkit-details-marker{display:none}
summary::before{content:'+';color:var(--accent)}
details[open] summary::before{content:'−'}
@media(max-width:760px){
.header{display:block}
.header nav{margin-top:12px;gap:10px;justify-content:space-between;flex-wrap:wrap}
.header nav a:first-child{max-width:none;line-height:1.65}
.footer{grid-template-columns:1fr}
.footer nav{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:start}
}

/* Общие элементы посадочных страниц. */
.audience-card{position:relative}
.audience-card a{text-decoration:none}
.audience-card a::after{content:"";position:absolute;inset:0;border-radius:var(--radius)}
.audience-card:focus-within,.audience-card:hover{border-color:var(--accent)}
.landing-hero{grid-template-columns:1.25fr 1fr;gap:48px}
.landing-hero h1{font-size:clamp(38px,4.3vw,62px);overflow-wrap:normal;hyphens:auto}
.landing-hero .eyebrow{letter-spacing:1px}
.landing-panel{padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}
.landing-panel h2{font-size:28px;letter-spacing:-.025em}
.landing-list + .small{margin:20px 0 0}
.landing-list{padding-left:22px;margin:0}
.landing-list li{margin-bottom:14px}
.landing-list li:last-child{margin-bottom:0}
.landing-cta > p,.landing-cta > .actions{max-width:850px}
.landing-cta h2{max-width:740px}
@media(max-width:1000px){.brand-caption{display:none}.header nav{gap:18px}}
@media(max-width:760px){
.header{position:relative}
.header nav .theme{position:absolute;right:22px;top:14px}
.header nav .audience-nav{display:none}
.landing-hero{grid-template-columns:1fr;gap:28px}
.landing-hero h1{font-size:38px}
.landing-panel{padding:24px}
.landing-hero .actions,.landing-cta .actions{flex-direction:column;align-items:stretch}
}

code{hyphens:none}
code.nowrap{white-space:nowrap}
.command-step{grid-column:1/-1;min-width:0}
.landing-limits{line-height:1.7}
.landing-limits .landing-list{margin-top:18px}
.theme{display:inline-flex;align-items:center;justify-content:center}
.theme::before{content:"";width:22px;height:22px;background:var(--text);mask:url('/assets/moon.svg?v=6243a0bfac76') center/contain no-repeat}
html[data-theme=dark] .theme::before{mask-image:url('/assets/sun.svg?v=64904c66f5f2')}
@media(prefers-color-scheme:dark){html:not([data-theme=light]) .theme::before{mask-image:url('/assets/sun.svg?v=64904c66f5f2')}}


/* Растровая серия: одинаковая рамка в обеих темах. */
.hero-visual{min-width:0;display:grid;gap:20px}
.landing-hero h1{hyphens:none}
.illustration{display:block;width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--line);background:var(--soft)}
.hero-visual .report-preview{transform:none;box-shadow:none;padding:24px}
.hero-visual .landing-panel{padding:24px}
.hero-visual .landing-panel h2{font-size:25px}
.hero-visual .landing-list{font-size:15px;line-height:1.6}
.hero-visual .score{font-size:56px;margin:18px 0}
.hero-visual .report-row{padding:12px 0}
.workflow-art{max-width:900px;margin:0 auto 32px}
.workflow-art .illustration{aspect-ratio:3/2}
.error-art{max-width:360px;margin:24px 0}
.hero{gap:48px;align-items:start}
.hero:not(.landing-hero)>:first-child{align-self:center}
.themed-art{display:block;min-width:0}
@media(max-width:760px){
.hero{gap:28px}
.hero-visual{gap:20px}
.hero-visual .illustration{max-width:520px;margin:auto}
.workflow-art{margin-bottom:24px}
}
/* Формы и отчёты используют палитру общего сайта. */
input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:12px 14px;max-width:100%;min-width:0}
input:not([type=checkbox]),textarea,select{width:100%}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
input[type=checkbox]{width:20px;height:20px;flex-shrink:0;accent-color:var(--accent)}
label{display:grid;gap:7px;font-size:15px}
form{display:grid;gap:20px}
button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}
.form-card{max-width:560px;margin:auto}.form-card h1{font-size:42px}
.check-label{display:flex;gap:12px;align-items:flex-start}.check-label input{margin-top:4px}
.status{min-height:1.65em;overflow-wrap:anywhere}.status.error,[role=alert]{color:#a03925}html[data-theme=dark] .status.error,html[data-theme=dark] [role=alert]{color:#ffb7a8}
.command-box{border:1px solid var(--line);background:var(--soft);border-radius:10px;padding:22px;display:grid;gap:18px}
.command-box pre,pre.command{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font:400 14px/1.8 Mono,monospace;word-break:break-word}
.command-box .button{justify-self:start}.tabs,.app-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}
.tabs button,.app-tabs button{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:7px;padding:10px 18px}
.tabs [aria-selected=true],.app-tabs [aria-selected=true]{background:var(--text);color:var(--bg)}
.report-metrics{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:12px;margin:24px 0 40px}
.report-score,.metric{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:20px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.report-score strong{font-size:58px;line-height:1;letter-spacing:-3px}.report-score .muted{font-size:13px;width:100%}.metric{align-content:center;gap:4px 10px}.metric strong{font-size:30px;line-height:1.2}.metric small{width:100%;color:var(--muted);font-size:12px}
.finding{padding:22px 0;border-top:1px solid var(--line)}.finding-top{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}.finding h4{margin:0;font-size:19px}.finding p{margin:10px 0}.finding-action{font-size:15px}.finding-signals,.cve-list{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px}.cve-list{font:400 13px/1.7 Mono,monospace}.priority-P0{color:var(--p0-text);background:var(--p0-bg)}.priority-P1{color:var(--p1-text);background:var(--p1-bg)}.priority-P2{color:var(--accent)}.metric.priority-P0,.metric.priority-P1{border-color:transparent}.report-coverage{margin-top:40px;border-top:1px solid var(--line);padding-top:28px}.report-coverage p,.report-coverage li{font-size:15px}
.report-host h2{font-size:32px;overflow-wrap:anywhere}.report-host h3{font-size:23px}.report-host .section-intro{margin-top:12px}.report-host .section-intro p{margin:0}
.app-section{scroll-margin-top:24px}dialog{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;max-width:min(720px,calc(100% - 32px));max-height:90vh;overflow:auto}dialog::backdrop{background:#0007}
.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line)}th{font-size:12px;color:var(--muted)}
@media(max-width:760px){.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-score{grid-column:1/-1}.report-score,.metric{padding:16px}.report-host .section-intro{display:grid;gap:12px}.command-box{padding:18px}.form-card h1{font-size:36px}dialog{padding:22px}.report-host h2{font-size:28px}}
@media(prefers-color-scheme:dark){html:not([data-theme=light]) .status.error,html:not([data-theme=light]) [role=alert]{color:#ffb7a8}}

main > section:last-of-type{border-bottom:0}
.footer{border-top:1px solid var(--line)}
@media(max-width:760px){.command-box .button{order:-1}}

.report-label{display:inline-flex;flex-wrap:wrap;gap:.35rem;align-items:baseline}
.report-label code{overflow-wrap:anywhere}
.cve-details dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem 1rem}
.cve-details dd{margin:0;overflow-wrap:anywhere}
.stack-mentions{margin-top:2rem}
.mention + .mention{margin-top:1rem}

.grade-A,.grade-B{color:var(--grade-good)}
.grade-C{color:var(--grade-caution)}
.grade-D{color:var(--grade-warning)}
.grade-E,.grade-F{color:var(--grade-danger)}
.grade-incomplete{color:var(--muted)}
.report-incomplete{font-size:13px;max-width:100%;min-width:0;border:0;padding:0}
.report-incomplete>summary{cursor:pointer;white-space:normal;line-height:1.4}
.report-incomplete>ul{padding-left:20px;font-size:13px;margin:10px 0 0;overflow-wrap:anywhere}
.server-rating{flex-wrap:wrap;max-width:48%;justify-content:flex-end}
.server-rating>.report-incomplete{flex-basis:100%;text-align:left}
.badge.grade{font-weight:700;border:1px solid currentColor}
.port-list{display:inline-flex;flex-wrap:wrap;gap:8px}
.exposed-port{padding:3px 6px;border-radius:4px;box-decoration-break:clone;overflow-wrap:anywhere}
.report-label small{font-weight:400;letter-spacing:normal}
.recovery-code-box{margin:24px 0}.recovery-code-box>code{font:500 19px/1.8 Mono,monospace;letter-spacing:.03em;overflow-wrap:anywhere;word-break:break-word}.recovery-code-box .actions{margin:0;gap:12px}.recovery-code-box .button{font-size:14px;padding:10px 16px}#recovery-result>.check-label{margin:24px 0}#recovery-result>h1,#recovery-result>h2{font-size:32px}#recovery-heading:focus{outline:none}.account-card #recovery-result>h2{font-size:24px}.account-card .recovery-code-box{padding:18px}.account-card .recovery-code-box>code{font-size:16px}

.pricing-tiers table{width:100%;border-collapse:collapse;margin:16px 0;text-align:left}
.pricing-tiers caption{caption-side:bottom;text-align:left;color:var(--muted);font-size:14px;padding-top:12px}
.pricing-tiers th,.pricing-tiers td{padding:10px 8px;border-bottom:1px solid var(--line)}
.pricing-tiers th{font-weight:500}
.pricing-tiers td:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
.billing-calculator{border-top:1px solid var(--line);padding-top:24px;margin:24px 0;max-width:480px}
.billing-calculator label{display:block;margin:16px 0}
.billing-calculator input,.billing-calculator select{display:block;width:100%;margin-top:8px}
.billing-quote{display:block;margin-top:16px;font-size:24px;font-weight:500;font-variant-numeric:tabular-nums}

.finding-new{border-inline-start:3px solid var(--accent);padding-inline-start:16px}.finding-new-label{background:var(--surface);color:var(--accent);border:1px solid currentColor}.feeds-updated{margin:12px 0;color:var(--muted)}

/* Public vulnerability explanations: a readable document on all screen sizes. */
.weekly{max-width:900px;margin-inline:auto}
.weekly h1{max-width:20ch;overflow-wrap:anywhere}
.weekly-list{display:grid;gap:24px;list-style:none;padding:0;margin:36px 0}
.weekly-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;min-width:0}
.weekly-card h2{font-size:1.5rem;margin:12px 0}
.weekly-card h3,.weekly-article h3{font-size:1rem;margin:24px 0 8px}
.weekly-card p{max-width:72ch}
.weekly-signals{display:flex;flex-wrap:wrap;gap:8px;font-size:.875rem;color:var(--muted)}
.weekly-signal{color:var(--grade-danger);font-weight:600}
.weekly-article{max-width:800px}
.weekly-article>.eyebrow{margin-top:36px}
.weekly-section{padding:28px 0;border-bottom:1px solid var(--line)}
.weekly-section h2{font-size:1.5rem;margin:0 0 16px}
.weekly-section p{line-height:1.7;max-width:70ch;white-space:pre-line}
.weekly-technical{border-bottom:0}
.weekly-facts{font-size:.875rem}
.weekly-facts>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.weekly-facts dt{font-weight:600}.weekly-facts dd{margin:0;overflow-wrap:anywhere}
.weekly-references{padding-left:20px;overflow-wrap:anywhere}.weekly-references li{margin:12px 0}
@media(max-width:600px){.weekly-card{padding:20px}.weekly-section{padding:24px 0}.weekly-facts>div{grid-template-columns:1fr;gap:4px}}

/* The checked rating remains primary; the server-wide estimate explains coverage. */
.report-rating-label{width:100%;font-size:14px;color:var(--muted)}
.report-global-rating{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 4px;font-size:14px;color:var(--muted);line-height:1.6;max-width:100%}
.report-score>.report-global-rating{width:100%;margin-top:6px}
.report-component-coverage{display:block;width:100%}
.report-global-rating .server-coverage-icon{font-size:16px;line-height:1.4}
.server-table-rating{flex-wrap:wrap;min-width:0}.server-table-rating strong{font-size:18px}.server-table-rating>.report-global-rating{flex-basis:100%;min-width:0;font-size:12px}
.report-incomplete{margin-top:28px;font-size:15px}
.report-incomplete summary{cursor:pointer;font-weight:600}
.languages{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.languages a[aria-current=page]{text-decoration:underline;text-underline-offset:4px}
@media(min-width:761px) and (max-width:1200px){.header nav{flex-wrap:wrap;justify-content:flex-end;gap:12px}.languages{justify-content:flex-end}}
@media(max-width:760px){.languages{flex-basis:100%;justify-content:space-between;gap:6px}}
.trust-banner{margin:0 0 20px;padding:18px 22px;border:1px solid var(--line);border-color:color-mix(in srgb,var(--lime) 60%,var(--line));border-left:6px solid var(--lime);border-radius:var(--radius);background:var(--soft);background:color-mix(in srgb,var(--lime) 18%,var(--bg))}.trust-banner strong{display:block;font-size:22px;line-height:1.3;letter-spacing:-.01em}.trust-banner p{margin:6px 0 0;font-size:15px;line-height:1.5}
