/*GENERAL*/
@font-face{
    font-family: "geist"; /*source for font: https://github.com/vercel/geist-font*/
    src: url("../assets/fonts/GeistVF.woff") format('woff'),
    url("../assets/fonts/fonts/GeistVF.woff2") format('woff2');
}

body{
    margin: 0;
    padding: 0;
    font-family: 'geist', sans-serif;
    width: 100%;
    overflow-x: hidden;
    min-height: 100%; /*ensure that the body itself takes up the full height of the document*/
    position: relative;
    font-size: 1.125rem;
    box-sizing: border-box;
    background-color: var(--primary-bg);
}

:root{
    --primary-bg: rgba(239, 218, 163, 0.4);
    --accent: rgba(233, 91, 81, 1);
    --white: rgba(255, 255, 255, 0.9);
    --dark-grey: #242421;
}

/*noise texture overlay*/
/* body::before {
  position: absolute;
  left: 0;
  top: 0;
  content: '';
  width: 100%;
  height: 100%;
  z-index: -1;
  background: var(--primary-bg);
  filter: url(#noiseFilter);
  opacity: 40%;
} */

*{
    box-sizing: border-box;
}

figure{
    margin: 0;
}

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

h2{
    font-weight: 500;
    text-transform: uppercase;
    font-size: 1.875rem;
}

h1{
    font-weight: 500;
    text-transform: uppercase;
    font-size: 2.5rem;
}

h1.section-heading{
    margin-top: 7rem;
    margin-bottom: 2rem;
    padding-left: 3vw;
    min-height: 50px; /*ensure that the item doesn't shrink when the letter shuffling animation starts*/
}

/* LOADER */
body.loading .loader {
    display: flex; /* Show the loader */
}
.loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.9); /* Semi-transparent background */
    z-index: 1000; /* Place it above all content */
    display: none; /* Hidden by default */
    align-items: center;
    justify-content: center;
    font-size: 24px; 
}

/*MOUSE STAR TRAIL*/
/*credits: https://www.winterwind.com/tutorials/css/60*/
.star {
	position: fixed;
	pointer-events: none;
    z-index: 9999;
}

.star:before, .star:after {
	position: absolute;
	top: 0;
	left: 0;
	content: '\2726';
	font-size: 9px;
    z-index: 9999;
}

.star:before {
	color: transparent;
	text-shadow: 0 0 3px rgb(250, 250, 174);
}

.star:after {
	background: black;
    background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

/*HEADER*/
section.cv-bar{
    padding-inline: 1rem;
    padding-top: 1rem;
}

a.basic-btn{
    float: right;
    text-decoration: none;
    padding-inline: 1rem;
    padding-block: 0.5rem;
    color: black;
    border-radius: 15px;
    background-color: white;
    font-weight: 600;
    opacity: 0.7;
}

a.basic-btn:hover{
    opacity: 1;
}

header h1{
    margin: 0;
    font-size: 4rem;
    position: relative;
    letter-spacing: -1px;
    /* transform: translateY(50px); 
    transition: transform 1s ease-in;
    transform-origin: bottom;
    opacity: 0; */
}

.name>h1{
    transform: translateY(50px); 
    transition: transform 0.4s ease-in;
    transform-origin: bottom;
    opacity: 0;
}

.name>h1.active{
    transform: translateY(0);
    opacity: 1;
}

h1.text-ani{
    transform: translateY(50px); 
    transition: transform 0.3s ease-in;
    transform-origin: bottom;
    opacity: 0;
}

h1.text-ani.active{
    transform: translateY(0); /* Slide up */
    opacity: 1;
}

section.header-content{
    position: relative;
}

.header-content .name{
    position: absolute;
    bottom: 60px;
    left: 170px;
    z-index: 2;
    overflow: hidden; /**/
}

.header-content figcaption{
    position: absolute;
    top: -20px;
    right: -60px;
    width: 100%;
    transform: rotate(60deg);
}

.header-content figure{
    position: relative;
}

img.gradient-circle{
    width: 45vw;
}

/*ABOUT SECTION*/
section.about p{
    text-align: center;
    margin-inline: auto;
    padding-inline: 3vw;
    font-size: 24px;
    line-height: 1.5;
}

/*TECHNOLOGY STACK SECTION*/
/*lines around the headings in 'Technology stack' section*/
.heading-container{
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 1rem;
}
.heading-container h2{
    margin: 0;
}
.line-decoration{
    flex: 1; /*make them take up the rest of the space*/
    height: 2px;
    background-color: black;
}
.blob-bg{
    position: relative;
    min-width: 300px;
    min-height: 300px;
}

.blob-bg::before{
    content: '';
    position: absolute;
    bottom: 0; 
    left: 50%; 
    transform: translateX(-50%); 
    width: 380px;
    height: 300px;
    background: radial-gradient(ellipse at 50% 50%, rgba(255, 0, 0, 0.2), rgba(255, 0, 0, 0) 40%), radial-gradient(circle at 30% 40%, rgba(255, 0, 0, 0.3), rgba(255, 0, 0, 0) 30%), radial-gradient(circle at 70% 40%, rgba(255, 0, 0, 0.3), rgba(255, 0, 0, 0) 30%), radial-gradient(circle at 52% 65%, rgba(255, 0, 0, 0.2), rgba(255, 0, 0, 0) 35%), radial-gradient(circle at 33% 75%, rgba(255, 0, 0, 0.1), rgba(255, 0, 0, 0) 15%), radial-gradient(circle at 52% 80%, rgba(255, 0, 0, 0.1), rgba(255, 0, 0, 0) 25%); /*OG: radial-gradient(ellipse at center, rgba(255, 0, 0, 0.3), rgba(255, 0, 0, 0) 70%)*/
    background-size: 80% 80%;
    background-position: center;
    /* filter: blur(10px);  */
    z-index: 0; 
    transition: background-size 1s ease, background-position 1s ease;
    background-repeat: no-repeat;
    padding-bottom: 2.5rem;
}

.blob-bg:hover::before{
    background: radial-gradient(ellipse at 50% 50%, rgba(255, 0, 0, 0.2), rgba(255, 0, 0, 0) 40%), radial-gradient(circle at 30% 40%, rgba(255, 0, 0, 0.3), rgba(255, 0, 0, 0) 30%), radial-gradient(circle at 70% 40%, rgba(255, 0, 0, 0.3), rgba(255, 0, 0, 0) 30%), radial-gradient(circle at 52% 65%, rgba(255, 0, 0, 0.2), rgba(255, 0, 0, 0) 35%), radial-gradient(circle at 33% 75%, rgba(255, 0, 0, 0.1), rgba(255, 0, 0, 0) 15%), radial-gradient(circle at 52% 80%, rgba(255, 0, 0, 0.1), rgba(255, 0, 0, 0) 25%);
    background-size: 103% 103%;
    background-position: center bottom;
    background-repeat: no-repeat;
}

.experties-wrapper{
    display: flex;
    justify-content: center;
    margin-block: 4rem;
}
.experties-card{
    position: relative;
    z-index: 2;
    width: 450px;
    min-height: 385px;
    /* background: rgba(226, 218, 218, 0.2);  */
    /* border-radius: 8px; */
    /* box-shadow: 0 4px 30px rgba(73, 73, 73, 0.1); */
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 3px solid var(--white);
    border-right: none;
    padding-inline: 3rem;
}

.blob-bg:last-child>.experties-card{
    border-right: 3px solid var(--white);
}

.blob-bg:last-child>.experties-card ul{ /*compensate with margin for the lack of a second line of heading*/
    margin-top: 71px;
}

.experties-card ul{
    list-style: none; 
    padding-left: 0px; 
}

.experties-card li{
    position: relative; 
    margin-bottom: 10px;
    transition: padding-left 0.3s ease;
    padding: 0.25rem;
    padding-left: 25px; /* Space between bullet and text */
}

.experties-card li.active {
    padding-left: 40px;
}

.experties-card li.active::before {
    left: 15px;
}

.experties-card li::before{
    content: '';
    position: absolute;
    left: 0;
    top: 9px; 
    width: 12px; 
    height: 12px;
    border-radius: 50%; 
    background: radial-gradient(circle, rgba(255, 0, 0, 1) 10%, rgba(255, 0, 0, 0) 80%);
    transition: left 0.3s ease;
}

/*the number above the technology stack cards*/
.experties-card>.card-number{
    position: absolute;
    top: -30px;
    left: 0;
    letter-spacing: 3px;
}
span.red{
    color: var(--accent);
}

/*PROJECTS*/
section.projects>.center{
    flex-direction: column;
    gap: 20px;
}
.project-wrapper{
    display: flex;
    flex-direction: column;
}
.project-content{
    display: flex;
    gap: 40px;
}
/*carousel*/
.carousel-container{
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
}

.carousel {
    aspect-ratio: 16/9;
    width: 100%;
    position: relative;
    overflow: hidden;
}
  
.carousel .item {
    opacity: 0;
    width: 100%;
    height: 100%;
    display: none;
    transition: opacity 0.5s ease-in-out;
}
  
.carousel .item img, .carousel .item .project-description, .carousel .item video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.carousel .item img.contain, .carousel .item video.contain{ /*for the vertical images and videos*/
    object-fit: contain;
}

.project-description{
    background-color: #242421;
}

.project-description>p{
    width: 80%;
    color:#ffffe6;
    line-height: 1.5;
}

  
.carousel .item.active {
    opacity: 1;
    display: block;
}
  
.carousel-btn {
    padding: 0.5rem 0.75rem;
    position: absolute;
    transform: translateY(-50%);
    top: 50%;
    outline: none;
    border: none;
    cursor: pointer;
    border-radius: 15px;
    font-size: 12px;
    font-weight: 900;
    color: #10100e;
    background-color: #ffffe6;
    transition: transform 0.2s ease-in-out;
}
  
.carousel-btn:active, .carousel-btn:focus {
    transform: translateY(-50%);
}
  
.carousel-btn:hover {
    transform: translateY(-50%);
}
  
.prev {
    left: 1%;
}

.prev>img{ /*rotate the arrow to point back*/
    transform: rotate(180deg);
}
  
.next {
    right: 1%;
}
  
.dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    position: relative;
    top: 10px;
}
  
.dots .dot {
    cursor: pointer;
    height: 10px;
    width: 10px;
    background-color: var(--dark-grey);
    transition: background-color 0.2s ease;
    border-radius: 50%;
    border: 1px solid var(--dark-grey);
}
  
.dots .dot.active {
    background-color: #ffffe6;
}

.project-title h2{
    margin-block: 0.5rem;
}
.project-info{
    flex: 1;
}
.role-container, .time-container, .type-container{
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    align-items: center;
}

.info-title{
    text-transform: uppercase;
    color: var(--dark-grey);
    font-size: 16px;
    font-weight: 600;
}

.used-tech-container ul{
    padding-left: 0;
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}


.used-tech-container ul li{
    padding: 5px 10px;
    border: 1px solid var(--dark-grey);
    color: var(--dark-grey);
    border-radius: 15px;
}

/*PROJECT WRAPPER HOVER EFFECT*/
.border-effect-wrapper {
    position: relative;
    width: 90%;
    margin-bottom: 6rem;  
}

.project-wrapper {
    width: calc(100% - 8px);
    height: 98%;
    background-color: #f9f2e4;
    border-radius: 5px;
    padding: 5px 15px;
}

.spotlight {
    width: 100%;
    height: 470px;
    /* pointer-events: none;  */
    border-radius: 7px;
    background: var(--white);
}

/*CONTACT*/
footer{
    margin-bottom: 3rem;
}
.flex-container{
    display: flex;
    justify-content: space-between;
    margin-top: 3rem;
    padding-inline: 5vw;
}
.contact-method{
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    align-items: center;
}
.contact-container{
    width: 30%;
}
.contact-container:last-child>.contact-method:first-child{
    padding-top: 0.5rem;
}
.contact-container:last-child>.contact-method:last-child{
    padding-top: 1rem;
}