h1 {
    font-family: var(--h1--font-family);
    font-size: var(--h1--font-size);
    line-height: var(--h1--line-height);
    letter-spacing: var(--h1--letter-spacing);
    margin-top: 0;
    margin-bottom: 0;
    font-weight: 400;
}

h2 {
    font-family: var(--h2--font-family);
    font-size: var(--h2--font-size);
    line-height: var(--h2--line-height);
    letter-spacing: var(--h2--letter-spacing);
    margin-top: 0;
    margin-bottom: 0;
    font-weight: 400;
}

h3 {
    font-family: var(--h3--font-family);
    font-size: var(--h3--font-size);
    line-height: var(--h3--line-height);
    letter-spacing: var(--h3--letter-spacing);
    margin-top: 0;
    margin-bottom: 0;
    font-weight: 400;
}

h4 {
    font-family: var(--h4--font-family);
    font-size: var(--h4--font-size);
    line-height: var(--h4--line-height);
    letter-spacing: var(--h4--letter-spacing);
    margin-top: 0;
    margin-bottom: 0;
    font-weight: 400;
}

h5 {
    font-family: var(--h5--font-family);
    font-family: var(--typeface--secondary);
    color: var(--_themes---site--text--text-primary);
    font-size: var(--h5--font-size);
    line-height: var(--h5--line-height);
    letter-spacing: var(--h5--letter-spacing);
    text-transform: lowercase;
    margin-top: 0;
    margin-bottom: 0;
    font-weight: 400;
}

h6 {
    font-family: var(--h6--font-family);
    color: var(--_themes---site--text--text-secondary);
    font-size: var(--h6--font-size);
    line-height: var(--h6--line-height);
    letter-spacing: var(--h6--letter-spacing);
    text-transform: uppercase;
    margin-top: 0;
    margin-bottom: 0;
    font-weight: 400;
}

p {
    font-size: var(--paragraph--font-size-m);
    line-height: var(--paragraph--line-height-s);
    letter-spacing: var(--paragraph--letter-spacing);
    margin-bottom: 0;
}

ul {
    font-size: var(--paragraph--font-size-m);
    margin-bottom: 0;
}

ol {
    font-size: var(--paragraph--font-size-m);
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 1.5rem;
}

img {
    object-fit: cover;
    width: 100%;
    display: inline-block;
}

label {
    margin-bottom: 0.25rem;
    font-weight: 500;
}

blockquote {
    font-size: var(--paragraph--font-size-l);
    border-left: 0.25rem solid #e2e2e2;
    margin-bottom: 0;
    padding: 0 1.25rem;
    line-height: 1.5;
}

figure {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

figcaption {
    text-align: center;
    margin-top: 0.25rem;
}

.page {
    position: relative;
    flex-direction: column;
    align-self: stretch;
    align-items: center;
    width: 100%;
    display: flex;
}

c-header,
c-footer {
    display: block;
    width: 100%;
}

.main {
    align-items: center;
    width: 100%;
}

.inner {
    width: 100%;
}

@media screen and (max-width: 991px) {
    .page,
    .main {
        position: relative;
    }
}

.body {
    background-color: var(--_themes---site--bg--bg-primary);
    font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-family: var(--typeface--primary);
    color: var(--_themes---site--text--text-primary);
    flex-direction: column;
    flex: auto;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%;
    max-width: 100vw;
    overscroll-behavior-y: none;
    display: flex;
}

.js,
.css,
.hide,
.motion {
    display: none;
}

.u-layout-vflex {
    flex-direction: column;
    align-items: flex-start;
    display: flex;
}

.u-layout-hflex {
    flex-direction: row;
    align-items: flex-start;
    display: flex;
}

.u-layout-grid {
    grid-row-gap: 16px;
    grid-column-gap: 16px;
    grid-template-rows: auto auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: 1fr;
    display: grid;
}

.section {
    padding-right: var(--global--margin);
    padding-left: var(--global--margin);
    background-color: var(--_themes---site--bg--bg-primary);
    color: var(--_themes---site--text--text-primary);
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    align-items: center;
    display: flex;
    position: relative;
    overflow: clip;
}

.section.fh {
    height: 100vh;
}

.section-of {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: flex;
}

.section-fw {
    background-color: var(--_themes---site--bg--bg-primary);
    color: var(--_themes---site--text--text-primary);
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    align-items: center;
    display: flex;
    position: relative;
    overflow: clip;
}

.section-vh {
    padding-right: var(--global--margin);
    padding-left: var(--global--margin);
    background-color: var(--_themes---site--bg--bg-primary);
    color: var(--_themes---site--text--text-primary);
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    align-items: center;
    height: 100vh;
    display: flex;
    position: relative;
    overflow: clip;
}

@media screen and (max-width: 991px) {
    .section-vh {
        height: auto;
    }
}

.section-hr {
    background-color: var(--_themes---site--bg--bg-primary);
    color: var(--_themes---site--text--text-primary);
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    align-items: center;
    display: flex;
    position: relative;
}

@media screen and (max-width: 991px) {
    .section-hr {
        height: auto;
    }
}

.container-sm {
    max-width: var(--max-width--s);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    position: relative;
}

.container-md {
    max-width: var(--max-width--m);
    flex: 1;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    position: relative;
}

.container-lg {
    max-width: var(--max-width--l);
    flex-direction: column;
    flex: 1;
    align-self: stretch;
    align-items: center;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    position: relative;
}

.container-xxl {
    max-width: var(--max-width--xxl);
    flex-flow: column;
    flex: 1;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: flex;
}

.container-xl {
    max-width: var(--max-width--xl);
    flex-direction: column;
    flex: 1;
    align-items: center;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    position: relative;
}

.container-fw {
    flex-direction: column;
    flex: 1;
    align-items: center;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    position: relative;
}

.u-hide-all {
    display: none;
}

@media screen and (max-width: 991px) {
    .u-hide-md {
        display: none;
    }
}

@media screen and (max-width: 767px) {
    .u-hide-sm {
        display: none;
    }
}

@media screen and (max-width: 479px) {
    .u-hide-xs {
        display: none;
    }
}

@media screen and (max-width: 991px) {
    .u-text-nowrap {
        white-space: normal;
    }
}

.u-z-index-1 {
    z-index: 1;
    position: relative;
}

.u-z-index-2 {
    z-index: 2;
    position: relative;
}

.u-text-black {
    color: var(--_themes---neutrals--950);
}

.u-text-grey {
    color: var(--_themes---neutrals--500);
}

.u-text-white {
    color: var(--_themes---neutrals--white);
    font-weight: 400;
}

.u-hs-h1 {
    font-size: var(--h1--font-size);
    line-height: var(--h1--line-height);
    letter-spacing: var(--h1--letter-spacing);
    font-weight: 400;
}

.u-hs-h2 {
    font-size: var(--h2--font-size);
    line-height: var(--h2--line-height);
    letter-spacing: var(--h2--letter-spacing);
    font-weight: 400;
}

.u-hs-h3 {
    font-size: var(--h3--font-size);
    line-height: var(--h3--line-height);
    letter-spacing: var(--h3--letter-spacing);
    font-weight: 400;
}

.u-hs-h4 {
    font-size: var(--h4--font-size);
    line-height: var(--h4--line-height);
    letter-spacing: var(--h4--letter-spacing);
    font-weight: 400;
}

.u-hs-h5 {
    font-size: var(--h5--font-size);
    line-height: var(--h5--line-height);
    letter-spacing: var(--h5--letter-spacing);
    font-weight: 400;
}

.u-hs-h6 {
    font-size: var(--h6--font-size);
    line-height: var(--h6--line-height);
    letter-spacing: var(--h6--letter-spacing);
    font-weight: 400;
}

.u-hs-xxl {
    font-size: 4.5rem;
}

.text-sm {
    font-size: var(--paragraph--font-size-s);
    line-height: var(--paragraph--line-height-s);
}

.text-md {
    font-size: var(--paragraph--font-size-m);
    line-height: var(--paragraph--line-height-m);
}

.text-lg {
    font-size: var(--paragraph--font-size-l);
    line-height: var(--paragraph--line-height-l);
}

.u-bg-white {
    background-color: var(--_themes---neutrals--white);
    color: var(--_themes---neutrals--950);
}

.u-bg-black {
    background-color: var(--_themes---neutrals--950);
}

.u-bg-dark {
    background-color: var(--_themes---site--bg--bg-primary);
}

.u-font-light {
    font-weight: 300;
}

.u-font-normal {
    font-weight: 400;
}

.u-font-medium {
    font-weight: 500;
}

.u-font-bold {
    font-weight: 700;
}

.u-font-xbold {
    font-weight: 800;
}

.u-font-accent {
    font-family: var(--typeface--tertiary);
}

.u-text-left {
    text-align: left;
}

.u-text-center {
    text-align: center;
    align-items: center;
}

.u-text-right {
    text-align: right;
}

.u-text-secondary {
    color: var(--_themes---site--text--text-secondary);
}

.u-overflow-visible {
    overflow: visible;
}

.u-overflow-hidden {
    overflow: hidden;
}

.u-overflow-scroll {
    overflow: scroll;
}

.u-overflow-auto {
    overflow: auto;
}

.u-text-italic {
    font-style: italic;
}

.u-text-strike {
    text-decoration: line-through;
}

.u-text-quote {
    border-left: 0.25rem solid #e2e2e2;
    margin-bottom: 0;
    padding: 0 1.25rem;
    font-size: 1.25rem;
    line-height: 1.5;
}

.u-text-muted {
    opacity: 0.6;
}

.u-text-allcaps {
    text-transform: uppercase;
}

.u-text-nowrap {
    white-space: nowrap;
}

.u-text-link {
    text-decoration: underline;
}

.u-layer {
    justify-content: center;
    align-items: center;
    position: absolute;
    inset: 0%;
}

.u-stretch {
    object-fit: cover;
    height: 100%;
}

.u-flex-grow {
    flex: 1;
}

.u-span-2 {
    grid-column: span 2;
}

.wp-25 {
    width: 25%;
}

.wp-50 {
    width: 50%;
}

.wp-75 {
    width: 75%;
}

.wp-100 {
    width: 100%;
}

.hp-25 {
    height: 25%;
}

.hp-50 {
    height: 50%;
}

.hp-75 {
    height: 75%;
}

.hp-100 {
    height: 100%;
}

.u-vp-100h {
    height: 100vh;
}

.u-vp-100w {
    width: 100vw;
}

.u-2-col {
    grid-template-columns: 1fr 1fr;
}

.py-xxs {
    padding-top: var(--padding--xxs);
    padding-bottom: var(--padding--xxs);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.py-xs {
    padding-top: var(--padding--xs);
    padding-bottom: var(--padding--xs);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.py-sm {
    padding-top: var(--padding--sm);
    padding-bottom: var(--padding--sm);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.py-md {
    padding-top: var(--padding--md);
    padding-bottom: var(--padding--md);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.py-lg {
    padding-top: var(--padding--lg);
    padding-bottom: var(--padding--lg);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.py-xl {
    padding-top: var(--padding--xl);
    padding-bottom: var(--padding--xl);
    align-self: stretch;
}

@media screen and (max-width: 991px) {
    .mb-py-md {
        padding-bottom: var(--padding--md);
        padding-top: var(--padding--md);
    }
}

.pt-0 {
    padding-top: 0;
}

@media screen and (max-width: 991px) {
    .mb-pt-0 {
        padding-top: 0rem;
    }
}

.pt-xxs {
    padding-top: var(--padding--xxs);
}

.pt-xs {
    padding-top: var(--padding--xs);
}

.pt-sm {
    padding-top: var(--padding--sm);
}

.pt-md {
    padding-top: var(--padding--md);
}

.pt-lg {
    padding-top: var(--padding--lg);
}

.pt-xl {
    padding-top: var(--padding--xl);
}

.pb-0 {
    padding-bottom: 0;
}

.pb-xxs {
    padding-bottom: var(--padding--xxs);
}

.pb-xs {
    padding-bottom: var(--padding--xs);
}

@media screen and (max-width: 991px) {
    .mb-pb-xs {
        padding-bottom: var(--padding--xs);
    }
}

.pb-sm {
    padding-bottom: var(--padding--sm);
}

.pb-md {
    padding-bottom: var(--padding--md);
}

.pb-lg {
    padding-bottom: var(--padding--lg);
}

.pb-xl {
    padding-bottom: var(--padding--xl);
}

.p-xxs {
    padding: var(--padding--xxs);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.p-xs {
    padding: var(--padding--xs);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.p-sm {
    padding: var(--padding--sm);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.p-md {
    padding: var(--padding--md);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.p-lg {
    padding: var(--padding--lg);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.p-xl {
    padding: var(--padding--xl);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.gap-0 {
    grid-column-gap: 0px;
    grid-row-gap: 0px;
}

.gap-xxs {
    grid-column-gap: var(--gap--xxs);
    grid-row-gap: var(--gap--xxs);
}

.gap-xs {
    grid-column-gap: var(--gap--xs);
    grid-row-gap: var(--gap--xs);
}

.gap-sm {
    grid-column-gap: var(--gap--sm);
    grid-row-gap: var(--gap--sm);
}

.gap-md {
    grid-column-gap: var(--gap--md);
    grid-row-gap: var(--gap--md);
}

.gap-lg {
    grid-column-gap: var(--gap--lg);
    grid-row-gap: var(--gap--lg);
}

.gap-xl {
    grid-column-gap: var(--gap--xl);
    grid-row-gap: var(--gap--xl);
}

.gap-xxl {
    grid-column-gap: var(--gap--xxl);
    grid-row-gap: var(--gap--xxl);
}

.gap-x-xxs {
    grid-column-gap: var(--gap--xxs);
    grid-row-gap: 0px;
}

.gap-x-xs {
    grid-column-gap: var(--gap--xs);
    grid-row-gap: 0px;
}

.gap-x-sm {
    grid-column-gap: var(--gap--sm);
    grid-row-gap: 0px;
}

.gap-x-md {
    grid-column-gap: var(--gap--md);
    grid-row-gap: 0px;
}

.gap-x-lg {
    grid-column-gap: var(--gap--lg);
    grid-row-gap: 0px;
}

.gap-x-xl {
    grid-column-gap: var(--gap--xl);
    grid-row-gap: 0px;
}

.gap-x-xxl {
    grid-column-gap: var(--gap--xxl);
    grid-row-gap: 0px;
}

.gap-y-xxs {
    grid-column-gap: 0px;
    grid-row-gap: var(--gap--xxs);
}

.gap-y-xs {
    grid-column-gap: 0px;
    grid-row-gap: var(--gap--xs);
}

.gap-y-sm {
    grid-column-gap: 0px;
    grid-row-gap: var(--gap--sm);
}

.gap-y-md {
    grid-column-gap: 0px;
    grid-row-gap: var(--gap--md);
}

.gap-y-lg {
    grid-column-gap: 0px;
    grid-row-gap: var(--gap--lg);
}

.gap-y-xl {
    grid-column-gap: 0px;
    grid-row-gap: var(--gap--xl);
}

.gap-y-xxl {
    grid-column-gap: 0px;
    grid-row-gap: var(--gap--xxl);
}

.s-hm_track {
    -ms-overflow-style: none; /* Internet Explorer and Edge */
    scrollbar-width: none; /* Firefox */
}

.s-hm_track {
    -ms-overflow-style: none; /* Internet Explorer and Edge */
    scrollbar-width: none; /* Firefox */
}

.s-ab_scroll::-webkit-scrollbar {
    display: none; /* Chrome, Safari and Opera */
}

.s-ab_scroll {
    -ms-overflow-style: none; /* Internet Explorer and Edge */
    scrollbar-width: none; /* Firefox */
}

.u-line-mask {
    overflow: hidden;
}

/* Pre-hydration: reserve space for custom elements before Svelte mounts */
b-img:not(:defined),
b-fullbleed:not(:defined) {
    display: block;
    aspect-ratio: 16 / 9;
    width: 100%;
}

b-header:not(:defined) {
    display: block;
    min-height: 40vh;
    width: 100%;
}

c-indexcard:not(:defined) {
    display: block;
    aspect-ratio: 1;
    width: 100%;
}

l-home:not(:defined) {
    display: block;
    min-height: 100vh;
    width: 100%;
}

/* Lenis smooth scroll */
html {
    scrollbar-width: none;
}

html::-webkit-scrollbar {
    display: none;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-scrolling iframe {
    pointer-events: none;
}
