:root{--color-white: #ffffff;--color-black: #000000;--color-neutral-50: #f9fafb;--color-neutral-100: #f3f4f6;--color-neutral-200: #e5e7eb;--color-neutral-300: #d1d5db;--color-neutral-400: #9ca3af;--color-neutral-500: #6b7280;--color-neutral-600: #4b5563;--color-neutral-700: #374151;--color-neutral-800: #1f2937;--color-neutral-900: #111827;--color-primary-50: #f0f9ff;--color-primary-100: #e0f2fe;--color-primary-200: #bae6fd;--color-primary-300: #7dd3fc;--color-primary-400: #38bdf8;--color-primary-500: #0ea5e9;--color-primary-600: #0284c7;--color-primary-700: #0369a1;--color-primary-800: #075985;--color-primary-900: #0c4a6e;--color-accent-50: #fdf2f8;--color-accent-100: #fce7f3;--color-accent-200: #fbcfe8;--color-accent-300: #f9a8d4;--color-accent-400: #f472b6;--color-accent-500: #ec4899;--color-accent-600: #db2777;--color-accent-700: #be185d;--color-accent-800: #9d174d;--color-accent-900: #831843;--color-success-500: #10b981;--color-success-600: #059669;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-error-500: #ef4444;--color-error-600: #dc2626;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--text-6xl: 3.75rem;--font-thin: 100;--font-extralight: 200;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--font-black: 900;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--radius-sm: .125rem;--radius: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--transition-all: all .3s ease;--transition-colors: color .3s ease, background-color .3s ease, border-color .3s ease;--transition-opacity: opacity .3s ease;--transition-transform: transform .3s ease;--z-0: 0;--z-10: 10;--z-20: 20;--z-30: 30;--z-40: 40;--z-50: 50;--z-auto: auto;--color-bg-primary: var(--color-white);--color-bg-secondary: var(--color-neutral-50);--color-bg-tertiary: var(--color-neutral-100);--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-700);--color-text-tertiary: var(--color-neutral-500);--color-border: var(--color-neutral-200);--color-highlight: var(--color-primary-500);--container-width: 1280px;--header-height: 5rem}[data-theme=dark]{--color-bg-primary: var(--color-neutral-900);--color-bg-secondary: var(--color-neutral-800);--color-bg-tertiary: var(--color-neutral-700);--color-text-primary: var(--color-neutral-50);--color-text-secondary: var(--color-neutral-300);--color-text-tertiary: var(--color-neutral-400);--color-border: var(--color-neutral-700)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}html:not([data-scroll=enabled]){scroll-behavior:auto}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh;transition:var(--transition-colors)}.scroll-progress{position:fixed;top:0;left:0;width:0%;height:3px;background:linear-gradient(90deg,var(--color-primary-500),var(--color-accent-500));z-index:9999;transition:width .1s ease-out;box-shadow:0 2px 10px #0ea5e980}.back-to-top-btn{position:fixed;bottom:2rem;right:2rem;width:50px;height:50px;background:linear-gradient(135deg,var(--color-primary-600),var(--color-primary-500));color:#fff;border:none;border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1000;box-shadow:0 4px 15px #0ea5e94d}.back-to-top-btn:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0ea5e966;background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-400))}.back-to-top-btn.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top-btn svg{width:24px;height:24px}@media (max-width: 768px){.back-to-top-btn{bottom:1.5rem;right:1.5rem;width:45px;height:45px}}img,svg{display:block;max-width:100%}a{color:var(--color-primary-600);text-decoration:none;transition:var(--transition-colors)}a:hover{color:var(--color-primary-500)}button{font-family:inherit;cursor:pointer;border:none;background:none;font-size:inherit}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:var(--leading-tight);color:var(--color-text-primary);margin-bottom:var(--space-4)}h1{font-size:var(--text-4xl)}@media (min-width: 768px){h1{font-size:var(--text-5xl)}}h2{font-size:var(--text-3xl)}@media (min-width: 768px){h2{font-size:var(--text-4xl)}}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}p{margin-bottom:var(--space-4)}.lead{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}@media (min-width: 768px){.lead{font-size:var(--text-xl)}}.highlight{position:relative;display:inline-block}.highlight:not(.name-animated){background:linear-gradient(135deg,var(--color-primary-500) 0%,var(--color-accent-500) 50%,var(--color-primary-600) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:var(--font-bold);animation:gradientShift 3s ease infinite;background-size:200% 200%}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.highlight:after{content:"";position:absolute;bottom:.1em;left:0;right:0;height:.3em;background:linear-gradient(90deg,var(--color-primary-200),var(--color-accent-200));z-index:-1;transition:var(--transition-all);border-radius:var(--radius-full);opacity:.6}.highlight:hover:after{height:.6em;opacity:.8;box-shadow:0 4px 12px #0ea5e94d}.container{width:100%;max-width:var(--container-width);margin:0 auto;padding:0 var(--space-4)}@media (min-width: 768px){.container{padding:0 var(--space-8)}}section{padding:var(--space-16) 0;position:relative}@media (min-width: 768px){section{padding:var(--space-24) 0}}.section-header{text-align:center;margin-bottom:var(--space-12);position:relative}.section-label{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-primary-600);margin-bottom:var(--space-2)}#header{position:fixed;top:0;left:0;width:100%;height:var(--header-height);z-index:var(--z-50);background-color:transparent;transition:var(--transition-all)}#header.scrolled{background-color:var(--color-bg-primary);box-shadow:var(--shadow)}.header-container{height:100%;display:flex;align-items:center;justify-content:space-between}.logo{font-weight:var(--font-bold);font-size:var(--text-xl);color:var(--color-text-primary);position:relative;padding:var(--space-2)}.logo:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--color-primary-100);border-radius:var(--radius);z-index:-1;transform:rotate(-3deg);transition:var(--transition-transform)}.logo:hover:before{transform:rotate(3deg)}.desktop-nav{display:none}@media (min-width: 768px){.desktop-nav{display:block}}.desktop-nav ul{display:flex;list-style:none;gap:var(--space-8)}.nav-link{color:var(--color-text-primary);font-weight:var(--font-medium);position:relative;padding:var(--space-2) 0}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--color-primary-500);transition:var(--transition-all)}.nav-link:hover:after,.nav-link.active:after{width:100%}#theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);color:var(--color-text-primary);background-color:var(--color-bg-tertiary);transition:var(--transition-all)}#theme-toggle:hover{background-color:var(--color-bg-tertiary);transform:scale(1.05)}#theme-toggle .sun-icon,#theme-toggle .moon-icon{position:absolute;transition:var(--transition-transform),var(--transition-opacity)}[data-theme=light] #theme-toggle .sun-icon{opacity:0;transform:scale(.5)}[data-theme=light] #theme-toggle .moon-icon,[data-theme=dark] #theme-toggle .sun-icon{opacity:1;transform:scale(1)}[data-theme=dark] #theme-toggle .moon-icon{opacity:0;transform:scale(.5)}.menu-toggle{display:flex;flex-direction:column;justify-content:space-between;width:24px;height:18px;background:transparent;border:none;cursor:pointer;padding:0;z-index:10}@media (min-width: 768px){.menu-toggle{display:none}}.menu-toggle span{display:block;width:100%;height:2px;background-color:var(--color-text-primary);transition:var(--transition-all)}.menu-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.mobile-nav{position:fixed;top:0;left:0;width:100%;height:100vh;background-color:var(--color-bg-primary);padding-top:var(--header-height);z-index:var(--z-40);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translate(100%);transition:var(--transition-transform)}.mobile-nav.active{transform:translate(0)}.mobile-nav ul{list-style:none;text-align:center}.mobile-nav-link{display:block;font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-primary);padding:var(--space-4) var(--space-6)}.hero-section{min-height:100vh;display:flex;align-items:center;padding-top:var(--header-height);position:relative}.hero-content{margin-bottom:var(--space-8)}@media (min-width: 768px){.hero-section .container{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:center}.hero-content{margin-bottom:0}}.hero-content h1{margin-bottom:var(--space-4);line-height:1.2}.name-animated{display:inline-block}.name-letter{display:inline-block;opacity:0;color:var(--color-white);font-weight:var(--font-bold);animation:letterType .3s ease forwards}.name-letter:nth-child(1){animation-delay:.1s}.name-letter:nth-child(2){animation-delay:.2s}.name-letter:nth-child(3){animation-delay:.3s}.name-letter:nth-child(4){animation-delay:.4s}.name-letter:nth-child(5){animation-delay:.5s}.name-letter:nth-child(6){animation-delay:.6s}@keyframes letterType{0%{opacity:0}to{opacity:1}}.hero-content h2{font-size:var(--text-xl);font-weight:var(--font-medium);color:var(--color-primary-600);margin-bottom:var(--space-6);min-height:1.5em}.typing-text{position:relative;overflow:hidden}.typing-cursor{display:inline-block;animation:blink 1s infinite;margin-left:2px;color:var(--color-primary-500)}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.cta-group{display:flex;gap:var(--space-4);margin-top:var(--space-8)}.button{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-6);font-weight:var(--font-medium);border-radius:var(--radius-full);transition:var(--transition-all);font-size:var(--text-base)}.button.primary{background:linear-gradient(135deg,var(--color-primary-600),var(--color-primary-500));color:#fff;position:relative;overflow:hidden;box-shadow:0 4px 15px #0ea5e94d}.button.primary:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.button.primary:hover:before{width:300px;height:300px}.button.primary:hover{background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-400));transform:translateY(-3px);box-shadow:0 8px 25px #0ea5e966}.button.secondary{background-color:transparent;border:2px solid var(--color-primary-600);color:var(--color-primary-600);position:relative;overflow:hidden}.button.secondary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,var(--color-primary-50),transparent);transition:left .5s ease}.button.secondary:hover:before{left:100%}.button.secondary:hover{background-color:var(--color-primary-50);border-color:var(--color-primary-500);transform:translateY(-3px);box-shadow:0 4px 15px #0ea5e933}.hero-image{position:relative}.image-container{position:relative;border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-xl);transition:var(--transition-transform)}.image-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#0ea5e91a,#ec48991a);z-index:1;opacity:0;transition:opacity .3s ease}.image-container:hover:before{opacity:1}.image-container:hover{transform:scale(1.02);box-shadow:0 25px 50px #0ea5e94d}.image-container img{width:100%;height:auto;object-fit:cover;transition:transform .5s ease}.floating-element{position:absolute;border-radius:var(--radius-full);background-color:var(--color-primary-100);filter:blur(20px);opacity:.8;z-index:-1;animation:float 6s ease-in-out infinite}.e1{width:150px;height:150px;top:-50px;right:-30px;background-color:var(--color-primary-100);animation-delay:0s}.e2{width:100px;height:100px;bottom:0;left:-30px;background-color:var(--color-accent-100);animation-delay:2s}.e3{width:70px;height:70px;bottom:100px;right:-20px;background-color:var(--color-success-500);opacity:.4;animation-delay:4s}.scroll-indicator{position:absolute;bottom:var(--space-8);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;color:var(--color-text-tertiary);font-size:var(--text-sm);animation:bounce 2s infinite;cursor:pointer;transition:var(--transition-all)}.scroll-indicator:hover{color:var(--color-primary-500);transform:translate(-50%) translateY(-5px)}.scroll-indicator span{margin-bottom:var(--space-2);font-weight:var(--font-medium)}.scroll-indicator svg{animation:scrollDown 2s ease-in-out infinite}@keyframes scrollDown{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}.about-content{display:grid;gap:var(--space-8)}@media (min-width: 768px){.about-content{grid-template-columns:2fr 3fr;align-items:center}}.about-image img{border-radius:var(--radius-2xl);width:100%;height:auto;object-fit:cover}.about-text p:last-of-type{margin-bottom:var(--space-8)}.stats-container{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-8)}.stat-item{text-align:center;padding:var(--space-4);border-radius:var(--radius-lg);background-color:var(--color-bg-secondary);transition:var(--transition-all)}.stat-item:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.stat-number{display:block;font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-primary-600);margin-bottom:var(--space-2)}.stat-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.skills-content{display:grid;gap:var(--space-6);grid-template-columns:1fr}@media (min-width: 768px){.skills-content{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.skills-content{grid-template-columns:repeat(3,1fr)}}.skills-category{background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg-tertiary) 100%);border-radius:var(--radius-xl);padding:var(--space-6);transition:var(--transition-all);border:1px solid var(--color-border);position:relative;overflow:hidden}.skills-category:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary-500),var(--color-accent-500),var(--color-primary-500));background-size:200% 100%;animation:shimmer 3s ease-in-out infinite;opacity:0;transition:opacity .3s ease}.skills-category:hover:before{opacity:1}@keyframes shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.skills-category:hover{transform:translateY(-6px);box-shadow:0 12px 40px #0ea5e926;border-color:var(--color-primary-300)}.category-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);position:relative}.category-header h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);position:relative;display:inline-block}.category-header h3:after{content:"";position:absolute;bottom:-8px;left:0;width:40px;height:3px;background:linear-gradient(90deg,var(--color-primary-500),var(--color-accent-500));border-radius:var(--radius-full)}.category-icon{font-size:var(--text-2xl);line-height:1;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.skill-list{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.skill-badge{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;cursor:default;box-shadow:var(--shadow-sm)}.skill-badge:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:radial-gradient(circle,var(--color-primary-200) 0%,transparent 70%);transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease;opacity:0}.skill-badge:hover:before{width:200px;height:200px;opacity:.3}.skill-badge:hover{transform:translateY(-3px) scale(1.05);background:linear-gradient(135deg,var(--color-primary-50),var(--color-accent-50));border-color:var(--color-primary-400);color:var(--color-primary-700);box-shadow:0 8px 20px #0ea5e933}[data-theme=dark] .skill-badge{background:var(--color-bg-tertiary);border-color:var(--color-neutral-600)}[data-theme=dark] .skill-badge:hover{background:linear-gradient(135deg,var(--color-primary-900),var(--color-accent-900));border-color:var(--color-primary-500);color:var(--color-primary-300)}.project-filters{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-8)}.filter-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:var(--text-sm);transition:var(--transition-all)}.filter-btn:hover,.filter-btn.active{background-color:var(--color-primary-600);color:#fff}.projects-grid{display:grid;gap:var(--space-6);margin-bottom:var(--space-12)}@media (min-width: 640px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.projects-grid{grid-template-columns:repeat(4,1fr)}}.project-card{border-radius:var(--radius-xl);overflow:hidden;background-color:var(--color-bg-secondary);box-shadow:var(--shadow-md);transition:var(--transition-all);height:100%;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-xl)}.project-image{width:100%;overflow:hidden}.project-image img{width:100%;height:200px;object-fit:cover;transition:var(--transition-transform)}.project-card:hover .project-image img{transform:scale(1.05)}.project-info{padding:var(--space-4);display:flex;flex-direction:column;flex-grow:1}.project-info h3{margin-bottom:var(--space-2);font-size:var(--text-lg)}.project-info p{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4);flex-grow:1}.project-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.project-tags span{display:inline-block;font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background-color:var(--color-bg-tertiary);color:var(--color-text-tertiary);border-radius:var(--radius-full)}.view-project{display:inline-block;color:var(--color-primary-600);font-size:var(--text-sm);font-weight:var(--font-medium);transition:var(--transition-colors)}.view-project:hover{color:var(--color-primary-500)}.projects-cta{text-align:center}.contact-section{background-color:var(--color-bg-secondary)}.contact-content{display:grid;gap:var(--space-8)}@media (min-width: 768px){.contact-content{grid-template-columns:1fr 1fr}}.contact-info p{margin-bottom:var(--space-6)}.contact-methods{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-8)}.contact-method{display:flex;align-items:flex-start;gap:var(--space-4)}.contact-method svg{color:var(--color-primary-600);flex-shrink:0}.contact-method h4{margin-bottom:var(--space-1);font-size:var(--text-base);font-weight:var(--font-semibold)}.social-links{display:flex;gap:var(--space-4);margin-top:var(--space-8)}.social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);transition:var(--transition-all)}.social-link:hover{background-color:var(--color-primary-600);color:#fff;transform:translateY(-3px)}.contact-form{background-color:var(--color-bg-primary);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.form-group input,.form-group textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-bg-primary);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-base);transition:var(--transition-colors)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.contact-form button{width:100%}footer{background-color:var(--color-bg-secondary);padding:var(--space-8) 0 var(--space-4);border-top:1px solid var(--color-border);margin-top:var(--space-16)}.footer-content{display:flex;flex-direction:column;gap:var(--space-6);margin-bottom:var(--space-6)}@media (min-width: 768px){.footer-content{flex-direction:row;justify-content:space-between;align-items:center}}.footer-brand{display:flex;flex-direction:column;gap:var(--space-2)}.footer-logo{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-primary);text-decoration:none;transition:var(--transition-colors)}.footer-logo:hover{color:var(--color-primary-500)}.footer-tagline{font-size:var(--text-sm);color:var(--color-text-tertiary);margin:0}.footer-social{display:flex;gap:var(--space-4);align-items:center}.footer-social .social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);transition:var(--transition-all)}.footer-social .social-link:hover{background-color:var(--color-primary-500);color:#fff;transform:translateY(-3px);box-shadow:0 4px 12px #0ea5e94d}.footer-bottom{padding-top:var(--space-4);border-top:1px solid var(--color-border);text-align:center}.footer-bottom p{margin:0;font-size:var(--text-sm);color:var(--color-text-tertiary)}#cursor{position:fixed;width:40px;height:40px;border-radius:50%;background-color:transparent;border:2px solid var(--color-primary-500);pointer-events:none;z-index:9999;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s ease,width .3s ease,height .3s ease,border-width .3s ease}@media (pointer: fine){#cursor.visible{opacity:.5}#cursor.link-hover{width:60px;height:60px;border-width:3px;opacity:.3}}.delay-1{animation-delay:.2s}.delay-2{animation-delay:.4s}.delay-3{animation-delay:.6s}@media (max-width: 639px){.cta-group{flex-direction:column}.button{width:100%}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.scroll-indicator,.floating-element{animation:none}.reveal-content,.reveal-image{animation:none;opacity:1;transform:none}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-20px)}to{transform:translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}@keyframes reveal{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes revealImage{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.reveal-content{opacity:0;transform:translateY(30px)}.reveal-content.revealed{animation:reveal .8s cubic-bezier(.25,.46,.45,.94) forwards}.reveal-image{opacity:0;transform:translateY(30px) scale(.95)}.reveal-image.revealed{animation:revealImage .8s cubic-bezier(.25,.46,.45,.94) forwards}.fade-in{opacity:0}.fade-in.revealed{animation:fadeIn 1s ease forwards}.slide-in-left{opacity:0;transform:translate(-50px)}.slide-in-left.revealed{animation:slideInLeft .8s cubic-bezier(.25,.46,.45,.94) forwards}.slide-in-right{opacity:0;transform:translate(50px)}.slide-in-right.revealed{animation:slideInRight .8s cubic-bezier(.25,.46,.45,.94) forwards}.scale-up{opacity:0;transform:scale(.9)}.scale-up.revealed{animation:scaleUp .8s cubic-bezier(.25,.46,.45,.94) forwards}.page-transition{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--color-bg-primary);z-index:9999;transform:translateY(100%)}.page-transition.active{animation:pageTransition 1.5s cubic-bezier(.77,0,.175,1) forwards}@keyframes pageTransition{0%{transform:translateY(100%)}to{transform:translateY(-100%)}}.entry-animation .logo,.entry-animation .nav-link,.entry-animation #theme-toggle,.entry-animation .menu-toggle{opacity:0;transform:translateY(20px)}.entry-animation .logo.revealed,.entry-animation .nav-link.revealed,.entry-animation #theme-toggle.revealed,.entry-animation .menu-toggle.revealed{animation:reveal .5s cubic-bezier(.25,.46,.45,.94) forwards}.entry-animation .nav-link:nth-child(1){animation-delay:.1s}.entry-animation .nav-link:nth-child(2){animation-delay:.2s}.entry-animation .nav-link:nth-child(3){animation-delay:.3s}.entry-animation .nav-link:nth-child(4){animation-delay:.4s}.entry-animation .nav-link:nth-child(5){animation-delay:.5s}.entry-animation #theme-toggle,.entry-animation .menu-toggle{animation-delay:.6s}.project-image{position:relative;overflow:hidden}.project-image:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#0000004d;opacity:0;transition:opacity .3s ease;z-index:1}.project-card:hover .project-image:before{opacity:1}.button{position:relative;overflow:hidden}.button:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff80;opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}.button:hover:after{animation:ripple 1s ease-out}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(30);opacity:0}}.skill-progress{width:0}.skills-category.revealed .skill-progress{animation:increaseWidth 1.5s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes increaseWidth{0%{width:0}to{width:var(--progress-width)}}.tool-item{position:relative;overflow:hidden}.tool-item:before{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:linear-gradient(to bottom,rgba(255,255,255,.2),transparent);transform:skewY(10deg);transition:transform .5s ease}.tool-item:hover:before{transform:skewY(10deg) translateY(200%)}.form-group input,.form-group textarea{position:relative;z-index:1}.form-group:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background-color:var(--color-primary-500);transition:width .3s ease,left .3s ease;z-index:0}.form-group:focus-within:after{width:100%;left:0}.scroll-indicator svg{animation:arrowDown 2s infinite}@keyframes arrowDown{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(10px)}60%{transform:translateY(5px)}}.custom-cursor{cursor:none}a,button,input,textarea,.clickable{cursor:pointer}#theme-toggle{position:relative;overflow:hidden}#theme-toggle:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,var(--color-primary-100),transparent 70%);opacity:0;transition:opacity .5s ease}#theme-toggle:hover:before{opacity:.5}.mobile-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-nav-link{position:relative;transition:var(--transition-all)}.mobile-nav-link:after{content:"";position:absolute;bottom:var(--space-3);left:50%;width:0;height:2px;background-color:var(--color-primary-500);transform:translate(-50%);transition:width .3s ease}.mobile-nav-link:hover:after{width:30px}.project-card{position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:0;background-color:var(--color-primary-100);opacity:.1;transition:height .3s ease;z-index:0}.project-card:hover:before{height:100%}.project-info{position:relative;z-index:1}.form-group{position:relative}.form-group input,.form-group textarea{background-color:transparent;border:1px solid var(--color-border);transition:border-color .3s ease,box-shadow .3s ease}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.button{position:relative;z-index:1;overflow:hidden}.button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(to right,#ffffff21,#fff0);transform:skew(-25deg);transition:left .5s ease;z-index:-1}.button:hover:before{left:100%}.social-link{position:relative;overflow:hidden}.social-link:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,var(--color-primary-100),transparent 70%);opacity:0;transition:opacity .5s ease}.social-link:hover:before{opacity:.5}.highlight{position:relative;z-index:1}.highlight:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:.3em;background-color:var(--color-primary-100);z-index:-1;transform-origin:bottom;transition:height .3s ease,background-color .3s ease}.highlight:hover:before{height:1em}.image-container{overflow:hidden}.image-container img{transition:transform .5s ease}.image-container:hover img{transform:scale(1.05)}.stat-item{position:relative;overflow:hidden}.stat-item:after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:linear-gradient(to bottom,rgba(255,255,255,.2),transparent);transform:skewY(10deg);transition:transform .5s ease}.stat-item:hover:after{transform:skewY(10deg) translateY(200%)}.tool-item{transition:var(--transition-all);position:relative;overflow:hidden}.tool-item span{position:relative;z-index:2}.tool-item:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--color-primary-50);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;z-index:1}.tool-item:hover:after{transform:scaleX(1)}.header-scrolled{background-color:var(--color-bg-primary);box-shadow:var(--shadow-md)}.back-to-top{position:relative;font-weight:var(--font-medium)}.back-to-top svg{transition:transform .3s ease}.back-to-top:hover svg{transform:translateY(-5px)}[data-theme=dark]{--color-accent-100: rgba(236, 72, 153, .2);--color-primary-100: rgba(14, 165, 233, .2)}.filter-btn{position:relative;overflow:hidden;z-index:1}.filter-btn:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:0;background-color:var(--color-primary-500);opacity:.1;transition:height .3s ease;z-index:-1}.filter-btn:hover:after,.filter-btn.active:after{height:100%}.section-bg-pattern{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.03;z-index:-1;background-image:radial-gradient(var(--color-primary-900) 1px,transparent 1px);background-size:20px 20px}.contact-form button{overflow:hidden;position:relative}.contact-form button:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff4d;opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}.contact-form button:hover:after{animation:buttonRipple 1s ease-out}@keyframes buttonRipple{0%{transform:scale(0);opacity:.5}to{transform:scale(20);opacity:0}}.project-card .view-project{position:relative}.project-card .view-project:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background-color:var(--color-primary-500);transition:width .3s ease}.project-card:hover .view-project:after{width:100%}.section-header{position:relative}.section-header:after{content:"";position:absolute;bottom:-20px;left:50%;transform:translate(-50%);width:60px;height:3px;background-color:var(--color-primary-500)}.skill-progress{transform-origin:left;transform:scaleX(0);transition:transform 1.5s cubic-bezier(.17,.67,.83,.67)}.skill-progress.animate{transform:scaleX(1)}.footer-nav a{position:relative}.footer-nav a:after{content:"";position:absolute;bottom:-3px;left:0;width:0;height:1px;background-color:var(--color-primary-500);transition:width .3s ease}.footer-nav a:hover:after{width:100%}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-primary-200);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-300)}:focus{outline:2px solid var(--color-primary-500);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}
