body {
    font-family: var(--font);
    font-size: 1rem;
    background:
        radial-gradient(circle at top left, rgba(219, 12, 22, .18), transparent 30rem),
        radial-gradient(circle at top right, rgba(43, 88, 255, .18), transparent 34rem),
        linear-gradient(180deg, #070d22 0%, #0d1738 48%, #070d22 100%);
    color: var(--text);
    line-height: 1.6
}

main {
    display: block
}

.container {
    width: min(calc(100% - 32px), var(--container));
    margin-inline: auto
}

.container-sm {
    width: min(calc(100% - 32px), var(--container-sm));
    margin-inline: auto
}

.section-block {
    padding: 72px 0
}

.section-block--soft {
    background: rgba(255, 255, 255, .02)
}

.hero {
    padding: 54px 0 38px;
    position: relative;
    overflow: hidden
}

.hero::before {
    content: "";
    position: absolute;
    inset: 12% -10% auto auto;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: rgba(219, 12, 22, .08);
    filter: blur(12px);
    pointer-events: none
}

.hero-grid,
.article-layout {
    display: grid;
    gap: 28px
}

.hero-grid {
    grid-template-columns: 1.1fr .9fr;
    align-items: center;
    position: relative;
    z-index: 1
}

.article-layout {
    grid-template-columns: minmax(0, 1fr) 300px;
    align-items: stretch
}

.section-grid {
    display: grid;
    gap: 20px
}

.home-sections-shell {
    width: 100%
}

.four-cols {
    grid-template-columns: repeat(4, 1fr)
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px
}

.button-row.center {
    justify-content: center
}

.container img {
    height: auto
}

@media (max-width:1100px) {

    .hero-grid,
    .article-layout {
        grid-template-columns: 1fr;
        align-items: start
    }

    .four-cols {
        grid-template-columns: repeat(2, minmax(0, 280px));
        justify-content: center
    }

    .home-sections-shell {
        width: min(100%, 760px);
        margin-inline: auto
    }
}

@media (max-width:760px) {

    .hero,
    .section-block {
        padding: 48px 0
    }

    .button-row {
        width: 100%
    }

    .button-row .button {
        flex: 1 1 100%
    }

}

@media (max-width:560px) {

    .four-cols {
        grid-template-columns: minmax(0, 1fr);
        justify-content: stretch
    }
}