@property --r {
    syntax: "<length>";
    inherits: false;
    initial-value: 0px;
}

:root {
    --page-gutter: 8%;
}

.hero,
.hero_strategy {
    --hero-gutter: var(--page-gutter);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 0;
    background-color: #171719;
}

.hero {
    background-image: none;
}

.hero-bg {
    position: absolute;
    inset: -16px;
    z-index: 0;
    pointer-events: none;
    background: url("assets/hero-bg.jpg") center / cover no-repeat;
}

.hero-bg--blur {
    filter: blur(14px) saturate(1.1);
    transform: scale(1.06);
    animation: hero-background-drift 24s ease-in-out infinite alternate;
}

.hero-bg--sharp {
    --x: var(--spot-x, 50%);
    --y: var(--spot-y, 50%);
    --r: 0px;
    -webkit-mask-image: radial-gradient(circle var(--r) at var(--x) var(--y), #000 62%, transparent 100%);
    mask-image: radial-gradient(circle var(--r) at var(--x) var(--y), #000 62%, transparent 100%);
    transition: --r 0.8s ease;
}

.hero.is-active .hero-bg--sharp,
.hero_strategy.is-active .hero-bg--sharp {
    --r: clamp(130px, 28vw, 380px);
}

@keyframes hero-background-drift {
    from {
        transform: scale(1.06) translate3d(-0.6%, 0, 0);
    }

    to {
        transform: scale(1.1) translate3d(0.6%, -0.5%, 0);
    }
}

.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: auto;
    height: auto;
    padding: 180px var(--hero-gutter) 115px;
    display: flex;
    align-items: center;
    background-image: linear-gradient(to bottom right, #3138f48e, rgba(33, 33, 33, 0.31));
}

.hero-content {
    z-index: 2;
    min-width: 0;
}

.hero-content h1 {
    max-width: 100%;
    font-size: clamp(2.25rem, 6vw, 5rem);
    line-height: 1.08;
    letter-spacing: -0.055em;
    word-spacing: normal;
    overflow-wrap: break-word;
}

.hero:not(.hero_strategy) .hero-content h1 {
    font-size: clamp(3rem, 9vw, 8.5rem);
}

.hero-footer {
    left: var(--hero-gutter);
    right: var(--hero-gutter);
}

.section,
.header,
.footer {
    padding-left: var(--page-gutter);
    padding-right: var(--page-gutter);
}

@media (min-width: 1600px) {
    :root {
        --page-gutter: max(8%, calc((100vw - 1350px) / 2));
    }
}

@media (max-width: 1100px) {
    :root {
        --page-gutter: 6%;
    }
}

@media (max-width: 760px) {
    .hero {
        display: block;
        min-height: 90svh;
    }

    .hero-overlay {
        position: relative;
        inset: auto;
        min-height: 90svh;
        padding-top: 145px;
        padding-bottom: 100px;
        align-items: stretch;
    }

    .hero-column {
        position: relative;
        inset: auto;
        width: 100%;
        height: auto;
        flex-direction: column;
        align-items: stretch;
        gap: clamp(28px, 5vh, 44px);
        padding: 0;
    }

    .hero-content {
        width: 100%;
        min-width: 0;
    }

    .hero-content h1 {
        margin: 20px 0 24px;
    }

    .eyebrow_btm {
        margin-bottom: 12px;
        padding-top: 0;
    }

    .fade-cards {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
        align-content: start;
        height: auto;
        min-height: 0;
        padding: 0;
    }

    .fade-card {
        display: none;
    }

    .hero-buttons {
        grid-area: 2 / 1;
        margin-top: 12px;
    }

    .eyebrow_btm {
        grid-area: 1 / 1;
    }

    .hero-lines {
        opacity: 0.55;
    }

    .hero-content h1 {
        font-size: clamp(2.25rem, 8vw, 3.75rem);
    }

    .hero:not(.hero_strategy) .hero-content h1 {
        font-size: clamp(3rem, 12vw, 4.5rem);
    }

    .hero-footer {
        gap: 12px;
        font-size: clamp(8px, 2.2vw, 11px);
        letter-spacing: 0.35px;
    }
}

@media (hover: none) {
    .hero-bg--blur {
        filter: blur(8px) saturate(1.1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-bg--blur {
        animation: none;
    }

    .hero-bg--sharp {
        transition: none;
    }
}
