:root {
    
    --background: #ffffff;
    --dark-background: #11111f;
    --primary: #11111f;
    --primary-light: #ffffff;
    --secondary: #99999a;

    --accent: #7856F5;
    
    --image-background: #f1f2f6;

    --fab-background: #11111f;

    --grid-area-background-light: #F9F7FF;
    --grid-spacer-background-light: #F2EFFF;
    --grid-area-stroke-light: #E5DEFF;
    --grid-keyline-light: #F3F3F4;

    --grid-area-background-dark: #1C1835;
    --grid-spacer-background-dark: #211C41;
    --grid-area-stroke-dark: #312862;
    --grid-keyline-dark: #292935;

    --underline-light: #CFCFD2;
    --underline-light: #11111a;
    --underline-dark: #41414C;
    --underline-dark: #ffffff;

    --keyline-light: #E7E7E9;
    --keyline-dark: #292935;

    --grid-shadow-light: inset 0px -1px 0px var(--grid-keyline-light), inset 0px 1px 0px var(--grid-keyline-light);
    --grid-shadow-dark: inset 0px -1px 0px var(--grid-keyline-dark), inset 0px 1px 0px var(--grid-keyline-dark);

    --site-shadow-light:  -1px 0px 0px var(--keyline-light),  1px 0px 0px var(--keyline-light);
    --site-shadow-dark:  -1px 0px 0px var(--keyline-dark),  1px 0px 0px var(--keyline-dark);
    --site-shadow-resizing:  -1px 0px 0px var(--grid-area-stroke-light),  1px 0px 0px var(--grid-area-stroke-light);
    --site-shadow-resizing-dark:  -1px 0px 0px var(--grid-area-stroke-dark),  1px 0px 0px var(--grid-area-stroke-dark);
}

/* CSS Reset */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, 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, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

.mobile-only{
    display: none;
}


/* Box Model */

html {
  box-sizing: border-box;
  font-family: 'Inter', sans-serif;
  -webkit-font-smoothing: antialiased;
  height: -webkit-fill-available;
}

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


body{
    min-height: 100vh;
    min-height: -webkit-fill-available;
}

body.menu-open{
    background: var(--dark-background);
    touch-action: none;
    -webkit-overflow-scrolling: none;
    overflow: hidden;
    overscroll-behavior: none;
}

.wide-outer-container{
    position: fixed;
    width: 100%;
    height: 100%;
    pointer-events: none;
    display: none;
    
}

.resizing .wide-outer-container{
    background: var(--grid-area-background-light);
}

.menu-open.resizing .wide-outer-container{
    background: var(--grid-area-background-dark);
}

.wide-inner-container{
    width: 100%;
    height: 100%;
    max-width: 1920px;
    margin: auto;
    box-shadow: var(--site-shadow-light);
}

.menu-open .wide-inner-container{
    box-shadow: var(--site-shadow-dark);
}


.resizing .wide-inner-container{
    box-shadow: var(--site-shadow-resizing);
    background: var(--background);
}

.menu-open.resizing .wide-inner-container{
    box-shadow: var(--site-shadow-resizing-dark);
    background: var(--dark-background);
}

.keyline{
    position: fixed;
    top: 0px;
    left: 50%;
    width: 1px;
    height: 100vh;
    background: var(--keyline-light);
    opacity: 1;
    transition: height 0.6s cubic-bezier(0.65,0.05,0.36,1), opacity 0.6s cubic-bezier(0.65,0.05,0.36,1);
}

.keyline.loading{
    height: 0px;
    opacity: 0px;
    
}

.resizing .keyline{
    display: none;
}

.nav-bar{
    position: relative;
    width: 100%;
    height: 80px;
    z-index: 30;
    opacity: 1;
    transition: opacity 0.45s ease-in-out;
}

.nav-bar.loading{
    opacity: 0;

}

.nav-bar .grid-vertical-keyline{
    height: 80px;
}


nav{
    position: absolute;
    top: 24px;
    left: 50%;
    width: 50%;
    display: flex;
    flex-direction: row;
    padding: 0px 20px;
    z-index: 50;
    max-width: 640px;
    
}

.resizing nav{
    box-shadow: var(--grid-shadow-light);
}

.menu-open.resizing nav{
    box-shadow: var(--grid-shadow-dark);
}

.title-outer-container{

    position: absolute;
    top: 24px;
    left: 0px;
    width: 50%;
    padding: 0px 20px 0px 24px;
    z-index: 30;
}

.resizing .title-outer-container{
    box-shadow: var(--grid-shadow-light);
}

.menu-open.resizing .title-outer-container{
    box-shadow: var(--grid-shadow-dark);
}

.title-outer-container.sticky{
    position: fixed;
    
}

.title-inner-container{
    display: inline-block;
    padding: 0px 8px;
    border: 1px solid transparent;
    background: none;
}

.resizing .title-inner-container{
    border: 1px solid var(--grid-area-stroke-light);
    background: var(--grid-area-background-light);
}

.menu-open.resizing .title-inner-container{
    border: 1px solid var(--grid-area-stroke-dark);
    background: var(--grid-area-background-dark);
}

.nav-item-container{

    padding: 0px 8px;
    border: 1px solid transparent;
    background: none;
}

.resizing .nav-item-container{
    border: 1px solid var(--grid-area-stroke-light);
    background: var(--grid-area-background-light);
    border-radius: 0px;
}

.menu-open.resizing .nav-item-container{
    border: 1px solid var(--grid-area-stroke-dark);
    background: var(--grid-area-background-dark);
}

.nav-item{

    font-family: 'Inter', sans-serif;
    position: relative;
    font-size: 20px;
    line-height: 26px;
    color: var(--primary);
    background: none;
    border: none;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
    outline: none;
    padding: 1px 0px;
    margin: 0px;
}

.menu-open .nav-item{
    color: var(--primary-light);
}

.nav-item:hover{
    cursor: pointer;
    border-bottom: 1px solid var(--underline-light);
}

.mobile .nav-item:hover{
    border-bottom: 1px solid transparent;
}

.menu-open .nav-item:hover{
    cursor: pointer;
    border-bottom: 1px solid var(--underline-dark);
}

.mobile.menu-open .nav-item:hover{
    border-bottom: 1px solid transparent;
}

.nav-item:focus-visible {
    border-bottom: 1px solid var(--accent);
}

.resizing .nav-item:focus-visible,
.resizing .nav-item:hover{
    border-bottom: 1px solid transparent;
}

.nav-spacer{
    width: 4px;
}

.resizing .nav-spacer{
    border-top: 1px solid var(--grid-area-stroke-light);
    border-bottom: 1px solid var(--grid-area-stroke-light);
    background: var(--grid-spacer-background-light);
}

.menu-open.resizing .nav-spacer{
    border-top: 1px solid var(--grid-area-stroke-dark);
    border-bottom: 1px solid var(--grid-area-stroke-dark);
    background: var(--grid-spacer-background-dark);
}

.sticky-shadow{
    position: sticky;
    top: 80px;
    left: 0px;
    width: 100%;
    height: 1px;
    background: rgba(17, 17, 31, 0.10);
    display: none;
    z-index: 30;
}

.resizing .sticky-shadow{
    background: var(--grid-area-stroke-light);
}

.menu-open .sticky-shadow{
    display: none;
}

.content-container{
    position: relative;
    min-height: calc(100vh - 80px);
    z-index: 10;
    width: 100%;
    opacity: 1;
    transition: opacity 0.45s ease-in-out;
}

.content-container.loading{
    opacity: 0;
}

.content-container.hide{
   visibility: hidden;
}


/* Intro */


.intro{
    position: relative;
    width: 100%;
    height: calc(66vh - 80px);
    padding-top: 40px;
}

.intro-fade{
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: 320px;
    background: rgb(255,255,255);
    background: linear-gradient(0deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
    z-index: 10;
}

.resizing .intro-fade{
    display: none;
}

.intro-outer-container{
    position: relative;
    display: flex;
    flex-direction: row;
    width: 100%;
    z-index: 20;
}

.resizing .intro-outer-container{
    box-shadow: var(--grid-shadow-light);
}

.intro-column-1{
    width: 50%;
}

.intro-column-2{
    width: 50%;
}

.intro-inner-container{
    width: 100%;
    padding: 0px 24px 0px 20px;
}

.intro-text{
    padding: 2px 6px;
    border: 1px solid transparent;
}

.resizing .intro-text{
    border: 1px solid var(--grid-area-stroke-light);
    background: var(--grid-area-background-light);
}

.intro-text p{
    font-size: 28px;
    line-height: 40px;
    max-width: 640px;
}

.intro-text a{
    text-decoration: none;
    color: var(--primary);
}

.intro-text a:hover{
    border-bottom: 1px solid var(--underline-light);
}

.mobile .intro-text a:hover{
    border-bottom: 1px solid transparent;
}

.intro-text a:focus-visible{
    border-bottom: 1px solid var(--accent);
    outline: none;
}


/* Outro */


.outro{
    position: relative;
    width: 100%;
    height: calc(100vh - 40px);
    padding-top: 80px;
}

.outro-fade{
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 320px;
    background: rgb(255,255,255);
    background: linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
    z-index: 10;
}

.resizing .outro-fade{
    display: none;
}

.outro-outer-container{
    position: relative;
    display: flex;
    flex-direction: row;
    width: 100%;
    z-index: 20;
}

.resizing .outro-outer-container{
    box-shadow: var(--grid-shadow-light);
}

.outro-column-1{
    width: 50%;
}

.outro-column-2{
    width: 50%;
}

.outro-inner-container{
    width: 100%;
    padding: 0px 24px 0px 20px;
}

.outro-text{
    padding: 2px 6px;
    border: 1px solid transparent;
}

.resizing .outro-text{
    border: 1px solid var(--grid-area-stroke-light);
    background: var(--grid-area-background-light);
}

.outro-text p{
    font-size: 28px;
    line-height: 40px;
    max-width: 640px;
}

.outro-text a{
    text-decoration: none;
    color: var(--primary);
}

.outro-text a:hover{
    border-bottom: 1px solid var(--underline-light);
}

.mobile .outro-text a:hover{
    border-bottom: 1px solid transparent;
}

.outro-text a:focus-visible{
    border-bottom: 1px solid var(--accent);
    outline: none;
}

.outro-spacer{
    width: 100%;
    height: 20px;
}

.resizing .outro-spacer{
    border-left: 1px solid var(--grid-area-stroke-light);
    border-right: 1px solid var(--grid-area-stroke-light);
    background: var(--grid-spacer-background-light);
}


/* Contact */


.contact{
    position: absolute;
    bottom: 28px;
    left: 0px;
    width: 100%;
}

.contact-outer-container{
    display: flex;
    flex-direction: row;
    width: 100%;
    
}

.resizing .contact-outer-container{
    box-shadow: var(--grid-shadow-light);
}

.contact-column-1{
    width: 50%;
}
.contact-column-2{
    width: 50%;
}

.contact-inner-container{
    display: flex;
    flex-direction: row;
    width: 100%;
    padding: 0px 24px 0px 20px;
}

.contact-button-container{
    display: inline-block;
    /*padding: 1px 8px;
    border: 1px solid transparent;*/
}

.contact-button{
    font-size: 28px;
    line-height: 40px;
    background: none;
    border: none;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
    outline: none;
    margin: 0px;
    padding: 0px;
    color: var(--primary);
}

.contact-button:hover{
    /*cursor: pointer;*/
    /*border-bottom: 1px solid var(--underline-light);*/
}

.contact-button:focus-visible{
    border-bottom: 1px solid var(--accent);
}

.resizing .contact-button{
    border-bottom: 1px solid transparent;
}

.resizing .contact-button-container{
    /*border: 1px solid var(--grid-area-stroke-light);
    background: var(--grid-area-background-light);*/
}


.contact-hover-text{
    display: inline-block;
    /*padding: 2px 4px;*/
    padding-left: 8px;
    /*border: 1px solid transparent;*/
    border-left: none;
    /*transition: opacity 0.2s cubic-bezier(0.65,0.05,0.36,1);*/
    visibility: hidden;
    opacity: 0;
    
}

.resizing .contact-hover-text{
   
    /*border: 1px solid var(--grid-area-stroke-light);
    border-left: none;
    background: var(--grid-area-background-light);*/
}

.contact-hover-text:hover{
    /*cursor: pointer;*/
}

.contact-inner-container:has(:focus-visible) .contact-hover-text{
    visibility: visible;
    opacity: 1;
}

.contact-hover-text.show{
    visibility: visible;
    opacity: 1;
}

.contact-hover-text p{
    font-size: 28px;
    line-height: 40px;
    color: var(--secondary);
}


/* About */


.about{
    padding-top: 40px;
    padding-bottom: 32px;
}

.about-outer-container{
    display: flex;
    flex-direction: row;
    width: 100%;
}

.resizing .about-outer-container{
    box-shadow: var(--grid-shadow-light);
}

.about-column-1{
    width: 50%;
}

.about-column-2{
    width: 50%;
}

.about-inner-container{
    width: 100%;
    padding: 0px 24px 0px 20px;
}

.about-text{
    padding: 2px 7px;
    border: 1px solid transparent;
}

.resizing .about-text{
    border: 1px solid var(--grid-area-stroke-light);
    background: var(--grid-area-background-light);
}

.about-headline{
    padding: 4px 8px 3px 8px;
    border: 1px solid transparent;
    border-bottom: none;
}

.resizing .about-headline{
    border: 1px solid var(--grid-area-stroke-light);
    border-bottom: none;
    background: var(--grid-area-background-light);
}

.about-headline h1{

    font-size: 20px;
    line-height: 26px;
    color: var(--primary);

}

.about-text p{
    font-size: 28px;
    line-height: 40px;
    max-width: 640px;
}

.about-text a{
    text-decoration: none;
    color: var(--primary);
}

.about-text a:hover{
    border-bottom: 1px solid var(--underline-light);
}

.mobile .about-text a:hover{
    border-bottom: 1px solid transparent;
}

.about-text a:focus-visible{
    border-bottom: 1px solid var(--accent);
    outline: none;
}

.about-spacer{
    width: 100%;
    height: 24px;
}

.resizing .about-spacer{
    border-left: 1px solid var(--grid-area-stroke-light);
    border-right: 1px solid var(--grid-area-stroke-light);
    background: var(--grid-spacer-background-light);
}


/* Index */


.index-container{
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    min-height: 100vh;
    min-height: -webkit-fill-available;
    z-index: 20;
    display: none;

    overflow: hidden;
    overscroll-behavior: none;
}

.index-container.show{
    display: block;
}

.keyline-index{
    position: fixed;
    top: 0px;
    left: 50%;
    width: 1px;
    height: 100vh;
    background: var(--keyline-dark);
}

.resizing .keyline-index{
    display: none;
}


.index-menu-container{
    position: absolute;
    top: 120px;
    left: 0px;
    display: flex;
    flex-direction: row;
    width: 100%;
}

.resizing .index-menu-container{
    box-shadow: var(--grid-shadow-dark);
}

.index-menu-column-1{
    width: 50%;
}
.index-menu-column-2{
    width: 50%;
}

.index-menu-inner-container{
    width: 100%;
    padding: 0px 24px 0px 20px;
}

.index-menu-item{
    padding: 0px 4px;
    border: 1px solid transparent;
}

.index-menu-button{
    font-family: 'Inter', sans-serif;
    font-size: 48px;
    line-height: 56px;
    color: var(--primary-light);
    padding: 2px 0px;
    border: none;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
    background: none;
    outline: none;
    margin: 0px;
}

.index-menu-button:hover{
    cursor: pointer;
    border-bottom: 1px solid var(--underline-dark); 
}

.mobile .index-menu-button:hover{
    border-bottom: 1px solid transparent; 
}

.index-menu-button:focus-visible{
   border-bottom: 1px solid var(--accent); 
}

.resizing .index-menu-button{
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
}

.resizing .index-menu-item{
    border: 1px solid var(--grid-area-stroke-dark);
    background: var(--grid-area-background-dark);
}


.index-menu-spacer{
    width: 100%;
    height: 8px;
}

.resizing .index-menu-spacer{
    border-left: 1px solid var(--grid-area-stroke-dark);
    border-right: 1px solid var(--grid-area-stroke-dark);
    background: var(--grid-spacer-background-dark);
}


/* FAB */


.fab-container{
    position: fixed;
    bottom: 24px;
    right: 24px;
    transform: translateY(88px);
    transition: all 0.5s cubic-bezier(0.65,0.05,0.36,1);
    z-index: 15;
}



.menu-open .fab-container{
    display: none;
}

.fab-container.loading.show{
    transform: translateY(88px);
}

.fab-container.show{
    transform: translateY(0px);
}

.fab{
    background: var(--fab-background);
    width: 56px;
    height: 56px;
    border-radius: 28px;
}

.fab-progress-container{
    position: absolute;
    top: 0px;
    left: 0px;
    opacity: 0;
    transition: opacity 0.6s;
}

.fab-progress-container.show{
    opacity: 1;
}

.fab-progress{

    opacity: 0.2;

    transform: rotate(-90deg);

    fill: none;
    stroke: var(--primary-light);
    stroke-width: 2;
    stroke-linecap: round;
}

.fab-button-container{
    opacity: 0.6;
    position: absolute;
    top: 0px;
    left: 0px;
    width: 56px;
    height: 56px;
}


.fab:hover .fab-button-container{
    opacity: 1;
}

.fab-button{
    position: absolute;
    top: 0px;
    left: 0px;
    width: 56px;
    height: 56px;
    background: none;
    border: none;
    outline: none;
}

.fab-button:hover{
    cursor: pointer;
}

.fab:has(:focus-visible):after {
  content: '';
  display: block;
  position: absolute;
  top: -2px;
  left: -2px;
  width: 60px;
  height: 60px;
  border-radius: 30px;
  border: 2px solid #7856F5;
}

.fab:has(:focus-visible) .fab-button-container{
    opacity: 1;
}

.fab-arrow{
    position: absolute;
    top: 19px;
    left: 19px;
    width: 18x;
    height: 18px;
    color: var(--primary-light);
    opacity: 1;
    transition: all 0.5s;
    transition-timing-function: ease-in-out;
    pointer-events: none;
}

.fab-double-arrow{
    position: absolute;
    top: 19px;
    left: 19px;
    width: 18x;
    height: 18px;
    color: var(--primary-light);
    opacity: 0;
    transition: all 0.5s;
    transition-timing-function: ease-in-out;
    pointer-events: none;
}

.fab.up .fab-arrow{
    opacity: 0;
    transform: rotate(-180deg);
}

.fab.up .fab-double-arrow{
    opacity: 1;
    transform: rotate(-180deg);
}

.fab.bottom .fab-arrow{
    opacity: 1;
    transform: rotate(-90deg);
}
.fab.bottom .fab-double-arrow{
    opacity: 0;
    transform: rotate(-90deg);
}

.resizing .fab{
    background: var(--primary-light);
    border: 1px solid var(--grid-area-stroke-light);
}

.fab-next-container{
    position: fixed;
    right: 92px;
    bottom: 24px;
    transform: translateY(88px);
    transition: all 0.5s cubic-bezier(0.65,0.05,0.36,1);
    z-index: 15;
    cursor: default;
}

.fab-next:hover,
.fab-next-container:hover{
    cursor: default;
}

.fab-next{

    background: var(--primary-light);
    padding: 14px 24px;
    border: 1px solid transparent;
    font-size: 20px;
    line-height: 26px;
    color: var(--primary);
    border-radius: 28px;
    box-shadow: 0px 0px 0px 1px rgba(17, 17, 31, 0.10);
    cursor: default;
    
    
}

.menu-open .fab-next-container{
    display: none;
}

.fab-next-container.show{
    transform: translateY(0px);
}

.resizing .fab-next{
    background: var(--primary-light);
    border: 1px solid var(--grid-area-stroke-light);
    box-shadow: none;
    color: var(--primary-light);
}

.grid-vertical{
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    pointer-events: none;
    display: none;
}

.resizing .grid-vertical {
    display: block;
}

.grid-vertical-keyline{
    position: absolute;
    top: 0px;
    width: 1px;
    height: 100%;
    background: var(--grid-keyline-light);
}

.menu-open .grid-vertical-keyline{
    background: var(--grid-keyline-dark);
}

.grid-vertical-keyline-1{ left: 12px; }
.grid-vertical-keyline-2{ left: 24px; }
.grid-vertical-keyline-3{ left: calc(50% - 20px); }
.grid-vertical-keyline-4{ left: 50% }
.grid-vertical-keyline-5{ left: calc(50% + 20px); }
.grid-vertical-keyline-6{ left: calc(100% - 25px); }
.grid-vertical-keyline-7{ left: calc(100% - 13px); }


.image-outer-container{
    position: relative;
    width: 100%;
    height: calc(100vh - 12px);
    padding: 12px 0px 0px 0px;
    background: var(--primary-light);
}

.resizing .image-outer-container{
    background: none;
}

.image-inner-container{
    position: relative;
    width: 100%;
    height: 100%;
    padding: 0px 12px;
    
}

.resizing .image-inner-container{
    box-shadow: var(--grid-shadow-light);
}

.image-container{
    position: relative;
    width: 100%;
    height: 100%;
    background: var(--image-background);
    border-radius: 0px;
}

.resizing .image-container{
    background: var(--grid-area-background-light);
    border: 1px solid var(--grid-area-stroke-light);
    border-radius: 0px;
}


.image-container img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    object-fit: contain;
    opacity: 0;
    transition: opacity 0.6s ease-in-out;
}

.image-container img.preloaded{
    opacity: 1;
    transition: none;
}

.image-container img.show{
    opacity: 1;
}

.resizing .image-container img{
    display: none;
}


/* Screensaver */


.screensaver-container{
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: var(--dark-background);
    display: none;
    z-index: 100;
}

.screensaver-container.show{
    display: block;
}

.screensaver-inner-container{
  animation: MoveUpDown 16.5s linear infinite;
  width: 100%;
  height: 58px;
}

.resizing .screensaver-inner-container{
    box-shadow: 0px -1px 0px var(--grid-keyline-dark) inset, 0px 1px 0px var(--grid-keyline-dark) inset;
}

.screensaver{
    animation: MoveLeftRight 20s linear infinite;
    color: var(--primary-light);
    width:192px;
    height: 54px;
    display: block;
    padding: 8px;
}

.resizing .screensaver{
    background: var(--grid-area-background-dark);
    border: 1px solid var(--grid-area-stroke-dark);
    color: var(--accent);
}

@keyframes MoveUpDown {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(calc(100vh - 54px)); }
}

@keyframes MoveLeftRight {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(calc(100vW - 188px)); }
}



@media only screen and (max-width: 1279px) {


    .title-outer-container,
    .intro-column-1,
    .outro-column-1,
    .about-column-1,
    .contact-column-1,
    .index-menu-column-1{
        width: 34%;
    }

    .intro-column-2,
    .outro-column-2,
    .about-column-2,
    .contact-column-2,
    .index-menu-column-2{
        width: 66%;
    }

    nav{
        left: 34%;
        width: 66%;
        max-width: none;
    }

    .keyline,
    .keyline-index{
        left: 34%;
    }

    .grid-vertical-keyline-3{ left: calc(34% - 20px); }
    .grid-vertical-keyline-4{ left: 34% }
    .grid-vertical-keyline-5{ left: calc(34% + 20px); }
}

@media only screen and (max-width: 1023px) {


    .nav-bar{
        background: var(--background);
        position: sticky;
        top: 0px;
    }

    .menu-open .nav-bar {
        background: var(--dark-background);
        border-bottom: 1px solid var(--keyline-dark);
    }

    .index-menu-container{
        top: 104px;
    }


    .title-outer-container,
    .title-outer-container.sticky{
        position: absolute;
    }

    nav{
        justify-content: right;
    }


    .sticky-shadow{
        display: block;
    }

    .intro-fade,
    .outro-fade{
        display: none;
    }



    .content-container{
        padding-top: calc(33vh - 80px);
        min-height: calc(100vh - 80px);
    }

    .intro-column-1,
    .outro-column-1,
    .about-column-1,
    .contact-column-1,
    .index-menu-column-1{
        display: none;
    }

    .intro-column-2,
    .outro-column-2,
    .about-column-2,
    .contact-column-2,
    .index-menu-column-2{
        width: 100%;
    }

    .intro {
        height: auto;
        padding-top: 24px;
        padding-bottom: 12px;
    }

    .outro {
        padding-top: 64px;
    }

    .about {
        padding-top: 24px;
    }

    .intro-inner-container,
    .outro-inner-container,
    .about-inner-container,
    .contact-inner-container,
    .index-menu-inner-container,
    .title-outer-container,
    nav{
        padding: 0px 24px;
    }

    .keyline,
    .keyline-index{
        display: none;
    }

    .grid-vertical-keyline-3{ display: none; }
    .grid-vertical-keyline-4{ display: none; }
    .grid-vertical-keyline-5{ display: none; }

    .image-outer-container{
        aspect-ratio: 16 / 10;
        height: auto;
        width: 100%;
    }

}

@media only screen and (max-width: 767px) {


    .fab,
    .fab-next-container,
    .fab-next-container.show{
        display: none;
    }

}


@media only screen and (max-width: 559px) {


    .mobile-only{
        display: show;
    }

    .intro-inner-container,
    .outro-inner-container,
    .about-inner-container,
    .contact-inner-container,
    .index-menu-inner-container,
    .title-outer-container,
    nav{
        padding: 0px 12px;
    }
    

    .nav-bar{
        height: 72px;
    }

    .nav-bar .grid-vertical-keyline{
        height: 72px;
    }

    .sticky-shadow{
        top: 72px;
    }

    .outro{
        height: calc(100vh - 72px);
        padding-top: 24px;
    }

    .title-outer-container,
    nav{
        top: 20px;
    }

    .intro-text,
    .outro-text,
    .about-text{
        padding: 4px 7px;
    }
    .intro-home{
        padding-bottom: 20px;
    }

    .intro-text p,
    .outro-text p,
    .about-text p{
        font-size: 24px;
        line-height: 36px;
    }

    .intro-text.home p{
        font-size: 24px;
        line-height: 36px;
    }

    .contact{
        position: relative;
        bottom: unset;
    }

    .contact-hover-text p,
    .contact-button{
        font-size: 24px;
        line-height: 36px;
    }

    .content-container{
        min-height: unset;
    }

    .index-menu-button{
        font-size: 40px;
        line-height: 40px;
    }

    .index-menu-item{
        padding: 0px 6px;
    }

    .no-mobile{
        display: none;
    }

    .image-outer-container{
        /*aspect-ratio: unset;*/
    }

    .image-container img.preloaded{
        opacity: 0;
        transition: opacity 0.4s ease-in-out;
    }

    .image-container img.preloaded.show{
        opacity: 1;
    }

    .mobile-ar-1-1{
        aspect-ratio: 1 / 1;
    }

    .index-menu-container{
        top: 50%;
        transform: translateY(-50%);
    }

    .menu-open .nav-bar {
        border-bottom: none;
    }

}

@media only screen and (max-width: 439px) {

    .intro-home .intro-text{
        max-width: 348px;
    }

}

@media only screen and (max-height: 679px) {

    
    .index-menu-button{
        font-size: 40px;
        line-height: 40px;
    }

    .index-menu-item{
        padding: 0px 6px;
    }

}

@media only screen and (min-width: 1921px) {


    .grid-vertical,
    .title-outer-container,
    .content-container,
    .index-container{
        width: 100%;
        max-width: 1920px;
        left: 50%;
        transform: translateX(-50%);
    }

    .wide-outer-container{
        display: block;
    }

}
