html {
  scroll-behavior: smooth;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Nunito", sans-serif;
}

body {
  padding: 0;
  line-height: 1.5;
  background: #181a1b;
}

body .noscroll {
  overflow-x: hidden;
}

a {
  text-decoration: none;
  color: white;
}

.main-font {
  font-family: "Nunito", sans-serif;
}

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

.my-1 {
  margin: 1rem 0;
}

.mx-1 {
  margin: 0 0.5rem;
}

.h-100 {
  height: 100%;
}

.container {
  max-width: 1200px;
  padding: 1.5rem 1.5rem;
  margin: auto;
  overflow: hidden;
  transition: all 0.3s ease;
}

.text-blue {
  color: #3b82f6;
}

.text-white {
  color: white;
}

.text-grey {
  color: grey;
}

.text-dark-grey {
  color: #2e3031;
}

.bg-blue {
  background-color: #3b82f6;
}

.bg-dark-grey {
  background-color: #2e3031;
}

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

.btn,
.btn-blue,
.btn-dark,
.btn-blue-outline {
  display: inline-block;
  padding: 0.8rem 1.5rem;
  transition: all 0.3s;
  border-radius: 3px;
  border: none;
  cursor: pointer;
}

.btn-blue {
  color: white;
  background-color: #3b82f6;
  border: 2px solid #3b82f6;
}

.btn-dark {
  color: white;
  background-color: #181a1b;
}

.btn-blue-outline {
  color: #3b82f6;
  background-color: transparent;
  border: 2px solid #3b82f6;
}

.btn-blue:hover {
  transition: all 0.3s ease;
  background: #0b63f3;
  border: 2px solid #0b63f3;
}

.btn-blue-outline:hover {
  color: white;
  background-color: #3b82f6;
}

.btn-small {
  padding: 0.5rem 1rem;
}

#backToTopBtn {
  position: fixed;
  right: 20px;
  top: 20px;
  padding: 0.5rem 0.9rem;
  opacity: 0;
  visibility: hidden;
  z-index: 1000;
}

#backToTopBtn.show {
  opacity: 1;
  visibility: visible;
}

.section-subtext {
  text-align: center;
  margin-top: 2rem;
  margin-bottom: 3rem;
}

.btn-email {
  --primary: #3b82f6;
  --primary-dark: #0455d8;
  --primary-darkest: #013281;
  --shadow: rgba(0, 0, 0, 0.3);
  --text: #fff;
  --text-opacity: 1;
  --success: #3b82f6;
  --success-x: -12;
  --success-stroke: 14;
  --success-opacity: 0;
  --border-radius: 3;
  --overflow: hidden;
  --x: 0;
  --y: 0;
  --rotate: 0;
  --plane-x: 0;
  --plane-y: 0;
  --plane-opacity: 1;
  --trails: rgba(59, 130, 246, 0.15);
  --trails-stroke: 57;
  --left-wing-background: var(--primary);
  --left-wing-first-x: 0;
  --left-wing-first-y: 0;
  --left-wing-second-x: 50;
  --left-wing-second-y: 0;
  --left-wing-third-x: 0;
  --left-wing-third-y: 100;
  --left-body-background: var(--primary);
  --left-body-first-x: 51;
  --left-body-first-y: 0;
  --left-body-second-x: 51;
  --left-body-second-y: 100;
  --left-body-third-x: 0;
  --left-body-third-y: 100;
  --right-wing-background: var(--primary);
  --right-wing-first-x: 49;
  --right-wing-first-y: 0;
  --right-wing-second-x: 100;
  --right-wing-second-y: 0;
  --right-wing-third-x: 100;
  --right-wing-third-y: 100;
  --right-body-background: var(--primary);
  --right-body-first-x: 49;
  --right-body-first-y: 0;
  --right-body-second-x: 49;
  --right-body-second-y: 100;
  --right-body-third-x: 100;
  --right-body-third-y: 100;
  display: block;
  cursor: pointer;
  position: relative;
  border: 0;
  padding: 8px 0;
  min-width: 100px;
  text-align: center;
  margin: 0;
  line-height: 24px;
  font-family: inherit;
  font-weight: 600;
  font-size: 14px;
  background: none;
  outline: none;
  color: var(--text);
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
}

.btn-email .plane,
.btn-email .trails {
  pointer-events: none;
  position: absolute;
}

.btn-email .plane {
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  filter: drop-shadow(0 3px 6px var(--shadow));
  transform: translate(calc(var(--x) * 1px), calc(var(--y) * 1px)) rotate(calc(var(--rotate) * 1deg)) translateZ(0);
}

.btn-email .plane .left,
.btn-email .plane .right {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  opacity: var(--plane-opacity);
  transform: translate(calc(var(--plane-x) * 1px), calc(var(--plane-y) * 1px)) translateZ(0);
}

.btn-email .plane .left:before,
.btn-email .plane .left:after,
.btn-email .plane .right:before,
.btn-email .plane .right:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  border-radius: calc(var(--border-radius) * 1px);
  transform: translate(var(--part-x, 0.4%), var(--part-y, 0)) translateZ(0);
  z-index: var(--z-index, 2);
  background: var(--background, var(--left-wing-background));
  clip-path: polygon(calc(var(--first-x, var(--left-wing-first-x)) * 1%) calc(var(--first-y, var(--left-wing-first-y)) * 1%), calc(var(--second-x, var(--left-wing-second-x)) * 1%) calc(var(--second-y, var(--left-wing-second-y)) * 1%), calc(var(--third-x, var(--left-wing-third-x)) * 1%) calc(var(--third-y, var(--left-wing-third-y)) * 1%));
}

.btn-email .plane .left:after {
  --part-x: -1%;
  --z-index: 1;
  --background: var(--left-body-background);
  --first-x: var(--left-body-first-x);
  --first-y: var(--left-body-first-y);
  --second-x: var(--left-body-second-x);
  --second-y: var(--left-body-second-y);
  --third-x: var(--left-body-third-x);
  --third-y: var(--left-body-third-y);
}

.btn-email .plane .right:before {
  --part-x: -1%;
  --z-index: 2;
  --background: var(--right-wing-background);
  --first-x: var(--right-wing-first-x);
  --first-y: var(--right-wing-first-y);
  --second-x: var(--right-wing-second-x);
  --second-y: var(--right-wing-second-y);
  --third-x: var(--right-wing-third-x);
  --third-y: var(--right-wing-third-y);
}

.btn-email .plane .right:after {
  --part-x: 0;
  --z-index: 1;
  --background: var(--right-body-background);
  --first-x: var(--right-body-first-x);
  --first-y: var(--right-body-first-y);
  --second-x: var(--right-body-second-x);
  --second-y: var(--right-body-second-y);
  --third-x: var(--right-body-third-x);
  --third-y: var(--right-body-third-y);
}

.btn-email .trails {
  display: block;
  width: 33px;
  height: 64px;
  top: -4px;
  left: 16px;
  fill: none;
  stroke: var(--trails);
  stroke-linecap: round;
  stroke-width: 2;
  stroke-dasharray: 57px;
  stroke-dashoffset: calc(var(--trails-stroke) * 1px);
  transform: rotate(68deg) translateZ(0);
}

.btn-email span {
  display: block;
  position: relative;
  z-index: 4;
  opacity: var(--text-opacity);
}

.btn-email span.success {
  z-index: 0;
  position: absolute;
  left: 0;
  right: 0;
  top: 8px;
  transform: translateX(calc(var(--success-x) * 1px)) translateZ(0);
  opacity: var(--success-opacity);
  color: var(--success);
}

.btn-email span.success svg {
  display: inline-block;
  vertical-align: top;
  width: 16px;
  height: 16px;
  margin: 4px 8px 0 0;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 14px;
  stroke: var(--success);
  stroke-dashoffset: calc(var(--success-stroke) * 1px);
}

.blue-link-underline {
  color: #0b63f3;
  border-bottom: 1px solid #0b63f3;
}

.flex {
  display: flex;
}

.white-image {
  filter: brightness(0) invert(1);
}

@media screen and (max-width: 999px) {
  .hide-for-mobile {
    display: none;
  }
}

@media screen and (min-width: 1000px) {
  .hide-for-desktop {
    display: none;
  }
}

header {
  background: #181a1b;
  background-size: cover;
  min-height: 80vh;
  position: relative;
}

header #particles-js {
  height: 80vh;
  position: relative;
}

header #particles-js canvas {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}

header nav {
  width: 100%;
}

header nav .nav-container {
  position: relative;
  display: flex;
  justify-content: space-between;
}

header nav .nav-container #logo {
  margin: auto 0;
  z-index: 10;
}

header nav .nav-container #logo img {
  width: 250px;
}

header nav .nav-container .nav-links {
  z-index: 1000;
}

header nav .nav-container .nav-links li {
  list-style: none;
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-left: 2rem;
}

header nav .nav-container .nav-links a {
  text-decoration: none;
  letter-spacing: 2px;
  color: white;
}

header nav .nav-container .nav-links .link::after {
  content: "";
  position: relative;
  display: block;
  width: 0%;
  height: 2px;
  top: 3px;
  margin: auto;
  background: #3b82f6;
  transition: width 0.3s ease;
}

header nav .nav-container .nav-links .link:hover::after {
  width: 100%;
}

header nav .mobile-menu {
  position: relative;
  z-index: 1000;
}

header nav .mobile-menu .container {
  padding-top: 0;
}

header nav .mobile-menu .container .mobile-menu-links ul {
  justify-content: center;
  align-items: center;
  list-style-type: none;
}

header nav .mobile-menu .container .mobile-menu-links ul li {
  margin: 0rem 1rem;
}

header nav .mobile-menu .container .mobile-menu-links ul .link::after {
  content: "";
  position: relative;
  display: block;
  width: 0;
  height: 2px;
  top: 3px;
  margin: auto;
  background: #3b82f6;
  transition: width 0.3s ease;
}

header nav .mobile-menu .container .mobile-menu-links ul .link:hover::after {
  width: 100%;
}

header .hero {
  z-index: 5;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

header .hero h1,
header .hero p {
  color: white;
}

header .hero h1,
header .hero h2 span {
  letter-spacing: 2px;
  white-space: nowrap;
  text-align: center;
  font-size: clamp(2rem, 5vw, 4rem);
  font-weight: bold;
}

header .hero p {
  color: #dcdcdc;
  line-height: 1.6;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
  padding: 0.5rem;
}

header .hero p .blue-link-underline {
  color: #3783ff;
}

header .hero .hero-btns {
  white-space: nowrap;
  text-align: center;
  margin-top: 1rem;
}

header .socials {
  position: absolute;
  bottom: 40%;
  left: -125px;
  z-index: 10;
}

header .socials ul {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

header .socials ul li {
  transition: 0.3s;
  width: 100%;
  display: flex;
  justify-content: end;
  font-size: 1.5rem;
  width: 100%;
  height: 100%;
}

header .socials ul li a {
  text-align: right;
  height: 100%;
  width: 100%;
  padding: 15px 20px;
}

header .socials ul li a i {
  font-size: 1.75rem;
  margin-left: 1.5rem;
}

header .socials ul li:hover {
  transform: translateX(115px);
}

header .scroll-btn-container {
  position: absolute;
  width: 100%;
  background: red;
  bottom: 150px;
}

header .scroll-btn-container div {
  display: flex;
  justify-content: center;
  width: 100%;
}

header .scroll-btn-container div a {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

header .scroll-btn-container div a span {
  display: block;
  height: 20px;
  width: 20px;
  border-bottom: 2px solid #3b82f6;
  border-right: 2px solid #3b82f6;
  transform: rotate(45deg);
  margin: -20px 0;
  animation: animate 2s infinite;
}

header .scroll-btn-container div a span:nth-child(2) {
  animation-delay: -0.2s;
}

header .scroll-btn-container div a span:nth-child(3) {
  animation-delay: -0.4s;
}

@keyframes animate {
  0% {
    opacity: 0;
    transform: rotate(45deg) translate(-20px, -20px);
  }

  50% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: rotate(45deg) translate(20px, 20px);
  }
}

header .seperator-skew {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 150px;
  width: 100%;
  overflow: hidden;
}

header .seperator-skew svg {
  position: absolute;
  bottom: 0;
}

header .seperator-skew svg .fill-white {
  fill: white;
}

@media screen and (max-width: 999px) {
  header nav .container {
    padding-bottom: 0.75rem;
  }

  header nav .nav-container {
    justify-content: center;
  }

  header .hero {
    top: 55%;
  }

  header .socials {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .hero {
    width: 90%;
  }

  header nav .nav-container #logo img {
    width: 200px;
  }
}

@media screen and (max-width: 500px) {
  header nav .nav-container #logo {
    font-size: 1.5rem;
  }

  header nav .mobile-menu .container .mobile-menu-links ul li {
    margin: 0 0.5rem;
  }

  header .hero span {
    max-width: 100%;

  }

  header .hero span .hide-when-narrow {
    display: none;

  }

  header .hero p {
    width: 100%;
  }
}

@media screen and (min-height: 900px) {
  header {
    min-height: 70vh;
  }

  header #particles-js {
    height: 70vh;
  }
}

.projects {
  background: white;
  padding: 3rem 0;
}

.projects h2,
.projects h2 span {
  text-align: center;
  margin-bottom: 3rem;
  font-weight: bold;
}

.projects .project-row {
  display: flex;
  margin-bottom: 3rem;
}

.projects .project-row .project-left {
  width: 50%;
  margin-right: 2rem;
}

.projects .project-row .project-left img {
  width: 100%;
  border: 1px solid lightgray;
}

.projects .project-row .project-right {
  width: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.projects .project-row .project-right h3 {
  font-size: 1.25rem;
}

.projects .project-row .project-right .tech-stack-list {
  display: flex;
  flex-wrap: wrap;
  list-style-type: none;
  margin-top: 1rem;
}

.projects .project-row .project-right .tech-stack-list p {
  margin-right: 1rem;
}

.projects .project-row .project-right .tech-stack-list li {
  margin-right: 20px;
  font-size: 1.5rem;
}

.projects .project-row .project-right .project-links {
  margin-top: 1rem;
}

.projects .project-row #webscraper {
  background-image: url("../img/top10songs.JPG");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  transition: background-image 0.2s ease-in-out;
}

.projects .project-row #webscraper:hover {
  background-image: url("../img/top10songs.gif");
}

@media screen and (max-width: 860px) {
  .projects .project-row {
    display: flex;
    margin-bottom: 3rem;
    flex-direction: column;
  }

  .projects .project-row .project-left {
    width: 100%;
  }

  .projects .project-row .project-right {
    width: 100%;
  }
}

@media screen and (max-width: 500px) {
  .project-left {
    min-height: 200px;
  }
}

@media screen and (min-width: 501px) and (max-width: 700px) {
  .project-left {
    min-height: 300px;
  }
}

@media screen and (min-width: 701px) and (max-width: 859px) {
  .project-left {
    min-height: 350px;
  }
}

.education {
  padding-bottom: 3rem;
}

.education .container {
  max-width: 900px;
}

.education .container h2 {
  text-align: center;

  margin-bottom: 3rem;
}

.education .container .education-card {
  background-color: #2e3031;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 0.15rem 0.6rem white;
  padding: 40px;
  border-radius: 3px;
}

.education .container .education-card>*:last-child {
  margin-top: 40px;
}

@media (max-width: 500px) {
  .education .container .education-card {
    padding: 20px;
  }
}

.education .container .education-card .education-card-column {
  display: flex;
}

.education .container .education-card .education-card-column .card-column-image {
  flex: 0 0 20%;
}

.education .container .education-card .education-card-column .card-column-image img {
  width: 100%;
}

.education .container .education-card .education-card-column .card-column-large {
  flex: 0 0 80%;
  padding-left: 1.5rem;
}

.education .container .education-card .education-card-column .card-column-large>* {
  margin: 0.25rem 0;
}

.education .container .education-card .education-card-column .card-column-large h4 {
  font-weight: normal;
}

.education .container .education-card .education-card-column .card-column-large ul {
  padding-left: 1.5rem;
}

.education .container .education-card .education-card-column .card-column-large hr {
  border: 0;
  border-top: 1px solid #eee;
  margin-top: 40px;
}

/*
    Experience
*/
.experience {
  background: white;
  padding-bottom: 3rem;
}

.experience .container {
  max-width: 900px;
}

.experience .container {
  max-width: 900px;
}

.experience .container h2 {
  text-align: center;
  color: black;
  margin-bottom: 3rem;
}

.experience .container h2 {
  text-align: center;
  color: black;
  margin-bottom: 3rem;
}

.experience .container .experience-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 0.15rem 0.6rem rgba(43, 52, 56, 0.15);
  padding: 40px;
  border-radius: 3px;
  margin-bottom: 20px;
}

.eexperience .container .experience-card>*:last-child {
  margin-top: 40px;
}


@media (max-width: 500px) {
  .experience .container .experience-card {
    padding: 20px;
  }
}

.experience .container .experience-card .experience-card-column {
  display: flex;
}

.experience .container .experience-card .experience-card-column .card-column-image {
  flex: 0 0 20%;
}

.experience .container .experience-card .experience-card-column .card-column-image img {
  width: 100%;
}

.experience .container .experience-card .experience-card-column .card-column-large {
  flex: 0 0 80%;
  padding-left: 1.5rem;
}

.experience .container .experience-card .experience-card-column .card-column-large>* {
  margin: 0.25rem 0;
}

.experience .container .experience-card .experience-card-column .card-column-large h4 {
  font-weight: normal;
}

.experience .container .experience-card .experience-card-column .card-column-large ul {
  padding-left: 1.5rem;
}

.experience .container .experience-card .experience-card-column .card-column-large hr {
  border: 0;
  border-top: 1px solid #eee;
  margin-top: 40px;
}

/*

*/

.skills {
  padding: 3rem 0;
  position: relative;
  overflow: hidden;
}

.skills canvas {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}

.skills h2,
.skills h2 span {
  text-align: center;
  margin-bottom: 3rem;
  font-weight: bold;
}

.skills .container {
  padding: 6rem 0;
}

.skills .skills-icons {
  list-style-type: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 10;
}

.skills .skills-icons svg {
  margin: 0.5rem;
  width: 90px;
}

@media (max-width: 420px) {
  .skills .skills-icons svg {
    width: 70px;
  }
}

.skills .skills-icons li {
  transition: 0.3s;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: white;
  font-size: 1rem;
  margin: 1rem;
}

@media (max-width: 420px) {
  .skills .skills-icons li {
    margin: 1rem 0.75rem;
  }
}

.skills .skills-icons li .aws-logo {
  background: white;
  padding: 10px;
  border-radius: 3px;
}

.skills .skills-icons li:hover {
  transform: scale(1.3);
}

.skills .seperator-skew-top {
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 150px;
  width: 120%;
  overflow: hidden;
}

.skills .seperator-skew-top svg {
  position: absolute;
  top: 0;
  transform: scaleY(-1) scaleX(-1);
}

.skills .seperator-skew-top svg .fill-white {
  fill: white;
}

.skills .seperator-skew-bottom {
  position: absolute;
  bottom: -0.5px;
  left: 0;
  right: 0;
  height: 150px;
  width: 120%;
  overflow: hidden;
}

.skills .seperator-skew-bottom svg {
  position: absolute;
  bottom: 0;
}

.skills .seperator-skew-bottom svg .fill-white {
  fill: white;
}

.contact {
  background: white;
  padding: 3rem 0;
}

.contact .section-title {
  margin-bottom: 2rem;
  text-align: center;
}

.contact .card-container {
  display: flex;
  justify-content: space-around;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}

.contact .card-container .card {
  background: #fff;
  width: 260px;
  margin: 20px;
  padding: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  box-shadow: 0 0.15rem 0.6rem rgba(43, 52, 56, 0.15);
  border-radius: 3px;
}

.contact .card-container .card i {
  font-size: 3.5rem;
  color: #3b82f6;
  margin-bottom: 1rem;
  transition: 0.4s;
}

.contact .card-container .card i:hover {
  transform: translateY(-20%);
}

.contact .card-container .card>* {
  margin: 0.5rem;
}

.contact form {
  max-width: 600px;
  margin: 0 auto;
  border-radius: 3px;
  box-shadow: 0 0.15rem 0.6rem rgba(43, 52, 56, 0.15);
  padding: 2rem;
}

.contact form h2 {
  text-align: center;
  margin: 1.5rem 0;
}

.contact form .form-group input {
  margin: 0.75rem 0;
  width: 100%;
  border-radius: 3px;
  border: 1px solid #afafaf;
  padding: 0.75rem;
  font-size: 1rem;
}

.contact form .form-group input:focus {
  outline: none;
}

.contact form .form-group textarea {
  width: 100%;
  border-radius: 3px;
  margin: 0.75rem 0;
  border: 1px solid #afafaf;
  padding: 0.75rem;
  font-size: 1rem;
  resize: vertical;
}

.contact form .form-group textarea:focus {
  outline: none;
}

.contact form #status {
  width: 100%;
  text-align: center;
  margin: 0 auto;
  border-radius: 3px;
  color: #00b700;
}

.contact form #status.success {
  color: #00b700;
  animation: status 4s ease forwards;
}

.contact form #status.error {
  color: red;
  animation: status 4s ease forwards;
}

@keyframes status {
  0% {
    opacity: 1;
    pointer-events: all;
  }

  90% {
    opacity: 1;
    pointer-events: all;
  }

  100% {
    opacity: 0;
    pointer-events: none;
  }
}

.footer {
  background: #181a1b;
  padding: 1.5rem 0;
  color: white;
}

.footer canvas {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}

.footer .footer-flex {
  display: flex;
  justify-content: space-between;
}

.footer .footer-flex #logo-footer {
  width: 200px;
}

.footer .footer-flex .top-scroll-button {
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 35px;
  height: 35px;
  text-align: center;
  border: 3px solid white;
  border-radius: 50%;
  transition: 0.3s;
}

.footer .footer-flex .top-scroll-button:hover {
  color: #3b82f6;
  border: 3px solid #3b82f6;
}

.footer .footer-flex .footer-icon-links a {
  margin-left: 2rem;
  transition: 0.3s;
}

.footer .footer-flex .footer-icon-links a:hover {
  color: #3b82f6;
}

.footer .footer-flex .footer-icon-links a i {
  transition: 0.3s;
}

.footer .footer-flex .footer-icon-links a i:hover {
  transform: translateY(-20%);
}

@media screen and (max-width: 500px) {
  .footer .footer-flex {
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .footer .footer-flex .top-scroll-button {
    margin-top: 2rem;
  }

  .footer .footer-flex .footer-icon-links {
    margin-top: 2rem;
  }

  .footer .footer-flex .footer-icon-links a {
    margin: 0 1rem;
  }
}

.footer-copyright {
  text-align: center;
}

.simple-icons--render {
  display: inline-block;
  width: 24px;
  height: 24px;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M18.263.007c-3.121-.147-5.744 2.109-6.192 5.082c-.018.138-.045.272-.067.405c-.696 3.703-3.936 6.507-7.827 6.507a7.9 7.9 0 0 1-3.825-.979a.202.202 0 0 0-.302.178V24H12v-8.999c0-1.656 1.338-3 2.987-3h2.988c3.382 0 6.103-2.817 5.97-6.244c-.12-3.084-2.61-5.603-5.682-5.75'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.devicon--mongoose-wordmark {
  display: inline-block;
  width: 24px;
  height: 24px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'%3E%3Cpath fill='%23850000' d='M8.983 78.08c-.937.246-2.276 1.019-2.908 1.687l-.622.628l-.173-2.212H2.987L2.935 86.2l-.039 8.033h2.61l.074-5.224c.086-5.895.19-6.455 1.305-7.594c.81-.825 2.08-1.284 3.19-1.158c.936.103 1.588.524 2.082 1.365c.332.564.35.967.407 6.598l.052 6.013h2.61l.051-5.575c.052-5.349.07-5.596.442-6.299c1.357-2.506 4.939-2.89 6.117-.664c.355.664.373 1.033.425 6.611l.069 5.927h2.454l-.056-6.541l-.052-6.526l-.495-.927c-1.092-2.072-4.11-2.878-6.61-1.79c-.408.178-1.184.755-1.73 1.261c-.914.863-1.005.916-1.196.6c-.46-.79-1.219-1.492-1.978-1.86c-.901-.405-2.804-.612-3.684-.37m0 0'/%3E%3Cpath fill='%23850000' d='M30.953 78.097c-2.133.455-4.196 1.98-5.007 3.736c-1.253 2.65-1.201 6.456.122 9.03c1.343 2.632 4.816 4.14 7.971 3.49c4.306-.91 6.313-3.91 6.013-8.977c-.052-.877-.212-1.981-.368-2.489c-.598-1.912-2.327-3.702-4.27-4.422c-1.145-.437-3.296-.61-4.461-.368m3.616 2.528c1.886.875 2.804 2.683 2.788 5.54c-.018 2.896-.864 4.699-2.628 5.596c-1.183.61-3.156.628-4.253.07c-.755-.404-1.656-1.318-2.081-2.125c-.794-1.526-.828-5.085-.069-6.714c.846-1.842 2.242-2.754 4.196-2.771c.85-.017 1.379.086 2.047.404m11.887-2.476c-1.254.368-2.012.789-2.736 1.526c-.386.386-.759.702-.828.702c-.07 0-.139-.507-.139-1.14V78.08l-1.096.05l-1.11.053l-.052 8.016l-.036 8.033h2.645v-5.05c.018-5.332.104-6.208.81-7.261c.495-.773 1.817-1.51 2.983-1.665c1.674-.23 3.386.737 3.773 2.137c.125.442.194 2.735.194 6.264v5.575h2.662l-.052-6.277l-.052-6.26l-.46-.984c-.529-1.105-1.321-1.825-2.574-2.315c-1.093-.422-2.91-.543-3.932-.247m12.87-.07c-2.661.581-4.547 2.598-5.288 5.632c-.334 1.348-.282 3.91.086 5.172c1.08 3.72 3.477 5.562 6.95 5.315c1.34-.105 2.505-.56 3.402-1.35c.6-.527.655-.545.76-.211c.177.577-.105 2.839-.443 3.611c-.667 1.51-1.99 2.193-4.214 2.193c-1.99-.016-3.334-.754-3.65-2.033c-.087-.333-.264-.42-.915-.51a13 13 0 0 1-1.218-.192c-.369-.07-.408-.017-.408.668c.018 1.682 1.288 3.156 3.334 3.858c.903.317 1.553.403 2.927.403c3.177 0 5.362-1.123 6.42-3.281c.793-1.596.919-3.455.862-11.978l-.052-7.192h-2.293l-.052.915c-.034.507-.104.927-.155.927c-.057 0-.373-.244-.725-.542c-1.34-1.174-3.632-1.773-5.327-1.404zm3.477 2.562c.495.264 1.127.737 1.392 1.088c1.976 2.576 1.603 7.89-.688 9.537c-2.239 1.617-5.36.737-6.47-1.803c-.567-1.3-.706-4.244-.264-5.839c.333-1.284 1.283-2.51 2.363-3.07c.949-.51 2.536-.477 3.667.087m11.072-2.475c-1.461.421-1.903.633-2.874 1.37c-1.887 1.405-2.766 3.559-2.749 6.714c0 2.299.352 3.686 1.305 5.16c1.27 1.946 3.438 3.035 6.082 3.053c3.052.016 5.467-1.337 6.685-3.738l.616-1.227l.546 1.122c1.994 4.193 8.237 5.208 11.783 1.947c.563-.51 1.18-1.226 1.357-1.56c.195-.351.385-.633.437-.633c.057 0 .248.369.425.841c.885 2.107 3.07 3.264 6.19 3.246c1.817 0 3.157-.332 4.375-1.105c.724-.455 1.886-1.756 1.886-2.124c0-.069.087-.35.195-.61l.173-.495l.511.88c2.208 3.858 8.363 4.716 11.71 1.647c.866-.806 2.046-2.891 1.765-3.156c-.088-.086-.686-.23-1.34-.3l-1.161-.155l-.287.594c-.793 1.647-1.92 2.475-3.629 2.614c-2.7.247-4.729-1.422-5.258-4.278c-.087-.508-.122-.967-.07-1.02c.052-.051 2.788-.086 6.065-.086h5.96v-.945c0-1.214-.229-2.406-.718-3.703c-.569-1.509-2.293-3.19-3.862-3.77c-1.696-.633-4.041-.594-5.715.086c-2.804 1.14-4.5 3.984-4.517 7.508v1.21l-.702-.616c-.76-.629-2.275-1.244-4.673-1.873c-2.684-.702-3.582-1.054-4.058-1.6c-.511-.61-.546-1.013-.177-1.716c.407-.807 1.533-1.244 3.211-1.244c1.92 0 2.784.437 3.404 1.7c.35.718.51.892.793.84a21 21 0 0 1 1.196-.173c.989-.122 1.063-.386.408-1.773c-.863-1.843-2.857-2.788-5.835-2.77c-1.396.016-1.977.086-2.804.42c-1.8.685-2.823 1.895-3.088 3.667l-.125.807l-.546-1.054c-2.75-5.263-10.934-5.154-13.383.174l-.442.966l-.616-1.226q-1.166-2.316-3.65-3.265c-1.465-.56-3.511-.702-4.799-.35m3.932 2.493c1.816.893 2.718 2.719 2.718 5.505c-.018 3.858-1.799 6.139-4.799 6.139c-1.834 0-3.368-1.019-4.196-2.752c-.438-.946-.477-1.176-.477-3.386c0-2.58.195-3.313 1.218-4.51c1.218-1.434 3.72-1.89 5.536-.996m14.037-.195c.85.35 1.994 1.405 2.401 2.194c.777 1.508.898 4.664.266 6.506c-.355 1.036-1.323 2.176-2.26 2.632c-1.587.807-3.88.541-5.184-.6c-2.15-1.875-2.415-7.134-.46-9.397c1.218-1.44 3.563-2.016 5.238-1.335zm27.298.073c1.397.595 2.436 2.016 2.489 3.4l.034.736h-8.99l.052-.525c.12-1.474 1.143-2.856 2.592-3.576c.95-.477 2.766-.495 3.823-.034zm-20.383 4.96c.706.65 1.695 1.036 4.833 1.876c1.496.404 2.927.881 3.174 1.055c1.517 1.087.724 3.19-1.414 3.702c-1.27.294-2.996.139-4.018-.386c-.707-.351-.92-.599-1.358-1.526l-.528-1.088l-2.08.208l.121-.824c.051-.455.108-1.665.108-2.683v-1.86l.333.529c.174.282.547.737.829.997M69.77 25.244c-1.609.065-4.318.495-4.318.677c0 .077 1.912 1.032 2.055 1.032c.139 0 2.359 1.11 2.848 1.417c.646.41 1.105.785.971.785c-.086 0-2.367-.88-3.23-1.254c-.702-.299-3.624-1.166-5.05-1.504c-.767-.178-1.092-.247-2.402-.485c-1.933-.355-4.2-.373-5.193-.048c-1.413.46-1.73 1.023-1.73 3.108c0 1.145.056 1.634.308 2.666c.104.45.412 1.435.56 1.77c.038.103.172.428.286.719c.116.286.463 1.023.77 1.625c1.721 3.412 4.297 6.26 7.93 8.765c1.143.785 4.262 2.277 5.51 2.633c.317.086.424.268.165.268c-.291 0-2.922-.729-3.464-.958a10 10 0 0 0-.625-.247c-1.872-.759-4.266-2.315-6.247-4.084a20.5 20.5 0 0 1-5.09-6.954c-.757-1.711-1.273-3.71-1.399-5.449c-.077-.992-.155-1.235-.416-1.222c-.086 0-.902-.03-1.809-.077c-2.448-.105-5.804.164-9.12.737c-6.347 1.078-13.192 3.575-20.24 7.382a89 89 0 0 0-3.474 1.976c-.133.078-.555.333-.94.577c-.385.238-.837.508-1.001.61c-.364.21-4.392 2.945-4.872 3.308c-.183.135-.686.508-1.107.811c-1.912 1.419-6.077 4.812-6.315 5.155c-.118.173.064.26.316.173c.125-.047.45-.112.71-.152c.27-.038.963-.22 1.54-.41a48 48 0 0 1 1.396-.422c1.421-.333 1.997-.45 2.835-.572c.373-.052.932-.134 1.249-.182c3.906-.577 5.77-.72 7.507-.585c3.781.308 7.396.945 9.465 1.682c1.547.555 4.698 2.258 6.086 3.282c.798.602 3.373 3.165 3.94 3.94c.443.612.932 1.145 1.05 1.145c.034 0 .086-1.951.095-4.33l.026-4.323l5.059-.03c3.98-.018 5.085.013 5.155.1c.095.122.325.532 1.083 1.937c.725 1.349 1.08 1.998 1.3 2.393c.114.209.382.707.608 1.096c.207.395.602 1.12.87 1.617c.27.5.491.92.491.937c0 .087.394.603.464.603c.04 0 .133-.144.2-.303c.078-.175.28-.555.442-.842c.173-.29.48-.854.693-1.244c.212-.395.503-.936.655-1.196c.424-.755.866-1.578 1.23-2.246c.183-.346.474-.88.642-1.197c.173-.316.425-.762.56-1.005a5 5 0 0 1 .33-.55c.073-.087 1.209-.118 5.305-.1l5.203.03l.025 8.445c.023 6.654.048 8.431.148 8.431c.055-.009.442-.23.837-.507c.555-.39.797-.628 1.053-1.07c.59-1.002 2.25-2.58 3.368-3.192a15.9 15.9 0 0 1 4.326-1.624c1.54-.325 1.99-.373 5.48-.5c6.373-.22 7.318-.26 7.366-.307c.025-.027-.061-.278-.182-.564c-.134-.277-.368-.793-.53-1.135c-.606-1.314-.606-1.751.027-2.394c.433-.446 1.547-.84 3.463-1.222c.317-.07.711-.152.877-.213c.16-.047.364-.082.45-.082c.239 0 2.154-.473 2.558-.624c.278-.113 1.777-.438 3.567-.784c.777-.152 2.797-.555 4.47-.89c1.058-.208 2.163-.429 2.45-.485c.29-.06.702-.143.914-.182c.212-.048.49-.104.625-.126c.133-.03.81-.16 1.49-.303a34 34 0 0 1 1.548-.3c.481-.047 4.106-.918 4.942-1.183c1.327-.432 1.72-.602 2.558-1.166c.906-.616 1.153-.95 2.046-2.727c.993-1.98 1.136-2.315 1.414-3.147c.432-1.326.407-1.833-.145-2.388c-.38-.382-1.208-.777-1.815-.864c-.45-.055-.507-.039-.733.204c-.134.144-.247.312-.247.373c0 .082-.156.508-.585 1.54c-.039.103-.125.364-.195.571a6 6 0 0 1-.239.668c-.125.269-.133.221-.087-.525c.048-.737.175-1.357.452-2.292c.048-.182.117-.491.142-.682l.048-.342l-.997-.403a130 130 0 0 1-2.452-1.032a68 68 0 0 0-.964-.373a16 16 0 0 1-.987-.395a32 32 0 0 0-1.01-.42c-.647-.247-2.897-1.009-4.809-1.613c-.52-.164-3.546-1.07-3.845-1.157a38 38 0 0 1-1.343-.373c-.157-.039-.53-.142-.82-.221c-1.69-.468-2.133-.585-2.74-.755a18 18 0 0 0-1.01-.268c-.182-.048-.68-.164-1.106-.269a589 589 0 0 0-5.526-1.278a106 106 0 0 0-1.206-.278a22 22 0 0 0-.863-.173a41 41 0 0 1-1.2-.238a84 84 0 0 0-1.878-.348a193 193 0 0 0-1.682-.294c-2.652-.477-2.836-.507-7.595-1.032c-2.935-.333-6.876-.61-7.838-.564a75 75 0 0 0-1.88.087m-11.115 4.712c2.535.825 5.007 1.942 6.702 3.03c1.343.872 3.017 2.26 3.468 2.88l.195.26l-.369-.144c-.2-.086-.624-.268-.94-.42c-1.69-.785-1.873-.855-1.873-.68c0 .047.394.68.862 1.386c.482.715.867 1.349.867 1.404c0 .048-.182-.03-.403-.182c-.866-.593-2.896-1.442-3.013-1.27c-.025.048.6.842 1.396 1.77c.788.927 1.443 1.72 1.443 1.776c0 .145-.155.126-.883-.143c-.75-.268-.946-.294-.946-.116c0 .125 1.626 2.315 2.272 3.074c.182.207.325.407.325.455c0 .23-2.25-1.232-3.845-2.494c-2.28-1.815-4.483-4.257-5.645-6.272c-.949-1.647-1.278-2.536-1.278-3.512c0-.572.03-.689.243-.888c.122-.135.277-.24.333-.24c.06 0 .538.145 1.089.326m30.354 3.405c.924.164 2.18.38 2.787.49c.607.104 1.344.229 1.635.277c.286.055.702.134.914.182c.209.047.625.13.91.2c.955.207 1.185.255 2.742.62c1.672.394 2.036.467 2.548.576c.432.082.866.247.866.325c0 .025-.32.209-.701.407c-.79.395-.954.422-4.202.546c-2.215.096-3.393.07-4.472-.103c-2.173-.334-3.296-.946-4.172-2.267c-.307-.452-.51-.582-1.213-.764c-.26-.078-.655-.182-.863-.25c-.212-.066-.577-.17-.81-.24c-.69-.181-.296-.286 1.096-.286c.962 0 1.635.066 2.935.287m11.564 13.36a.6.6 0 0 1-.241 0c-.066-.032-.018-.048.116-.048s.182.016.125.047m-.416.112c0 .047-.112.117-.26.144a58 58 0 0 0-1.855.537c-.133.048-.564.182-.958.294c-.993.286-3.395 1.071-4.04 1.318c-1.209.46-4.058 1.973-4.46 2.371c-.594.586-.78 1.219-.694 2.424c.03.502.1 1.144.155 1.421c.113.603.048.768-.182.469c-.233-.294-.724-1.365-.867-1.89c-.077-.243-.164-.555-.212-.71c-.174-.543-.104-1.185.165-1.579c.364-.555 1.673-1.443 3.212-2.18c.728-.352 2.853-1.08 4.808-1.653c.394-.116.824-.25.958-.285c1.387-.468 4.23-.919 4.23-.681m-30.41.642c-.026.026-.113.039-.182.008c-.078-.03-.048-.056.055-.056c.11-.009.167.017.127.047zm0 0'/%3E%3Cpath fill='%23850000' d='M49.585 65.968v6.692h4.79c3.595 0 4.817-.03 4.903-.117c.144-.143.174-13.27.031-13.27c-.047 0-.117.075-.147.161c-.035.087-1.085 1.72-2.336 3.633c-1.978 3.022-2.529 3.758-2.529 3.386c0-.066-3.277-5.18-4.114-6.416a3.5 3.5 0 0 1-.3-.507c-.077-.145-.172-.256-.22-.256c-.039 0-.078 3.012-.078 6.693zm0 0'/%3E%3C/svg%3E");
}

.vscode-icons--file-type-vite {
  display: inline-block;
  width: 24px;
  height: 24px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='none'%3E%3Cpath fill='url(%23vscodeIconsFileTypeVite0)' d='m29.884 6.146l-13.142 23.5a.714.714 0 0 1-1.244.005L2.096 6.148a.714.714 0 0 1 .746-1.057l13.156 2.352a.7.7 0 0 0 .253 0l12.881-2.348a.714.714 0 0 1 .752 1.05z'/%3E%3Cpath fill='url(%23vscodeIconsFileTypeVite1)' d='M22.264 2.007L12.54 3.912a.36.36 0 0 0-.288.33l-.598 10.104a.357.357 0 0 0 .437.369l2.707-.625a.357.357 0 0 1 .43.42l-.804 3.939a.357.357 0 0 0 .454.413l1.672-.508a.357.357 0 0 1 .454.414l-1.279 6.187c-.08.387.435.598.65.267l.143-.222l7.925-15.815a.357.357 0 0 0-.387-.51l-2.787.537a.357.357 0 0 1-.41-.45l1.818-6.306a.357.357 0 0 0-.412-.45'/%3E%3Cdefs%3E%3ClinearGradient id='vscodeIconsFileTypeVite0' x1='6' x2='235' y1='33' y2='344' gradientTransform='translate(1.34 1.894)scale(.07142)' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2341d1ff'/%3E%3Cstop offset='1' stop-color='%23bd34fe'/%3E%3C/linearGradient%3E%3ClinearGradient id='vscodeIconsFileTypeVite1' x1='194.651' x2='236.076' y1='8.818' y2='292.989' gradientTransform='translate(1.34 1.894)scale(.07142)' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23ffea83'/%3E%3Cstop offset='.083' stop-color='%23ffdd35'/%3E%3Cstop offset='1' stop-color='%23ffa800'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/g%3E%3C/svg%3E");
}

.devicon-plain--tailwindcss-wordmark {
  display: inline-block;
  width: 24px;
  height: 24px;
  --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'%3E%3Cpath fill='%23000' d='M13.227 56.074c-3.528 0-5.727 1.778-6.602 5.3C7.95 59.603 9.5 58.95 11.25 59.399c1 .25 1.728.977 2.524 1.801c1.3 1.324 2.8 2.852 6.078 2.852c3.523 0 5.723-1.778 6.598-5.301c-1.324 1.773-2.875 2.425-4.625 1.976c-1-.25-1.723-.976-2.524-1.8c-1.3-1.324-2.801-2.852-6.074-2.852zm43.922.477v13.574h2V56.55h-2zm-3.324.324c-.7 0-1.274.574-1.274 1.273c0 .676.575 1.277 1.274 1.277s1.3-.6 1.277-1.277c0-.699-.577-1.273-1.277-1.273m23 0c-.7 0-1.274.574-1.274 1.273c0 .677.575 1.277 1.274 1.277c.727 0 1.3-.6 1.277-1.277c0-.699-.577-1.273-1.277-1.273m21.352.226v5.024c-.7-.977-1.801-1.574-3.25-1.574c-2.528 0-4.625 2.125-4.625 4.898c0 2.75 2.097 4.902 4.625 4.902c1.449 0 2.55-.6 3.25-1.578v1.352h2V57.102zm-60.824.625l-2 .598v2.5H33.65v1.926h1.703v4.476c0 2.421 1.224 3.274 4.324 2.899v-1.801c-1.527.074-2.3.101-2.3-1.098V62.75h2.273v-1.926h-2.297zm7.875 2.825c-2.528 0-4.625 2.125-4.625 4.898c0 2.75 2.098 4.902 4.625 4.902c1.45 0 2.547-.6 3.25-1.578v1.352h2v-9.301h-2v1.3c-.704-.976-1.801-1.573-3.25-1.573m39.824.023c-1.25 0-2.25.477-2.875 1.477v-1.2h-2v9.297h2v-5c0-1.898 1.05-2.672 2.375-2.672c1.25 0 2.074.723 2.074 2.149v5.5h2v-5.727c0-2.398-1.5-3.824-3.574-3.824m21.848 0c-2.824 0-4.922 2.124-4.922 4.902c0 2.75 2.126 4.899 4.922 4.899c1.829 0 3.426-.95 4.176-2.426l-1.723-.973c-.454.847-1.352 1.422-2.477 1.422c-1.625 0-2.875-1.25-2.875-2.922c0-1.676 1.227-2.926 2.875-2.926c1.125 0 2.051.551 2.45 1.426l1.726-1c-.75-1.453-2.323-2.402-4.152-2.402m8.875.027c-1.898 0-3.399 1.098-3.399 2.848c0 3.323 5 2.403 5 4.05c0 .75-.676 1.052-1.574 1.052c-1.028 0-1.778-.5-2.074-1.352l-1.727 1c.601 1.324 1.95 2.176 3.801 2.176c2 0 3.625-1.023 3.625-2.875c0-3.45-5-2.425-5-4.125c0-.65.626-.977 1.348-.95c.778 0 1.426.324 1.75 1.051l1.703-.953c-.653-1.222-1.925-1.922-3.453-1.922m8.578 0c-1.903 0-3.402 1.098-3.402 2.848c0 3.323 5 2.403 5 4.05c0 .75-.677 1.052-1.575 1.052c-1.024 0-1.774-.5-2.074-1.352l-1.726 1c.6 1.324 1.948 2.176 3.8 2.176c2 0 3.625-1.023 3.625-2.875c0-3.45-5-2.425-5-4.125c0-.65.626-.977 1.352-.95c.774 0 1.422.324 1.75 1.051l1.7-.953c-.654-1.222-1.927-1.922-3.45-1.922m-71.527.223v9.3h2v-9.3zm7.852 0l2.925 9.3h1.973l1.95-6.273l1.925 6.274h1.977l2.925-9.301h-2.125l-1.83 6.426l-1.92-6.426h-1.925L64.6 67.25l-1.798-6.426h-2.125zm15.148 0v9.3h2v-9.3zM45.525 62.5c1.676 0 2.953 1.25 2.953 2.976c0 1.722-1.277 2.973-2.953 2.973c-1.672 0-2.922-1.25-2.95-2.973c0-1.727 1.279-2.976 2.95-2.976m49.703 0c1.672 0 2.949 1.25 2.949 2.976c0 1.722-1.277 2.973-2.95 2.973c-1.675 0-2.953-1.25-2.953-2.973c0-1.727 1.278-2.976 2.953-2.976zM6.603 64C3.075 64 .876 65.774 0 69.3c1.324-1.776 2.875-2.425 4.625-1.976c1 .25 1.727.977 2.523 1.8c1.301 1.325 2.8 2.852 6.078 2.852c3.523 0 5.723-1.777 6.598-5.3c-1.324 1.773-2.875 2.426-4.625 1.972c-1-.25-1.722-.973-2.523-1.797C11.399 65.522 9.899 64 6.603 64'/%3E%3C/svg%3E");
  background-color: currentColor;
  -webkit-mask-image: var(--svg);
  mask-image: var(--svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.logos--tailwindcss-icon {
  display: inline-block;
  width: 30px;
  height: 24px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 154'%3E%3Cdefs%3E%3ClinearGradient id='logosTailwindcssIcon0' x1='-2.778%25' x2='100%25' y1='32%25' y2='67.556%25'%3E%3Cstop offset='0%25' stop-color='%232298bd'/%3E%3Cstop offset='100%25' stop-color='%230ed7b5'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23logosTailwindcssIcon0)' d='M128 0Q76.8 0 64 51.2Q83.2 25.6 108.8 32c9.737 2.434 16.697 9.499 24.401 17.318C145.751 62.057 160.275 76.8 192 76.8q51.2 0 64-51.2q-19.2 25.6-44.8 19.2c-9.737-2.434-16.697-9.499-24.401-17.318C174.249 14.743 159.725 0 128 0M64 76.8q-51.2 0-64 51.2q19.2-25.6 44.8-19.2c9.737 2.434 16.697 9.499 24.401 17.318C81.751 138.857 96.275 153.6 128 153.6q51.2 0 64-51.2q-19.2 25.6-44.8 19.2c-9.737-2.434-16.697-9.499-24.401-17.318C110.249 91.543 95.725 76.8 64 76.8'/%3E%3C/svg%3E");
}

.logos--nextjs {
  display: inline-block;
  width: 50px;
  height: 24px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 104'%3E%3Cpath d='M429.543.043v16.46h-35.377V103.1h-17.69V16.504h-36.114V.043zm3.977 93.24c1.246 0 2.336.448 3.259 1.346c.936.897 1.402 1.972 1.415 3.224a4.5 4.5 0 0 1-.66 2.327a4.8 4.8 0 0 1-1.714 1.665a4.4 4.4 0 0 1-2.3.626c-1.296 0-2.398-.449-3.32-1.346c-.923-.898-1.38-1.985-1.368-3.272q-.017-1.878 1.368-3.224c.922-.898 2.024-1.346 3.32-1.346M82.916 103.1L17.69 22.028v81.03H0V0h22.111l82.406 102.329l.001-85.825l-.007-16.461h89.18v16.46h-71.484v26.48h57.488v16.461h-57.488V86.64h71.485v16.46zm167.469-43.813L261.978 73.7l-23.755 29.522h-23.215zM238.223.086l29.93 37.17L297.989.2l23.15-.035l-41.396 51.485l41.463 51.493h-23.217L215.074.086zm225.488 58.97h7.838v30.2c-.011 2.775-.612 5.148-1.785 7.145c-1.187 1.995-2.83 3.519-4.938 4.594c-2.098 1.062-4.555 1.606-7.348 1.606c-2.553 0-4.841-.46-6.879-1.358s-3.655-2.244-4.842-4.016c-1.2-1.771-1.787-3.98-1.787-6.625h7.852c.012 1.157.275 2.16.778 3a5 5 0 0 0 2.086 1.924q1.348.675 3.091.674c1.26 0 2.338-.26 3.213-.792q1.312-.78 2.014-2.338c.455-1.028.695-2.303.707-3.815zm40.09 11.81c-.19-1.83-1.03-3.26-2.492-4.275c-1.475-1.028-3.38-1.535-5.718-1.535c-1.64 0-3.055.248-4.23.732c-1.174.496-2.085 1.157-2.709 1.996c-.622.838-.934 1.795-.959 2.87c0 .897.216 1.677.635 2.326a5.2 5.2 0 0 0 1.714 1.666a11.5 11.5 0 0 0 2.398 1.145q1.33.46 2.66.78l4.087 1.004c1.643.378 3.237.885 4.759 1.535c1.521.638 2.9 1.453 4.11 2.433q1.817 1.47 2.877 3.543c.707 1.382 1.067 3 1.067 4.866c0 2.515-.647 4.724-1.954 6.637c-1.306 1.902-3.188 3.39-5.657 4.465c-2.457 1.063-5.43 1.606-8.929 1.606c-3.38 0-6.328-.52-8.81-1.559c-2.492-1.027-4.434-2.54-5.837-4.524s-2.157-4.405-2.265-7.251h7.768c.107 1.488.587 2.728 1.402 3.732c.826.992 1.905 1.724 3.224 2.22c1.33.485 2.816.733 4.458.733c1.714 0 3.224-.26 4.53-.768c1.295-.508 2.313-1.216 3.045-2.138c.743-.91 1.115-1.984 1.127-3.212c-.012-1.122-.349-2.055-.996-2.788q-.989-1.098-2.733-1.842c-1.173-.496-2.54-.945-4.098-1.334l-4.962-1.252c-3.584-.91-6.424-2.291-8.498-4.146c-2.085-1.854-3.116-4.31-3.116-7.393c0-2.527.695-4.748 2.098-6.65c1.39-1.9 3.296-3.377 5.705-4.428c2.42-1.063 5.154-1.583 8.197-1.583c3.093 0 5.801.52 8.139 1.583c2.336 1.051 4.171 2.515 5.5 4.381c1.331 1.867 2.027 4.004 2.063 6.425z'/%3E%3C/svg%3E");
}

.devicon--threejs {
  display: inline-block;
  width: 38px;
  height: 24px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'%3E%3Cg color='%23000'%3E%3Cpath d='M16.219 15.762a1.13 1.13 0 0 0-1.076 1.399l24.394 98.742a1.13 1.13 0 0 0 1.879.544l73.386-70.59a1.13 1.13 0 0 0-.47-1.899L16.55 15.806a1.1 1.1 0 0 0-.331-.044m1.584 2.754l94.024 27.07l-70.566 67.877z'/%3E%3Cpath d='M65.137 29.84a1.13 1.13 0 0 0-.807.315L27.654 65.46a1.13 1.13 0 0 0 .471 1.898L76.984 81.44a1.13 1.13 0 0 0 1.409-1.355L66.21 30.698a1.13 1.13 0 0 0-1.073-.858m-.651 3.3l11.248 45.59l-45.104-13z'/%3E%3Cpath d='M46.914 47.313a1.13 1.13 0 0 0-1.076 1.399l6.054 24.531a1.129 1.129 0 0 0 1.88.543l18.222-17.563a1.13 1.13 0 0 0-.472-1.898l-24.277-6.968a1.1 1.1 0 0 0-.331-.044m1.583 2.751l20.522 5.89L53.614 70.8z'/%3E%3Cpath d='M40.902 22.809a1.13 1.13 0 0 0-.807.316L21.873 40.687a1.13 1.13 0 0 0 .472 1.898l24.273 6.969a1.13 1.13 0 0 0 1.408-1.356l-6.051-24.53a1.13 1.13 0 0 0-1.073-.86zm-.65 3.3l5.114 20.736l-20.517-5.89l15.403-14.847zm49.201 10.684a1.13 1.13 0 0 0-.806.316L70.423 54.67a1.129 1.129 0 0 0 .472 1.899l24.274 6.968a1.13 1.13 0 0 0 1.408-1.356l-6.05-24.53a1.13 1.13 0 0 0-1.074-.859zm-.65 3.3l5.114 20.737L73.4 54.94zM52.944 71.864a1.13 1.13 0 0 0-.74.315L33.982 89.742a1.13 1.13 0 0 0 .472 1.898l24.278 6.968a1.13 1.13 0 0 0 1.407-1.355l-6.055-24.531a1.13 1.13 0 0 0-1.14-.858m-.582 3.3l5.118 20.737l-20.522-5.89z'/%3E%3C/g%3E%3C/svg%3E");
}

/*# sourceMappingURL=main.css.map */