/* #region setup */
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block;}audio,canvas,video{display:inline-block;}audio:not([controls]){display:none;height:0;}[hidden]{display:none;}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}a:focus{outline:thin dotted;}a:active,a:hover{outline:0;}h1{font-size:2em;}abbr[title]{border-bottom:1px dotted;}b,strong{font-weight:700;}dfn{font-style:italic;}mark{background:#ff0;color:#000;}code,kbd,pre,samp{font-family:monospace, serif;font-size:1em;}pre{white-space:pre-wrap;word-wrap:break-word;}q{quotes:\201C \201D \2018 \2019;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sup{top:-.5em;}sub{bottom:-.25em;}img{border:0;}svg:not(:root){overflow:hidden;}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em;}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;}button,input{line-height:normal;}button,html input[type=button],/* 1 */input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;}button[disabled],input[disabled]{cursor:default;}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none;}textarea{overflow:auto;vertical-align:top;}table{border-collapse:collapse;border-spacing:0;}body,figure{margin:0;}legend,button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
.clearfix:after {visibility: hidden; display: block; font-size: 0; content: ''; clear: both; height: 0; }
* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }

body {
    font-family: "Josefin sans", sans-serif;
    font-variant: small-caps;
}
img {
    border: 1px solid #555;
    box-shadow: 0 0 5px #000, 4px 4px 10px #000;
}
/* #endregion */

/* #region headerText */
#splash-container {
    background-color: black;
    height: 100vh;
    width: 100vw;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
}

main {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
    width: 100vw;
    overflow: hidden;
    position: relative;
    z-index: 100;
}

.headerWrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-image: radial-gradient(ellipse closest-side, rgba(255,255,255,0.075), transparent);
}
.buttonsWrapper {
    margin-top: 25px;
}
.buttonsWrapper, .headerWrapper {
    position: relative;
    top: 0;
    transition: all 0.3s ease-out;
}
.headerWrapper.hidden, .buttonsWrapper.hidden {
    opacity: 0;
    /* top: -100vw; */
}
.headerText, .headerSub {
    margin: 0;
    cursor: default;
    text-align: center;
    text-shadow: 0 0 5px #000, 4px 4px 10px #000;
    color: #DDD;
    position: relative;
}

.headerText {
    font-size: calc(2rem + 10vw);
    /* opacity: 0.1; */
    font-weight: 700;
    display: block;
    animation: 2.5s ease-out forwards titleTextFadeIn;
}
.headerTextDelay {
    animation-delay: 1s;
    opacity: 0;
}
@keyframes titleTextFadeIn
{
    0% {
        letter-spacing: 50px;
        opacity: 0;
        top: -25px;
    }
    10% {
        opacity: 0;
    }
    50% {
        opacity: 0.3;
    }
    100% {
        letter-spacing: 2px;
        opacity: 1;
        top: 0;
    }
}
.headerSub {
    font-size: calc(1.5rem + 1vw);
    margin-top: 15px;
    animation: 3s ease-out 2s forwards titleSubFadeIn;
    opacity: 0;
}
@keyframes titleSubFadeIn
{
    0% {
        letter-spacing: 25px;
        opacity: 0;
    }
    10% {
        opacity: 0;
    }
    50% {
        opacity: 0.3;
    }
    100% {
        letter-spacing: 2px;
        opacity: 1;
    }
}

/* #endregion */

/* #region squares */
.square {
    height: 25px;
    width: 25px;
    position: relative;
    display: inline-block;
    border: 1.5px solid black;
    transition: background-color 1s ease-out;
}

.squaresRow {
    display: flex;
}
/* #endregion */

/* #region home screen buttons */

.splashScreenButton {
    outline: none;
    background: none;
    border: none;
    border-radius: 1px;
    color: #DDD;
    text-transform: uppercase;
    font-size: 1.2rem;
    letter-spacing: 1px;
    padding: 6px;
    opacity: 0;
    padding-top: 10px;
    position: relative;
    margin-right: 25px;
    top: 0;
    transition: all 0.5s ease-out;
    text-shadow: 2px 2px 6px #000;
    width: 120px;
    text-align: center;
    animation: 1s ease-out 3.5s forwards splashButtonFadeDown;
}
.splashScreenButton:last-child {
    animation-delay: 4s;
    margin-right: 0;
}
.splashScreenButton::after {
    content: '';
    display: inline-block;
    height: 50px;
    width: 120px;
    position: absolute;
    top: 10px;
    left: calc(50% - 60px);
    z-index: -1;
    background-image: url('./images/chevronDown.svg');
    background-size: contain;
    background-repeat: no-repeat;
    opacity: 0.1;
    transition: all 0.5s ease-out;
}
.splashScreenButton:hover::after, .splashScreenButton:focus::after {
    opacity: 0.6;
    top: 25px;
}
.splashScreenButton:active::after {
    opacity: 0.8;
    transition: all 0.1s ease-out;
}
.splashScreenButton:focus, .splashScreenButton:hover {
    color: #12B4E9;
    top: -5px;
}
.splashScreenButton:active {
    color: orange;
    transition: all 0.1s ease-out;
}
@keyframes splashButtonFadeDown
{
    0% {
        opacity: 0;
    }
    50% {
        opacity: 0.3;
    }
    100% {
        opacity: 1;
    }
}

/* #endregion */

/* #region dialogs */
/* #region dialog titles */
.dialog .contentWrapper
{
    padding: 25px;
    position: relative;
    margin: 3vh 3vw;
    min-height: 100vh;
    max-width: 900px;
    width: 100vw;
    margin: 0 auto;
}

.dialog h2 {
    /* color: #DDD; */
    margin: 0;
    margin-top: 5vh;
    font-size: calc(1.8rem + 5vw);
    display: inline-block;
}
.dialog p {
    font-size: 1rem;
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    font-variant: normal;
    letter-spacing: 1px;
    line-height: 1.8rem;
    margin: 0;
}
.aboutImage {
    height: auto;
    float: right;
    width: 50%;
    margin: 15px 15px 5px 10px;
    max-width: 300px;
}
.aboutDialog p {
    margin-bottom: 25px;
}
/* #endregion */

.dialog {
    color: #DDD;
    opacity: 0;
    transition: opacity 0.3s 0.2s ease-out;
    top: 100vh;
    position: absolute;
    height: 100vh;
    width: 100vw;
    overflow-y: scroll;
    overflow-x: hidden;
}
.dialog.open {
    display: block;
    opacity: 1;
    top: 0;
}

/* ----- SCROLL BAR STYLING -----*/
.dialog::-webkit-scrollbar
{
    position: absolute;
    right: 0;
    /* top: 0; */
    width: 10px;
}

.dialog::-webkit-scrollbar-track
{
  background-color: rgba(0, 0, 0, 0);
  -webkit-border-radius: 10px;
  border-radius: 10px;
}

.dialog::-webkit-scrollbar-thumb
{
  -webkit-border-radius: 10px;
  border-radius: 10px;
  background-color: rgba(255, 255, 255, 0.1);
}
/* .dialog.scrolling::-webkit-scrollbar-thumb
{
  background-color: rgba(255, 255, 255, 0.8);
  transition: all 0.75s linear;
} */

.backButton {
    color: #DDD;
    position: absolute;
    right: 0;
    bottom: 0;
    margin: 0 25px 25px 0;
    /* margin-right: calc(900px + (50vw - 900px)); */
    border: none;
    background: none;
    text-transform: uppercase;
    outline: none;
    transition: all 0.4s ease-out;
    text-shadow: 2px 0 2px black, 0 2px 2px black, -2px 0 2px black, 0 -2px 2px black;
    font-size: 1.2rem;
    padding: 10px 10px 0 0;
}
.backButton::after {
    content: '';
    display: inline-block;
    height: 25px;
    width: 27px;
    position: absolute;
    background-image: url('./images/chevronRight.svg');
    background-size: contain;
    background-repeat: no-repeat;
    opacity: 1;
    transition: all 0.4s ease-out;
    bottom: 4px;
    right: -5px;
    opacity: 0.1;
}
.backButton:hover, .backButton:focus {
    color: #12B4E9;
    right: 5px;
}
.backButton:hover::after, .backButton:focus::after {
    opacity: 0.6;
    right: -15px;
}
.backButton:active::after {
    opacity: 0.8;
    transition: all 0.1s ease-out;
}
.backButton:active {
    color: orange;
    transition: all 0.1s ease-out;
}
/* #endregion */

/* #region projects */
.projectItem {
    text-shadow: 0 0 5px #000, 2px 2px 5px #000;
    margin-top: 50px;
}
.projectItem:last-of-type
{
    margin-bottom: 40px;
}
.projectItem img {
    width: 30vw;
    min-width: 200px;
    max-width: 400px;
    float: left;
    margin: 0 15px 5px 0;
}
.projectItem h3 {
    font-size: 1.8rem;
    margin: 0;
}
.projectItemButtons {
    margin-top: 25px;
    display: flex;
    justify-content: center;
}

a:focus {
    outline: none;
}

.arrowLink {
    color: #DDD;
    position: relative;
    margin: 0 40px 15px 0;
    left: 0;
    border: none;
    background: none;
    outline: none;
    transition: all 0.4s ease-out;
    font-size: 1.2rem;
    padding: 10px 10px 0 0;
    text-decoration: none;
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    font-variant: normal;
    /* margin-right: 40px; */
}
.aboutDialog .arrowLink {
    margin-right: 25px;
}
.arrowLink:last-child {
    margin-right: 0;
}
.arrowLink::after {
    content: '';
    display: inline-block;
    height: 25px;
    width: 27px;
    position: absolute;
    background-image: url('./images/chevronRight.svg');
    background-size: contain;
    background-repeat: no-repeat;
    opacity: 1;
    transition: all 0.4s ease-out;
    bottom: 4px;
    right: -5px;
    opacity: 0.1;
}
.arrowLink:hover, .arrowLink:focus {
    color: #12B4E9;
    left: -5px;
}
.arrowLink:hover::after, .arrowLink:focus::after {
    opacity: 0.6;
    right: -15px;
}
.arrowLink:active::after {
    opacity: 0.8;
    transition: all 0.1s ease-out;
}
.arrowLink:active {
    color: orange;
    transition: all 0.1s ease-out;
}

.aboutLinkGroup {
    margin: 40px 0;
}

.inlineLink {
    color: #12B4E9;
    transition: all 0.4s ease-out;
}
.inlineLink:visited {
    color: #12B4E9;
}
.inlineLink:hover, .inlineLink:focus {
    color: orange;
}
.inlineLink:active {
    color: white;
}
/* #endregion */