/* import */
import *,*::before,*::after {
  margin: 0;
  padding: 0;
  box-sizing: inherit
  }


/* Style sheet for Portfolio Page */
* {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
  }
  /* Background for the entire page */
/* Make the canvas cover the entire viewport */
/* Gradient background */
body, html {
    margin: 0;
    height: 100%;
    overflow: scroll;
    background: linear-gradient(135deg, #0a0a1a, #1a1a3a);
    color: #fafafa;
  }

  body {
    min-height: 100vh;
    font-family: montserrat, sans-serif;
    background-color: #1a1a1a;
    
}

  html {
    box-sizing: border-box;
    font-size: 62.5%;
    scroll-behavior: smooth
}

@media (max-width: 1500px) {
    html {
        font-size:57.25%
    }
}

@media (max-width: 1200px) {
    html {
        font-size:50%
    }
}

@media (max-width: 770px) {
    html {
        font-size:43.75%
    }
}

@media (max-width: 615px) {
    html {
        font-size:40%
    }
}

@media (max-width: 350px) {
    html {
        font-size:35%
    }
}
  
  *, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: inherit;
}

  #bgCanvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: block;
    z-index: -1;
    background: transparent;
    pointer-events: none;
  }
  
  .canvas {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    user-select: none;
  }
  
  .heading {
    position: relative;
    align-self: center;
    justify-self: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: normal;
    width: fit-content;
    height: auto;
    margin-left: auto;
    margin-right: auto;
    color: #fafafa;
    font-weight: 300;
    z-index: 999;
  }

  .home {
    position: relative;
    display: flex;
    height: 100vh;     /* full viewport height */
    width: 100%;
    z-index: 999;
    margin: 0;
    padding: 0;
    overflow: hidden;
}



  h1 {
    font-size: 3vw;
    letter-spacing: 0.05em;
    color: #ffffff;
    margin-bottom: 1rem; /* space between name and subtitle */
  }

  h6 {
    font-size: 3vw;
    letter-spacing: 0.05em;
    color: #c50a0a;
    margin-bottom: 3rem; /* space before button */
  }
  
  /* button going to about page */
  .aboutButton {
    border-radius: 6px ;
    background-color: transparent;
    border: 2px solid red;
    color: red;
    text-align: center;
    font-size: 28px;
    padding: 20px;
    width: 200px;
    transition: all 0.5s;
    cursor: pointer;
    margin: 5px;
    position: center;
    align-items: center;
  }
  
  .aboutButton span {
    cursor: pointer;
    display: inline-block;
    position: relative;
    transition: 0.5s;
  }
  
  .aboutButton span:after {
    content: '\00bb';
    position: absolute;
    opacity: 0;
    top: 0;
    right: -20px;
    transition: 0.5s;
  }
  
  .aboutButton:hover span {
    padding-right: 25px;
  }
  
  .aboutButton:hover span:after {
    opacity: 1;
    right: 0;
  }

  /* Navigation Bar */
  .navigation-bar {
    position: sticky;
    top: 0;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: 6rem;
    border-bottom: 1px solid #1a1a1a;
    background-color: rgba(40, 40, 40, 0.95);
    backdrop-filter: blur(8px);
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
    z-index: 99999999999;
}

nav {
    display: block;
    unicode-bidi: isolate;
}

.navigation {
    display: flex;
    margin-right: 10rem;
    font-size: 2rem;
    font-weight: 500;
    letter-spacing: 1px;
}

@media (max-width: 200px) {
    .navigation-bar {
        justify-content: center;
    }
}



.navigation-item:not(:last-child) {
    margin-right: 3rem;
}

.navigation-item {
    transition: all 0.2s;
    color: white;
}

.navigation-item:hover {
    color: #ff4d5a;
}

li {
    display: list-item;
    text-align: -webkit-match-parent;
    unicode-bidi: isolate;
    list-style: none;
}

.active {
    text-decoration: none;
    
    border-color: purple;
    border-radius: 10px;
    border-block-style: solid;
    padding: 5px 5px;
}

.main-bg {
    height: 100vh;
    position: fixed;
    top: 0;
    width: 100%;
    background-color: royalblue;
}



ul {
    display: block;
    list-style-type: disc;
    margin-block-start: 1em;
    margin-block-end: 1em;
    padding-inline-start: 40px;
    unicode-bidi: isolate;
}

a {
    color: white;
    text-decoration: none;
}




/* Section styles */
section {
    display: block;
    unicode-bidi: isolate;
}

.section-heading {
  position: relative;
  font-size: 5.5rem;
  font-weight: 700;
  margin-top: 0;
  margin-bottom: 6rem; /* keep some space under the heading */
  z-index: 9999;
}

h2 {
  display: block;
  font-size: 1.5em;
  margin-block-start: 0.83em;
  margin-block-end: 0.83em;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
  font-weight: bold;
  unicode-bidi: isolate
}

@media (max-width: 1000px) {
  .section-heading {
      margin-top: 6rem
  }
}

@media (max-width: 1200px) {
  .section-heading {
      margin-bottom: 10rem
  }
}

/* about page styles */
.about {
    width: 1300px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    align-items: center
}

#about {
  margin-top: 0;     /* no space between sections */
  padding-top: 4rem; /* small breathing room inside */
}

.about-heading {
  margin-top: 0;
}

@media (max-width: 770px) {
  .about-heading:before {
      border-bottom: 14px solid #ff4d5a
  }
}

@media (max-width: 1500px) {
  .about {
      width:1100px
  }
}

@media (max-width: 1200px) {
  .about {
      width:auto
  }
}

.about-heading:before {
  position: absolute;
  content: '';
  border-bottom: 18px solid #ff4d5a;
  width: 16rem;
  display: block;
  margin: 0 auto;
  position: relative;
  left: 3.5rem;
  top: 6.3rem;
  z-index: -1;
  margin-top: 0
}

@media (max-width: 770px) {
  .about-heading:before {
      border-bottom:14px solid #ff4d5a
  }
}

.about-content {
  display: flex;
  justify-content: space-between;
  width: 100%
}

@media (max-width: 1300px) {
  .about-content {
      flex-direction:column
  }
}
/* middle image style */
.profile {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 500;
  left: -300px;
  opacity: 0;
  transition: all 1.1s
}

@media (max-width: 1301px) {
  .profile {
      margin-bottom:10rem;
      left: 0;
      opacity: 1
  }
}

@media (max-width: 1000px) {
  .profile {
      margin-bottom:7rem
  }
}

.profile-picture {
  height: 24rem;
  margin-bottom: 4rem;
  display: flex;
  justify-content: flex-start;
  align-items: center
}

.profile-picture svg {
  transition: all 1.1s
}

.profile-blurb {
  font-size: 1.8rem;
  width: 500px;
  line-height: 1.8
}

@media (max-width: 600px) {
  .profile-blurb {
      width:80vw;
      margin-left: auto;
      margin-right: auto
  }
}

.profile-fade-in {
  opacity: 1;
  transform: translateX(300px)
}

@media (max-width: 1300px) {
  .profile-fade-in {
      transform:translateX(0)
  }
}
/* skills section styles */
.skills {
  display: flex;
  justify-content: center
}

.skills-row {
  display: flex;
  flex-direction: column;
  justify-content: center
}

.skills-row:not(:last-child) {
  margin-right: 25px
}

@media (max-width: 410px) {
  .skills-row:not(:last-child) {
      margin-right:15px
  }
}

@media (max-width: 300px) {
  .skills-row:not(:last-child) {
      margin-right:10px
  }
}

.skills-item {
  opacity: 0;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-evenly;
  height: 100px;
  width: 160px;
  border: double 3px transparent;
  border-image-slice: 1;
  border-width: 3px;
  background-image: linear-gradient(#1a1a1a, #1a1a1a),radial-gradient(circle at top left, #51a2e9, #ff4d5a);
  border-radius: 10px;
  background-origin: border-box;
  background-clip: content-box, border-box;
  transition: transform 0.2s, opacity 1.2s;
  overflow: hidden
}

@media (max-width: 1500px) {
  .skills-item {
      height:90px;
      width: 145px
  }
}

@media (max-width: 1300px) {
  .skills-item {
      opacity:1;
      border-width: 2px
  }
}

@media (max-width: 1000px) {
  .skills-item {
      height:80px;
      width: 130px
  }
}

@media (max-width: 600px) {
  .skills-item {
      height:70px;
      width: 115px
  }
}

@media (max-width: 500px) {
  .skills-item {
      height:60px;
      width: 100px
  }
}

@media (max-width: 410px) {
  .skills-item {
      height:50px;
      width: 80px
  }
}

@media (max-width: 340px) {
  .skills-item {
      height:45px;
      width: 70px
  }
}

.skills-item:not(:last-child) {
  margin-bottom: 3rem
}

@media (max-width: 410px) {
  .skills-item:not(:last-child) {
      margin-bottom:15px
  }
}

.skills-item img {
  height: 60px;
  width: auto;
  transition: all 0.2s
}

@media (max-width: 1500px) {
  .skills-item img {
      height:55px
  }
}

@media (max-width: 1000px) {
  .skills-item img {
      height:50px
  }
}

@media (max-width: 600px) {
  .skills-item img {
      height:45px
  }
}

@media (max-width: 500px) {
  .skills-item img {
      height:35px
  }
}

@media (max-width: 410px) {
  .skills-item img {
      height:26px
  }
}

.skills-item-name {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  transition: all 0.2s;
  letter-spacing: 1px
}

@media (max-width: 1200px) {
  .skills-item-name {
      font-size:1.4rem
  }
}

.skills-item-fade-in {
  opacity: 1
}

.skills-item--js img {
  border-radius: 5px
}

.skills-item--webpack img {
  border-radius: 50%
}

@keyframes moveInLeft {
  0% {
      opacity: 0;
      transform: translateX(-10rem)
  }

  100% {
      opacity: 1;
      transform: translateX(0)
  }
}

@keyframes moveInRight {
  0% {
      opacity: 0;
      transform: translateX(10rem)
  }

  100% {
      opacity: 1;
      transform: translateX(0)
  }
}

@keyframes moveInBottom {
  0% {
      opacity: 0;
      transform: translateY(4rem)
  }

  100% {
      opacity: 1;
      transform: translateY(0)
  }
}

@keyframes bounce {
  0% {
      transform: translateY(0)
  }

  50% {
      transform: translateY(-1rem)
  }

  100% {
      transform: translateY(0)
  }
}

@keyframes fadeIn {
  0% {
      opacity: 0
  }

  100% {
      opacity: 1
  }
}
/* contact styles */
.contact {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  width: 500px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 10;
  margin-bottom: 10rem
}

@media (max-width: 700px) {
  .contact {
      width:400px
  }
}

@media (max-width: 470px) {
  .contact {
      width:330px
  }
}

@media (max-width: 400px) {
  .contact {
      width:260px
  }
}

.contact-heading {
  margin-top: -4rem !important;
  margin-bottom: 6rem !important
}

.contact-heading:before {
  position: absolute;
  content: '';
  border-bottom: 18px solid #ff4d5a;
  width: 21rem;
  display: block;
  margin: 0 auto;
  position: relative;
  left: 3.5rem;
  top: 6.3rem;
  z-index: -1
}

@media (max-width: 770px) {
  .contact-heading:before {
      border-bottom:14px solid #ff4d5a
  }
}

.contact-text {
  font-size: 1.8rem;
  margin-bottom: 6rem
}

.contact-form {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center
}

.contact-form-name,.contact-form-email {
  margin-bottom: 6px;
  padding: 1rem;
  height: 4rem
}

.contact-form-message {
  height: 12rem;
  padding: 1rem
}

.contact-form-submit-2 {
  align-self: flex-start;
  margin-top: 0 !important
}

.contact-form-submit {
  align-self: flex-start;
  position: relative;
  padding: 0.6rem 1rem;
  width: fit-content;
  font-size: 1.6rem;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 3px;
  z-index: 9;
  cursor: pointer
}

.contact-form-submit:hover {
  color: #1a1a1a;
  font-weight: 700
}

.contact-form-submit:after {
  position: absolute;
  content: '';
  border-bottom: 2px solid #ff4d5a;
  width: calc(100% + 2rem);
  left: -14%;
  top: 0.5rem;
  display: block;
  margin: 0 auto;
  position: relative;
  transform-origin: bottom;
  transition: all 0.2s;
  z-index: -1
}

.contact-form-submit:hover:after {
  transform: scaleY(17.5)
}

@media (max-width: 1500px) {
  .contact-form-submit:hover:after {
      transform:scaleY(16.5)
  }
}

@media (max-width: 1200px) {
  .contact-form-submit:hover:after {
      transform:scaleY(14)
  }
}

@media (max-width: 770px) {
  .contact-form-submit:hover:after {
      transform:scaleY(12.5)
  }
}

.contact input,.contact textarea {
  width: 500px;
  resize: none;
  border: none;
  color: inherit;
  background-color: #282828;
  font-size: 1.6rem;
  font-family: monserrat, sans-serif;
  border-left: 2px solid transparent;
  border-radius: 0
}

@media (max-width: 700px) {
  .contact input,.contact textarea {
      width:400px
  }
}

@media (max-width: 470px) {
  .contact input,.contact textarea {
      width:330px
  }
}

@media (max-width: 400px) {
  .contact input,.contact textarea {
      width:260px
  }
}

.contact input:focus,.contact textarea:focus {
  outline: none
}

.contact input::placeholder,.contact textarea::placeholder {
  color: rgba(250,250,250,0.6);
  opacity: 1
}

.contact input :-ms-input-placeholder,.contact textarea :-ms-input-placeholder {
  color: rgba(250,250,250,0.6)
}

.contact input ::-ms-input-placeholder,.contact textarea ::-ms-input-placeholder {
  color: rgba(250,250,250,0.6)
}

.contact-form-error-submit {
  margin-top: 1.5rem;
  height: 7rem;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center
}

.form-error {
  align-self: start;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5
}

.form-error>* {
  display: none
}

.input-error {
  border-left: 2px solid #ff4d5a !important
}
/* footer styles */
.footer {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 160px;
  background-color: #282828
}
/* Socials style */
.socials {
  display: flex;
  margin-bottom: 20px
}

.socials-github,.socials-email {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 35px;
  background-color: transparent;
  cursor: pointer;
  transition: all 0.2s
}

.socials-github:hover,.socials-email:hover {
  transform: scale(1.2)
}

.socials-github {
  margin-right: 1rem
}

.socials-email {
  margin-left: 1rem
}

.socials img {
  height: 100%
}

.copyright {
  color: #fafafa;
  font-size: 10px;
  font-weight: 500
}

.return-home {
  position: absolute;
  top: -25px;
  width: 40px;
  height: 45px;
  margin-right: auto;
  margin-left: auto;
  left: 0;
  right: 0;
  text-align: center;
  background-color: #ff4d5a;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite
}

.return-home:hover {
  cursor: pointer;
  animation-name: bounce;
  -moz-animation-name: bounce
}

.return-home svg {
  width: 100%
}

/* project styles */

.projects {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center
}

.projects-heading:before {
  position: absolute;
  content: '';
  border-bottom: 18px solid #ff4d5a;
  width: 22.5rem;
  display: block;
  margin: 0 auto;
  position: relative;
  left: 3.5rem;
  top: 6.3rem;
  z-index: -1
}

@media (max-width: 770px) {
  .projects-heading:before {
      border-bottom:14px solid #ff4d5a
  }
}

.project {
  position: relative;
  display: flex;
  margin-bottom: 14rem;
  justify-content: flex-start
}

@media (max-width: 560px) {
  .project {
      margin-bottom:12rem
  }
}

@media (max-width: 440px) {
  .project {
      margin-bottom:10rem
  }
}

.project-image-container {
  position: relative;
  height: 70rem;
  width: 100rem;
  background-color: #3216bb;
  transition: all 0.2s;
  cursor: pointer
}

@media (max-width: 1100px) {
  .project-image-container {
      height:64rem;
      width: 90rem
  }
}

@media (max-width: 970px) {
  .project-image-container {
      height:58rem;
      width: 80rem
  }
}

@media (max-width: 900px) {
  .project-image-container {
      height:54rem;
      width: 75rem
  }
}

@media (max-width: 700px) {
  .project-image-container {
      height:48rem;
      width: 64rem
  }
}

@media (max-width: 560px) {
  .project-image-container {
      height:40rem;
      width: 52rem
  }
}

@media (max-width: 440px) {
  .project-image-container {
      height:30rem;
      width: 39rem
  }
}

.project-image-container:hover {
  transform: scale(0.95)
}

.project-image-image {
  width: 85%;
  position: relative
}

.project-image-image img {
  width: 100%
}

.project-info {
  position: relative;
  top: 8rem;
  height: fit-content;
  padding: 1rem;
  z-index: 9999999
}

@media (max-width: 1000px) {
  .project-info {
      width:fit-content
  }
}

@media (max-width: 700px) {
  .project-info {
      background-color:rgba(26,26,26,0.5)
  }
}

@media (max-width: 560px) {
  .project-info {
      top:4rem
  }
}

@media (max-width: 440px) {
  .project-info {
      top:2rem
  }
}

@media (max-width: 400px) {
  .project-info {
      top:0
  }
}

.project-title {
  position: relative;
  z-index: 66;
  font-size: 3.5rem
}

@media (max-width: 900px) {
  .project-title {
      font-size:3rem
  }
}

@media (max-width: 820px) {
  .project-title {
      font-size:2.7rem
  }
}

@media (max-width: 550px) {
  .project-title {
      font-size:2.5rem
  }
}

@media (max-width: 400px) {
  .project-title {
      font-size:2.2rem
  }
}

.project-description {
  position: relative;
  margin-top: 3rem;
  font-size: 1.8rem;
  font-weight: 500;
  z-index: 999909999
}

@media (max-width: 560px) {
  .project-description {
      margin-top:2rem
  }
}

.project-live-2 {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 3px;
  line-height: 1;
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: fit-content;
  padding: 1rem 1.2rem;
  position: relative;
  margin-top: 3rem;
  cursor: pointer
}

@media (max-width: 560px) {
  .project-live-2 {
      margin-top:2rem
  }
}

.project-live-2:after {
  position: absolute;
  content: '';
  height: 2px;
  background-color: #ff4d5a;
  width: 100%;
  bottom: 1px;
  display: block;
  transform-origin: bottom;
  transition: all 0.25s;
  z-index: -1
}

.project-live-2:hover {
  color: #1a1a1a
}

.project-live-2:hover:after {
  height: 100%
}

.project-live,.project-code {
  position: relative;
  margin-top: 3rem;
  padding: 0.6rem 1rem;
  width: fit-content;
  font-size: 1.6rem;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 3px;
  z-index: 9;
  transition: all 0.2s;
  cursor: pointer
}

@media (max-width: 560px) {
  .project-live,.project-code {
      margin-top:2rem
  }
}

.project-live:hover,.project-code:hover {
  color: #1a1a1a;
  font-weight: 700
}

.project-live:after,.project-code:after {
  position: absolute;
  content: '';
  border-bottom: 2px solid #ff4d5a;
  width: calc(100% + 2rem);
  left: -10%;
  top: 0.5rem;
  display: block;
  margin: 0 auto;
  position: relative;
  transform-origin: bottom;
  transition: all 0.2s;
  z-index: -1
}

.project-live:hover:after,.project-code:hover:after {
  transform: scaleY(17.5)
}

@media (max-width: 1500px) {
  .project-live:hover:after,.project-code:hover:after {
      transform:scaleY(16.5)
  }
}

@media (max-width: 1200px) {
  .project-live:hover:after,.project-code:hover:after {
      transform:scaleY(14)
  }
}

@media (max-width: 770px) {
  .project-live:hover:after,.project-code:hover:after {
      transform:scaleY(12.5)
  }
}

.project-code:after {
  width: calc(100% + 2rem);
  left: -8%
}

.project-left {
  align-self: flex-start;
  margin-left: 22rem
}

@media (max-width: 1700px) {
  .project-left {
      margin-left:11rem
  }
}

@media (max-width: 1500px) {
  .project-left {
      margin-left:0
  }
}

.project-left .project-info {
  left: -8rem;
  margin-right: -2rem
}

@media (max-width: 800px) {
  .project-left .project-info {
      margin-right:-4rem
  }
}

@media (max-width: 770px) {
  .project-left .project-info {
      margin-right:-4rem
  }
}

@media (max-width: 600px) {
  .project-left .project-info {
      margin-right:-6rem
  }
}

@media (max-width: 440px) {
  .project-left .project-info {
      left:-10rem;
      margin-right: -7rem
  }
}

.project-right {
  align-self: flex-end;
  margin-right: 22rem
}

@media (max-width: 1700px) {
  .project-right {
      margin-right:11rem
  }
}

@media (max-width: 1500px) {
  .project-right {
      margin-right:0
  }
}

.project-right .project-info {
  right: -8rem;
  margin-left: -2rem
}

@media (max-width: 770px) {
  .project-right .project-info {
      margin-left:-4rem
  }
}

@media (max-width: 600px) {
  .project-right .project-info {
      margin-left:-6rem
  }
}

@media (max-width: 440px) {
  .project-right .project-info {
      right:-10rem;
      margin-left: -7rem
  }
}

.retro {
  display: flex;
  align-items: flex-end;
  justify-content: center
}

.retro img {
  margin-bottom: -3px
}

.todo {
  display: flex;
  align-items: center;
  justify-content: flex-end
}

.weather {
  display: flex;
  align-items: center;
  justify-content: flex-start
}