:root {
    --background: #0a0a0a;
    --surface: #1a1a1a;
    --primary: #bb86fc;
    --secondary: #03dac6;
    --text: #ffffff;
    --text-secondary: #a0a0a0;
    --gradient-primary: linear-gradient(135deg, #bb86fc, #03dac6);
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
background: var(--background);
color: var(--text);
font-family: 'Inter', sans-serif;
line-height: 1.6;
}

/* Updated Gallery CSS with fixes */
.carousel {
background: var(--surface);
overflow: hidden; /* ADDED: This was missing and crucial for clipping */
position: relative;
padding: 4rem 0;
}

.carousel-container {
max-width: 1400px;
margin: 0 auto;
position: relative;
padding: 0 2rem;
overflow: hidden; /* ADDED: Additional overflow control */
}

.carousel h2 {
text-align: center;
margin-bottom: 3rem;
font-size: 2.5rem;
background: var(--gradient-primary);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
opacity: 0;
transform: translateY(20px);
animation: fadeInUp 0.8s ease forwards;
}

@keyframes fadeInUp {
to {
    opacity: 1;
    transform: translateY(0);
}
}

.carousel-track {
display: flex;
gap: 2rem;
transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
padding: 2rem 0;
width: max-content; /* ADDED: Ensures track width accommodates all items */
}

.carousel-item {
min-width: 600px;
max-width: 600px; /* ADDED: Ensures consistent width */
background: var(--background);
border-radius: 20px;
overflow: hidden;
flex-shrink: 0; /* ADDED: Prevents items from shrinking */
transform: perspective(1000px) rotateY(0deg);
transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}

.carousel-item:hover {
transform: perspective(1000px) rotateY(-5deg) translateY(-10px);
box-shadow: 
    20px 20px 40px rgba(0, 0, 0, 0.4),
    0 0 20px rgba(187, 134, 252, 0.2);
}

.carousel-item img {
width: 100%;
height: 400px;
object-fit: cover;
transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
filter: brightness(0.8);
}

.carousel-item:hover img {
transform: scale(1.05);
filter: brightness(1);
}

.carousel-content {
padding: 2rem;
transform: translateY(0);
transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
background: linear-gradient(
    to top,
    var(--background),
    transparent
);
}

.carousel-item:hover .carousel-content {
transform: translateY(-10px);
}

.carousel-content h3 {
margin-bottom: 1rem;
font-size: 1.5rem;
background: var(--gradient-primary);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

.carousel-content p {
color: var(--text-secondary);
transition: color 0.3s ease;
}

.carousel-item:hover .carousel-content p {
color: var(--text);
}

.carousel-nav {
display: flex;
justify-content: center;
gap: 1rem;
margin-top: 2rem;
}

.carousel-nav button {
background: none;
border: 2px solid var(--primary);
color: var(--primary);
padding: 0.8rem 1.5rem;
border-radius: 30px;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
font-family: inherit;
font-weight: 500;
}

.carousel-nav button:disabled {
opacity: 0.5;
cursor: not-allowed;
}

.carousel-nav button::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
background: var(--primary);
border-radius: 50%;
transform: translate(-50%, -50%);
transition: width 0.6s ease, height 0.6s ease;
z-index: -1;
}

.carousel-nav button:hover:not(:disabled)::before {
width: 300px;
height: 300px;
}

.carousel-nav button:hover:not(:disabled) {
color: var(--background);
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(187, 134, 252, 0.4);
}

/* Carousel indicators */
.carousel-indicators {
display: flex;
justify-content: center;
gap: 0.5rem;
margin-top: 1rem;
}

.indicator {
width: 12px;
height: 12px;
border-radius: 50%;
background: var(--text-secondary);
cursor: pointer;
transition: background 0.3s ease;
}

.indicator.active {
background: var(--primary);
}

@media (max-width: 768px) {
.carousel-item {
    min-width: calc(100vw - 4rem);
    max-width: calc(100vw - 4rem);
}

.carousel-item img {
    height: 300px;
}
}