.logo-link {
    text-decoration: none;
    color: inherit;
}

.nav-menu .menu a.active {
    color: var(--primary-color);
}

.nav-menu .menu a.active::after {
    width: 100%;
}

.project-card {
    text-align: left;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}

.project-screenshot-link {
    display: block;
    overflow: hidden;
    border-radius: 15px 15px 0 0;
    line-height: 0;
}

.project-screenshot {
    width: 100%;
    height: 220px;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform 0.3s ease;
}

.project-screenshot-link:hover .project-screenshot {
    transform: scale(1.03);
}

.project-card h3,
.project-card .project-description,
.project-card .project-tags,
.project-card .project-link {
    margin-left: 2.5rem;
    margin-right: 2.5rem;
}

.project-card h3 {
    margin-top: 1.5rem;
}

.project-description {
    font-size: 0.92rem;
    line-height: 1.6;
    color: var(--text-color);
    opacity: 0.88;
    margin: 0.5rem 0 0;
}

.project-card .project-link {
    margin-bottom: 2.5rem;
}

.project-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    margin: 1rem 0;
    padding: 0;
}

.project-tags li {
    font-size: 0.85rem;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    background-color: var(--section-bg);
    color: var(--text-color);
    border: 1px solid var(--border-color);
}

.project-link {
	margin-top: auto;
	align-self: flex-start;
}

.project-card .project-link.btn-primary {
	background-color: var(--primary-color);
	color: #ffffff;
}

.project-card .project-link.btn-primary:hover {
	background-color: #008f4c;
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 5px 15px rgba(0, 168, 89, 0.35);
}

[data-theme="dark"] .project-card .project-link.btn-primary:hover {
	background-color: #00c46d;
	box-shadow: 0 5px 15px rgba(0, 217, 120, 0.3);
}

.projects-hero {
    padding: 5rem 0 3rem;
    background-size: 200% 200%;
    animation: projects-hero-gradient 14s ease infinite;
}

.projects-hero__glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(40px);
    opacity: 0.45;
}

.projects-hero__glow--1 {
    width: min(320px, 55vw);
    height: min(320px, 55vw);
    top: -18%;
    right: -8%;
    background: rgba(255, 255, 255, 0.22);
    animation: projects-hero-float 9s ease-in-out infinite;
}

.projects-hero__glow--2 {
    width: min(260px, 45vw);
    height: min(260px, 45vw);
    bottom: -22%;
    left: -10%;
    background: rgba(255, 255, 255, 0.14);
    animation: projects-hero-float 11s ease-in-out infinite reverse;
}

.projects-hero__content {
    animation: projects-hero-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.projects-hero__badge {
    display: inline-block;
    margin-bottom: 1rem;
    padding: 0.4rem 1rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    backdrop-filter: blur(8px);
    animation: projects-hero-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.05s both;
}

.projects-hero__title {
    font-size: clamp(2rem, 5.5vw, 3.5rem);
    line-height: 1.1;
    white-space: nowrap;
    animation: projects-hero-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}

.projects-hero .brand-name {
    display: inline;
    margin: 0 0 0 0.2em;
    font-size: 1em;
    font-weight: 800;
    background: linear-gradient(90deg, #ffffff 0%, rgba(255, 255, 255, 0.75) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.projects-hero__subtitle {
    max-width: 40rem;
    margin-inline: auto;
    animation: projects-hero-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.22s both;
}

@keyframes projects-hero-in {
    from {
        opacity: 0;
        transform: translateY(28px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes projects-hero-float {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    50% {
        transform: translate(-12px, 14px) scale(1.06);
    }
}

@keyframes projects-hero-gradient {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .projects-hero,
    .projects-hero__glow,
    .projects-hero__content,
    .projects-hero__badge,
    .projects-hero__title,
    .projects-hero__subtitle {
        animation: none;
    }
}

.projects-grid {
    margin-top: 2rem;
}

@media (max-width: 768px) {
	.project-card h3,
	.project-card .project-description,
	.project-card .project-tags,
	.project-card .project-link {
		margin-left: 1.25rem;
		margin-right: 1.25rem;
	}

	.project-link {
		align-self: center;
	}

	.projects-hero {
		padding: 3.25rem 0 1.75rem;
	}

	.projects-hero__title {
		white-space: normal;
		font-size: clamp(1.85rem, 8vw, 2.5rem);
	}

	.projects-hero .hero-subtitle,
	.projects-hero__subtitle {
		padding-inline: 0.5rem;
		font-size: 1.05rem;
	}
}
