*{box-sizing:border-box;margin:0;padding:0}:root{--primary-gradient:linear-gradient(135deg,#667eea,#764ba2);--primary-color:#667eea;--secondary-color:#764ba2;--bg-primary:#0a0a0a;--bg-secondary:#1a1a1a;--text-primary:#fff;--text-secondary:#d0d0d0;--text-muted:#a0a0a0;--border-color:#ffffff1a;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 20px #0006;--shadow-lg:0 10px 40px #00000080;--shadow-glow:0 0 30px #667eea4d}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0a0a0a;background-color:var(--bg-primary);color:#fff;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;line-height:1.6;margin:0;overflow-x:hidden}code{font-family:SF Mono,Monaco,Inconsolata,Fira Code,Droid Sans Mono,Courier New,monospace}html{scroll-behavior:smooth}h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.02em;line-height:1.2}p{line-height:1.7}::selection{background:#667eea4d;color:#fff;color:var(--text-primary)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.App{background:var(--bg-primary);min-height:100vh;position:relative}.App:before{background:radial-gradient(circle at 20% 50%,#667eea14 0,#0000 50%),radial-gradient(circle at 80% 80%,#764ba214 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:0}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--primary-color),var(--secondary-color));border:2px solid var(--bg-primary);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#7c8ef0,#8550b8)}.header{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#0a0a0ab3;border-bottom:1px solid #0000;left:0;position:fixed;right:0;top:0;transition:all .4s cubic-bezier(.4,0,.2,1);z-index:1000}.header.scrolled{background:#0a0a0ad9;border-bottom:1px solid #667eea33;box-shadow:0 8px 32px #0006}.header-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1.5rem 2rem}.logo{cursor:pointer;transition:transform .3s ease}.logo:hover{transform:scale(1.05)}.logo-text{-webkit-text-fill-color:#0000;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800;letter-spacing:-.02em;position:relative}.nav{align-items:center;display:flex;gap:2.5rem}.nav a{color:var(--text-secondary);font-size:.95rem;font-weight:500;letter-spacing:.01em;padding:.5rem 0;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.nav a:after{background:var(--primary-gradient);border-radius:2px;bottom:0;content:"";height:2px;left:0;position:absolute;transition:width .4s cubic-bezier(.4,0,.2,1);width:0}.nav a:hover{color:var(--text-primary)}.nav a:hover:after{width:100%}.mobile-menu-toggle{background:none;border:none;color:#fff;cursor:pointer;display:none;padding:.5rem}@media (max-width:768px){.header-container{padding:1rem 1.5rem}.mobile-menu-toggle{display:block}.nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0afa;border-bottom:1px solid #ffffff1a;flex-direction:column;gap:1.5rem;left:0;opacity:0;padding:2rem;position:absolute;right:0;top:100%;transform:translateY(-100%);transition:all .3s ease;visibility:hidden}.nav.nav-open{opacity:1;transform:translateY(0);visibility:visible}.nav a{font-size:1.1rem}}.hero{align-items:center;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:8rem 2rem 4rem;position:relative;z-index:1}.hero:before{animation:heroGradientShift 20s ease infinite;background:radial-gradient(circle at 30% 40%,#667eea26 0,#0000 50%),radial-gradient(circle at 70% 60%,#764ba226 0,#0000 50%);content:"";height:200%;left:-50%;pointer-events:none;position:absolute;top:-50%;width:200%;will-change:transform}@keyframes heroGradientShift{0%,to{transform:translate(0) scale(1)}50%{transform:translate(5%,5%) scale(1.1)}}.hero-container{grid-gap:4rem;align-items:center;display:grid;gap:4rem;grid-template-columns:1fr 1fr;max-width:1200px;position:relative;width:100%;z-index:1}.hero-content{display:flex;flex-direction:column;gap:1.5rem}.hero-badge{align-items:center;animation:fadeInUp .8s ease-out;animation-fill-mode:both;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#667eea1a;border:1px solid #667eea4d;border-radius:50px;box-shadow:0 4px 12px #667eea26;color:var(--primary-color);display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.625rem 1.25rem;width:-webkit-fit-content;width:fit-content}.hero-title{animation:fadeInUp .8s ease-out .1s;animation-fill-mode:both;color:var(--text-primary);font-size:clamp(2.5rem,8vw,5rem);font-weight:900;letter-spacing:-.03em;line-height:1.1;margin-bottom:1.5rem}.gradient-text{-webkit-text-fill-color:#0000;animation:gradientTextShift 4s ease infinite;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;background-size:200% 200%;display:block;position:relative}@keyframes gradientTextShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero-description{animation:fadeInUp .8s ease-out .2s;animation-fill-mode:both;color:var(--text-muted);font-size:clamp(1rem,2vw,1.3rem);line-height:1.8;max-width:650px}.hero-buttons{display:flex;gap:1rem;margin-top:1rem}.btn-primary,.btn-secondary{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.btn-primary{background:var(--primary-gradient);color:var(--text-primary);overflow:hidden;position:relative}.btn-primary:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.btn-primary:hover:before{left:100%}.btn-primary:hover{box-shadow:0 12px 40px #667eea80;transform:translateY(-3px)}.btn-secondary{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:2px solid #ffffff26;color:var(--text-primary)}.btn-secondary:hover{background:#ffffff1a;border-color:#667eea80;box-shadow:0 8px 25px #0000004d;transform:translateY(-3px)}.hero-visual{align-items:center;display:flex;justify-content:center}.code-block{animation:fadeInUp .8s ease-out .4s;animation-fill-mode:both;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);background:#ffffff08;border:1px solid #667eea33;border-radius:24px;box-shadow:0 8px 32px #0000004d,inset 0 1px 0 #ffffff1a;padding:3rem;position:relative;transition:all .4s ease;will-change:transform}.code-block:hover{border-color:#667eea66;box-shadow:0 12px 48px #667eea33,inset 0 1px 0 #ffffff26;transform:translateY(-5px)}.code-icon{animation:pulse 2s ease-in-out infinite;color:#667eea;will-change:transform,opacity}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.code-lines{display:flex;flex-direction:column;gap:.5rem;margin-top:1.5rem}.code-line{animation:shimmer 2s ease-in-out infinite;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px;height:4px;will-change:opacity}.code-line:first-child{animation-delay:0s;width:80%}.code-line:nth-child(2){animation-delay:.3s;width:60%}.code-line:nth-child(3){animation-delay:.6s;width:70%}@keyframes shimmer{0%,to{opacity:.3}50%{opacity:1}}.scroll-indicator{align-items:center;bottom:2rem;display:flex;flex-direction:column;gap:.5rem;left:50%;position:absolute;transform:translateX(-50%)}.scroll-line{animation:scroll 2s ease-in-out infinite;background:linear-gradient(180deg,#667eea,#0000);height:40px;width:2px;will-change:transform,opacity}@keyframes scroll{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@media (max-width:968px){.hero-container{gap:3rem;grid-template-columns:1fr;text-align:center}.hero-title{font-size:3rem}.hero-buttons{justify-content:center}.hero-visual{order:-1}}@media (max-width:640px){.hero{padding:6rem 1.5rem 3rem}.hero-title{font-size:2.5rem}.hero-description{font-size:1.1rem}.hero-buttons{flex-direction:column;width:100%}.btn-primary,.btn-secondary{justify-content:center;width:100%}}.about{background:var(--bg-primary);padding:8rem 2rem;position:relative;z-index:1}.about:before{background:radial-gradient(circle at 50% 20%,#667eea0d 0,#0000 50%),radial-gradient(circle at 50% 80%,#764ba20d 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:0}.about-container{margin:0 auto;max-width:1200px;position:relative;z-index:1}.about-header{margin-bottom:4rem;text-align:center}.about-content,.about-main{display:flex;flex-direction:column;gap:3rem}.about-intro{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff05;border:1px solid #667eea33;border-radius:24px;margin:0 auto;max-width:800px;padding:2rem;text-align:center}.about-name{-webkit-text-fill-color:#0000;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:clamp(2rem,5vw,3rem);font-weight:900;margin-bottom:.5rem}.about-title{color:var(--text-muted);font-size:1.2rem;font-weight:500;margin-bottom:1.5rem}.about-contact-info{background:#667eea0d;border:1px solid #667eea26;border-radius:16px;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin-bottom:2rem;padding:1.5rem}.contact-item{align-items:center;color:var(--text-secondary);display:flex;font-size:.95rem;gap:.5rem;transition:all .3s ease}.contact-item svg{color:var(--primary-color);flex-shrink:0}.contact-item a{color:var(--text-secondary);position:relative;text-decoration:none;transition:color .3s ease}.contact-item a:hover{color:var(--primary-color)}.contact-item a:after{background:var(--primary-gradient);bottom:-2px;content:"";height:1px;left:0;position:absolute;transition:width .3s ease;width:0}.contact-item a:hover:after{width:100%}.about-summary,.contact-item span{color:var(--text-secondary)}.about-summary{font-size:1.1rem;line-height:1.8;margin:0 auto;max-width:700px}.about-details{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.about-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff05;border:1px solid #667eea26;border-radius:20px;display:flex;gap:1.5rem;overflow:hidden;padding:2rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.about-card:before{background:var(--primary-gradient);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .4s ease;z-index:0}.about-card:hover:before{opacity:.05}.about-card:hover{border-color:#667eea66;box-shadow:0 16px 40px #667eea33;transform:translateY(-8px)}.about-card-icon{align-items:center;background:#667eea1a;border:1px solid #667eea33;border-radius:12px;color:var(--primary-color);display:flex;flex-shrink:0;height:50px;justify-content:center;position:relative;transition:all .3s ease;width:50px;z-index:1}.about-card:hover .about-card-icon{background:#667eea33;transform:scale(1.1)}.about-card-content{flex:1 1;position:relative;z-index:1}.about-card-title{color:var(--text-primary);font-size:1.3rem;font-weight:700;margin-bottom:1rem}.about-card-text{color:var(--text-secondary);line-height:1.7;margin-bottom:.75rem}.about-card-text strong{color:var(--text-primary);font-weight:600}.about-card-meta{color:var(--text-muted);display:block;font-size:.9rem;margin-top:.5rem}.about-card-description{color:var(--text-secondary);font-size:.95rem;line-height:1.7;margin-top:.75rem}.about-card-highlights{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.highlight-tag{background:#667eea1a;border:1px solid #667eea4d;border-radius:20px;color:var(--primary-color);font-size:.85rem;font-weight:500;padding:.4rem .8rem}.skills-grid{gap:1.25rem}.skill-category,.skills-grid{display:flex;flex-direction:column}.skill-category{gap:.75rem}.skill-category strong{color:var(--text-primary);font-size:.95rem;margin-bottom:.25rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{background:#667eea1a;border:1px solid #667eea4d;border-radius:20px;color:var(--primary-color);font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.skill-tag:hover{background:#667eea33;transform:translateY(-2px)}.languages-list{display:flex;flex-direction:column;gap:1rem}.language-item{align-items:center;background:#667eea0d;border:1px solid #667eea26;border-radius:12px;display:flex;justify-content:space-between;padding:.75rem 1rem;transition:all .3s ease}.language-item:hover{background:#667eea1a;border-color:#667eea4d}.language-name{color:var(--text-primary);font-weight:600}.language-level{background:#667eea33;border-radius:12px;color:var(--primary-color);font-size:.85rem;font-weight:500;padding:.25rem .75rem}@media (max-width:968px){.about-details{grid-template-columns:1fr}.about-card{flex-direction:column}.about-card-icon{align-self:flex-start}}@media (max-width:640px){.about{padding:6rem 1.5rem}.about-card,.about-intro{padding:1.5rem}.about-name{font-size:2rem}.about-summary,.about-title{font-size:1rem}.about-contact-info{flex-direction:column;gap:1rem;padding:1.25rem}.contact-item{justify-content:center}}.projects{background:var(--bg-primary);overflow-x:hidden;padding:8rem 2rem;position:relative;width:100%;z-index:1}.projects:before{background:radial-gradient(circle at 10% 20%,#667eea0d 0,#0000 50%),radial-gradient(circle at 90% 80%,#764ba20d 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:0}.projects-container{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;margin:0 auto;max-width:1400px;position:relative;width:100%;z-index:1}.projects-header{margin-bottom:4rem;text-align:center}.section-title{color:var(--text-primary);font-size:clamp(2.5rem,6vw,4rem);font-weight:900;letter-spacing:-.02em;margin-bottom:1.5rem}.section-description{color:#a0a0a0;font-size:1.2rem;margin:0 auto;max-width:600px}.projects-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));justify-content:center;justify-items:center;margin:3rem auto 0;max-width:1400px;place-items:center;width:100%}.project-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff05;border:1px solid #667eea26;border-radius:24px;cursor:pointer;display:flex;flex-direction:column;margin:0 auto;max-width:600px;overflow:hidden;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1);width:100%;will-change:transform}.project-card:before{background:var(--primary-gradient);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .4s ease;z-index:0}.project-card:hover:before{opacity:.05}.project-card:hover{border-color:#667eea66;box-shadow:0 24px 60px #667eea40,0 0 0 1px #667eea1a;transform:translateY(-12px) scale(1.02)}@media (max-width:768px){.project-card:hover{transform:translateY(-6px) scale(1.01)}}@media (max-width:480px){.project-card:hover{transform:translateY(-4px)}}.project-card.featured{background:#667eea14;border-color:#667eea4d;box-shadow:0 8px 32px #667eea26;grid-column:span 2;max-width:800px}@media (max-width:1024px){.project-card.featured{grid-column:span 1;max-width:600px}}.project-card.featured:before{opacity:.08}.project-image{align-items:center;background:#ffffff0d;display:flex;justify-content:center;max-height:400px;min-height:250px;overflow:hidden;position:relative;width:100%}.project-card.featured .project-image{max-height:500px;min-height:350px}@media (max-width:768px){.project-image{max-height:300px;min-height:200px}.project-card.featured .project-image{max-height:350px;min-height:250px}}.project-image img{display:block;height:100%;object-fit:contain;transition:transform .3s ease;width:100%}.project-card:hover .project-image img{transform:scale(1.05)}.project-overlay{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#667eeae6,#764ba2e6);bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:all .4s cubic-bezier(.4,0,.2,1);z-index:2}.project-card:hover .project-overlay{opacity:1}.project-links{flex-wrap:wrap;gap:1rem}.project-link,.project-links{align-items:center;display:flex;justify-content:center}.project-link{background:#667eea33;border:2px solid #667eea;border-radius:50%;color:#fff;cursor:pointer;height:50px;text-decoration:none;transition:all .3s ease;width:50px}.project-link.view-details{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:2px solid #ffffff4d;border-radius:30px;color:var(--text-primary);font-size:.95rem;font-weight:600;height:auto;padding:.875rem 2rem;text-decoration:none;white-space:nowrap;width:auto}.project-link:hover{background:#667eea;transform:scale(1.1)}.project-content{display:flex;flex:1 1;flex-direction:column;gap:1rem;padding:2rem}.project-title{color:#fff;font-size:1.5rem;font-weight:700;margin:0}.project-description{color:#a0a0a0;flex:1 1;line-height:1.6}.project-technologies{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto}.project-click-hint{align-items:center;color:var(--primary-color);display:flex;font-size:.875rem;font-weight:500;gap:.5rem;margin-top:1rem;opacity:.8;transition:all .3s ease}.project-card:hover .project-click-hint{opacity:1;transform:translateX(5px)}.tech-tag{background:#667eea1a;border:1px solid #667eea4d;border-radius:20px;color:#667eea;font-size:.85rem;padding:.4rem .8rem}.empty-state,.error-message,.loading-state{color:#a0a0a0;padding:4rem 2rem;text-align:center}.spinner{animation:spin 1s linear infinite;color:#667eea;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-message{background:#ff00001a;border:1px solid #ff00004d;border-radius:8px;margin-bottom:2rem}.error-hint{color:#888;font-size:.9rem;margin-top:.5rem}.error-hint code{background:#ffffff1a;border-radius:4px;font-size:.85rem;padding:.2rem .4rem}@media (max-width:968px){.projects-grid{gap:1.5rem;grid-template-columns:1fr;justify-content:center;justify-items:center;margin-left:auto;margin-right:auto;max-width:600px}.project-card{max-width:100%}.project-card.featured{grid-column:span 1;max-width:100%}}@media (max-width:768px){.projects{padding:6rem 1.5rem}.projects-container{align-items:center}.projects-grid{gap:1.5rem;grid-template-columns:1fr;justify-content:center;justify-items:center;margin-left:auto;margin-right:auto;max-width:100%;width:100%}.project-card{margin:0 auto;max-width:100%;width:100%}.project-content{padding:1.5rem}.project-title{font-size:1.3rem}.project-description{font-size:.95rem}}@media (max-width:640px){.projects{padding:4rem 1rem}.projects-container{align-items:center;padding:0}.section-title{font-size:clamp(2rem,8vw,2.5rem);margin-bottom:1rem;text-align:center}.section-description{font-size:.95rem;padding:0 1rem;text-align:center}.projects-grid{gap:1.25rem;grid-template-columns:1fr;justify-content:center;justify-items:center;margin-left:auto;margin-right:auto;margin-top:2rem;max-width:100%;padding:0;width:100%}.project-card{border-radius:20px;margin:0 auto;max-width:100%;width:100%}.project-content{gap:.75rem;padding:1.25rem}.project-title{font-size:1.2rem}.project-description{font-size:.9rem;line-height:1.6}.project-technologies{gap:.4rem}.tech-tag{font-size:.8rem;padding:.35rem .7rem}.project-click-hint{font-size:.8rem;margin-top:.75rem}}@media (max-width:480px){.projects{padding:4rem .75rem}.projects-container{padding:0}.projects-header{margin-bottom:2.5rem;padding:0 .5rem}.project-card{border-radius:16px}.project-image{max-height:250px;min-height:180px}.project-content{padding:1rem}}.project-modal-overlay{align-items:flex-start;animation:fadeIn .4s cubic-bezier(.4,0,.2,1);animation-fill-mode:both;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#000000d9;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:calc(2rem + 100px) 2rem 2rem;position:fixed;right:0;top:0;will-change:opacity;z-index:2000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.project-modal-content{animation:slideUp .4s cubic-bezier(.4,0,.2,1);animation-fill-mode:both;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);background:linear-gradient(180deg,#1a1a1af2,#0a0a0afa);border:1px solid #667eea4d;border-radius:32px;box-shadow:0 25px 80px #0009,0 0 0 1px #667eea1a,inset 0 1px 0 #ffffff0d;margin-top:0;max-height:calc(90vh - 100px);max-width:950px;overflow-y:auto;position:relative;width:100%;will-change:transform,opacity}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.project-modal-close{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:2px solid #fff3;border-radius:50%;box-shadow:0 4px 12px #0000004d,inset 0 1px 0 #ffffff1a;color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;position:absolute;right:1.5rem;top:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);width:48px;z-index:10}.project-modal-close:hover{background:#fff3;border-color:#fff6;box-shadow:0 6px 20px #0006,inset 0 1px 0 #fff3;transform:rotate(90deg) scale(1.05)}.project-modal-close:active{transform:rotate(90deg) scale(.95)}.project-modal-back{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#667eea26;border:2px solid #667eea4d;border-radius:50%;box-shadow:0 4px 12px #667eea33,inset 0 1px 0 #ffffff1a;color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;left:1.5rem;position:absolute;top:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);width:48px;z-index:10}.project-modal-back:hover{background:#667eea40;border-color:#667eea80;box-shadow:0 6px 20px #667eea4d,inset 0 1px 0 #fff3;transform:translateX(-3px) scale(1.05)}.project-modal-back:active{transform:translateX(-3px) scale(.95)}.project-modal-image{align-items:center;background:#ffffff0d;display:flex;justify-content:center;max-height:500px;min-height:300px;overflow:hidden;width:100%}.project-modal-image img{display:block;height:100%;object-fit:contain;width:100%}.project-modal-body{padding:4rem 2.5rem 2.5rem}.project-modal-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.5rem;font-weight:800;margin:0 0 1rem}.project-modal-description{color:#d0d0d0;font-size:1.1rem;line-height:1.8;margin-bottom:2rem}.project-modal-section{margin-bottom:2rem}.project-modal-section-title{align-items:center;color:#667eea;display:flex;font-size:1.3rem;font-weight:700;gap:.5rem;margin:0 0 1rem}.project-modal-section-title:before{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:2px;content:"";height:1.3rem;width:4px}.project-modal-features{display:flex;flex-direction:column;gap:.75rem;list-style:none;margin:0;padding:0}.project-modal-features li{align-items:flex-start;color:#d0d0d0;display:flex;gap:.75rem;line-height:1.6}.project-modal-features li svg{color:#667eea;flex-shrink:0;margin-top:.2rem}.project-modal-highlights{display:flex;flex-direction:column;gap:.75rem;list-style:none;margin:0;padding:0}.project-modal-highlights li{color:#d0d0d0;line-height:1.6;padding-left:1.5rem;position:relative}.project-modal-highlights li:before{color:#667eea;content:"▸";font-weight:700;left:0;position:absolute}.project-modal-tech-stack{display:flex;flex-direction:column;gap:.75rem}.tech-stack-item{background:#667eea0d;border-left:3px solid #667eea;border-radius:4px;color:#d0d0d0;line-height:1.6;padding:.75rem}.tech-stack-item strong{color:#667eea;margin-right:.5rem}.project-modal-technologies{display:flex;flex-wrap:wrap;gap:.75rem}.project-modal-purpose{background:#667eea0d;border-left:3px solid #667eea;border-radius:4px;color:#d0d0d0;font-style:italic;line-height:1.8;padding:1rem}.project-modal-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.5rem}.project-modal-button{align-items:center;border-radius:12px;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.875rem 1.75rem;text-decoration:none;transition:all .3s ease}.project-modal-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff}.project-modal-button.primary:hover{box-shadow:0 10px 30px #667eea66;transform:translateY(-2px)}.project-modal-button.secondary{background:#667eea1a;border:2px solid #667eea;color:#667eea}.project-modal-button.secondary:hover{background:#667eea33;transform:translateY(-2px)}.project-modal-button.tertiary{background:#ffffff0f;border:1px solid #fff3;color:#d6d6d6}.project-modal-button.tertiary:hover{background:#ffffff24;color:#fff;transform:translateY(-2px)}@media (max-width:768px){.project-modal-overlay{padding:calc(1rem + 90px) 1rem 1rem}.project-modal-content{margin-top:0;max-height:calc(95vh - 90px)}.project-modal-body{padding:1.5rem}.project-modal-title{font-size:2rem}.project-modal-image{max-height:300px;min-height:200px}.project-modal-actions{flex-direction:column}.project-modal-button{justify-content:center;width:100%}.project-modal-close{height:44px;right:1rem;top:1rem;width:44px}.project-modal-back{height:44px;left:1rem;top:1rem;width:44px}}.footer{background:var(--bg-primary);border-top:1px solid #667eea33;margin-top:6rem;padding:5rem 2rem 2.5rem;position:relative}.footer:before{background:var(--primary-gradient);content:"";height:1px;left:0;opacity:.5;position:absolute;right:0;top:0}.footer-container{margin:0 auto;max-width:1200px}.footer-content{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:3rem}.footer-section{display:flex;flex-direction:column;gap:1rem}.footer-logo{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700;margin:0}.footer-description{color:#a0a0a0;line-height:1.6;max-width:300px}.footer-title{color:#fff;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.footer-links{display:flex;flex-direction:column;gap:.75rem;list-style:none;margin:0;padding:0}.footer-links a{color:#a0a0a0;text-decoration:none;transition:color .3s ease}.footer-links a:hover{color:#667eea}.social-links{display:flex;gap:1rem}.social-link{align-items:center;background:#ffffff0d;border:1px solid #667eea33;border-radius:50%;color:var(--text-muted);display:flex;height:48px;justify-content:center;overflow:hidden;position:relative;text-decoration:none;transition:all .4s cubic-bezier(.4,0,.2,1);width:48px}.social-link:before{background:var(--primary-gradient);border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .4s,height .4s;width:0}.social-link:hover:before{height:100%;width:100%}.social-link:hover{border-color:var(--primary-color);box-shadow:0 8px 24px #667eea66;color:var(--text-primary);transform:translateY(-5px) scale(1.1)}.social-link svg{position:relative;z-index:1}.footer-bottom{align-items:center;border-top:1px solid #ffffff1a;color:#666;display:flex;font-size:.9rem;justify-content:space-between;padding-top:2rem}.footer-note{color:#666;font-size:.85rem}.footer-legal-links{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.footer-legal-links a{color:#9ca3af;text-decoration:none;transition:color .2s ease}.footer-legal-links a:hover{color:#667eea}@media (max-width:768px){.footer{padding:3rem 1.5rem 1.5rem}.footer-content{gap:2rem;grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:.5rem;text-align:center}}
/*# sourceMappingURL=main.b5c9aa71.css.map*/