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

html,
body,
div,
span,
applet,
button,
input,
select,
textarea,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
main,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    background: transparent;
    border: 0;
    font: inherit;
    font-size: 100%;
    margin: 0;
    min-width: 0;
    outline: 0;
    padding: 0;
    vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section {
    display: block;
}

body {
    line-height: 1;
}

blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: none;
}

img,
svg {
    display: block;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
main,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    background: transparent;
    border: 0;
    font: inherit;
    font-size: 100%;
    margin: 0;
    min-width: 0;
    outline: 0;
    padding: 0;
    vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section {
    display: block;
}

body {
    line-height: 1;
}


blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: none;
}

img,
svg {
    display: block;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

:root {
    --rgb-black: 35, 28, 51;
    --rgb-blurple: 85, 34, 250;
    --rgb-canary: 255, 245, 202;
    --rgb-canary-light: 255, 250, 229;
    --rgb-cobalt: 0, 116, 228;
    --rgb-coral: 249, 92, 92;
    --rgb-coral-dark: 236, 67, 67;
    --rgb-grey: 115, 108, 131;
    --rgb-green: 41, 152, 80;
    --rgb-green-light: 22, 186, 91;
    --rgb-lavender: 213, 210, 255;
    --rgb-lavender-light: 234, 232, 254;
    --rgb-mint: 179, 244, 224;
    --rgb-mint-light: 216, 249, 240;
    --rgb-orange: 248, 121, 23;
    --rgb-paper: 249, 247, 245;
    --rgb-peach: 255, 229, 218;
    --rgb-peach-light: 254, 242, 237;
    --rgb-pink: 207, 111, 182;
    --rgb-pink-light: 239, 218, 245;
    --rgb-purple: 119, 0, 162;
    --rgb-salmon: 236, 133, 128;
    --rgb-sky: 182, 219, 255;
    --rgb-sky-tint: 218, 237, 254;
    --rgb-sky-light: 238, 248, 255;
    --rgb-stone: 237, 234, 230;
    --rgb-stone-light: 247, 244, 240;
    --rgb-teal: 95, 221, 197;
    --rgb-white: 255, 255, 255;
    --rgb-yellow: 245, 214, 82;
    --color-black: rgb(var(--rgb-black));
    --color-blurple: rgb(var(--rgb-blurple));
    --color-canary: rgb(var(--rgb-canary));
    --color-canary-light: rgb(var(--rgb-canary-light));
    --color-cobalt: rgb(var(--rgb-cobalt));
    --color-coral: rgb(var(--rgb-coral));
    --color-coral-dark: rgb(var(--rgb-coral-dark));
    --color-green: rgb(var(--rgb-green));
    --color-green-light: rgb(var(--rgb-green-light));
    --color-grey: rgb(var(--rgb-grey));
    --color-grey-light: #f8f9fa;
    --color-lavender: rgb(var(--rgb-lavender));
    --color-lavender-light: rgb(var(--rgb-lavender-light));
    --color-mint: rgb(var(--rgb-mint));
    --color-mint-light: rgb(var(--rgb-mint-light));
    --color-orange: rgb(var(--rgb-orange));
    --color-paper: rgb(var(--rgb-paper));
    --color-peach: rgb(var(--rgb-peach));
    --color-peach-light: rgb(var(--rgb-peach-light));
    --color-pink: rgb(var(--rgb-pink));
    --color-pink-light: rgb(var(--rgb-pink-light));
    --color-purple: rgb(var(--rgb-purple));
    --color-salmon: rgb(var(--rgb-salmon));
    --color-sky: rgb(var(--rgb-sky));
    --color-sky-tint: rgb(var(--rgb-sky-tint));
    --color-sky-light: rgb(var(--rgb-sky-light));
    --color-stone: rgb(var(--rgb-stone));
    --color-stone-light: rgb(var(--rgb-stone-light));
    --color-teal: rgb(var(--rgb-teal));
    --color-white: rgb(var(--rgb-white));
    --color-yellow: rgb(var(--rgb-yellow));
    --color-primary: #007bff;
    --color-blue: #007bff;
    --color-blue-dark: #0056b3;
    --color-red: #dc3545;
    --color-red-dark: #c82333;
    --font-size: 16px;
    --font-size-xxxx-small: 45%;
    --font-size-xxx-small: 55%;
    --font-size-xx-small: 65%;
    --font-size-x-small: 75%;
    --font-size-small: 85%;
    --font-size-medium: 100%;
    --font-size-large: 125%;
    --font-size-x-large: 150%;
    --font-size-xx-large: 200%;
    --font-size-xxx-large: 220%;
    --border-radius-small: 5px;
    --border-radius-medium: 7.5px;
    --border-radius-large: 10px;
    --line-height: 1.4;
    --space-neutral: 1.4em;
    --space-small: 0.5em;
    --space-medium: 1em;
    --space-large: 2em;
    --space-x-large: 3em;
    --space-xx-large: 4em;
    --space-xxx-large: 5em;
    --space-xxxx-large: 6em;
    --transition: 0.15s cubic-bezier(0.37, 1, 0.74, 1);
    --transition-slow: 0.3s cubic-bezier(0.37, 1, 0.74, 1);

    /* Font Variables */
    --font-primary: 'Inter', sans-serif;
    --font-serif: 'NotoSerif', serif;

    --primary: var(--color-blue);
    --primary-hover: var(--color-blue-dark);
}

@font-face {
    font-family: 'NotoSerif';
    src: url('/static/fonts/NotoSerif-Bold.ttf');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'NotoSerif';
    src: url('/static/fonts/NotoSerif-BoldItalic.ttf');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'NotoSerif';
    src: url('/static/fonts/NotoSerif-Light.ttf');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'NotoSerif';
    src: url('/static/fonts/NotoSerif-LightItalic.ttf');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/static/fonts/Inter-VariableFont_opsz_wght.ttf');
    font-display: swap;
}

html {
    background: var(--color-white);
    font-size: 16px;
    min-height: -webkit-fill-available;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--font-size) * 3.525);
}

body {
    background: var(--color-white);
    color: var(--color-black);
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: var(--font-primary);
    font-feature-settings: 'case', 'liga';
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-style: normal;
    font-weight: 400;
    letter-spacing: -0.0125em;
    line-height: var(--line-height);
    min-height: 100vh;
    -webkit-tap-highlight-color: rgba(var(--rgb-black), 0);
    text-rendering: optimizeLegibility;
}

h1 {
    font-family: var(--font-serif);
}

a {
    color: var(--color-blurple);
    font-weight: 500;
    text-decoration: underline;
    text-decoration-thickness: 0.1em;
    text-underline-offset: 0.09em;
    text-decoration: none;
}

b,
strong {
    font-weight: 700;
}

i,
em {
    font-style: italic;
}

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

video::cue {
    font-family: var(--font-primary);
    font-feature-settings: 'case', 'liga';
    font-size: var(--font-size-small);
    font-weight: 500;
    letter-spacing: -0.0125em;
    line-height: 1;
}

@supports(-webkit-touch-callout: none) {
    body {
        min-height: -webkit-fill-available;
    }
}

@media(min-width: 64em) {
    html {
        scroll-padding-top: var(--font-size);
    }
}

.button {
    background: linear-gradient(135deg, var(--color-blurple) 0, var(--color-salmon) 100%);
    border-radius: 2.5em;
    color: var(--color-white);
    cursor: pointer;
    display: inline-flex;
    font-feature-settings: 'c2sc', 'smcp';
    font-size: var(--font-size-medium);
    font-weight: 500;
    justify-content: center;
    letter-spacing: -0.0175em;
    line-height: 1em;
    padding: 0.6em 1.1em 0.675em 1.1em;
    pointer-events: auto;
    text-align: center;
    text-decoration: none;
}

.button span {
    z-index: 1;
}

.button--color-blurbalt {
    background: linear-gradient(135deg, var(--color-blurple) 0, var(--color-cobalt) 100%);
}

.button--color-blurmaroon {
    background: #b43a4c;
    background: linear-gradient(135deg, rgba(180, 58, 76, 1) 0%, rgb(170 67 83));
}

.lbtn,
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    white-space: nowrap;
    appearance: none;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    touch-action: manipulation;
    text-align: left;
    text-decoration: none;
    border: 1px solid #dbdbdb;
    border-radius: 0.375rem;
    box-shadow: none;
    font-weight: 600;
    font-family: var(--font-primary);
    font-size: var(--font-size);
    font-feature-settings: 'c2sc';
    line-height: 1;
    transition: all 0.2s ease-out;
}

/* .lbtn:hover {
    border-color: #b5b5b5;
} */
.lbtn:focus,
.lbtn:active,
.btn:active,
.btn:focus {
    outline: 0;
}

/* .lbtn:focus:not(:active) {
    border-color: #485fc7;
    box-shadow: rgba(72, 95, 199, .25) 0 0 0 0.125rem;
} */
.lbtn:active,
.btn:active {
    border-color: #4a4a4a;
}

.lbtn--primary,
.btn--primary {
    background-color: var(--color-blue);
    border-color: var(--color-blue);
    color: var(--color-white);
}

.lbtn--primary:hover,
.btn--primary:hover {
    background-color: var(--color-blue-dark);
    border-color: var(--color-blue-dark);
}

.lbtn--secondary,
.btn--secondary {
    border-color: var(--color-blue);
    color: var(--color-blue);
}

.lbtn--secondary:hover,
.btn--secondary:hover {
    color: var(--color-blue-dark);
    border-color: transparent;
}

.lbtn--outline,
.btn--outline {
    background-color: transparent;
    border-color: var(--color-white);
    border-radius: 0;
    border-bottom-color: var(--color-blue);
    color: var(--color-blue);
    text-decoration: none;
}

.lbtn--outline:hover,
.btn--outline:hover {
    color: var(--color-blue-dark);
    border-color: transparent;
}

.lbtn--danger,
.btn--danger {
    background-color: var(--color-red);
    border-color: var(--color-red);
    color: var(--color-white);
}

.lbtn--danger:hover,
.btn--danger:hover {
    background-color: var(--color-red-dark);
    border-color: var(--color-red-dark);
}

.lbtn--danger:focus:not(:active),
.btn--danger:focus:not(:active) {
    box-shadow: rgba(220, 53, 69, .25) 0 0 0 0.125rem;
}

.lbtn-plane,
.btn-plane {
    color: var(--color-black);
    border-color: transparent;
}

.lbtn-plane:hover,
.btn-plane:hover {
    border-color: var(--color-black);
}

.lbtn--xs,
.btn--xs {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
}

.lbtn--sm,
.btn--sm {
    font-size: 0.875rem;
    padding: 0.375rem 0.75rem;
}

.lbtn--md,
.btn--md {
    font-size: 1.0rem;
    padding: 0.5rem 1.0rem;
}

.lbtn--lg,
.btn--lg {
    font-size: 1.125rem;
    padding: 0.75rem 1.5rem;
}

.label {
    border-radius: 7.5px;
    color: black;
    font-weight: bold;
}


.input {
    border: 1px solid var(--color-stone-light);
    border-left: 10px solid var(--color-black);
    border-radius: 7.5px;
    padding: 7.5px;
}

.input:focus {
    border-left: 10px solid var(--color-blue);
}

.input:not(:empty):invalid {
    border-left: 10px solid var(--color-red);
}

.select {
    border: 1px solid var(--color-stone-light);
    border-left: 10px solid var(--color-black);
    border-radius: 7.5px;
    padding: 7.5px;
}


.radio {
    border: 1px solid var(--color-stone);
    border-radius: var(--border-radius-small);
    width: fit-content;
    padding: var(--space-small) var(--space-medium);
    min-width: 100px;
    display: flex;
    align-items: center;
    gap: var(--space-small);
}

.radio:hover {
    border: 1px solid var(--color-black);
}

#scroll {
    position: fixed;
    right: var(--space-large);
    bottom: var(--space-large);
    cursor: pointer;
    width: 50px;
    height: 50px;
    background-color: var(--color-black);
    text-indent: -9999px;
    display: none;
    -webkit-border-radius: 60px;
    -moz-border-radius: 60px;
    border-radius: 60px
}

#scroll span {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: -8px;
    margin-top: -12px;
    height: 0;
    width: 0;
    border: 8px solid transparent;
    border-bottom-color: #ffffff;
}

#scroll:hover {
    background-color: var(--color-blue);
    opacity: 1;
    filter: "alpha(opacity=100)";
    -ms-filter: "alpha(opacity=100)";
}