
@keyframes slideInFromTop {
  0% {
    transform: translateY(2rem);
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    opacity: 1;
  }
}

@keyframes slideOutFromTop {
  0% {
    transform: translateY(0);
    opacity: 1;
  }
  100% {
    transform: translateY(2rem);
    opacity: 0;
  }
}


html {
    scroll-behavior: smooth;
}

body{
    display: flex;
    overflow-x: hidden;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    background: linear-gradient(135deg, #0a0a0f 0%, #111b29 50%, #121c33 100%);
    font-family: "Roboto Mono", monospace;
    height: auto;
    margin: 0 auto;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* NAVBAR */

.Navbar {
    position: fixed;
    background-color: rgba(24, 24, 36,0.9);
    backdrop-filter: blur(10px);
    z-index: 1000;
    top: 0;
    text-align: right;
    padding: 1rem;
    width: 100%;
}

.Navbar ul a {
    position: relative;
    color: #fdfdfd;
    right: 20px;
    list-style-type: none;
    display: inline;
    margin: 10px;
    background-color: #252533;
    padding: 8px 8px;
    border-radius: 2rem;
    transition: all 250ms ease-in;
    text-decoration:none;
}

.Navbar ul a:hover {
    background-color: #68c6e2;
    padding: 15px 15px;
    cursor: pointer;
}

.navbar-name {
    position: fixed;
    left: 12rem;
    top: 1.2rem;
    color: aqua;
    font-size: 2rem;
    z-index: 1001;
}

/* Hero */

.primary-bold-text{
    color: #68c6e2;
    text-shadow: 0px 0px 10px #68c6e2;
}

.description-text{
    color: #fdfdfd;

}

.profile-image{
    border-radius: 50%;
    border-color: #68c6e2;
    
    object-fit: fill;
    width: 12rem;
    background-color: #ffffff00;
    margin: 3rem;
    animation: 1s slideInFromTop;
}

.sidebuttons {
    animation: 1s slideInFromTop;
}

.sidebuttons a {
    display: inline-block;
    color: #fdfdfd;
    margin: 3rem;
    font-size: 2rem;
    border-radius: 0.5rem;
    background: linear-gradient(135deg, #02515c 0%, #5185ce 50%, #68c6e2 100%);
    padding: 5px 10px;
    box-shadow: 0px 0px 10px #68c6e2;
    transition: transform 250ms ease;
    text-decoration:none;
}

.sidebuttons a:hover {
    cursor: pointer;
    box-shadow: 0px 0px 20px #68c6e2;
    transform: translateY(-.5rem);
}

.hero {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 12vw;
}

.sort-hero-text {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

#side-hero {
    position: relative;
    font-size: 2rem;
    animation: 1s slideInFromTop;
 
}

#title-hero {
    position: relative;
    font-size: 8rem;
    animation: 1s slideInFromTop;
    margin: 1rem;
    
}

#desc-hero {
    position: relative;
    font-size: 2rem;
    animation: 1s slideInFromTop;
    margin: 4rem;
}

/* GENERAL USE  */


.divanimate{
    
    margin: 0;
    transition: all 1s ease-in-out 500ms;
}

.divanimate.in-view{
    opacity: 1;
    animation: 2s slideInFromTop;
}

.divanimate.hidden{
    animation: 2s slideOutFromTop;
}

.column {
    display: grid;

    grid-template-columns: auto auto auto;
    justify-content: center;
    
}

.tag {
    display: flex;
    border-radius: 4rem;
    background-color: rgba(104, 198, 226,0.3);
    width: 7rem;
    height: 1rem;
    border: 1px solid #68c6e2;
    padding: 0.3rem;
    align-items: center;
    justify-content: center;
    margin: 0.3rem;

}

.tag h3 {
    color: #68c6e2;
    font-size: 0.8rem;
}

/* PROJECTS */

.header-title {
    position: relative;
    font-size: 2rem;
    color: hsl(194, 68%, 65%);

}

.paragraph {
    font-size: 1rem;
    color: hsl(196, 8%, 35%);

}

.projects {
    position: relative;


    width: 100vw;
    padding: 1rem;
    background-color: #0a0a0f;

}

.columndiv{
    display: grid;

    grid-template-columns: auto auto auto;
    justify-content: center;
    padding: 5rem;

}

.squarediv{
    display: flex;
    flex-direction: column;
    background-color: #111b29;
    border-radius: 4%;
    width: 18vw;
    height: 25vw;
    margin: 2rem;
    align-items: center;
    padding: 0rem;
    transition: all 250ms;
    text-decoration: none;
}

.squarediv:hover{
     cursor: pointer;
    box-shadow: 0px 0px 20px #68c6e2;
    transform: translateY(-.5rem);
}

.squarediv img{
    border-radius: 4%;
    object-fit: fill;
    max-width: 100%;
    max-height: 30%;
    background-color: #02515c;
    filter: blur(2px);
}

.squarediv h2{
    display: flex;
    color: hsl(194, 68%, 65%);
    padding: 0rem 0rem 1rem;
    
}

.squarediv p{
    color: hsl(0, 0%, 100%);
    padding: 0.5rem;
    font-size: 100%;
}

/* Skills */

.skills {
    position: relative;


    width: 100vw;
    padding: 1rem;
    background-color: #0a0a0f;

}

.skillcolumn{
    display: grid;

    grid-template-columns: auto auto auto;
    justify-content: center;
    padding: 5rem;

}

.skillcolumn img {
    width: 5rem;
    height: 5rem;

    margin: 1rem;

    transition: all 400ms;
}

.skillcolumn img:hover {
    width: 7rem;
    height: 7rem;

}

/* CONTACT */

.skills {
    display: flex;
    align-items: center;
    justify-content: center;
}

.contactcolumn{
    display: grid;

    grid-template-columns: auto auto auto;
    justify-content: center;
}

.invisframe {
    display: flex;

    background-color: rgba(104, 198, 226,0.1);
    border-radius: 0.3rem;
    border: rgba(104, 198, 226,0.1) solid 0.1px;
    width: 30vw;
    height: 5vw;
    padding: 1vw;
    margin: 5vw;

    align-items: center;
    justify-content: center;
}

.buttoncontact {
    display: flex;
    justify-content: center;
    align-items: center;

    background-color: rgba(104, 198, 226,0.1);
    border-radius: 1rem;
    border: rgba(104, 198, 226,0.1) solid 0.1px;

    width: 10rem;
    height: 3rem;
    padding: 0.1rem;
    margin: 0.5rem;
    text-decoration: none;
}

.buttoncontact:hover{
    background-color: rgba(104, 198, 226,0.4);
    cursor: pointer;
}

.scaleimg {
    width: 2rem;
    height: 2rem;
    margin: 0.3rem;
}

.buttoncontact h1 {
    color: white;

}