/* =========================
   RESET
   ========================= */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

/* =========================
   VARIABLES
   ========================= */
:root {
	--base: #555;
	--base-100: #f1f1f1;
	--base-400: #555;
	--base-800: #000;
	--yellow: #ffda4b;
	--yellow-100: #fffbe6;
	--yellow-400: #ffda4b;
	--yellow-800: #8b6f00;
	--blue: #0a61ae;
	--blue-100: #e2f8ff;
	--blue-400: #61dafb;
	--blue-800: #0a61ae;
}

:root{
  --process-yellow: #ffd84d;
  --process-black: #000;
  --process-duration: 6s;
  --process-size: 120px; /* tweak if you want bigger/smaller */
}

/* =========================
   BASE
   ========================= */
body {
	font-family: "Open Sans", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-size: 20px;
}

a {
	text-decoration: none;
	color: var(--blue);
	&:hover {
		text-decoration: underline;
	}
}

/* =========================
   HEADER
   ========================= */
header {

	display:flex;
	justify-content:space-between;
	align-items: center;
	max-width:1440px;
	margin:auto;
	border-bottom: 1px solid rgba(0,0,0,0.1);
	

.logo-holder {
    display: flex;
    padding: 10px;
    align-items: center;
}

/* Logo container */
.logo {
    width: 100%;
    max-width: 120px;
    padding: 5px; /* Add padding around the logo */
}

/* Logo image */
.logo img {
    width: 100%;
    height: auto;
    transition: transform 0.2s ease-in-out;
}

/* Hover effect */
.logo:hover img {
    transform: scale(1.1);
}


	nav {
		display:flex;
		align-items:center;
		
		ul {
			display:flex;
			list-style-type: none;
			gap:5px;
			li {
				display:inline-block;
				a {
					display:inline-block;
					padding:10px 20px;
					color:var(--base);
					&:hover {
					    color: var(--base-800);
						background-color: var(--yellow);
						border-radius:10px;
						text-decoration:none;
					}
				}
			}
			ul#menu {
				list-style-type: none;
				margin: 0;
				padding: 0;
			}
			
			ul#menu li {
				margin-right: 20px; /* Add spacing between menu items */
			}
		}
		.mobile-toggle {
			display:none;
			color:var(--base-800);
			padding:10px;
			@media (max-width:768px){
				display:inline-block;
				position:absolute;
				top:20px;
				right:20px;
			}
		}
	}

	@media (max-width: 1024px) {
		flex-direction:column;
		align-items:center;
	}

	@media (max-width: 768px) {
		flex-direction:column;
		align-items:center;
		nav {
			margin-top:10px;
			width:100%;
			ul {
				display:none;
				flex-direction:column;
				text-align:center;
				width:100%;
				a {
					width:100%;
				}
				&.active {
					display:flex;
				}
			}
		}
	}
}

/* =========================
   LAYOUT
   ========================= */
section {
	max-width:1440px;
	margin:auto;
	gap:30px;
	margin-top:30px;
	margin-bottom:30px;

	@media (max-width:1440px){
		padding-left:30px;
		padding-right:30px;
	}
}

/* =========================
   BUTTONS
   ========================= */
.button {
	display:inline-block;
	padding:10px 30px;
	background-color: var(--base-800);
	color: var(--base-100);
	border-radius:10px;
	transition: ease 0.3s all;
	
	&:hover {
		text-decoration:none;
		background-color: var(--base-800);
	}
	&.white {
		background-color: white;
		color: var(--base-800);
	
	}
	&.black {
		background-color: black;
		color: white;
		&:hover {
			background-color: var(--base);
			color: var(--base-100);
			
		}
	}
}

/* =========================
   TYPOGRAPHY
   ========================= */
h1 {
	font-size:64px;
	line-height:1;
	margin-bottom:10px;
	small {
		display:block;
		font-weight:100;
	}
	@media (max-width:1024px){
		font-size:48px;
	}
}
.name-tag{
  color: #000;            /* keep black */
  font-weight: 800;
  position: relative;
  display: inline-block;
}

h2 {
	font-size:64px;
	line-height:1;
	margin-bottom:10px;
	text-align:center;
	color: var(--base-800);
	padding:30px;
	small {
		display:block;
		font-weight:100;
		font-size:0.5em;
		color:var(--base);
	}
	@media (max-width:1024px){
		font-size:48px;
	}
}

h3 {
	font-size:32px;
	font-weight:600;
	line-height:1;
	margin-bottom:20px;
	color: var(--base-800);
}

/* =========================
   HERO
   ========================= */
.hero {
	display:flex;
	justify-content: space-between;
	margin-bottom: 30px;
	align-items: center;


	.hero h1 {
		font-size: 48px; /* Decrease font size for smaller screens */
	}
	.hero p {
		font-size: 18px; /* Decrease font size for smaller screens */
		margin-bottom: 20px; /* Add spacing between paragraphs */
	}
	
	}
	.hero-blue {
		flex: 1;
        background-color: var(--base-100);
        border-radius: 30px;
        padding: 30px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        position: relative;   // ⬅️ NEW: helps keep things nicely contained
        overflow: hidden;     // ⬅️ NEW: hides any slight overshoot during animation
       
		span {
			@media (max-width:768px){
				display:none;
			}
		}
		
		
		
		h1 {
    /* your font-size can also live here if you want */
    animation: hero-title-up 0.8s ease-out forwards;
    transform-origin: center;
  }

  #description {
    opacity: 0;  /* hidden at the beginning */
    animation: hero-description-in 0.6s ease-out 0.3s forwards; /* delay so it shows after movement starts */
  }

  .call-to-action {
    margin-top:20px;
    margin-bottom:10px;
    animation: hero-cta-down 0.8s ease-out forwards;

    a {
      margin-right:10px;
      margin-bottom:10px;
    }
  }

  .social-links {
    a {
      &:hover {
        text-decoration:none;
      }
    }
  }
}

/* 🔹 KEYFRAMES 🔹 */

@keyframes hero-title-up {
  from {
    transform: translateY(40px);   // h1 starts lower, closer to the CTA
  }
  to {
    transform: translateY(0);      // ends in its normal position
  }
}

@keyframes hero-cta-down {
  from {
    transform: translateY(-40px);  // CTA starts higher, closer to the h1
  }
  to {
    transform: translateY(0);      // ends in its normal position
  }
}

@keyframes hero-description-in {
  from {
    opacity: 0;
    transform: translateY(10px);   // slight slide in
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
	.hero-blue {
		.hero-2 {
			width: 40%; /* Set width of hero-2 */
    background-color: var(--yellow); /* Adjust background color */
    border-radius: 30px;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
			margin-right: 0; /* Reset margin for smaller screens */
			margin-bottom: 20px; /* Add spacing between sections */
		  }	
		  .hero-2 > div {
			text-align: center;
			padding: 0 20px;
		}
		flex:1;
		background-color: var(--base-100);
		border-radius:30px;
		padding:30px;
		display:flex;
		flex-direction:column;
		justify-content:center;
		span {
			@media (max-width:768px){
				display:none;
			}
		}
		.call-to-action {
			margin-top:20px;
			margin-bottom:10px;
			a {
				margin-right:10px;
				margin-bottom:10px;
			}
		}
		.social-links {
			a {
				&:hover {
					text-decoration:none;
				}
			}
		}
	}
	.hero-blue-2 {
		
		width: 450px;
		height: 420px;
		background-color: var(--yellow);
		display: flex;
		justify-content: center;
		align-items: center;
		
	}
	.hero-blue-2 > div {
		text-align: center; /* Center the text inside the div */
		 /* Adjust the max-width as needed */
	}

.social-links {
   
   padding-top: 10px;
   padding-left: 120px;
   background-color: var(--yellow);
}
.social-links a {
	padding-bottom: 20px;
    display: inline-block;
    margin: 0 10px; /* Adjust the spacing between social media icons */
}
@media (max-width: 1024px) {
	.hero {
	  flex-direction: column; /* Adjust layout for smaller screens */
	  align-items: center; /* Center content horizontally */
	}
	}

/* =========================
   LOGOS / MARQUEE
   ========================= */
.logos {
	background-color: var(--base-100);
	border-radius:30px;
	padding:30px 0px;
	@media (max-width:1440px){
		border-radius:0px;
	}
	.marquee {
		overflow-x: auto; /* Allow horizontal scrolling on smaller screens */
		white-space: nowrap; /* Prevent logos from wrapping */
		width:100vw;
		max-width:100%;
		height:128px;
		overflow:hidden;
		position:relative;
		.track {
			position:absolute;
			white-space:nowrap;
			will-change:transform;
			animation: marquee 40s linear infinite;
			display:flex;
			gap:10px;
		}
		.marquee img {
			margin-right: 10px; /* Add spacing between logos */
		}
	}
}

@keyframes marquee {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

/* =========================
   SKILLS
   ========================= */
.skills {
	.holder-blue {
		background-color: var(--base-100);
		border-radius:30px;
		padding:30px;
		display:flex;
		@media(max-width:1024px){
			flex-direction:column;
		}
		.left-column {
			flex:1;
			ul {
				list-style-type: none;
				gap:10px;
				margin-right:100px;
				margin-bottom:20px;
				li {
					color:var(--base-800);
					display:inline-block;
					background-color:var(--yellow);
					padding:10px 20px;
					border-radius:15px;
					margin-bottom:10px;
				}
			}
		}
		.right-column {
			flex:1;
			p {
				margin-bottom:20px;
			}
			.portfolio-anthem{
  margin-top: 36px;
}

.anthem-text{
  margin: 0 0 8px 0;
  font-weight: 400;
  font-size: 14px;

  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
}

.anthem-text::before{
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f7c948;
  margin-top: 6px;
  flex: 0 0 7px;
}

/* IMPORTANT FIX: round the wrapper, not the iframe */
.spotify-wrap{
  max-width: 360px;
  border-radius: 12px;
  overflow: hidden;

  /* optional: background that matches the embed so corners look clean */
  background: #204020;
}

/* "overscan" hack to protect UI from corner clipping on iOS */
.spotify-embed{
  display: block;

  /* increase the iframe size a bit */
  width: calc(100% + 8px);
  height: calc(80px + 8px);

  /* pull it back equally on all sides */
  margin: -4px;

  border-radius: 0;
}
		}
	}
}

/* =========================
   WORK EXPERIENCE
   ========================= */
.work-experience {
	.jobs {
		display:flex;
		gap:30px;
		@media(max-width:1024px){
			flex-direction:column;
		}
		article {
			background-color: var(--base-100);
			padding:30px;
			border-radius:30px;
			flex:1;
			h3 {
				margin-top:20px;
				margin-bottom:10px;
			}
			div {
				font-weight:600;
				margin-bottom:5px;
				color: var(--base-800);
			}
			p {
				margin-bottom:10px;
			}
			figure {
				width:100%;
				padding-top:56.25%;
				overflow:hidden;
				position:relative;
				border-radius:15px;
				img {
					position:absolute;
					top:0;
					left:0;
					height:100%;
					object-fit:cover;
					transition: ease 3s all;
				}
				figcaption {
					position:absolute;
					bottom:0;
					left:0;
					right:0;
					background-color: rgba(0,0,0,0.5);
					color: var(--base-100);
					text-align:center;
					padding:10px;
					opacity:0;
					visibility:hidden;
					transition: ease 0.3s all;
				}

				&:hover {
					figcaption {
						opacity:1;
						visibility:visible;
					}
					img {
						transform: scale(1.2);
					}
				}

			}
		}
	}
}

/* =========================
   BENTO GRID
   ========================= */
.bento {
	.bento-grid {
		display:grid;
		grid-gap:30px;
		grid-template-columns: repeat(5, 1fr);
		grid-template-rows: repeat(4, 1fr);
		height:960px;
		@media(max-width:1024px){
			grid-template-rows: repeat(8, 1fr);
		}
		@media(max-width:768px){
			display:flex;
			flex-direction:column;
			gap:30px;
			height:auto;
		}
		.bento-item {
			padding:30px;
			background-color: var(--base-100);
			border-radius:15px;
			position:relative;
			overflow:hidden;
			img {
				position:absolute;
				top:0;
				left:0;
				height:100%;
				object-fit:cover;
				transition: ease 3s all;
			}
			&:hover {
				img {
					transform: scale(1.2);
				}
			}
			@media(max-width:768px){
				height:240px;
			}
			&:nth-child(1) {
				grid-column: span 2;
				grid-row: span 2;
				@media(max-width:1024px){
					grid-column: span 2;
					grid-row: span 2;
				}
			}
			&:nth-child(2) {
				grid-column: span 2;
				grid-row: span 2;
				@media(max-width:1024px){
					grid-column: span 2;
					grid-row: span 2;
				}
			}
			&:nth-child(3) {
				grid-column: span 1;
				grid-row: span 1;
				@media(max-width:1024px){
					grid-column: span 3;
					grid-row: span 2;
				}
			}
			&:nth-child(4) {
				grid-column: span 1;
				grid-row: span 1;
				@media(max-width:1024px){
					grid-column: span 2;
					grid-row: span 4;
				}
			}
			&:nth-child(5) {
				grid-column: span 2;
				grid-row: span 1;
				@media(max-width:1024px){
					grid-column: span 3;
					grid-row: span 2;
				}
			}

		}
	}
}

/* =========================
   PROJECTS PROCESS (CIRCLE)
   ========================= */
.projects-process-wrap{
  display: flex;
  justify-content: center;
  margin: 10px 0 26px; /* space above + between it and the Projects title */
}

/* Yellow circle logo */
.process-circle-wrapper{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
}

.process-circle{
  position: relative;
  width: var(--process-size);
  height: var(--process-size);
  border-radius: 999px;
  background: var(--process-yellow);
  display: grid;
  place-items: center;
  overflow: hidden;
}

.icon-stage{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  opacity: 0;
  transform: translateX(24px);
  animation: iconCycle var(--process-duration) linear infinite;
}

.icon-svg{
  width: 60%;
  height: 60%;
}

.process-labels{
  position: relative;
  height: 1.8rem;
}

.label-stage{
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
  background: var(--process-yellow);
  color: var(--process-black);
  font-size: 0.9rem;
  font-weight: 500;
  white-space: nowrap;
  opacity: 0;
  animation: labelCycle var(--process-duration) linear infinite;
}

/* Stagger */
.stage-vision, .label-vision { animation-delay: 0s; }
.stage-design, .label-design { animation-delay: calc(var(--process-duration) / 3); }
.stage-code,   .label-code   { animation-delay: calc(2 * var(--process-duration) / 3); }

@keyframes iconCycle{
  0%   {opacity:0; transform:translateX(24px);}
  8%   {opacity:1; transform:translateX(0);}
  28%  {opacity:1; transform:translateX(0);}
  35%  {opacity:0; transform:translateX(-24px);}
  100% {opacity:0; transform:translateX(-24px);}
}

@keyframes labelCycle{
  0%   {opacity:0; transform:translateX(-50%) scale(0.9);}
  8%   {opacity:1; transform:translateX(-50%) scale(1);}
  28%  {opacity:1; transform:translateX(-50%) scale(1);}
  35%  {opacity:0; transform:translateX(-50%) scale(0.9);}
  100% {opacity:0; transform:translateX(-50%) scale(0.9);}
}

.projects-process-wrap { margin: 10px 0 26px; } /* desktop baseline */

@media (max-width: 768px) {
  #projects { padding-top: 50px; }
  .projects-process-wrap { margin-top: 0; }
}


/* =========================
   SLIDER
   ========================= */
.slider {
    position: relative;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    overflow: hidden;
}

.slides {
    display: flex;
    transition: transform 0.5s ease;
    width: 100%;
}

.slide {
    flex: 1 0 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.slide img {
    width: 100%;
    height: auto;
    display: block;
}

.slide-title {
    display: inline-block; /* Only as wide as the content */
    margin: 10px auto 0 auto; /* Top margin, centered horizontally */
    text-align: center;
    color: white;
    background-color: rgba(0, 0, 0, 0.6);
    padding: 6px 12px;
    border-radius: 5px;
    font-size: 16px;
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .slide-title {
        font-size: 14px;
        padding: 5px 10px;
        margin-top: 8px;
    }
}

button.prev,
button.next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  padding: 10px;
  border: none;
  background: white; /* ✅ White background */
  color: black;       /* ✅ Black arrow for contrast */
  font-size: 24px;
  cursor: pointer;
  z-index: 1;
  border-radius: 50%; /* Optional: circular button */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); /* Optional: subtle shadow */
  transition: background 0.3s;
}

button.prev:hover,
button.next:hover {
  background: #f0f0f0; /* ✅ Slight hover effect */
}

button.prev {
    left: 0;
}

button.next {
    right: 0;
}

button.prev {
  left: 10px; /* ✅ Add margin from left edge */
}

button.next {
  right: 10px; /* ✅ Add margin from right edge */
}

/* =========================
   CANVAS GAME / RULES
   ========================= */
canvas {
	
	background: #f0f0f0;
	display: block;
	border-radius: 5px;
  }
  
  .btn {
	
	cursor: pointer;
	border: 0;
	padding: 10px 20px;
	background: #000;
	color: #fff;
	border-radius: 5px;
  }
  
  .btn:focus {
	outline: 0;
  }
  
  .btn:hover {
	background: #222;
  }
  
  .btn:active {
	transform: scale(0.98);
  }
  
  .rules-btn {
	
	position: absolute;
	top: 30px;
	left: 30px;
  }
  
  .rules {
	position: absolute;
	top: 0;
	left: 0;
	background: #333;
	color: #fff;
	min-height: 100vh;
	width: 400px;
	padding: 20px;
	line-height: 1.5;
	transform: translateX(-400px);
	transition: transform 1s ease-in-out;
  }
  
  .rules.show {
	transform: translateX(0);
  }

/* =========================
   KEYS
   ========================= */
  .keys {
    display: grid;
    grid-template-columns: repeat(3, 100px); /* Adjust based on number of keys */
    grid-gap: 10px;
}

.key {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100px; /* Width of each key */
    height: 100px; /* Height of each key */
    background-color: #444;
    color: var(--base-100);
    font-size: 24px;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
    transition: transform 0.15s ease, background-color 0.15s ease;
    cursor: pointer;
}

.key:active,
.key.playing {
    transform: scale(1.1);
    background-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5);
    color: red; /* Change text color to red when the key is pressed */
}

.key:hover {
    background-color: rgba(255, 255, 255, 0.1);
	color: var(--base-800); /* Text color on hover */
	
}

/* =========================
   MOBILE CARD SAFETY
   ========================= */
/* MOBILE: keep the card looking the same but inside the viewport */
@media (max-width: 600px) {
  .hero {
    flex-direction: column;
    align-items: center;
  }

  .hero-2 {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  /* Card + social area never wider than screen */
  .hero-blue-2,
  .social-links {
    width: 100%;
    max-width: 450px;     /* your original card width */
    box-sizing: border-box;
  }

  .hero-blue-2 {
    height: auto;         /* let height follow the image */
    padding: 20px;        /* adjust if you want more/less frame */
  }

  .hero-blue-2 img {
    width: 100%;
    height: auto;
    display: block;
  }

 .social-links {
    padding-left: 0;
    padding-top: 12px;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 16px;          /* space between icons */
  }

  .social-links a {
    margin: 0;          /* we use gap instead */
  }

  /* Make the icons smaller on mobile */
  .social-links img {
    width: 28px;        /* try 28–32px to taste */
    height: auto;
  }

}



/* Optional safety net */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}
@media (max-width: 768px){
  #skills-title{
    scroll-margin-top: 20px; /* increase if needed: 40, 60... */
  }
}
/* Add top breathing room when jumping to the Skills logos section */
#skills {
  scroll-margin-top: 24px; /* try 16–40px */
}
