/******************************/
/*        COLOUR PALETTE      */
/******************************/

colour-palette {
  color: 
/* background */ #1b1639 rgba(27, 22, 57, 1) /* Option 1 */ #211b42
    rgba(33, 27, 66, 1) /* Option 2 */ /* project-card */ #1a1635
    rgb(26, 22, 53) /* navbar */ #040309 rgba(4, 3, 9, 1) #fff
    rgba(255, 255, 255, 1) #d3d8e8 rgb(211, 216, 232) #0d1224 rgb(13, 18, 36)
    #ff3b88 rgba(255, 59, 136, 1) #ff91bd rgba(255, 145, 189, 1) #260a53
    rgba(38, 10, 83, 1) /* quote */ #8972b7 rgba(137, 114, 183, 1)
    /* optional */ #079fab rgba(7, 159, 171, 1);
}

/******************************/
/*        PAGE LAYOUT         */
/******************************/

html,
body {
  width: 100%;
  height: 100%;
}

body {
  background-color: #211b42;
  font-family: space-heavy;
  font-weight: 300;
  font-size: 18px;
  line-height: 1.6;
  margin: 0px;
  text-align: center;
  min-width: 300px;
}

nav,
header,
section,
footer {
  display: block;
}

h1,
h2,
h3 {
  font-weight: normal;
}

img {
  max-width: 100%;
}

* {
  box-sizing: border-box;
}

/******************************/
/*     PROJECT GRIDS          */
/******************************/

.big-grid-single-column {
  display: grid;
  grid-template-columns: 430px;
  justify-content: center;
  align-content: center;
}
.small-grid-single-column {
  display: grid;
  grid-template-columns: 290px;
  justify-content: center;
  align-items: start;
}
.big-grid-two-columns {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px 30px;
  width: 100%;
}
.small-grid-three-columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px 10px;
  width: 100%;
}
.project-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  padding: 12px;
  background: #1a1635;
}
.grid-thumbnail a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  width: 100%;
  height: 100%;
}
.grid-thumbnail img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 10px;
  border: 5px solid #fff;
  transition: 0.5s ease;
}
.grid-thumbnail .thumbnail-info {
  opacity: 0;
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  color: #ff3b88;
  font-weight: bold;
  line-height: 1.2;
  font-family: space-heavy;
  text-transform: uppercase;
  background-color: rgb(38, 10, 83);
  border-radius: 10px;
  border: 5px solid #ff3b88;
  transition: 0.5s ease;
}
.grid-thumbnail .thumbnail-info:hover {
  color: #ff91bd;
  text-shadow: 0 0 10px #ff3b88;
  transition: 0.5s ease;
  opacity: 1;
  box-shadow: 0 0 10px #ff3b88;
  background-color: rgba(38, 10, 83, 0.9);
}
.categories .grid-thumbnail .thumbnail-info {
  background-color: transparent;
  border: 5px solid #fff;
  opacity: 1;
  font-size: 1.7em;
  padding: 18%;
}
.categories .grid-thumbnail .thumbnail-info:hover {
  border: 5px solid #ff3b88;
  box-shadow: 0 0 10px #ff3b88;
}
.project-details {
  margin: 10px 0;
}
.project-title {
  font-size: 1em;
  text-align: left;
  font-family: "Inter", sans-serif;
  font-weight: 900;
  text-transform: uppercase;
}
.project-description {
  font-size: 1em;
  margin: 10px 0;
  font-family: "Inter", sans-serif;
  text-align: left;
}
.project-technologies {
  display: flex;
  flex-wrap: wrap;
  font-family: "Inter", sans-serif;
  margin: 15px 0;
}
.technology-icon {
  width: 26px;
  height: 26px;
  margin: 5px;
  display: inline-block;
  vertical-align: middle;
}
.project-links {
  text-align: left;
  margin-top: auto;
}
.project-links .btn {
  padding: 5px 10px;
  border-radius: 50px;
  font-size: 0.65em;
  align-items: center;
  text-align: center;
  white-space: nowrap;
  margin: 3px 0;
}

/******************************/
/*           NAVBAR           */
/******************************/

.navbar {
  width: 100%;
  margin: 0;
  min-height: 70px;
  background-color: #040309;
  font-size: 1.1em;
}

.navbar-list {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-item {
  margin: 0px 20px;
}

.navbar-list li a {
  font-weight: bold;
}

.navbar a {
  color: #fff;
  float: center;
}

.custom-toggler {
  position: relative;
  left: 50%;
  transform: translateX(-51%);
  align-items: center;
  margin: 5px 0;
}

/* used to modify the colour of the toggler icon */
/* .custom-toggler .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
} */

.custom-toggler-text {
  padding: 5px;
}

.custom-toggler.navbar-toggler {
  border: 3px solid #fff;
  transition: border-color 0.5s ease;
  color: #fff;
  text-align: center;
  box-shadow: none;
}

.custom-toggler.navbar-toggler:hover {
  border-color: #ff3b88;
  color: #fff;
}

.custom-toggler.navbar-toggler:active {
  border-color: #fff;
  color: #ff3b88;
}

.navbar-list {
  list-style-type: none;
}

.navbar-list li {
  float: left;
  margin-left: 10px;
  margin-right: 10px;
  margin-top: 6px;
  margin-bottom: 6px;
}

.navbar-list a {
  text-decoration: none;
  padding-bottom: 1px;
}

.navbar-list a:hover {
  color: #ff3b88;
  transition: 0.5s ease;
}

.menu-selected {
  border-bottom: solid 2px #ff3b88;
  color: #ff3b88;
}

/******************************/
/*           HEADER           */
/******************************/

header {
  position: relative;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-color: #1b1639;
  width: 100%;
}

/* Header style and image */
.header-large {
  height: 650px;
}

.header-small {
  height: 550px;
}

.header-smaller {
  height: 500px;
  min-height: 20%;
}

/* header sphere effect */
.header-large .sphere-2 {
  width: 500px;
  height: 500px;
}

.header-small .sphere-2 {
  width: 450px;
  height: 450px;
}

.header-smaller .sphere-2 {
  width: 400px;
  height: 400px;
}

.mask {
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.2);
}

/* Header content */
.header-content {
  position: absolute;
  width: 100%;
  top: 50%;
  padding: 0px 20px;
  text-align: center;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.header-content-inner {
  margin-right: auto;
  margin-left: auto;
  max-width: 1000px;
}

.header-title {
  font-size: 3.2em;
  line-height: 1.1;
  letter-spacing: 24px;
  font-weight: 700;
  width: 100%;
  text-transform: uppercase;
  white-space: nowrap;
  color: #fff;

  text-shadow: 0 0 3px rgba(0, 0, 0, 1), 0 0 5px rgba(0, 0, 0, 1),
    0 0 10px rgba(0, 0, 0, 1), 0 0 15px rgba(0, 0, 0, 1),
    0 0 20px rgba(255, 255, 255, 0.4), 0 0 25px rgba(255, 255, 255, 0.4);
}

.header-subtitle {
  font-size: 1.3em;
  letter-spacing: 14px;
  font-weight: 700;
  font-style: italic;
  color: #fff;
  text-shadow: 0 0 5px rgba(255, 59, 136, 1), 0 0 10px rgba(255, 59, 136, 1),
    0 0 15px rgba(255, 59, 136, 1), 0 0 20px rgba(255, 59, 136, 1),
    0 0 25px rgba(255, 59, 136, 1);
}

.header-icon {
  display: flex;
  justify-content: space-between;
  width: 250px;
  margin: 0 auto;
  align-items: center;
  height: 40px;
  line-height: 40px;
}

.header-icon img {
  width: 20px;
}

/* used to create the lines around subtitle */
.glowing-line-container {
  position: relative;
}

.glowing-line-container::before,
.glowing-line-container::after {
  content: "";
  position: absolute;
  margin: 0 auto;
  top: 50%;
  transform: translateY(-50%);
  width: 13%;
  height: 0.2em;
  background-color: #ff3b88;
  box-shadow: 0 0 10px #ff3b88, 0 0 20px #ff3b88;
  border-radius: 5px;
}

.glowing-line-container::before {
  left: 5%;
}

.glowing-line-container::after {
  right: 5%;
}

/******************************/
/*        PAGE CONTENT        */
/******************************/

section {
  height: auto;
  color: #fff;
  line-height: 1.6;
}

.page-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 50px;
}

/******************************/
/*           FOOTER           */
/******************************/

footer {
  background-color: rgba(0, 0, 0, 0.2);
  font-size: 15px;
  color: #ff3b88;
  text-align: center;
  letter-spacing: 1px;
}

footer .line {
  width: 60px;
  background: #fff;
  height: 2px;
  border-radius: 5px;
}

.footer-links a {
  color: #fff;
  text-decoration: none;
  transition: 0.5s ease;
  font-size: 13px;
  text-transform: uppercase;
}

.footer-links a:hover {
  color: #ff3b88;
  text-shadow: none;
}

.footer-copywrite {
  font-size: 15px;
  color: #fff;
  font-family: "Inter", sans-serif;
}

/* Social icons */
.social-link:hover .social-icon-background {
  color: #ff3b88;
}

.social-link:hover .social-icon-glyph {
  color: #ff3b88;
}

.social-icon {
  margin: 0 -10px;
}

#social-links {
  margin-top: -9px;
  margin-bottom: 10px;
}

.social-icon-glyph {
  color: #fff;
  font-size: 20px;
  transition: 0.5s ease;
}

.social-icon-background {
  transition: fill 0.3s ease;
  color: #fff;
}

/******************************/
/*          BUTTONS           */
/******************************/

.btn {
  color: #fff;
  transition: border-color 0.5s ease;
  border: 3px solid #fff;
}

.btn:hover {
  border-color: #ff3b88;
  color: #fff;
}

.btn:active {
  border-color: #fff;
  color: #ff3b88;
}

.btn-isolated-1 {
  margin: -25px auto auto auto;
}

.btn-isolated-2 {
  margin: 30px auto auto auto;
}

.btn-isolated-1 .btn,
.btn-isolated-2 .btn {
  border-radius: 50px;
}

.project-links-wrapper {
  display: flex;
  justify-content: center;   
  flex-wrap: wrap;           
  gap: 12px;                
  margin-top: -20px;
}

/******************************/
/*         BADGE              */
/******************************/

.badge-link .badge {
  display: inline-block;
  margin: 3px 0;
  cursor: pointer;
  transition: border-color 0.5s ease;
  background-color: none;
  border: solid 2px #d3d8e8;
  color: #d3d8e8;
}

/* .badge-no-link .badge {
  border: solid 2px #ff3b88;
} */

.badge-link .badge:hover {
  /* background-color: #ff3b88; */
  border: solid 2px #ff3b88; /* Change this to your desired hover color */
  color: #d3d8e8; /* Change this to your desired hover text color */
}

/* Optional: Style the link itself, if needed */
.badge-link {
  text-decoration: none;
}

/******************************/
/*         CONTACT FORM       */
/******************************/

input[type="text"],
select,
textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #fff;
  border-radius: 10px;
  box-sizing: border-box;
  margin-top: 6px;
  margin-bottom: 16px;
  resize: vertical;
  font-family: "Inter", sans-serif;
  font-weight: 400;
}

input[type="submit"] {
  background-color: transparent;
  color: #fff;
  font-size: large;
  transition: border-color 0.5s ease;
  border: 3px solid #fff;
  padding: 12px 20px;
  border-radius: 50px;
}

input[type="submit"]:hover {
  border-color: #ff3b88;
  color: #fff;
}

input[type="submit"]:active {
  border-color: #fff !important;
}

.form-container {
  color: #fff;
  font-size: 16px;
  text-align: left;
  margin: auto;
}

/******************************/
/*         YOUTUBE VIDEO      */
/******************************/

.video-border {
  border: solid 5px #fff;
  border-radius: 10px;
  overflow: hidden;
}

/******************************/
/*      CAROUSEL IMAGES       */
/******************************/

.carousel-control-prev-icon,
.carousel-control-next-icon {
  /* background-color: #1a1537; */
  background-color: #211b42;
  border-radius: 20%;
  width: 70px;
  height: 70px;
  background-size: 50px 50px;
}

.carousel-item {
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
}

.carousel .carousel-inner img {
  width: 100%;
  height: auto;
  object-fit: contain;
  border: solid 5px #fff;
  border-radius: 10px;
}

.carousel-item.active {
  opacity: 1;
}

.carousel-container {
  margin: 20px auto;
}

.carousel-caption {
  margin-bottom: -30px; /* Adjust this value as needed */
}

.carousel-indicators button {
  padding: 0;
}

/* Change the color of the carousel indicators */
.carousel-indicators {
  margin-bottom: 5px;
}

/* activate this if using captions for the carousel images */
.carousel-caption p {
  font-family: "Inter", sans-serif;
  font-style: italic;
  /* font-weight: 400; */
  border-radius: 10px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 1);
  background-color: rgb(251, 8, 70, 0.7);
  background-color: rgba(33, 27, 66, 0.8);
  padding: 0.5rem; /* Add padding for better readability */
}

/******************************/
/*        EXPERIENCE          */
/******************************/

.experience {
  /* font-family: "Source Sans Pro", sans-serif; */
  font-family: "Inter", sans-serif;
  font-weight: 400;
  text-align: left;
  font-size: 18px;
  color: #d3d8e8;
}

/* heading e.g., Summary */
.experience h2 {
  display: inline-block;
  font-size: 28px;
  margin: 0;
  font-weight: 700;
  color: #fff;
}

/* company and university */
.subtitle-right {
  font-weight: 700;
}

/* city and country */
.heading-container .country-city {
  white-space: nowrap;
  margin-left: auto;
  text-align: right;
  font-weight: 400;
}

/* job and degree title */
.heading-container .title {
  font-size: 13px;
  text-transform: uppercase;
}

/* date */
.heading-container .italic:not(.pink) {
  font-size: 16px;
}

/* courses */
.course-info span {
  font-size: 17px;
}

.course-info {
  margin-right: 20px;
}

.pink {
  color: #ff3b88 !important;
}

.heading-container {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.same-line {
  display: flex;
  align-items: flex-start;
}

.same-line .bold {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  min-width: 120px;
  margin-right: 10px;
}

.italic {
  font-style: italic;
}

.bold {
  font-weight: 700;
}

.year {
  flex: 0 0 70px;
  text-align: center;
}

.right-align {
  white-space: nowrap;
  text-align: right;
}

.heading-separator {
  margin: 0 5px 20px 0;
  position: relative;
  border: none;
  top: -16px;
  border-top: 3px solid transparent;
  max-width: 0;
}

@keyframes expandSeparator {
  0% {
    max-width: 0%;
  }

  100% {
    max-width: 100%;
    border-color: #fff;
  }
}

.summary.active {
  margin-left: calc(110px + 24px);
  animation: expandSeparator 1s forwards;
}

.work-experience.active {
  margin-left: calc(220px + 24px);
  animation: expandSeparator 2.1s forwards;
}

.education.active {
  margin-left: calc(125px + 24px);
  animation: expandSeparator 1.3s forwards;
}

.courses-certifications.active {
  margin-left: calc(325px + 24px);
  animation: expandSeparator 3.5s forwards;
}

.skills.active {
  margin-left: calc(55px + 24px);
  animation: expandSeparator 0.7s forwards;
}

.publications.active {
  margin-left: calc(155px + 24px);
  animation: expandSeparator 1.2s forwards;
}

.additional-info.active {
  margin-left: calc(295px + 24px);
  animation: expandSeparator 3.2s forwards;
}

.experience ul {
  margin-right: 100px;
  margin-top: 20px;
  margin-bottom: 20px;
}

.experience .publications-margin {
  margin-right: 20px;
}

.experience .fade {
  opacity: 0;
  transition: opacity 0.5s;
}

/* The typing effect */
.typewriter {
  overflow: hidden;
  white-space: nowrap;
  letter-spacing: 0.01em;
  opacity: 0;
  animation: typing 3.5s steps(40, end);
}

@keyframes typing {
  from {
    width: 0;
  }

  to {
    width: 100%;
  }
}

/******************************/
/*         FEATURES           */
/******************************/

/* used in about page */
.rounded-image {
  max-width: 29%;
  height: auto;
  margin: 0 auto 50px auto;
  border: 4px solid #8972b7;
  border-radius: 50%;
  box-shadow: 0 0 10px #fff;
}

/* used for all the hyperlinks */
.hyperlink a {
  color: #ff3b88;
  text-decoration: none;
  word-spacing: normal;
  font-weight: normal;
}

.hyperlink a:hover {
  color: #ff91bd;
  text-shadow: 0 0 5px #ff3b88;
}

/* second font used in the project */
.text-content {
  /* font-family: "Source Sans Pro", sans-serif; */
  font-family: "Inter", sans-serif;
  font-weight: 400;
  text-align: left;
  color: #d3d8e8;
  margin: 30px 0;
}

.subtitle-1 {
  margin: 10px auto 20px auto;
}

.subtitle-2 {
  margin: auto auto 30px auto;
  text-transform: capitalize;
}

.subtitle-3 {
  margin: auto auto 40px auto;
  text-align: center;
}

.subtitle-4 {
  font-size: large;
  font-weight: 700;
  margin-bottom: 10px;
  color: #fff;
}

.subtitle-5 {
  font-size: medium;
  font-weight: 700;
  margin: 0 0 10px 10px;
  color: #fff;
}

/* creates a gap between all-projects section  */
.break {
  margin: 25px auto;
  border: solid;
  border-color: transparent;
}

/* fades in all content */
.fade-in {
  animation: fadeInAnimation 0.7s ease-in forwards;
  opacity: 0;
}
@supports not (animation: fadeInAnimation 0.7s ease-in forwards) {
  .fade-in {
    opacity: 1;
  }
}

@keyframes fadeInAnimation {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}
