html {
    scroll-behavior: smooth;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    background:
        radial-gradient(circle at top center, rgba(70, 72, 212, 0.08), transparent 28rem),
        var(--site-color-background);
    color: var(--site-color-text);
    font-family: var(--site-font-body);
    line-height: 1.6;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input {
    font: inherit;
}

button {
    cursor: pointer;
}

img {
    display: block;
    max-width: 100%;
}

h1,
h2,
h3,
h4,
p {
    margin: 0;
}

h1,
h2,
h3,
h4 {
    font-family: var(--site-font-display);
    line-height: 1.08;
    letter-spacing: -0.02em;
}

h1 {
    font-size: clamp(3rem, 5vw, 4.6rem);
}

h2 {
    font-size: clamp(2rem, 3vw, 3rem);
}

h3 {
    font-size: 1.35rem;
}

p {
    color: var(--site-color-text-muted);
}

pre {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
}

.site-shell {
    min-height: 100vh;
}

.site-main {
    padding-top: 5.5rem;
}

.site-shell-row {
    width: min(var(--site-max-width), calc(100% - 2rem));
    margin: 0 auto;
}

.site-stack {
    display: grid;
    gap: var(--site-space-6);
}

.site-stack-compact {
    gap: var(--site-space-4);
}

.site-copy-measure {
    max-width: var(--site-copy-width);
}

.site-copy-measure-centered {
    max-width: 38rem;
    margin-inline: auto;
}

.site-section {
    padding: var(--site-space-section-y) 0;
}

.site-section-tight-top {
    padding-top: var(--site-space-6);
}

.site-section-soft {
    background: rgba(255, 255, 255, 0.48);
}

.site-section-lead {
    font-size: 1.125rem;
}

.site-section-heading {
    display: grid;
    gap: var(--site-space-3);
}

.site-section-heading-centered {
    text-align: center;
    justify-items: center;
}

.site-section-heading-inline {
    max-width: 42rem;
}

.site-eyebrow {
    display: inline-flex;
    width: fit-content;
    font-family: var(--site-font-label);
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--site-color-primary);
}

.site-eyebrow-centered {
    margin: 0 auto;
}

.site-eyebrow-pill {
    padding: 0.45rem 0.8rem;
    border-radius: var(--site-radius-pill);
    background: var(--site-color-secondary-soft);
    color: var(--site-color-secondary);
}

.site-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--site-space-4);
    align-items: center;
}

.site-link-cta {
    display: inline-flex;
    width: fit-content;
    color: var(--site-color-primary);
    font-weight: 600;
}

[data-reveal] {
    opacity: 1;
    transform: translateY(0);
    transition:
        opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
}

body.site-motion-ready [data-reveal] {
    opacity: 1;
    transform: translateY(0);
}

body.site-motion-ready [data-reveal].is-pending {
    opacity: 0;
    transform: translateY(1.4rem);
}

body.site-motion-ready [data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    body.site-motion-ready [data-reveal],
    body.site-motion-ready [data-reveal].is-visible {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

@media (max-width: 900px) {
    .site-main {
        padding-top: 4.75rem;
    }

    .site-section {
        padding: 5rem 0;
    }
}
