html, body {
    margin: 0;
    height: 100%;
    overflow: hidden;
}

body {
    /*margin: 0;*/
    font-family: "Montserrat", sans-serif;
}

.wrapper {
    height: 100vh;
    height: calc(var(--vh, 1vh) * 100);
    overflow-y: auto;
    scroll-snap-type: y mandatory;
}

.scroll-snap-section {
    scroll-snap-align: start;
    height: 100vh;
    height: calc(var(--vh, 1vh) * 100);
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.bg-dark {
    background-color: black;
}

.bg-light {
    background-color: white;
}

#section0 {
    width: 100%;
}

.dis {
    animation: disappear 1.5s ease-in 4.5s;
}

@keyframes disappear {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

.app {
    animation: appear 1.5s ease-out;
}

@keyframes appear {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.cls-1, .cls-2 {
    fill: none;
    stroke: white;
    stroke-miterlimit: 4;
}

.cls-1, #w, #j, #endJ {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: dash forwards;
}

#j1, #j2, #j3, #w1, #w2, #w3, #w4 {
    opacity: 0;
    animation: turn-on 0s linear forwards;
}

.cls-1 {
    stroke-width: 2px;
    animation-duration: 1s;
    animation-timing-function: ease-in-out;
    animation-delay: 3s;
}

.cls-2 {
    stroke-width: 9px;
}

.cls-3 {
    fill: white;
}

#w {
    animation-duration: 2s;
    animation-timing-function: ease-in-out;
    animation-delay: 1.5s;
}

#j {
    animation-duration: 2.5s;
    animation-timing-function: ease-in;
}

#endJ {
    animation-duration: 0.4s;
    animation-timing-function: ease-out;
    animation-delay: 2.38s;
}

#j2 {
    animation-delay: 0.77s;
}

#j3 {
    animation-delay: 2.78s;
}

#w1 {
    animation-delay: 1.5s ;
}

#w2 {
    animation-delay: 2.35s;
}

#w3 {
    animation-delay: 2.7s;
}

#w4 {
    animation-delay: 3.4s;
}

@keyframes dash {
    0% {
        stroke-dashoffset: 1;
    }
    100% {
        stroke-dashoffset: 0;
    }
}

@keyframes turn-on {
    100% {
        opacity: 1;
    }
}

/*#section2 {
    background-image: url("../images/Section\ 2.png");
}

/*#section2, #section3 {
    background-image: url("../images/Light\ Background.png");
}*/

.pos-fix {
    position: fixed;
    top: 0;
    width: 100%;
}

.pos-rel {
    position: relative;
}

.pos-abs {
    position: absolute;
}

.mt-0 {
    margin-top: 0;
}

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

.grid-container {
    display: grid;
    grid-template-columns: 1fr 5% 1fr;
    grid-gap: 0.65vw;
    grid-gap: calc(var(--vw, 1vw) * 0.65);
    height: 6vw;
    height: calc(var(--vw, 1vw) * 6);
    font-size: 1.2vw;
    font-size: calc(var(--vw, 1vw) * 1.2);
}

.vertical-center {
    top: 50%;
    transform: translate(0, -50%);
}

.horiz-center {
    left: 50%;
    margin-right: -50%;
    transform: translate(-50%);
}

.vertical-horiz-center {
    top: 50%;
    left: 50%;
    margin-right: -50%;
    transform: translate(-50%, -50%);
}

.w-100-per {
    width: 100%;
}

.txt-wht {
    color: white;
}

.txt-blk {
    color: black;
}

.txt-center {
    text-align: center;
}

.z-1 {
    z-index: 1;
}

.z-2 {
    z-index: 2;
}

.nav-link:link, .nav-link:visited {
    font-weight: 300;
    color: inherit;
    text-decoration: none;
}

.nav-link:hover {
    color: #fd5f00;
    text-decoration: none;
}

.left-nav {
    text-align: right;
    letter-spacing: 0.1vw;
    letter-spacing: calc(var(--vw, 1vw) * 0.1);
}

.nav-logo-wht1 {
    width: calc(var(--vw, 1vw) * 5);
    height: calc(var(--vw, 1vw) * (5 * 0.97));
}

.nav-logo-wht-sm {
    width: calc(var(--vw, 1vw) * 27.210846);
    height: calc(var(--vw, 1vw) * 25.59792);
}

.nav-logo-group {
    transform: scale(var(--logo-Scale), var(--logo-Scale));
}

.nav-logo-group-sm {
    transform: scale(var(--logo-Scale-Sm), var(--logo-Scale-Sm));
}

.right-nav {
    text-align: left;
    letter-spacing: 0.1vw;
    letter-spacing: calc(var(--vw, 1vw) * 0.1);
}

#mobile-nav {
    top: calc(var(--vh, 1vh) * 3.2);
}

#nav-home {
    right: 22.7vw;
    right: calc(var(--vw, 1vw) * 22.7);
}

#nav-portfolio {
    right: 6.1vw;
    right: calc(var(--vw, 1vw) * 6.1);
}

#nav-resume {
    left: 6.1vw;
    left: calc(var(--vw, 1vw) * 6.1);
}

#nav-contact {
    left: 20.3vw;
    left: calc(var(--vw, 1vw) * 20.3);
}

#name-intro-div {
    top: 18vh;
    top: calc(var(--vh, 1vh) * 18);
    height: 5vh;
    height: calc(var(--vh, 1vh) * 5);
}

#name-intro {
    font-weight: 300;
    font-size: 3.5vw;
    font-size: calc(var(--vw, 1vw) * 3.5);
    letter-spacing: 1.4vw;
    letter-spacing: calc(var(--vw, 1vw) * 1.4);
    padding-left: 1.4vw;
    padding-left: calc(var(--vw, 1vw) * 1.4);
    width: 38%;
}

#name-div {
    top: 20.5vh;
    top: calc(var(--vh, 1vh) * 20.5);
    width: 82%;
    height: 42vw;
    height: calc(var(--vw, 1vw) * 42);
    border: 3px solid #fd5f00;
}

#name {
    font-weight: 700;
    font-size: 15vw;
    font-size: calc(var(--vw, 1vw) * 15);
    line-height: 17vw;
    line-height: calc(var(--vw, 1vw) * 17);
    padding: 2vw 0;
    padding: calc(var(--vw, 1vw) * 2) 0;
}

#tagline-div {
    top: 69vh;
    top: calc(var(--vh, 1vh) * 69);
}

#tagline-line {
    height: 1px;
    border: 0;
    border-top: solid 3px #fd5f00;
    width: 82%;
}

#tagline {
    font-weight: 500;
    font-size: 7vw;
    font-size: calc(var(--vw, 1vw) * 7);
    width: 70%;
    letter-spacing: 0.1vw;
    letter-spacing: calc(var(--vw, 1vw) * 0.1);
}

#scroll-down-div {
    top: 87vh;
    top: calc(var(--vh, 1vh) * 87);
}

#scroll-down {
    font-weight: 300;
    font-size: 3vw;
    font-size: calc(var(--vw, 1vw) * 3);
    letter-spacing: 0.1vw;
    letter-spacing: calc(var(--vw, 1vw) * 0.1);
}

#scroll-arrow {
    margin-left: auto;
    margin-right: auto;
    display: block;
    width: 13%;
    animation: bounce 0.5s;
    animation-direction: alternate;
    animation-iteration-count: 6;
    animation-delay: 2s;
    animation-timing-function: ease-in;
}

#nav-rectangle {
    width: calc(var(--vw, 1vw) * 74);
    height: calc(var(--vh, 1vh) * 10.5);
    /*border: 1px solid black;*/
    border: none;
    box-shadow: 0 0 calc(var(--vh, 1vh) * 1) calc(var(--vh, 1vh) * -0.25) rgba(0, 0, 0, 0.25);
    background-color: white;
}

.home-content-div {
    box-sizing: border-box;
    height: calc(var(--vh, 1vh) * 89.5);
    top: 10.5vh;
}

.hov-button {
    /*padding-left: 1vw;
    padding-right: 1vw;*/
    padding: 0 1vw;
    background-color: white;
    /*width: 20.8333vw;*/
    transition: background-color 0.25s, width 0.25s;
}

.hov-button:hover {
    /*width: 21.5vw;*/
    background-color: black;
}

.far {
    padding-top: 0vh;
    font-size: 2vw;
    padding-left: 1vw;
    transition: font-size 0.25s, padding-top 0.25s; /*padding-left 0.25s,*/
}

.hov-button > p {
    color: black;
    transition: color 0.25s;
}

.hov-button:hover > p {
    color: white;
}

.hov-button:hover > .far {
    padding-top: 0.3vh;
    /*padding-left: 0.75vw;*/
    font-size: 2.5vw;
}

/*@keyframes in {
    0% {transform: scale(1);}
    100% {transform: scale(1.5);}
    /*0% {font-size: 2vw;}
    100% {font-size: 3vw;}
}

@keyframes out {
    0% {transform: scale(1.5);}
    100% {transform: scale(1);}
    /*0% {font-size: 3vw;}
    100% {font-size: 2vw;}
}*/

@keyframes bounce {
    0% { transform: translateY(0); }
    100% { transform: translateY(1.4vw); }
}

@media (min-aspect-ratio: 1/1) {
    #name-intro-div {
        top: 28vh;
        top: calc(var(--vh, 1vh) * 28);
        height: 5vh;
        height: calc(var(--vh, 1vh) * 5);
    }

    #name-intro {
        font-size: 2vw;
        font-size: calc(var(--vw, 1vw) * 2);
        width: 27%;
    }

    #name-div {
        top: 30.5vh;
        top: calc(var(--vh, 1vh) * 30.5);
        height: 12.25vw;
        height: calc(var(--vw, 1vw) * 12.25);
    }

    #name {
        font-size: 8vw;
        font-size: calc(var(--vw, 1vw) * 8);
    }

    #tagline {
        font-size: 3vw;
        font-size: calc(var(--vw, 1vw) * 3);
        width: 60%;
    }

    .d-vert {
        display: none;
    }

    #scroll-down {
        font-size: 1.7vw;
        font-size: calc(var(--vw, 1vw) * 1.7);
    }
}

@media screen and (max-width: 896px) {
    .d-lg {
        display: none;
    }
}

@media screen and (min-width: 896px) {
    .d-sm {
        display: none;
    }
}

@media screen and (max-width: 991px) {
    .scroll-snap-section {
        background-attachment: scroll;
    }
}

.d-none {
    display: none;
}

.fade-in {
    animation: anim1 0.5s ease-out forwards;
    -webkit-animation: anim1 0.5s ease-out forwards;
}

.fade-out {
    animation: anim2 0.1s ease-out forwards;
    -webkit-animation: anim2 0.1s ease-out forwards;
}

@-webkit-keyframes anim1 {
    from {
        opacity: 0.0;
    }

    to {
        opacity: 1.0;
    }
}

@-webkit-keyframes anim2 {
    from {
        opacity: 1.0;
    }

    to {
        opacity: 0.0;
    }
}

@keyframes anim1 {
    0% {
        opacity: 0;
        -moz-opacity: 0;
        -webkit-opacity: 0;
    }

    100% {
        opacity: 1;
        -moz-opacity: 1;
        -webkit-opacity: 1;
    }
}

@keyframes anim2 {
    0% {
        opacity: 1;
        -moz-opacity: 1;
        -webkit-opacity: 1;
    }

    100% {
        opacity: 0;
        -moz-opacity: 0;
        -webkit-opacity: 0;
    }
  }