:root {
    --gray-0: #090b11;
    --gray-50: #141925;
    --gray-100: #283044;
    --gray-200: #3d4663;
    --gray-300: #505d84;
    --gray-400: #6474a2;
    --gray-500: #8490b5;
    --gray-600: #a3acc8;
    --gray-700: #c3cadb;
    --gray-800: #e3e6ee;
    --gray-900: #f3f4f7;
    --gray-999-basis: 0, 0%, 100%;
    --gray-999_40: hsla(var(--gray-999-basis), .4);
    --gray-999: #ffffff;
    --accent-light: #c561f6;
    --accent-regular: #7611a6;
    --accent-dark: #1c0056;
    --accent-overlay: hsla(280, 89%, 67%, .33);
    --accent-subtle-overlay: var(--accent-overlay);
    --accent-text-over: var(--gray-999);
    --link-color: var(--accent-regular);
    --gradient-stop-1: var(--accent-light);
    --gradient-stop-2: var(--accent-regular);
    --gradient-stop-3: var(--accent-dark);
    --gradient-subtle: linear-gradient(150deg, var(--gray-900) 19%, var(--gray-999) 150%);
    --gradient-accent: linear-gradient(150deg, var(--gradient-stop-1), var(--gradient-stop-2), var(--gradient-stop-3));
    --gradient-accent-orange: linear-gradient(150deg, #ca7879, var(--accent-regular), var(--accent-dark));
    --gradient-stroke: linear-gradient(180deg, var(--gray-900), var(--gray-700));
    --shadow-sm: 0px 6px 3px rgba(9, 11, 17, .01), 0px 4px 2px rgba(9, 11, 17, .01), 0px 2px 2px rgba(9, 11, 17, .02), 0px 0px 1px rgba(9, 11, 17, .03);
    --shadow-md: 0px 28px 11px rgba(9, 11, 17, .01), 0px 16px 10px rgba(9, 11, 17, .03), 0px 7px 7px rgba(9, 11, 17, .05), 0px 2px 4px rgba(9, 11, 17, .06);
    --shadow-lg: 0px 62px 25px rgba(9, 11, 17, .01), 0px 35px 21px rgba(9, 11, 17, .05), 0px 16px 16px rgba(9, 11, 17, .1), 0px 4px 9px rgba(9, 11, 17, .12);
    --text-sm: .875rem;
    --text-base: 1rem;
    --text-md: 1.125rem;
    --text-lg: 1.25rem;
    --text-xl: 1.625rem;
    --text-2xl: 2.125rem;
    --text-3xl: 2.625rem;
    --text-4xl: 3.5rem;
    --text-5xl: 4.5rem;
    --font-system: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
    --font-body: "Public Sans", var(--font-system);
    --font-brand: Rubik, var(--font-system);
    --theme-transition: .2s ease-in-out
}

:root.theme-dark {
    --gray-0: #ffffff;
    --gray-50: #f3f4f7;
    --gray-100: #e3e6ee;
    --gray-200: #c3cadb;
    --gray-300: #a3acc8;
    --gray-400: #8490b5;
    --gray-500: #6474a2;
    --gray-600: #505d84;
    --gray-700: #3d4663;
    --gray-800: #283044;
    --gray-900: #141925;
    --gray-999-basis: 225, 31%, 5%;
    --gray-999: #090b11;
    --accent-light: #1c0056;
    --accent-regular: #7611a6;
    --accent-dark: #c561f6;
    --accent-overlay: hsla(280, 89%, 67%, .33);
    --accent-subtle-overlay: hsla(281, 81%, 36%, .33);
    --accent-text-over: var(--gray-0);
    --link-color: var(--accent-dark);
    --gradient-stop-1: #4c11c6;
    --gradient-subtle: linear-gradient(150deg, var(--gray-900) 19%, var(--gray-999) 81%);
    --gradient-accent-orange: linear-gradient(150deg, #ca7879, var(--accent-regular), var(--accent-light));
    --gradient-stroke: linear-gradient(180deg, var(--gray-600), var(--gray-800));
    --shadow-sm: 0px 6px 3px rgba(255, 255, 255, .01), 0px 4px 2px rgba(255, 255, 255, .01), 0px 2px 2px rgba(255, 255, 255, .02), 0px 0px 1px rgba(255, 255, 255, .03);
    --shadow-md: 0px 28px 11px rgba(255, 255, 255, .01), 0px 16px 10px rgba(255, 255, 255, .03), 0px 7px 7px rgba(255, 255, 255, .05), 0px 2px 4px rgba(255, 255, 255, .06);
    --shadow-lg: 0px 62px 25px rgba(255, 255, 255, .01), 0px 35px 21px rgba(255, 255, 255, .05), 0px 16px 16px rgba(255, 255, 255, .1), 0px 4px 9px rgba(255, 255, 255, .12)
}

html,
body {
    height: 100%;
    overflow-x: hidden
}

body {
    background-color: var(--gray-999);
    color: var(--gray-200);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
    line-height: 1.5
}

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

img {
    max-width: 100%;
    height: auto
}

a {
    color: var(--link-color)
}

h1,
h2,
h3,
h4,
h5 {
    line-height: 1.1;
    font-family: var(--font-brand);
    font-weight: 600;
    color: var(--gray-100)
}

h1 {
    font-size: var(--text-5xl)
}

h2 {
    font-size: var(--text-4xl)
}

h3 {
    font-size: var(--text-3xl)
}

h4 {
    font-size: var(--text-2xl)
}

h5 {
    font-size: var(--text-xl)
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0
}

.wrapper {
    width: 100%;
    max-width: 83rem;
    margin-inline: auto;
    padding-inline: 1.5rem
}

.stack {
    display: flex;
    flex-direction: column
}

.gap-2 {
    gap: .5rem
}

.gap-4 {
    gap: 1rem
}

.gap-8 {
    gap: 2rem
}

.gap-10 {
    gap: 2.5rem
}

.gap-15 {
    gap: 3.75rem
}

.gap-20 {
    gap: 5rem
}

.gap-30 {
    gap: 7.5rem
}

.gap-48 {
    gap: 12rem
}

@media (min-width: 50em) {
    .lg\:gap-2 {
        gap: .5rem
    }

    .lg\:gap-4 {
        gap: 1rem
    }

    .lg\:gap-8 {
        gap: 2rem
    }

    .lg\:gap-10 {
        gap: 2.5rem
    }

    .lg\:gap-15 {
        gap: 3.75rem
    }

    .lg\:gap-20 {
        gap: 5rem
    }

    .lg\:gap-30 {
        gap: 7.5rem
    }

    .lg\:gap-48 {
        gap: 12rem
    }
}

button:where(.astro-X3PJSKD3) {
    display: flex;
    border: 0;
    border-radius: 999rem;
    padding: 0;
    background-color: var(--gray-999);
    box-shadow: inset 0 0 0 1px var(--accent-overlay);
    cursor: pointer
}

.icon:where(.astro-X3PJSKD3) {
    z-index: 1;
    position: relative;
    display: flex;
    padding: .5rem;
    width: 2rem;
    height: 2rem;
    font-size: 1rem;
    color: var(--accent-overlay)
}

.icon:where(.astro-X3PJSKD3).light:before {
    content: "";
    z-index: -1;
    position: absolute;
    inset: 0;
    background-color: var(--accent-regular);
    border-radius: 999rem
}

.theme-dark .icon:where(.astro-X3PJSKD3).light:before {
    transform: translate(100%)
}

.theme-dark .icon:where(.astro-X3PJSKD3).dark,
html:not(.theme-dark) .icon:where(.astro-X3PJSKD3).light,
button:where(.astro-X3PJSKD3)[aria-pressed=false] .icon:where(.astro-X3PJSKD3).light {
    color: var(--accent-text-over)
}

@media (prefers-reduced-motion: no-preference) {

    .icon:where(.astro-X3PJSKD3),
    .icon:where(.astro-X3PJSKD3).light:before {
        transition: transform var(--theme-transition), color var(--theme-transition)
    }
}

@media (forced-colors: active) {
    .icon:where(.astro-X3PJSKD3).light:before {
        background-color: SelectedItem
    }
}

nav:where(.astro-DMQPWCEC) {
    z-index: 9999;
    position: relative;
    font-family: var(--font-brand);
    font-weight: 500;
    margin-bottom: 3.5rem
}

.menu-header:where(.astro-DMQPWCEC) {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    padding: 1.5rem
}

.site-title:where(.astro-DMQPWCEC) {
    display: flex;
    gap: .5rem;
    align-items: center;
    line-height: 1.1;
    color: var(--gray-0);
    text-decoration: none
}

.menu-button:where(.astro-DMQPWCEC) {
    position: relative;
    display: flex;
    border: 0;
    border-radius: 999rem;
    padding: .5rem;
    font-size: 1.5rem;
    color: var(--gray-300);
    background: radial-gradient(var(--gray-900), var(--gray-800) 150%);
    box-shadow: var(--shadow-md)
}

.menu-button:where(.astro-DMQPWCEC)[aria-expanded=true] {
    color: var(--gray-0);
    background: linear-gradient(180deg, var(--gray-600), transparent), radial-gradient(var(--gray-900), var(--gray-800) 150%)
}

.menu-button:where(.astro-DMQPWCEC)[hidden] {
    display: none
}

.menu-button:where(.astro-DMQPWCEC):before {
    position: absolute;
    inset: -1px;
    content: "";
    background: var(--gradient-stroke);
    border-radius: 999rem;
    z-index: -1
}

#menu-content:where(.astro-DMQPWCEC) {
    position: absolute;
    left: 0;
    right: 0
}

.nav-items:where(.astro-DMQPWCEC) {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    font-size: var(--text-md);
    line-height: 1.2;
    list-style: none;
    padding: 2rem;
    background-color: var(--gray-999);
    border-bottom: 1px solid var(--gray-800)
}

.link:where(.astro-DMQPWCEC) {
    display: inline-block;
    color: var(--gray-300);
    text-decoration: none
}

.link:where(.astro-DMQPWCEC).active {
    color: var(--gray-0)
}

.menu-footer:where(.astro-DMQPWCEC) {
    --icon-size: var(--text-xl);
    --icon-padding: .5rem;
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: 1.5rem 2rem 1.5rem 1.5rem;
    background-color: var(--gray-999);
    border-radius: 0 0 .75rem .75rem;
    box-shadow: var(--shadow-lg)
}

.socials:where(.astro-DMQPWCEC) {
    display: flex;
    flex-wrap: wrap;
    gap: .625rem;
    font-size: var(--icon-size)
}

.social:where(.astro-DMQPWCEC) {
    display: flex;
    padding: var(--icon-padding);
    text-decoration: none;
    color: var(--accent-dark);
    transition: color var(--theme-transition)
}

.social:where(.astro-DMQPWCEC):hover,
.social:where(.astro-DMQPWCEC):focus {
    color: var(--accent-text-over)
}

.theme-toggle:where(.astro-DMQPWCEC) {
    display: flex;
    align-items: center;
    height: calc(var(--icon-size) + 2 * var(--icon-padding))
}

@media (min-width: 50em) {
    nav:where(.astro-DMQPWCEC) {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
        padding: 2.5rem 5rem;
        gap: 1rem
    }

    .menu-header:where(.astro-DMQPWCEC) {
        padding: 0
    }

    .site-title:where(.astro-DMQPWCEC) {
        font-size: var(--text-lg)
    }

    #menu-content:where(.astro-DMQPWCEC) {
        display: contents
    }

    .nav-items:where(.astro-DMQPWCEC) {
        position: relative;
        flex-direction: row;
        font-size: var(--text-sm);
        border-radius: 999rem;
        border: 0;
        padding: .5rem .5625rem;
        background: radial-gradient(var(--gray-900), var(--gray-800) 150%);
        box-shadow: var(--shadow-md)
    }

    .nav-items:where(.astro-DMQPWCEC):before {
        position: absolute;
        inset: -1px;
        content: "";
        background: var(--gradient-stroke);
        border-radius: 999rem;
        z-index: -1
    }

    .link:where(.astro-DMQPWCEC) {
        padding: .5rem 1rem;
        border-radius: 999rem;
        transition: color var(--theme-transition), background-color var(--theme-transition)
    }

    .link:where(.astro-DMQPWCEC):hover,
    .link:where(.astro-DMQPWCEC):focus {
        color: var(--gray-100);
        background-color: var(--accent-subtle-overlay)
    }

    .link:where(.astro-DMQPWCEC).active {
        color: var(--accent-text-over);
        background-color: var(--accent-regular)
    }

    .menu-footer:where(.astro-DMQPWCEC) {
        --icon-padding: .375rem;
        justify-self: flex-end;
        align-items: center;
        padding: 0;
        background-color: transparent;
        box-shadow: none
    }

    .socials:where(.astro-DMQPWCEC) {
        display: none
    }
}

@media (min-width: 60em) {
    .socials:where(.astro-DMQPWCEC) {
        display: flex;
        justify-content: flex-end;
        gap: 0
    }
}

@media (forced-colors: active) {
    .link:where(.astro-DMQPWCEC).active {
        color: SelectedItem
    }
}

footer:where(.astro-SZ7XMLTE) {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    margin-top: auto;
    padding: 3rem 2rem;
    text-align: center;
    color: var(--gray-400);
    font-size: var(--text-sm)
}

footer:where(.astro-SZ7XMLTE) a:where(.astro-SZ7XMLTE) {
    color: var(--gray-400);
    text-decoration: 1px solid underline transparent;
    text-underline-offset: .25em;
    transition: text-decoration-color var(--theme-transition)
}

footer:where(.astro-SZ7XMLTE) a:where(.astro-SZ7XMLTE):hover,
footer:where(.astro-SZ7XMLTE) a:where(.astro-SZ7XMLTE):focus {
    text-decoration-color: currentColor
}

.group:where(.astro-SZ7XMLTE) {
    display: flex;
    flex-direction: column;
    gap: .5rem
}

.socials:where(.astro-SZ7XMLTE) {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap
}

@media (min-width: 50em) {
    footer:where(.astro-SZ7XMLTE) {
        flex-direction: row;
        justify-content: space-between;
        padding: 2.5rem 5rem
    }

    .group:where(.astro-SZ7XMLTE) {
        flex-direction: row;
        gap: 1rem;
        flex-wrap: wrap
    }

    .socials:where(.astro-SZ7XMLTE) {
        justify-content: flex-end
    }
}

:root {
    --_placeholder-bg: linear-gradient(transparent, transparent);
    --bg-image-main: url(../images/backgrounds/bg-main-light-800w.jpg);
    --bg-image-main-curves: url(../images/backgrounds/bg-main-light.svg);
    --bg-image-subtle-1: var(--_placeholder-bg);
    --bg-image-subtle-2: var(--_placeholder-bg);
    --bg-image-footer: var(--_placeholder-bg);
    --bg-svg-blend-mode: overlay;
    --bg-blend-mode: darken;
    --bg-image-aspect-ratio: 2.25;
    --bg-scale: 1.68;
    --bg-aspect-ratio: calc(var(--bg-image-aspect-ratio) / var(--bg-scale));
    --bg-gradient-size: calc(var(--bg-scale) * 100%)
}

:root.theme-dark {
    --bg-image-main: url(../images/backgrounds/bg-main-dark-800w.jpg);
    --bg-image-main-curves: url(../images/backgrounds/bg-main-dark.svg);
    --bg-svg-blend-mode: darken;
    --bg-blend-mode: lighten
}

:root.loaded {
    --bg-image-subtle-1: url(../images/backgrounds/bg-subtle-1-light-800w.jpg);
    --bg-image-subtle-2: url(../images/backgrounds/bg-subtle-2-light-800w.jpg);
    --bg-image-footer: url(../images/backgrounds/bg-footer-light-800w.jpg)
}

:root.loaded.theme-dark {
    --bg-image-subtle-1: url(../images/backgrounds/bg-subtle-1-dark-800w.jpg);
    --bg-image-subtle-2: url(../images/backgrounds/bg-subtle-2-dark-800w.jpg);
    --bg-image-footer: url(../images/backgrounds/bg-footer-dark-800w.jpg)
}

@media (min-width: 50em) {
    :root {
        --bg-scale: 1;
        --bg-image-main: url(../images/backgrounds/bg-main-light-1440w.jpg)
    }

    :root.theme-dark {
        --bg-image-main: url(../images/backgrounds/bg-main-dark-1440w.jpg)
    }

    :root.loaded {
        --bg-image-subtle-1: url(../images/backgrounds/bg-subtle-1-light-1440w.jpg);
        --bg-image-subtle-2: url(../images/backgrounds/bg-subtle-2-light-1440w.jpg);
        --bg-image-footer: url(../images/backgrounds/bg-footer-light-1440w.jpg)
    }

    :root.loaded.theme-dark {
        --bg-image-subtle-1: url(../images/backgrounds/bg-subtle-1-dark-1440w.jpg);
        --bg-image-subtle-2: url(../images/backgrounds/bg-subtle-2-dark-1440w.jpg);
        --bg-image-footer: url(../images/backgrounds/bg-footer-dark-1440w.jpg)
    }
}

.backgrounds:where(.astro-37FXCHFA) {
    min-height: 100%;
    isolation: isolate;
    background: url(/images/backgrounds/noise.png) top center/220px repeat, var(--bg-image-footer) bottom center/var(--bg-gradient-size) no-repeat, var(--bg-image-main-curves) top center/var(--bg-gradient-size) no-repeat, var(--bg-image-main) top center/var(--bg-gradient-size) no-repeat, var(--gray-999);
    background-blend-mode: overlay, var(--bg-blend-mode), var(--bg-svg-blend-mode), normal, normal
}

@media (forced-colors: active) {
    .backgrounds:where(.astro-37FXCHFA) {
        background: none;
        background-blend-mode: none;
        --bg-gradient-size: none
    }
}

.hero:where(.astro-BBE6DXRZ) {
    font-size: var(--text-lg);
    text-align: center
}

.title:where(.astro-BBE6DXRZ),
.tagline:where(.astro-BBE6DXRZ) {
    max-width: 37ch;
    margin-inline: auto
}

.title:where(.astro-BBE6DXRZ) {
    font-size: var(--text-3xl);
    color: var(--gray-0)
}

@media (min-width: 50em) {
    .hero:where(.astro-BBE6DXRZ) {
        font-size: var(--text-xl)
    }

    .start:where(.astro-BBE6DXRZ) {
        text-align: start
    }

    .start:where(.astro-BBE6DXRZ) .title:where(.astro-BBE6DXRZ),
    .start:where(.astro-BBE6DXRZ) .tagline:where(.astro-BBE6DXRZ) {
        margin-inline: unset
    }

    .title:where(.astro-BBE6DXRZ) {
        font-size: var(--text-5xl)
    }
}