.ProjectCard-module__U_VZua__card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-smooth);outline:none;overflow:hidden}.ProjectCard-module__U_VZua__card:hover,.ProjectCard-module__U_VZua__card:focus-visible{border-color:var(--accent);box-shadow:var(--shadow-lg),0 0 30px var(--accent-glow);transform:translateY(-8px)}.ProjectCard-module__U_VZua__card:focus-visible{box-shadow:var(--shadow-lg),0 0 0 3px var(--accent-glow)}.ProjectCard-module__U_VZua__imageWrapper{aspect-ratio:16/10;background:var(--bg-secondary);position:relative;overflow:hidden}.ProjectCard-module__U_VZua__imagePlaceholder{background:linear-gradient(135deg,var(--bg-secondary),var(--bg-tertiary));animation:2s ease-in-out infinite ProjectCard-module__U_VZua__pulse;position:absolute;inset:0}.ProjectCard-module__U_VZua__image{object-fit:cover;opacity:0;width:100%;height:100%;transition:all var(--transition-smooth);transform:scale(1)}.ProjectCard-module__U_VZua__imageLoaded{opacity:1}.ProjectCard-module__U_VZua__card:hover .ProjectCard-module__U_VZua__image{transform:scale(1.08)}.ProjectCard-module__U_VZua__overlay{opacity:0;transition:all var(--transition-smooth);background:linear-gradient(#0000 0% 50%,#000c 100%);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ProjectCard-module__U_VZua__card:hover .ProjectCard-module__U_VZua__overlay{opacity:1;background:linear-gradient(#6366f133 0%,#000000e6 100%)}.ProjectCard-module__U_VZua__viewText{background:var(--accent-gradient);color:#fff;border-radius:var(--radius-md);opacity:0;transition:all var(--transition-smooth);padding:10px 20px;font-size:13px;font-weight:600;transform:translateY(20px)}.ProjectCard-module__U_VZua__card:hover .ProjectCard-module__U_VZua__viewText{opacity:1;transform:translateY(0)}.ProjectCard-module__U_VZua__content{padding:20px}.ProjectCard-module__U_VZua__title{font-family:var(--font-display);color:var(--text-primary);transition:color var(--transition-base);margin-bottom:8px;font-size:18px;font-weight:700}.ProjectCard-module__U_VZua__card:hover .ProjectCard-module__U_VZua__title{color:var(--accent-hover)}.ProjectCard-module__U_VZua__description{color:var(--text-secondary);font-size:14px;line-height:1.5}@media (max-width:768px){.ProjectCard-module__U_VZua__content{padding:16px}.ProjectCard-module__U_VZua__title{font-size:16px}.ProjectCard-module__U_VZua__description{font-size:13px}}
.ProjectModal-module__Gk35kW__overlay{-webkit-backdrop-filter:blur(12px);z-index:1000;opacity:0;visibility:hidden;transition:all var(--transition-smooth);background:#000000d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.ProjectModal-module__Gk35kW__active{opacity:1;visibility:visible}.ProjectModal-module__Gk35kW__modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);opacity:0;width:100%;max-width:600px;max-height:90vh;transition:all var(--transition-smooth);box-shadow:var(--shadow-lg),0 0 60px var(--accent-glow);position:relative;overflow:hidden;transform:scale(.9)translateY(30px)}.ProjectModal-module__Gk35kW__active .ProjectModal-module__Gk35kW__modal{opacity:1;transform:scale(1)translateY(0)}.ProjectModal-module__Gk35kW__closeButton{background:var(--bg-secondary);border:1px solid var(--border);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;z-index:10;transition:all var(--transition-base);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:16px;right:16px}.ProjectModal-module__Gk35kW__closeButton:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-hover)}.ProjectModal-module__Gk35kW__imageWrapper{aspect-ratio:16/9;background:var(--bg-secondary);width:100%;overflow:hidden}.ProjectModal-module__Gk35kW__image{object-fit:cover;width:100%;height:100%}.ProjectModal-module__Gk35kW__content{padding:28px}.ProjectModal-module__Gk35kW__title{font-family:var(--font-display);color:var(--text-primary);background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:16px;font-size:28px;font-weight:800}.ProjectModal-module__Gk35kW__description{color:var(--text-secondary);margin-bottom:28px;font-size:15px;line-height:1.7}.ProjectModal-module__Gk35kW__button{background:var(--accent-gradient);color:#fff;border-radius:var(--radius-md);transition:all var(--transition-base);box-shadow:var(--shadow-sm),0 0 20px var(--accent-glow);justify-content:center;align-items:center;gap:10px;padding:14px 28px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.ProjectModal-module__Gk35kW__button:hover{box-shadow:var(--shadow-md),var(--shadow-glow);transform:translateY(-2px)}@media (max-width:640px){.ProjectModal-module__Gk35kW__modal{max-height:95vh}.ProjectModal-module__Gk35kW__content{padding:20px}.ProjectModal-module__Gk35kW__title{font-size:22px}.ProjectModal-module__Gk35kW__description{font-size:14px}.ProjectModal-module__Gk35kW__button{width:100%;padding:12px 24px}}
.Footer-module__S6Hkya__footer{border-top:1px solid var(--border);background:var(--bg-secondary);margin-top:auto;padding:40px 0;position:relative;overflow:hidden}.Footer-module__S6Hkya__container{z-index:1;flex-direction:column;align-items:center;gap:20px;max-width:1200px;margin:0 auto;padding:0 24px;display:flex;position:relative}.Footer-module__S6Hkya__glow{background:radial-gradient(ellipse,var(--accent-glow),transparent 70%);opacity:.5;pointer-events:none;width:400px;height:200px;position:absolute;top:-100px;left:50%;transform:translate(-50%)}.Footer-module__S6Hkya__text{color:var(--text-secondary);text-align:center;font-size:14px}.Footer-module__S6Hkya__links{gap:16px;display:flex}.Footer-module__S6Hkya__link{background:var(--bg-tertiary);border:1px solid var(--border);width:40px;height:40px;color:var(--text-secondary);transition:all var(--transition-base);border-radius:50%;justify-content:center;align-items:center;display:flex}.Footer-module__S6Hkya__link:hover{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 6px 20px var(--accent-glow);transform:translateY(-3px)}@media (max-width:768px){.Footer-module__S6Hkya__footer{padding:32px 0}.Footer-module__S6Hkya__container{padding:0 16px}.Footer-module__S6Hkya__text{font-size:13px}}
.page-module___8aEwW__page{flex-direction:column;min-height:100vh;display:flex}.page-module___8aEwW__hero{justify-content:center;align-items:center;min-height:100vh;padding:40px 24px;display:flex;position:relative;overflow:hidden}.page-module___8aEwW__heroContent{text-align:center;z-index:2;max-width:800px;animation:.8s forwards page-module___8aEwW__fadeInUp;position:relative}.page-module___8aEwW__heroGlow{background:radial-gradient(circle,var(--accent-glow)0%,transparent 70%);opacity:.6;pointer-events:none;width:600px;height:600px;animation:4s ease-in-out infinite page-module___8aEwW__pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.page-module___8aEwW__heroTitle{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:20px;font-size:clamp(2.5rem,8vw,4.5rem);font-weight:800;line-height:1.1}.page-module___8aEwW__gradientText{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.page-module___8aEwW__heroSubtitle{color:var(--text-secondary);margin-bottom:40px;font-size:clamp(1rem,2.5vw,1.25rem);line-height:1.6}.page-module___8aEwW__heroButton{background:var(--accent-gradient);color:#fff;border-radius:var(--radius-md);transition:all var(--transition-base);box-shadow:var(--shadow-sm),0 0 30px var(--accent-glow);align-items:center;gap:10px;padding:16px 32px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.page-module___8aEwW__heroButton:hover{box-shadow:var(--shadow-lg),var(--shadow-glow);transform:translateY(-3px)}.page-module___8aEwW__heroButton svg{animation:2s ease-in-out infinite page-module___8aEwW__float}.page-module___8aEwW__heroPattern{pointer-events:none;background-image:radial-gradient(circle at 25% 25%,#6366f10d 0%,#0000 50%),radial-gradient(circle at 75% 75%,#8b5cf60d 0%,#0000 50%);position:absolute;inset:0}.page-module___8aEwW__projects{background:var(--bg-secondary);padding:100px 0;position:relative}.page-module___8aEwW__container{max-width:1200px;margin:0 auto;padding:0 24px}.page-module___8aEwW__sectionTitle{font-family:var(--font-display);text-align:center;margin-bottom:12px;font-size:clamp(2rem,5vw,3rem);font-weight:800}.page-module___8aEwW__sectionSubtitle{color:var(--text-secondary);text-align:center;margin-bottom:60px;font-size:16px}.page-module___8aEwW__projectsGrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;display:grid}.page-module___8aEwW__projectItem{opacity:0;animation:.6s forwards page-module___8aEwW__fadeInUp}.page-module___8aEwW__loading{color:var(--text-secondary);flex-direction:column;align-items:center;gap:16px;padding:60px 0;display:flex}.page-module___8aEwW__spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:1s linear infinite page-module___8aEwW__spin}@keyframes page-module___8aEwW__spin{to{transform:rotate(360deg)}}.page-module___8aEwW__empty{color:var(--text-muted);flex-direction:column;align-items:center;gap:20px;padding:80px 0;display:flex}.page-module___8aEwW__empty svg{opacity:.5}.page-module___8aEwW__empty p{font-size:16px}@keyframes page-module___8aEwW__fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes page-module___8aEwW__pulse{0%,to{opacity:.6;transform:translate(-50%,-50%)scale(1)}50%{opacity:.8;transform:translate(-50%,-50%)scale(1.1)}}@keyframes page-module___8aEwW__float{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@media (max-width:768px){.page-module___8aEwW__hero{min-height:80vh;padding:60px 16px}.page-module___8aEwW__heroButton{padding:14px 28px;font-size:15px}.page-module___8aEwW__projects{padding:60px 0}.page-module___8aEwW__container{padding:0 16px}.page-module___8aEwW__sectionSubtitle{margin-bottom:40px}.page-module___8aEwW__projectsGrid{grid-template-columns:1fr;gap:20px}}
