.page-shell {
    padding: 82px 0 34px;
}

.page-content {
    width: min(calc(100vw - 118px), 1780px);
    margin: 0 auto;
}

.about-layout,
.stats-layout {
    display: grid;
    align-items: start;
}

.about-layout {
    grid-template-columns: minmax(340px, 1.02fr) minmax(420px, 1fr);
    gap: 86px;
}

.stats-layout {
    grid-template-columns: minmax(360px, 1.05fr) minmax(430px, 1fr);
    gap: 74px;
}

.hero-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.about-hero {
    padding-top: 62px;
}

.stats-hero {
    padding-top: 72px;
}

.page-illustration {
    width: 100%;
    max-width: 520px;
    height: auto;
    display: block;
}

.about-illustration {
    max-width: 420px;
}

.stats-illustration {
    max-width: 470px;
}

.page-title {
    margin: 18px 0 0;
    color: var(--text);
    font-size: clamp(2.2rem, 3vw, 3.5rem);
    font-weight: 700;
    line-height: 1.06;
    text-align: center;
}

.page-subtitle {
    max-width: 430px;
    margin: 12px 0 0;
    color: var(--text);
    font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
}

.stats-subtitle {
    max-width: 350px;
}

.about-copy {
    width: 510px;
    max-width: 100%;
    padding-top: 110px;
}

.about-copy p {
    margin: 0 0 30px;
    color: var(--text);
    font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0;
}

.stats-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(230px, 1fr));
    gap: 40px 42px;
    padding-top: 48px;
}

.stats-card {
    min-height: 267px;
    padding: 18px 22px 22px;
    border: 1px solid rgba(107, 135, 157, 0.72);
    background: transparent;
    box-shadow: none;
}

.chart-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 14px 18px 16px;
}

.chart-placeholder {
    width: 190px;
    height: 190px;
    display: grid;
    place-items: center;
    overflow: visible;
    position: relative;
}

#password-type-chart {
    width: 100%;
    height: 100%;
}

.chart-tooltip {
    position: absolute;
    z-index: 2;
    width: max-content;
    min-width: 0;
    height: auto;
    padding: 3px 5px;
    border: 1px solid rgba(39, 39, 39, 0.2);
    border-radius: 3px;
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.22);
    color: #000000;
    display: flex;
    flex-direction: column;
    gap: 1px;
    font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
    font-size: 12px;
    line-height: 1.1;
    opacity: 0;
    pointer-events: none;
    transform: translateY(5px) scale(0.96);
    transition: opacity 140ms ease, transform 140ms ease;
}

.chart-tooltip.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.chart-tooltip strong {
    color: #000000;
    font-size: 12px;
    font-weight: 700;
}

.chart-graphic {
    width: 142px;
    height: 142px;
    border-radius: 50%;
    background:
        conic-gradient(
            #ff5f36 0 36%,
            #394050 36% 67%,
            #1492b8 67% 86%,
            #76c355 86% 96%,
            #efb12a 96% 100%
        );
    position: relative;
}

.chart-graphic::after {
    content: "";
    position: absolute;
    inset: 37px;
    border-radius: 50%;
    background: var(--bg);
}

.chart-caption,
.stats-label,
.stats-value {
    margin: 0;
}

.chart-caption {
    margin-top: -2px;
    color: var(--text);
    font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
}

.stats-label {
    color: var(--text);
    font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
    font-size: 16px;
    line-height: 1.35;
    letter-spacing: 0;
}

.stats-card-metrics {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.stats-heading {
    text-align: center;
}

.stats-label-spaced {
    margin-top: 28px;
}

.stats-value {
    margin-top: 10px;
    color: var(--text);
    font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
    font-size: clamp(3.1rem, 4vw, 4rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
}

body.theme-light .stats-card {
    background: transparent;
}

@media (max-width: 1100px) {
    .page-content {
        width: min(calc(100vw - 48px), 1780px);
    }

    .about-layout,
    .stats-layout {
        gap: 40px;
    }

    .about-layout,
    .stats-layout {
        grid-template-columns: 1fr;
    }

    .about-hero,
    .stats-hero,
    .about-copy,
    .stats-cards {
        padding-top: 0;
    }

    .about-copy {
        width: 100%;
        max-width: none;
    }
}

@media (max-width: 768px) {
    .page-shell {
        padding: 46px 0 22px;
    }

    .page-content {
        width: calc(100vw - 28px);
    }

    .page-title {
        margin-top: 12px;
        font-size: 1.8rem;
    }

    .page-subtitle {
        max-width: 300px;
        font-size: 14px;
        line-height: 1.2;
    }

    .about-layout {
        gap: 34px;
    }

    .about-illustration {
        max-width: 290px;
    }

    .about-copy p {
        margin-bottom: 24px;
        font-size: 16px;
        line-height: 1.2;
    }

    .stats-layout {
        gap: 0;
    }

    .stats-hero {
        display: none;
    }

    .stats-cards {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .stats-card {
        min-height: 132px;
        padding: 12px 12px 16px;
    }

    .chart-card {
        padding-top: 8px;
    }

    .chart-placeholder {
        width: 120px;
        height: 120px;
    }

    .chart-graphic {
        width: 90px;
        height: 90px;
    }

    .chart-graphic::after {
        inset: 24px;
    }

    .chart-caption {
        font-size: 0.78rem;
    }

    .stats-label {
        font-size: 0.72rem;
    }

    .stats-label-spaced {
        margin-top: 14px;
    }

    .stats-value {
        font-size: 2.2rem;
    }
}
