:root {
    --srp-color-bg: #080810;
    --srp-color-bg-soft: #151422;
    --srp-color-surface: #f6f3ef;
    --srp-color-surface-soft: #e4ded8;
    --srp-color-text: #17151e;
    --srp-color-text-muted: #6c6673;
    --srp-color-text-inverse: #faf9ff;
    --srp-color-text-inverse-muted: rgba(255, 255, 255, .68);
    --srp-color-lilac: #aeb6ff;
    --srp-color-violet: #8c72ff;
    --srp-color-peach: #ffe2bf;
    --srp-color-line: rgba(23, 21, 30, .12);
    --srp-color-line-inverse: rgba(255, 255, 255, .13);
    --srp-gradient-accent: linear-gradient(135deg, var(--srp-color-lilac), #f1e5ff 60%, var(--srp-color-peach));
    --srp-gradient-dark: linear-gradient(145deg, #11101a, #302b42);
    --srp-font-sans: "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
    --srp-text-xs: clamp(.75rem, .72rem + .1vw, .84rem);
    --srp-text-sm: clamp(.875rem, .84rem + .12vw, .98rem);
    --srp-text-base: clamp(1rem, .96rem + .15vw, 1.12rem);
    --srp-text-lead: clamp(1.08rem, .98rem + .45vw, 1.48rem);
    --srp-text-h2: clamp(2.35rem, 1.65rem + 3vw, 5rem);
    --srp-text-display: clamp(3.45rem, 1.4rem + 7.3vw, 7.5rem);
    --srp-space-1: clamp(.5rem, .45rem + .2vw, .75rem);
    --srp-space-2: clamp(.75rem, .65rem + .35vw, 1.1rem);
    --srp-space-3: clamp(1rem, .82rem + .6vw, 1.5rem);
    --srp-space-4: clamp(1.5rem, 1.15rem + 1vw, 2.25rem);
    --srp-space-5: clamp(2rem, 1.4rem + 2vw, 3.5rem);
    --srp-space-6: clamp(3rem, 2rem + 3.5vw, 6rem);
    --srp-section-space: clamp(4.75rem, 3.15rem + 6vw, 9rem);
    --srp-gutter: clamp(1.125rem, 1rem + 3vw, 4.5rem);
    --srp-container: 92rem;
    --srp-radius-sm: 1rem;
    --srp-radius-md: clamp(1.35rem, 1rem + 1vw, 2rem);
    --srp-radius-lg: clamp(1.75rem, 1.25rem + 1.5vw, 2.75rem);
    --srp-radius-pill: 999px;
    --srp-shadow: 0 2rem 5.6rem rgba(33, 28, 42, .16);
    --srp-transition: 220ms cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--srp-color-text-inverse);
    background: var(--srp-color-bg);
    font-family: var(--srp-font-sans);
    font-size: var(--srp-text-base);
    line-height: 1.55;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p { margin-block-start: 0; }

.srp-shell {
    width: min(100%, calc(var(--srp-container) + (2 * var(--srp-gutter))));
    margin-inline: auto;
    padding-inline: var(--srp-gutter);
}
.srp-button {
    display: inline-flex;
    min-height: 3.35rem;
    align-items: center;
    justify-content: center;
    padding-inline: clamp(1.25rem, 1rem + .8vw, 1.75rem);
    border: 1px solid transparent;
    border-radius: var(--srp-radius-pill);
    font-size: var(--srp-text-sm);
    font-weight: 750;
    line-height: 1;
    transition: transform var(--srp-transition), border-color var(--srp-transition), background-color var(--srp-transition), box-shadow var(--srp-transition);
}
.srp-button:hover { transform: translateY(-2px); }
.srp-button:focus-visible { outline: 3px solid var(--srp-color-peach); outline-offset: 4px; }
.srp-button--primary {
    color: #111019;
    background: var(--srp-gradient-accent);
    box-shadow: 0 1.1rem 3rem rgba(140, 114, 255, .2);
}
.srp-button--secondary {
    color: var(--srp-color-text-inverse);
    border-color: rgba(255, 255, 255, .24);
    background: rgba(255, 255, 255, .04);
    backdrop-filter: blur(12px);
}
.srp-kicker {
    display: inline-flex;
    width: fit-content;
    margin-bottom: var(--srp-space-4);
    padding: .68rem 1.1rem;
    border: 1px solid rgba(23, 21, 30, .11);
    border-radius: var(--srp-radius-pill);
    color: #554f60;
    background: rgba(255, 255, 255, .58);
    font-size: var(--srp-text-xs);
    font-weight: 800;
    line-height: 1;
}
.srp-kicker--dark {
    border-color: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .76);
    background: rgba(255, 255, 255, .06);
}
.srp-visually-hidden,
.srp-skip-link:not(:focus) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.srp-skip-link:focus {
    position: fixed;
    z-index: 1000;
    top: 1rem;
    left: 1rem;
    padding: .8rem 1rem;
    color: var(--srp-color-text);
    background: #fff;
    border-radius: .5rem;
}

@media (min-width: 100rem) {
    :root { --srp-container: 104rem; --srp-gutter: clamp(4rem, 5vw, 7rem); }
}
@media (min-width: 137.5rem) {
    :root { --srp-container: 118rem; --srp-gutter: 7.5rem; }
}
@media (max-width: 39.9375rem) {
    .srp-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
