:root{--black:#0a0a0a;--white:#fafafa;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--accent:#6366f1;--accent-light:#818cf8;--accent-dark:#4f46e5;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:1rem;--radius-xl:1.5rem;--shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);--shadow-xl:0 20px 25px -5px rgb(0 0 0 / 0.1),0 8px 10px -6px rgb(0 0 0 / 0.1)}
*{margin:0;padding:0;box-sizing:border-box}
body{background:linear-gradient(135deg,var(--black) 0,var(--gray-900) 100%);color:var(--gray-200);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.container{max-width:1280px;margin:0 auto;padding:0 var(--space-xl)}
h1{color:var(--white);font-size:clamp(2rem, 8vw, 4.5rem);font-weight:700;letter-spacing:-.04em;margin-bottom:var(--space-xl);line-height:1.1;background:linear-gradient(135deg,var(--white) 0,var(--gray-200) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
@media (max-width:480px){
h1{font-size:clamp(1.75rem, 10vw, 2.5rem);line-height:1.2;margin-bottom:var(--space-lg)}
}
h2{color:var(--white);font-size:clamp(1.5rem, 5vw, 2.75rem);font-weight:600;letter-spacing:-.025em;margin-bottom:var(--space-2xl);line-height:1.2}
@media (max-width:480px){
h2{font-size:clamp(1.375rem, 6vw, 1.875rem);margin-bottom:var(--space-xl)}
}
h3{color:var(--white);font-size:clamp(1.125rem, 3vw, 1.25rem);font-weight:600;letter-spacing:-.01em;margin-bottom:var(--space-md);line-height:1.3}
section{padding:var(--space-4xl) 0;position:relative}
@media (max-width:768px){
.container{padding:0 var(--space-lg)}
section{padding:var(--space-3xl) 0}
}
section:not(:last-of-type)::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:90%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}
footer{padding:var(--space-3xl) 0;background:rgba(255,255,255,.02);border-top:1px solid rgba(255,255,255,.08);margin-top:var(--space-4xl)}
footer p{color:var(--gray-400);font-size:.875rem;text-align:center;font-weight:500}
@keyframes fadeInUp{
from{opacity:0;transform:translateY(30px)}
to{opacity:1;transform:translateY(0)}
}
@keyframes pulse{
0%,100%{opacity:1}
50%{opacity:.5}
}
.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);background:linear-gradient(135deg,var(--accent) 0,var(--accent-dark) 100%);color:var(--white);padding:var(--space-lg) var(--space-xl);text-decoration:none;font-size:.9375rem;font-weight:500;letter-spacing:-.01em;border-radius:var(--radius-lg);transition:.3s cubic-bezier(.4, 0, .2, 1);margin-right:var(--space-md);margin-bottom:var(--space-md);box-shadow:var(--shadow-md);border:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden;min-height:48px;min-width:120px}
@media (max-width:768px){
.button{padding:var(--space-md) var(--space-lg);font-size:.875rem;margin-right:var(--space-sm);margin-bottom:var(--space-sm);min-height:44px}
}
@media (max-width:480px){
section{padding:var(--space-2xl) 0}
.button{width:100%;max-width:280px;margin:0 auto var(--space-sm) auto;display:flex}
}
.button::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s cubic-bezier(.4, 0, .2, 1)}
.button:hover{background:linear-gradient(135deg,var(--accent-light) 0,var(--accent) 100%);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.button:hover::before{left:100%}
@media (hover:none){
.button:active{background:linear-gradient(135deg,var(--accent-light) 0,var(--accent) 100%);transform:translateY(-1px);box-shadow:var(--shadow-lg)}
.button.secondary:active{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}
}
.button.secondary{background:rgba(255,255,255,.1);color:var(--white);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(10px)}
.button.secondary:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}
.button.contact-secondary{background:rgba(255,255,255,.05);color:var(--white);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(10px);padding:var(--space-lg);border-radius:var(--radius-lg);display:flex;align-items:center;gap:var(--space-md);text-align:left;transition:.3s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden;min-height:80px}
.button.contact-secondary::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-light));transform:scaleX(0);transition:transform .3s cubic-bezier(.4, 0, .2, 1)}
.button.contact-secondary:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.button.contact-secondary:hover::before{transform:scaleX(1)}
@media (hover:none){
.button.contact-secondary:active{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);transform:translateY(-1px)}
.button.contact-secondary:active::before{transform:scaleX(1)}
}
.button-icon{font-size:1.5rem;line-height:1;flex-shrink:0}
.button-content{display:flex;flex-direction:column;gap:var(--space-xs);flex-grow:1;min-width:0}
.button-title{font-size:.9375rem;font-weight:600;line-height:1.2}
.button-subtitle{font-size:.8125rem;font-weight:400;opacity:.8;line-height:1.3;word-break:break-word;overflow-wrap:break-word;hyphens:auto}
.card{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-xl);padding:var(--space-xl);transition:.3s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-light));transform:scaleX(0);transition:transform .3s cubic-bezier(.4, 0, .2, 1)}
.card:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card:hover::before{transform:scaleX(1)}
@media (hover:none){
.card:active{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);transform:translateY(-2px)}
.card:active::before{transform:scaleX(1)}
}
.tech-tag{background:rgba(99,102,241,.1);color:var(--accent-light);font-size:.75rem;font-weight:500;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);border:1px solid rgba(99,102,241,.2)}
.availability-badge{display:inline-flex;align-items:center;gap:var(--space-sm);background:rgba(16,185,129,.1);color:var(--success);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-lg);border:1px solid rgba(16,185,129,.2);font-size:.875rem;font-weight:500}
.status-indicator{width:8px;height:8px;background:var(--success);border-radius:50%;animation:2s infinite pulse}
.breadcrumb{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-2xl);color:var(--gray-400);font-size:.875rem}
.breadcrumb a{color:var(--accent-light);text-decoration:none;transition:color .3s cubic-bezier(.4, 0, .2, 1)}
.breadcrumb a:hover{color:var(--white)}
.breadcrumb-separator{color:var(--gray-500)}
.back-to-top{position:fixed;bottom:var(--space-xl);right:var(--space-xl);background:linear-gradient(135deg,var(--accent) 0,var(--accent-dark) 100%);color:var(--white);width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:1.25rem;box-shadow:var(--shadow-lg);transition:.3s cubic-bezier(.4, 0, .2, 1);opacity:0;visibility:hidden;transform:translateY(20px)}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:linear-gradient(135deg,var(--accent-light) 0,var(--accent) 100%);transform:translateY(-2px);box-shadow:var(--shadow-xl)}
@media (max-width:768px){
.back-to-top{bottom:var(--space-lg);right:var(--space-lg);width:44px;height:44px;font-size:1.125rem}
.button.contact-secondary{padding:var(--space-md);min-height:70px}
}
@media (max-width:639px){
.button.contact-secondary{padding:var(--space-md);min-height:60px}
.button-icon{font-size:1.25rem}
.button-title{font-size:.875rem}
.button-subtitle{font-size:.75rem;line-height:1.4}
}
nav{position:fixed;width:100%;background:rgba(10,10,10,.8);backdrop-filter:blur(24px);border-bottom:1px solid rgba(255,255,255,.08);z-index:50;transition:.3s cubic-bezier(.4, 0, .2, 1)}
nav.scrolled{background:rgba(10,10,10,.95);box-shadow:var(--shadow-lg)}
nav .container{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}
nav .nav-content{display:flex;justify-content:space-between;align-items:center}
.logo{color:var(--white);text-decoration:none;font-size:1.375rem;font-weight:600;letter-spacing:-.025em;transition:.3s cubic-bezier(.4, 0, .2, 1);z-index:60;position:relative}
.logo:hover{color:var(--accent-light);transform:translateY(-1px)}
.nav-links{display:none;gap:var(--space-2xl)}
.mobile-menu-button{display:flex;flex-direction:column;justify-content:space-around;width:24px;height:24px;background:0 0;border:none;cursor:pointer;padding:0;z-index:60;position:relative}
.mobile-menu-button span{width:24px;height:2px;background:var(--white);border-radius:1px;transition:.3s cubic-bezier(.4, 0, .2, 1);transform-origin:center}
.mobile-menu-button.active span:first-child{transform:rotate(45deg) translate(5px,5px)}
.mobile-menu-button.active span:nth-child(2){opacity:0}
.mobile-menu-button.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}
@media (min-width:768px){
.nav-links{display:flex}
.mobile-menu-button{display:none}
}
.mobile-menu{position:fixed;top:0;left:0;width:100%;height:100vh;background:rgba(10,10,10,.98);backdrop-filter:blur(20px);z-index:55;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-2xl);opacity:0;visibility:hidden;transition:.3s cubic-bezier(.4, 0, .2, 1)}
.mobile-menu.active{opacity:1;visibility:visible}
.mobile-menu a{color:var(--white);text-decoration:none;font-size:1.5rem;font-weight:500;letter-spacing:-.02em;transition:.3s cubic-bezier(.4, 0, .2, 1);opacity:0;transform:translateY(20px)}
.mobile-menu.active a{opacity:1;transform:translateY(0)}
.mobile-menu a:first-child{transition-delay:0.1s}
.mobile-menu a:nth-child(2){transition-delay:0.2s}
.mobile-menu a:nth-child(3){transition-delay:0.3s}
.mobile-menu a:nth-child(4){transition-delay:0.4s}
.mobile-menu a:nth-child(5){transition-delay:0.5s}
.mobile-menu a:hover{color:var(--accent-light);transform:translateY(-4px)}
@media (min-width:768px){
.mobile-menu{display:none}
}
.nav-links a{color:var(--gray-300);text-decoration:none;font-size:.9375rem;font-weight:500;letter-spacing:-.01em;transition:.3s cubic-bezier(.4, 0, .2, 1);position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-light));transition:width .3s cubic-bezier(.4, 0, .2, 1);border-radius:1px}
.nav-links a:hover{color:var(--white);transform:translateY(-1px)}
.nav-links a:hover::after{width:100%}
.hero{min-height:100vh;display:flex;align-items:center;padding-top:var(--space-4xl);position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at top,rgba(99,102,241,.1) 0,transparent 70%);pointer-events:none}
.hero p{color:var(--gray-300);font-size:clamp(1rem, 4vw, 1.375rem);margin-bottom:var(--space-2xl);font-weight:400;line-height:1.6;max-width:48rem;letter-spacing:-.01em}
.grid{display:grid;gap:var(--space-2xl)}
.grid-1,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
@media (min-width:640px){
.grid-2{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:768px){
.grid-3{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px){
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1280px){
.grid-4{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:768px){
.hero{min-height:80vh;padding-top:var(--space-3xl)}
.grid{gap:var(--space-xl)}
}
@media (max-width:480px){
.hero{min-height:70vh;padding-top:var(--space-2xl);text-align:center}
.hero p{font-size:clamp(.9375rem, 4vw, 1.125rem);line-height:1.7;margin-bottom:var(--space-xl)}
.grid{gap:var(--space-lg)}
}
.about-content{max-width:72rem}
.about-intro{margin-bottom:var(--space-4xl);text-align:center}
.about-description{color:var(--gray-300);font-size:clamp(1.125rem, 2.5vw, 1.375rem);font-weight:400;line-height:1.7;letter-spacing:-.01em;max-width:48rem;margin:0 auto}
.about-description strong{color:var(--white);font-weight:600}
.about-grid{display:grid;grid-template-columns:1fr;gap:var(--space-xl)}
@media (min-width:640px){
.about-grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px){
.about-grid{grid-template-columns:repeat(3,1fr)}
}
.about-card{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-xl);padding:var(--space-xl);transition:.3s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden;text-align:center}
.about-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-light));transform:scaleX(0);transition:transform .3s cubic-bezier(.4, 0, .2, 1)}
.about-card:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.about-card:hover::before{transform:scaleX(1)}
@media (hover:none){
.about-card:active{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);transform:translateY(-2px)}
.about-card:active::before{transform:scaleX(1)}
}
.about-card-icon{font-size:2.5rem;margin-bottom:var(--space-lg);display:block;line-height:1}
.about-card h3{color:var(--white);font-size:1.25rem;font-weight:600;margin-bottom:var(--space-md);letter-spacing:-.01em}
.about-card p{color:var(--gray-300);font-size:.9375rem;font-weight:400;line-height:1.6;letter-spacing:-.01em;margin:0}
.about-card p strong{color:var(--white);font-weight:500}
@media (max-width:768px){
.about-card{padding:var(--space-lg)}
.about-card-icon{font-size:2rem;margin-bottom:var(--space-md)}
}
@media (max-width:480px){
.about-intro{margin-bottom:var(--space-2xl)}
.about-grid{gap:var(--space-lg)}
.about-card{padding:var(--space-md)}
.about-card-icon{font-size:1.75rem}
}
.experience-item{margin-bottom:var(--space-3xl);max-width:56rem;position:relative}
.experience-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-lg)}
@media (max-width:768px){
.experience-header{flex-direction:column;gap:var(--space-sm)}
}
.date{color:var(--gray-400);font-size:.875rem;font-weight:500;font-family:'JetBrains Mono',monospace;background:rgba(99,102,241,.1);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);border:1px solid rgba(99,102,241,.2);white-space:nowrap}
.company{color:var(--gray-300);font-weight:500;margin-bottom:var(--space-xs)}
.company-location{color:var(--gray-400);font-size:.875rem;font-style:italic}
.description{color:var(--gray-300);font-weight:400;margin-top:var(--space-lg);line-height:1.7;letter-spacing:-.01em}
.career-progression{position:relative;padding-left:var(--space-2xl);margin-bottom:var(--space-4xl)}
.career-progression::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--gray-700) 0,var(--accent) 50%,var(--accent-light) 100%);border-radius:2px}
.promotion-marker{position:absolute;left:-9px;top:var(--space-lg);width:21px;height:21px;background:linear-gradient(135deg,var(--accent) 0,var(--accent-light) 100%);border-radius:50%;border:3px solid var(--black);box-shadow:0 0 0 3px rgba(99,102,241,.2)}
.promotion-badge{display:inline-flex;align-items:center;background:linear-gradient(135deg,var(--accent) 0,var(--accent-light) 100%);color:var(--white);font-size:.75rem;font-weight:600;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-lg);margin-left:var(--space-md);vertical-align:middle;box-shadow:var(--shadow-sm);letter-spacing:.025em;text-transform:uppercase}
.company-group{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-xl);padding:var(--space-2xl);margin-bottom:var(--space-3xl);backdrop-filter:blur(10px);transition:.3s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden}
@media (max-width:768px){
.company-group{padding:var(--space-xl);margin-bottom:var(--space-2xl);border-radius:var(--radius-lg)}
}
.company-group::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(99,102,241,.5),transparent)}
.company-group:hover{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.04);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.company-group-header{margin-bottom:var(--space-xl)}
.company-group-header h3{color:var(--gray-200);font-size:1.125rem;font-weight:600;margin-bottom:var(--space-sm);letter-spacing:-.01em}
.skills-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2xl);max-width:64rem}
@media (min-width:640px){
.skills-grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px){
.skills-grid{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1280px){
.skills-grid{grid-template-columns:repeat(4,1fr)}
}
.skills-grid>div{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:var(--space-xl);transition:.3s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden}
@media (max-width:768px){
.skills-grid>div{padding:var(--space-lg)}
}
@media (max-width:480px){
.company-group{padding:var(--space-lg);margin-bottom:var(--space-xl)}
.skills-grid>div{padding:var(--space-md);text-align:center}
}
.skills-grid>div::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-light));transform:scaleX(0);transition:transform .3s cubic-bezier(.4, 0, .2, 1)}
.skills-grid>div:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.skills-grid>div:hover::before{transform:scaleX(1)}
@media (hover:none){
.skills-grid>div:active{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);transform:translateY(-2px)}
.skills-grid>div:active::before{transform:scaleX(1)}
}
.skill-list{color:var(--gray-300);font-weight:400}
.skill-list p{margin-bottom:var(--space-sm);padding:var(--space-xs) 0;transition:.2s cubic-bezier(.4, 0, .2, 1);border-radius:var(--radius-sm);position:relative}
.skill-list p:hover{color:var(--white);transform:translateX(4px)}
.contact-hero{background:radial-gradient(ellipse at center,rgba(99,102,241,.15) 0,transparent 70%);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-xl);margin:var(--space-2xl) 0;position:relative;overflow:hidden}
.contact-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),var(--accent-light),transparent)}
.contact-content{max-width:56rem;margin:0 auto;text-align:center}
.contact-header{margin-bottom:var(--space-3xl)}
.contact-header h2{font-size:clamp(2rem, 4vw, 3.5rem);font-weight:700;background:linear-gradient(135deg,var(--white) 0,var(--accent-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-lg)}
.contact-tagline{color:var(--gray-300);font-size:clamp(1.125rem, 2.5vw, 1.5rem);font-weight:400;line-height:1.5;letter-spacing:-.01em}
.contact-description{margin-bottom:var(--space-4xl)}
.contact-description p{color:var(--gray-300);font-size:clamp(1rem, 2vw, 1.25rem);font-weight:400;line-height:1.7;letter-spacing:-.01em;max-width:48rem;margin:0 auto}
.contact-description strong{color:var(--white);font-weight:600}
.contact-methods{margin-bottom:var(--space-4xl)}
.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md);max-width:600px;margin:0 auto}
@media (min-width:640px){
.contact-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:var(--space-md);max-width:700px}
}
.contact-availability{display:flex;justify-content:center}
@media (max-width:768px){
.contact-hero{margin:var(--space-xl) 0}
.contact-header{margin-bottom:var(--space-2xl)}
.contact-grid{max-width:600px}
}
@media (max-width:639px){
.contact-hero{margin:var(--space-lg) 0}
.contact-description,.contact-methods{margin-bottom:var(--space-2xl)}
.contact-grid{grid-template-columns:1fr;max-width:400px;gap:var(--space-md)}
}
.project-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2xl)}
@media (min-width:768px){
.project-grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px){
.project-grid{grid-template-columns:repeat(3,1fr)}
}
.project-card{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-xl);padding:var(--space-xl);transition:.3s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden;text-decoration:none;color:inherit}
.project-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-light));transform:scaleX(0);transition:transform .3s cubic-bezier(.4, 0, .2, 1)}
.project-card:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.project-card:hover::before{transform:scaleX(1)}
.project-image{width:100%;height:200px;object-fit:cover;border-radius:var(--radius-lg);margin-bottom:var(--space-lg);background:var(--gray-800)}
.project-title{color:var(--white);font-size:1.25rem;font-weight:600;margin-bottom:var(--space-md);letter-spacing:-.01em}
.project-description{color:var(--gray-300);font-size:.9375rem;font-weight:400;line-height:1.6;letter-spacing:-.01em;margin-bottom:var(--space-lg)}
.project-tech{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-lg)}
.project-links{display:flex;flex-direction:column;gap:var(--space-sm)}
.project-link{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);text-decoration:none;font-size:.875rem;font-weight:500;letter-spacing:-.01em;border-radius:var(--radius-lg);transition:.3s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden;min-height:44px;border:1px solid transparent;backdrop-filter:blur(10px)}
.project-link__icon{font-size:1rem;transition:transform .3s cubic-bezier(.4, 0, .2, 1)}
.project-link__text{font-weight:500;letter-spacing:-.01em}
.project-link--external{background:linear-gradient(135deg,rgba(34,197,94,.1) 0,rgba(34,197,94,.05) 100%);color:#22c55e;border-color:rgba(34,197,94,.2)}
.project-link--external:hover{background:linear-gradient(135deg,rgba(34,197,94,.15) 0,rgba(34,197,94,.1) 100%);color:#4ade80;border-color:rgba(34,197,94,.3);transform:translateY(-2px);box-shadow:0 8px 25px rgba(34,197,94,.15)}
.project-link--external:hover .project-link__icon{transform:scale(1.1)}
.project-link--github{background:linear-gradient(135deg,rgba(51,65,85,.1) 0,rgba(51,65,85,.05) 100%);color:#64748b;border-color:rgba(51,65,85,.2)}
.project-link--github:hover{background:linear-gradient(135deg,rgba(51,65,85,.15) 0,rgba(51,65,85,.1) 100%);color:#94a3b8;border-color:rgba(51,65,85,.3);transform:translateY(-2px);box-shadow:0 8px 25px rgba(51,65,85,.15)}
.project-link--github:hover .project-link__icon{transform:scale(1.1)}
.project-link--details{background:linear-gradient(135deg,var(--accent) 0,var(--accent-dark) 100%);color:var(--white);border-color:rgba(255,255,255,.1);box-shadow:var(--shadow-md)}
.project-link--details:hover{background:linear-gradient(135deg,var(--accent-light) 0,var(--accent) 100%);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.project-link--details:hover .project-link__icon{transform:scale(1.1)}
.project-link::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s cubic-bezier(.4, 0, .2, 1)}
.project-link:hover::before{left:100%}
@media (max-width:768px){
.project-link{padding:var(--space-sm) var(--space-md);font-size:.8125rem;min-height:40px}
.project-link__icon{font-size:.875rem}
}
@media (max-width:480px){
.project-link{padding:var(--space-md) var(--space-lg);font-size:.875rem;min-height:44px}
}
.project-hero{background:radial-gradient(ellipse at center,rgba(99,102,241,.15) 0,transparent 70%);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-xl);padding:var(--space-3xl);margin-bottom:var(--space-4xl);position:relative;overflow:hidden}
.project-meta .meta-item a{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;text-decoration:none;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.3s cubic-bezier(.4, 0, .2, 1);backdrop-filter:blur(10px)}
.project-meta .meta-item a:hover{transform:translateY(-2px)}
.project-meta .meta-item a.visit-site{background:linear-gradient(135deg,rgba(34,197,94,.1) 0,rgba(34,197,94,.05) 100%);color:#22c55e;border:1px solid rgba(34,197,94,.2)}
.project-meta .meta-item a.visit-site:hover{background:linear-gradient(135deg,rgba(34,197,94,.15) 0,rgba(34,197,94,.1) 100%);color:#4ade80;border-color:rgba(34,197,94,.3);box-shadow:0 8px 25px rgba(34,197,94,.15)}
.project-meta .meta-item a.github-link{background:linear-gradient(135deg,rgba(51,65,85,.1) 0,rgba(51,65,85,.05) 100%);color:#64748b;border:1px solid rgba(51,65,85,.2)}
.project-meta .meta-item a.github-link:hover{background:linear-gradient(135deg,rgba(51,65,85,.15) 0,rgba(51,65,85,.1) 100%);color:#94a3b8;border-color:rgba(51,65,85,.3);box-shadow:0 8px 25px rgba(51,65,85,.15)}
.project-meta .meta-item a .icon{font-size:1rem;transition:transform .3s cubic-bezier(.4, 0, .2, 1)}
.project-meta .meta-item a:hover .icon{transform:scale(1.1)}
.project-tech.margin-top{margin-top:var(--space-xl)}
.tech-tag.success{background:rgba(16,185,129,.1);color:var(--success);border-color:rgba(16,185,129,.2)}
.screenshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-xl);margin-top:var(--space-3xl)}
.screenshot-item{position:relative;border-radius:var(--radius-lg);background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.08);cursor:pointer}
.screenshot-item:hover{box-shadow:var(--shadow-xl);border-color:rgba(99,102,241,.3)}
.screenshot-item:hover img{transform:scale(1.05)}
.screenshot-overlay{background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center}
.screenshot-item:hover .screenshot-overlay{opacity:1}
.screenshot-overlay .icon{font-size:1.25rem;color:#fff}
.modal-content{margin:auto;padding:var(--space-xl);width:90%;max-width:1200px;height:90%;display:flex;align-items:center;justify-content:center}
.modal-image{object-fit:contain;border-radius:var(--radius-lg);box-shadow:var(--shadow-2xl)}
.modal-close{top:var(--space-lg);right:var(--space-lg);color:var(--white);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px)}
.text-center{text-align:center}
.tech-count-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,rgba(99,102,241,.1) 0,rgba(99,102,241,.05) 100%);color:#818cf8;border-radius:.5rem;border:1px solid rgba(99,102,241,.2);font-size:.875rem;font-weight:500;backdrop-filter:blur(10px)}
.screenshots-showcase{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-xl);margin-top:var(--space-3xl)}
.screenshot-card{border-radius:1rem;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.screenshot-card .image-container{position:relative;width:100%;height:0;padding-bottom:56.25%;background:var(--gray-800)}
.screenshot-card img{position:absolute;top:0;left:0;object-fit:contain;width:100%;height:100%;object-fit:contain;transition:transform .3s cubic-bezier(.4, 0, .2, 1)}
.screenshot-card .overlay-button{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2)}
.screenshot-card .overlay-button .icon{font-size:1.25rem;color:#fff}
.project-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),var(--accent-light),transparent)}
.project-meta{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin-top:var(--space-xl)}
.meta-item{display:flex;align-items:center;gap:var(--space-sm);color:var(--gray-300);font-size:.875rem}
.meta-item strong{color:var(--white);font-weight:600}
.screenshots-showcase{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-xl);margin-top:var(--space-2xl)}
@media (min-width:768px){
.screenshots-showcase{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-2xl)}
}
@media (min-width:1024px){
.screenshots-showcase{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}
}
.screenshot-card{position:relative;border-radius:var(--radius-xl);overflow:hidden;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.08);transition:.3s cubic-bezier(.4, 0, .2, 1);cursor:pointer;box-shadow:var(--shadow-md)}
.screenshot-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.3);border-color:rgba(255,255,255,.15)}
.screenshot-card:hover img{transform:scale(1.02)}
.screenshot-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(99,102,241,.1) 0,transparent 50%,rgba(0,0,0,.3) 100%);opacity:0;transition:opacity .3s cubic-bezier(.4, 0, .2, 1);display:flex;align-items:center;justify-content:center}
.screenshot-card:hover .screenshot-overlay{opacity:1}
.screenshots-grid{display:grid;grid-template-columns:1fr;gap:var(--space-lg);margin-top:var(--space-2xl)}
@media (min-width:768px){
.screenshots-grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px){
.screenshots-grid{grid-template-columns:repeat(3,1fr)}
}
.screenshot-item{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);transition:.3s cubic-bezier(.4, 0, .2, 1)}
.screenshot-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.screenshot-item img{transition:transform .3s cubic-bezier(.4, 0, .2, 1);width:100%;height:auto;display:block}
.image-modal{backdrop-filter:blur(10px);position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.95);backdrop-filter:blur(20px);z-index:1000;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .3s cubic-bezier(.4, 0, .2, 1);padding:2rem}
.image-modal.active{opacity:1}
.modal-content{position:relative;max-width:calc(100vw - 4rem);max-height:calc(100vh - 4rem);display:flex;align-items:center;justify-content:center}
.modal-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:.75rem;box-shadow:0 25px 50px rgba(0,0,0,.5)}
.modal-close{position:absolute;top:-60px;right:0;background:rgba(239,68,68,.9);border:2px solid rgba(255,255,255,.3);color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);transition:.3s cubic-bezier(.4, 0, .2, 1);box-shadow:0 8px 25px rgba(239,68,68,.3)}
.modal-close:hover{background:#ef4444;transform:scale(1.1);box-shadow:0 12px 35px rgba(239,68,68,.4)}
@media (max-width:768px){
.project-hero{padding:var(--space-2xl);margin-bottom:var(--space-3xl)}
.project-meta{gap:var(--space-md)}
.screenshots-showcase{gap:var(--space-lg)}
.modal-content{max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)}
.modal-close{top:-50px;width:44px;height:44px;font-size:1.25rem}
}
@media (max-width:480px){
.project-hero{padding:var(--space-xl);margin-bottom:var(--space-2xl)}
.project-meta{flex-direction:column;gap:var(--space-sm)}
.screenshots-showcase{gap:var(--space-md)}
.modal-close{top:-40px;width:40px;height:40px;font-size:1.125rem}
}