:root {
    color-scheme: dark;
    --bg: #07121c;
    --bg2: #0b1d28;
    --surface: rgba(12, 28, 40, 0.78);
    --surface2: rgba(9, 20, 31, 0.94);
    --text: #edf8ff;
    --muted: #9cb5c7;
    --line: rgba(121, 209, 236, 0.2);
    --green: #00f5a8;
    --cyan: #3bdcff;
    --amber: #ffcb66;
    --red: #ff6375;
    --shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html[data-theme="light"] {
    color-scheme: light;
    --bg: #f4f8fb;
    --bg2: #eaf2f7;
    --surface: rgba(255, 255, 255, 0.82);
    --surface2: rgba(255, 255, 255, 0.96);
    --text: #06131d;
    --muted: #587083;
    --line: rgba(2, 45, 68, 0.15);
    --shadow: 0 18px 46px rgba(20, 56, 76, 0.14);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    background: linear-gradient(180deg, var(--bg), var(--bg2));
    color: var(--text);
    overflow-x: hidden;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: linear-gradient(to bottom, #000, transparent 80%);
}

a { color: inherit; text-decoration: none; }
button, input { font: inherit; }

.glass {
    border: 1px solid var(--line);
    background: var(--surface);
    backdrop-filter: blur(18px);
    border-radius: 10px;
    box-shadow: var(--shadow);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 6px clamp(14px, 3vw, 34px);
    background: rgba(8, 20, 31, 0.92);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(20px);
}

.brand { display: inline-flex; align-items: center; min-width: 180px; }
.brand img { width: 180px; height: auto; display: block; }

.site-header nav {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--muted);
    font-size: .93rem;
}

.site-header nav a {
    padding: 10px 14px;
    border-radius: 8px;
}

.site-header nav a.active,
.site-header nav a:hover {
    color: var(--text);
    background: rgba(255,255,255,.06);
}

.theme-toggle {
    width: 52px;
    height: 30px;
    padding: 3px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    cursor: pointer;
}

.theme-toggle span {
    display: block;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 16px var(--green);
}

html[data-theme="light"] .theme-toggle span { margin-left: auto; }

.hero {
    min-height: calc(100vh - 62px);
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(320px, .8fr);
    gap: 40px;
    align-items: center;
    max-width: 1280px;
    margin: 0 auto;
    padding: clamp(36px, 6vw, 76px) clamp(18px, 4vw, 44px) 34px;
}

.hero-label {
    display: inline-flex;
    color: var(--green);
    font-weight: 900;
    margin-bottom: 14px;
}

.hero h1 {
    margin: 0;
    max-width: 680px;
    font-size: clamp(3.1rem, 8vw, 6.7rem);
    line-height: .92;
    letter-spacing: 0;
}

.hero p {
    max-width: 760px;
    color: #b7d8ee;
    font-size: clamp(1rem, 2vw, 1.18rem);
    line-height: 1.65;
}

.scan-form {
    max-width: 760px;
    margin-top: 28px;
    padding: 16px;
}

.scan-form label {
    display: block;
    margin-bottom: 8px;
    color: var(--muted);
}

.scan-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    overflow: hidden;
    border: 1px solid rgba(59, 220, 255, .28);
    border-radius: 8px;
    background: var(--surface2);
}

.scan-row span {
    padding: 0 12px;
    color: var(--green);
    font-weight: 900;
}

.scan-row input {
    min-width: 0;
    border: 0;
    outline: 0;
    color: var(--text);
    background: transparent;
    padding: 18px 12px;
    font-size: 1.05rem;
}

.scan-row button {
    min-height: 58px;
    border: 0;
    padding: 0 24px;
    cursor: pointer;
    color: #031119;
    font-weight: 900;
    background: linear-gradient(135deg, var(--green), var(--cyan));
}

.hero-robot {
    position: relative;
    min-height: 520px;
    display: grid;
    place-items: center;
}

.hero-bubble {
    position: absolute;
    top: 4%;
    left: 0;
    z-index: 3;
    max-width: 310px;
    padding: 14px 16px;
    border: 1px solid rgba(59, 220, 255, .3);
    border-radius: 14px 14px 14px 4px;
    background: var(--surface2);
    box-shadow: var(--shadow);
}

.hero-bubble strong,
.hero-bubble span {
    display: block;
}

.hero-bubble strong {
    color: var(--green);
    margin-bottom: 6px;
}

.hero-bubble span {
    color: var(--text);
    line-height: 1.45;
}

.hero-bubble span.bubble-in {
    animation: bubble-in .36s ease both;
}

.robot-head,
.bot-face {
    position: relative;
    width: 210px;
    height: 150px;
    border-radius: 58px;
    background: linear-gradient(145deg, #f3fbff, #c7e9f6);
    box-shadow: inset 0 -18px 32px rgba(0,0,0,.12), 0 28px 70px rgba(0,245,168,.18);
}

.robot-head::before,
.bot-face::before {
    content: "";
    position: absolute;
    left: 24px;
    right: 24px;
    top: 38px;
    height: 78px;
    border-radius: 32px;
    background: #06131d;
    box-shadow: inset 0 0 18px rgba(59,220,255,.28);
}

.eye {
    position: absolute;
    top: 68px;
    z-index: 2;
    width: 22px;
    height: 28px;
    border-radius: 50%;
    background: var(--cyan);
    box-shadow: 0 0 18px var(--cyan);
    animation: bot-eye 3.5s ease-in-out infinite;
}

.eye.left { left: 70px; }
.eye.right { right: 70px; }
.mouth {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: 99px;
    width: 36px;
    height: 14px;
    transform: translateX(-50%);
    border-bottom: 5px solid var(--green);
    border-radius: 0 0 30px 30px;
    animation: bot-smile 3.8s ease-in-out infinite;
}

.robot-body {
    width: 170px;
    height: 140px;
    margin-top: -12px;
    border-radius: 46px 46px 34px 34px;
    background: linear-gradient(145deg, #eef8fc, #b7d9e8);
    display: grid;
    place-items: center;
}

.robot-body span {
    width: 54px;
    height: 64px;
    border-radius: 16px;
    border: 3px solid var(--green);
    box-shadow: 0 0 20px rgba(0,245,168,.4);
}

.audit-card {
    position: absolute;
    padding: 16px;
    min-width: 210px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface2);
}

.audit-card.top { right: 2%; top: 14%; }
.audit-card.bottom { left: 0; bottom: 12%; }
.audit-card small, .audit-card span { display: block; color: var(--muted); }
.audit-card strong { display: block; margin: 8px 0; color: var(--green); font-size: 1.6rem; }

.result-stage {
    max-width: 1280px;
    margin: 0 auto;
    padding: 14px clamp(18px, 4vw, 44px) 0;
    scroll-margin-top: 80px;
}

.placeholder {
    text-align: center;
    padding: 44px 18px;
}

.scan-pulse {
    width: 54px;
    height: 54px;
    margin: 0 auto 18px;
    border-radius: 50%;
    border: 2px solid var(--green);
    box-shadow: 0 0 26px var(--green);
}

.kpi-grid,
.analysis-grid,
.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 22px 0;
}

.kpi-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.score-card,
.metric {
    padding: 18px;
    min-height: 132px;
}

.score-card span {
    display: block;
    font-size: 2.2rem;
    font-weight: 950;
    color: var(--green);
}

.score-card strong,
.metric strong {
    display: block;
    overflow-wrap: anywhere;
    font-size: 1.2rem;
}

.metric small,
.metric span {
    display: block;
    color: var(--muted);
    margin-top: 8px;
}

.timeline-band {
    margin: 28px 0;
    padding: 24px;
}

.section-eyebrow {
    color: var(--green);
    font-weight: 900;
    text-transform: uppercase;
    font-size: .78rem;
}

.timeline-head h2,
.section-title h2 {
    margin: 8px 0 8px;
    font-size: clamp(1.7rem, 3vw, 2.4rem);
}

.timeline-head p,
.section-title p {
    color: var(--muted);
}

.countdown {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0 24px;
}

.countdown div {
    padding: 14px 10px;
    border-radius: 8px;
    background: rgba(0,245,168,.08);
    border: 1px solid rgba(0,245,168,.22);
    text-align: center;
}

.countdown strong {
    display: block;
    color: var(--green);
    font-size: clamp(1.25rem, 3vw, 2rem);
}

.countdown span {
    color: var(--muted);
    font-size: .82rem;
}

.timeline {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.timeline-item {
    position: relative;
    padding: 16px;
    border-radius: 8px;
    background: var(--surface2);
    border: 1px solid var(--line);
}

.timeline-item i {
    display: block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-bottom: 10px;
    background: var(--cyan);
    box-shadow: 0 0 20px var(--cyan);
}

.timeline-ok i { background: var(--green); box-shadow: 0 0 20px var(--green); }
.timeline-warning i { background: var(--amber); box-shadow: 0 0 20px var(--amber); }

.timeline-item strong,
.timeline-item time {
    display: block;
}

.timeline-item time { color: var(--muted); margin-top: 6px; }

.ssl-result-box {
    margin-top: 25px;
    padding: 20px;
    background: rgba(0, 0, 0, 0.65);
    border: 2px solid #00ff7f;
    border-radius: 15px;
    box-shadow: 0 8px 15px rgba(0, 255, 127, 0.2);
    text-align: left;
    position: relative;
    overflow: hidden;
    color: #fff;
}

.ssl-result-box h4 { margin: 0 0 12px; font-weight: 800; }
.ssl-result-box p { margin: 5px 0; }
.ssl-result-box .ssl-brand { color: #00ff7f; font-weight: 800; }
.ssl-result-box .ssl-expiry { color: #ffcccb; font-weight: 800; }

.lock-icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    margin-right: 8px;
    border: 2px solid currentColor;
    border-radius: 4px;
    vertical-align: -3px;
    position: relative;
}

.lock-icon::before {
    content: "";
    position: absolute;
    left: 3px;
    top: -10px;
    width: 9px;
    height: 8px;
    border: 2px solid currentColor;
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
}

.legacy-alert {
    padding: 10px 12px;
    color: #ffd0d7;
    background: rgba(255, 99, 117, .15);
    border: 1px solid rgba(255, 99, 117, .4);
    border-radius: 8px;
}

.ca-brand-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 10px 0 14px;
    padding: 12px;
    border-radius: 10px;
    border: 1px solid rgba(0,255,127,.24);
    background: rgba(0,255,127,.08);
}

.ca-logo {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 192px;
    min-height: 64px;
    padding: 7px 10px;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,.22);
    background: linear-gradient(135deg, rgba(59,220,255,.2), rgba(0,245,168,.16));
}

.ca-logo img {
    width: 154px;
    height: 64px;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 0 24px rgba(0,245,168,.14);
}

.checker_certs {
    width: 100%;
    table-layout: fixed;
    word-wrap: break-word;
    overflow-wrap: break-word;
    margin-top: 15px;
    border-collapse: collapse;
}

.checker_certs td,
.checker_certs th {
    white-space: normal !important;
    vertical-align: top;
    border: 1px solid rgba(255,255,255,.22);
    color: #fff;
    padding: 10px;
    background: rgba(0,0,0,.34);
}

.checker_certs td.cert { width: 128px; text-align: center; }
.checker_certs td img { max-width: 82px; height: auto; }
.chain img { max-width: 42px; height: auto; }

.analysis-card {
    position: relative;
    overflow: visible;
}

.analysis-card summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 54px 16px 16px;
    cursor: pointer;
    list-style: none;
}

.analysis-card summary::-webkit-details-marker { display: none; }

.analysis-card summary span {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--cyan);
    box-shadow: 0 0 16px var(--cyan);
}

.status-ok summary span { background: var(--green); box-shadow: 0 0 16px var(--green); }
.status-warning summary span { background: var(--amber); box-shadow: 0 0 16px var(--amber); }

.analysis-content {
    padding: 0 16px 16px 38px;
    color: var(--muted);
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.mini-list {
    margin: 0;
    padding-left: 18px;
}

.info-control {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(59,220,255,.62);
    border-radius: 50%;
    background: radial-gradient(circle at 30% 25%, rgba(255,255,255,.28), rgba(59,220,255,.16) 45%, rgba(0,245,168,.1));
    color: var(--cyan);
    cursor: pointer;
    font-weight: 950;
    position: relative;
    z-index: 8;
    user-select: none;
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.analysis-card > .info-control {
    position: absolute;
    top: 13px;
    right: 14px;
}

.info-control:hover,
.info-control:focus,
.info-control.info-visible {
    transform: translateY(-1px);
    background: rgba(0,245,168,.15);
    border-color: rgba(0,245,168,.7);
    box-shadow: 0 0 18px rgba(59,220,255,.32);
    outline: 0;
}

.info-control::after {
    content: attr(data-info);
    position: absolute;
    z-index: 5000;
    right: 0;
    top: 34px;
    width: min(340px, calc(100vw - 24px));
    padding: 12px 14px;
    border-radius: 8px;
    border: 1px solid rgba(59,220,255,.35);
    background: var(--surface2);
    color: var(--text);
    box-shadow: var(--shadow);
    line-height: 1.45;
    font-size: .92rem;
    font-weight: 500;
    text-align: left;
    pointer-events: none;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .16s ease, transform .16s ease;
}

.info-control::before {
    content: "";
    position: absolute;
    right: 10px;
    top: 28px;
    width: 10px;
    height: 10px;
    border-left: 1px solid rgba(59,220,255,.35);
    border-top: 1px solid rgba(59,220,255,.35);
    background: var(--surface2);
    transform: rotate(45deg) translateY(8px);
    opacity: 0;
    transition: opacity .16s ease, transform .16s ease;
    z-index: 5001;
    pointer-events: none;
}

.info-control:hover::after,
.info-control:focus::after,
.info-control.info-visible::after {
    opacity: 1;
    transform: translateY(0);
}

.info-control:hover::before,
.info-control:focus::before,
.info-control.info-visible::before {
    opacity: 1;
    transform: rotate(45deg) translateY(0);
}

.vuln-row .info-control::after {
    left: 0;
    right: auto;
}

.vulnerability-section,
.content-band {
    max-width: 1280px;
    margin: 40px auto;
    padding: 0 clamp(18px, 4vw, 44px);
}

.vuln-list {
    display: grid;
    gap: 10px;
}

.vuln-row {
    display: grid;
    grid-template-columns: 96px minmax(150px, .25fr) auto 1fr;
    gap: 12px;
    align-items: center;
    padding: 14px;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: var(--surface);
}

.vuln-row > span {
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid var(--line);
    text-align: center;
    font-size: .82rem;
}

.vuln-row p { margin: 0; color: var(--muted); }
.severity-critical > span { color: var(--red); border-color: rgba(255,99,117,.45); }
.severity-warning > span { color: var(--amber); border-color: rgba(255,203,102,.45); }
.severity-pass > span { color: var(--green); border-color: rgba(0,245,168,.45); }

.feature-grid article {
    padding: 18px;
}

.feature-grid p {
    color: var(--muted);
    line-height: 1.55;
}

.site-footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    max-width: 1280px;
    margin: 60px auto 0;
    padding: 28px clamp(18px, 4vw, 44px);
    border-top: 1px solid var(--line);
    color: var(--muted);
}

.site-footer strong { color: var(--text); }
.site-footer div {
    display: grid;
    gap: 8px;
}
.site-footer nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px 14px;
    max-width: 720px;
}
.site-footer a { color: var(--muted); }
.site-footer a:hover { color: var(--green); }

.promo-network {
    max-width: 1280px;
    margin: 54px auto 0;
    padding: 0 clamp(18px, 4vw, 44px);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.promo-card {
    min-height: 128px;
    position: relative;
    overflow: hidden;
    display: grid;
    align-content: end;
    gap: 8px;
    padding: 18px;
    border-radius: 8px;
    border: 1px solid rgba(59,220,255,.22);
    background: linear-gradient(135deg, rgba(59,220,255,.12), rgba(0,245,168,.08));
    box-shadow: 0 14px 42px rgba(0,0,0,.22);
}

.promo-card::before {
    content: "";
    position: absolute;
    inset: -40% -20%;
    background: linear-gradient(115deg, transparent 38%, rgba(255,255,255,.18), transparent 62%);
    transform: translateX(-55%);
    transition: transform .7s ease;
}

.promo-card:hover::before { transform: translateX(55%); }

.promo-card span {
    color: var(--green);
    font-weight: 900;
    letter-spacing: .02em;
}

.promo-card strong {
    color: var(--text);
    line-height: 1.35;
    font-size: .98rem;
}

.promo-checker { background: linear-gradient(135deg, rgba(0,245,168,.16), rgba(59,220,255,.08)); }
.promo-dns { background: linear-gradient(135deg, rgba(59,220,255,.16), rgba(255,203,102,.08)); }
.promo-whois { background: linear-gradient(135deg, rgba(255,203,102,.14), rgba(0,245,168,.08)); }
.promo-play { background: linear-gradient(135deg, rgba(0,245,168,.12), rgba(255,255,255,.07)); }

.seo-agent {
    margin: 26px 0;
    padding: 22px;
}

.serp-preview {
    max-width: 760px;
    padding: 16px;
    border-radius: 8px;
    background: rgba(255,255,255,.06);
    border: 1px solid var(--line);
}

.serp-preview span {
    display: block;
    color: var(--muted);
    font-size: .86rem;
}

.serp-preview strong {
    display: block;
    margin: 7px 0;
    color: #8ab4f8;
    font-size: 1.22rem;
}

.serp-preview p,
.agent-summary {
    color: var(--muted);
    line-height: 1.55;
}

.agent-list {
    display: grid;
    gap: 8px;
    padding-left: 20px;
}

.agent-faq {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}

.agent-faq details {
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255,255,255,.04);
}

.keyword-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.keyword-chips span {
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(0,245,168,.09);
    border: 1px solid rgba(0,245,168,.22);
    color: var(--green);
    font-size: .86rem;
}

.sslbot {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1000;
}

.sslbot-check {
    display: none;
}

.sslbot:not(.open) .sslbot-panel {
    display: none;
}

.sslbot-launcher {
    width: 66px;
    height: 66px;
    border: 1px solid rgba(0,245,168,.5);
    border-radius: 50%;
    background: linear-gradient(135deg, var(--green), var(--cyan));
    box-shadow: 0 12px 36px rgba(0,245,168,.28);
    cursor: pointer;
    display: grid;
    place-items: center;
    padding: 0;
    user-select: none;
}

.sslbot.open .sslbot-launcher {
    transform: scale(.94);
}

.mini-bot {
    position: relative;
    width: 42px;
    height: 34px;
    border-radius: 16px;
    background: #06131d;
}

.mini-bot i {
    position: absolute;
    top: 11px;
    width: 7px;
    height: 10px;
    border-radius: 50%;
    background: var(--cyan);
    animation: bot-eye 3s infinite;
}

.mini-bot i:first-child { left: 11px; }
.mini-bot i:nth-child(2) { right: 11px; }
.mini-bot b {
    position: absolute;
    left: 50%;
    bottom: 7px;
    width: 16px;
    height: 6px;
    transform: translateX(-50%);
    border-bottom: 2px solid var(--green);
    border-radius: 0 0 20px 20px;
}

.sslbot-panel {
    width: min(380px, calc(100vw - 28px));
    margin-bottom: 12px;
    border: 1px solid rgba(59,220,255,.35);
    border-radius: 12px;
    overflow: hidden;
    background: var(--surface2);
    box-shadow: var(--shadow);
}

.sslbot-panel header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
}

.sslbot-panel header label,
.sslbot-close {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--surface);
    color: var(--text);
    cursor: pointer;
    font: inherit;
}

.bot-face {
    margin: 16px auto 6px;
    transform: scale(.58);
    transform-origin: center;
}

.bot-messages {
    max-height: 230px;
    overflow: auto;
    display: grid;
    gap: 10px;
    padding: 14px;
}

.bot-message,
.user-message {
    margin: 0;
    padding: 10px 12px;
    border-radius: 10px;
    line-height: 1.45;
    font-size: .92rem;
}

.bot-message { background: rgba(59,220,255,.1); border: 1px solid rgba(59,220,255,.18); }
.user-message { justify-self: end; background: rgba(0,245,168,.12); border: 1px solid rgba(0,245,168,.2); }

.bot-form {
    display: grid;
    grid-template-columns: 1fr auto;
    border-top: 1px solid var(--line);
}

.bot-form input {
    min-width: 0;
    border: 0;
    outline: 0;
    color: var(--text);
    background: transparent;
    padding: 13px;
}

.bot-form button {
    border: 0;
    padding: 0 14px;
    cursor: pointer;
    font-weight: 900;
    color: #031119;
    background: linear-gradient(135deg, var(--green), var(--cyan));
}

.sslbot.thinking .bot-face,
.sslbot.thinking .mini-bot {
    animation: bot-think .7s ease-in-out infinite;
}

@keyframes bot-eye {
    0%, 90%, 100% { transform: scaleY(1); }
    94% { transform: scaleY(.16); }
}

@keyframes bot-smile {
    0%, 100% { transform: translateX(-50%) scaleX(1); }
    50% { transform: translateX(-50%) scaleX(1.25); }
}

@keyframes bot-think {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}

@keyframes bubble-in {
    from { opacity: 0; transform: translateY(8px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 920px) {
    .site-header {
        align-items: flex-start;
        flex-wrap: wrap;
    }
    .site-header nav {
        order: 3;
        width: 100%;
        overflow-x: auto;
    }
    .hero {
        grid-template-columns: 1fr;
        min-height: auto;
        padding-top: 36px;
    }
    .hero-robot {
        min-height: 360px;
    }
    .audit-card.top { top: 4%; right: 0; }
    .audit-card.bottom { bottom: 0; left: 0; }
    .hero-bubble { position: relative; top: auto; left: auto; margin-bottom: 18px; }
    .kpi-grid,
    .analysis-grid,
    .feature-grid {
        grid-template-columns: 1fr;
    }
    .countdown {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .timeline {
        grid-template-columns: 1fr;
    }
    .promo-network {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .vuln-row {
        grid-template-columns: 1fr auto;
    }
    .vuln-row p {
        grid-column: 1 / -1;
    }
    .site-footer {
        flex-direction: column;
    }
}

@media (max-width: 560px) {
    .brand img { width: 154px; }
    .hero h1 { font-size: 3rem; }
    .scan-row {
        grid-template-columns: 1fr;
    }
    .scan-row span {
        padding: 12px 12px 0;
    }
    .scan-row button {
        width: 100%;
    }
    .countdown {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .promo-network {
        grid-template-columns: 1fr;
    }
    .site-footer nav {
        justify-content: flex-start;
    }
    .ca-brand-row {
        align-items: flex-start;
        flex-direction: column;
    }
    .checker_certs td.cert {
        width: 92px;
    }
    .sslbot {
        right: 12px;
        bottom: 12px;
    }
}
