:root{--color-white: rgba(255, 255, 255, 1);--color-black: rgba(0, 0, 0, 1);--color-cream-50: rgba(252, 252, 249, 1);--color-cream-100: rgba(255, 255, 253, 1);--color-gray-200: rgba(245, 245, 245, 1);--color-gray-300: rgba(167, 169, 169, 1);--color-gray-400: rgba(119, 124, 124, 1);--color-slate-500: rgba(98, 108, 113, 1);--color-brown-600: rgba(94, 82, 64, 1);--color-charcoal-700: rgba(31, 33, 33, 1);--color-charcoal-800: rgba(38, 40, 40, 1);--color-slate-900: rgba(19, 52, 59, 1);--color-teal-300: rgba(50, 184, 198, 1);--color-teal-400: rgba(45, 166, 178, 1);--color-teal-500: rgba(33, 128, 141, 1);--color-teal-600: rgba(29, 116, 128, 1);--color-teal-700: rgba(26, 104, 115, 1);--color-teal-800: rgba(41, 150, 161, 1);--color-red-400: rgba(255, 84, 89, 1);--color-red-500: rgba(192, 21, 47, 1);--color-orange-400: rgba(230, 129, 97, 1);--color-orange-500: rgba(168, 75, 47, 1);--color-surface-rgb: var(--color-black);--color-brown-600-rgb: 94, 82, 64;--color-teal-500-rgb: 33, 128, 141;--color-teal-300-rgb: 50, 184, 198;--color-slate-900-rgb: 19, 52, 59;--color-slate-500-rgb: 98, 108, 113;--color-gray-300-rgb: 167, 169, 169;--color-red-500-rgb: 192, 21, 47;--color-red-400-rgb: 255, 84, 89;--color-orange-500-rgb: 168, 75, 47;--color-orange-400-rgb: 230, 129, 97;--color-background: var(--color-cream-50);--color-surface: var(--color-cream-100);--color-text: var(--color-slate-900);--color-text-secondary: var(--color-slate-500);--color-primary: var(--color-teal-500);--color-primary-hover: var(--color-teal-600);--color-primary-active: var(--color-teal-700);--color-secondary: rgba(var(--color-brown-600-rgb), .12);--color-secondary-hover: rgba(var(--color-brown-600-rgb), .2);--color-secondary-active: rgba(var(--color-brown-600-rgb), .25);--color-border: rgba(var(--color-brown-600-rgb), .2);--color-btn-primary-text: var(--color-cream-50);--color-card-border: rgba(var(--color-brown-600-rgb), .12);--color-card-border-inner: rgba(var(--color-brown-600-rgb), .12);--color-error: var(--color-red-500);--color-success: var(--color-teal-500);--color-warning: var(--color-orange-500);--color-info: var(--color-slate-500);--color-focus-ring: rgba(var(--color-teal-500-rgb), .4);--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px;--font-size-3xl: 24px;--font-size-4xl: 30px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 550;--font-weight-bold: 600;--line-height-tight: 1.2;--line-height-normal: 1.5;--letter-spacing-tight: -.01em;--space-0: 0;--space-1: 1px;--space-2: 2px;--space-4: 4px;--space-6: 6px;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--space-32: 32px;--radius-sm: 6px;--radius-base: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .02);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .04), 0 2px 4px -1px rgba(0, 0, 0, .02);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .04), 0 4px 6px -2px rgba(0, 0, 0, .02);--duration-fast: .15s;--duration-normal: .25s;--ease-standard: cubic-bezier(.16, 1, .3, 1);--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px}@media (prefers-color-scheme: dark){:root{--color-background: var(--color-charcoal-700);--color-surface: var(--color-charcoal-800);--color-text: var(--color-gray-200);--color-text-secondary: rgba(167, 169, 169, .7);--color-primary: var(--color-teal-300);--color-primary-hover: var(--color-teal-400);--color-primary-active: var(--color-teal-800);--color-secondary: rgba(119, 124, 124, .15);--color-secondary-hover: rgba(119, 124, 124, .25);--color-secondary-active: rgba(119, 124, 124, .3);--color-border: rgba(119, 124, 124, .3);--color-btn-primary-text: var(--color-slate-900);--color-card-border: rgba(119, 124, 124, .15);--color-card-border-inner: rgba(119, 124, 124, .15);--color-error: var(--color-red-400);--color-success: var(--color-teal-300);--color-warning: var(--color-orange-400);--color-info: var(--color-gray-300);--color-focus-ring: rgba(50, 184, 198, .4)}}[data-color-scheme=dark]{--color-background: var(--color-charcoal-700);--color-surface: var(--color-charcoal-800);--color-text: var(--color-gray-200);--color-text-secondary: rgba(167, 169, 169, .7);--color-primary: var(--color-teal-300);--color-primary-hover: var(--color-teal-400);--color-primary-active: var(--color-teal-800);--color-secondary: rgba(119, 124, 124, .15);--color-secondary-hover: rgba(119, 124, 124, .25);--color-secondary-active: rgba(119, 124, 124, .3);--color-border: rgba(119, 124, 124, .3);--color-btn-primary-text: var(--color-slate-900);--color-card-border: rgba(119, 124, 124, .15);--color-card-border-inner: rgba(119, 124, 124, .15);--color-error: var(--color-red-400);--color-success: var(--color-teal-300);--color-warning: var(--color-orange-400);--color-info: var(--color-gray-300);--color-focus-ring: rgba(50, 184, 198, .4)}[data-color-scheme=light]{--color-background: var(--color-cream-50);--color-surface: var(--color-cream-100);--color-text: var(--color-slate-900);--color-text-secondary: var(--color-slate-500);--color-primary: var(--color-teal-500);--color-primary-hover: var(--color-teal-600);--color-primary-active: var(--color-teal-700);--color-secondary: rgba(var(--color-brown-600-rgb), .12);--color-secondary-hover: rgba(var(--color-brown-600-rgb), .2);--color-secondary-active: rgba(var(--color-brown-600-rgb), .25);--color-border: rgba(var(--color-brown-600-rgb), .2);--color-btn-primary-text: var(--color-cream-50);--color-card-border: rgba(var(--color-brown-600-rgb), .12);--color-card-border-inner: rgba(var(--color-brown-600-rgb), .12);--color-error: var(--color-red-500);--color-success: var(--color-teal-500);--color-warning: var(--color-orange-500);--color-info: var(--color-slate-500);--color-focus-ring: rgba(var(--color-teal-500-rgb), .4)}html{font-size:var(--font-size-base);font-family:var(--font-family-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;box-sizing:border-box}@supports (scroll-behavior: smooth){html{scroll-behavior:smooth}}body{margin:0;padding:0}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-md)}p{margin:0 0 var(--space-16) 0}a{color:var(--color-primary);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard)}a:hover{color:var(--color-primary-hover)}.keyboard-focus :focus{outline:2px solid var(--color-focus-ring);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-16);border:1px solid transparent;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:1;text-decoration:none;cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background-color:var(--color-primary);color:var(--color-btn-primary-text);border-color:var(--color-primary)}.btn--primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--primary:active{background-color:var(--color-primary-active);border-color:var(--color-primary-active)}.btn--outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn--outline:hover{background-color:var(--color-primary);color:var(--color-btn-primary-text)}.btn--secondary{background-color:var(--color-secondary);color:var(--color-text);border-color:var(--color-border)}.btn--secondary:hover{background-color:var(--color-secondary-hover)}.btn--lg{padding:var(--space-12) var(--space-24);font-size:var(--font-size-lg)}.btn--sm{padding:var(--space-6) var(--space-12);font-size:var(--font-size-sm)}.container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-16)}.section-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);text-align:center;margin-bottom:var(--space-32);color:var(--color-text)}.loading-screen{position:fixed;inset:0;background-color:var(--color-background);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity var(--duration-normal) var(--ease-standard)}.loading-screen.hidden{opacity:0;pointer-events:none}.loader{width:40px;height:40px;border:3px solid var(--color-border);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.navbar{position:fixed;top:0;left:0;right:0;background-color:var(--color-background);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);z-index:1000;transition:all var(--duration-fast) var(--ease-standard)}.nav-container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-16);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);text-decoration:none}.nav-menu{display:flex;align-items:center;gap:var(--space-32)}.nav-link{color:var(--color-text-secondary);text-decoration:none;font-weight:var(--font-weight-medium);padding:var(--space-8) 0;position:relative;transition:color var(--duration-fast) var(--ease-standard)}.nav-link:hover,.nav-link.active{color:var(--color-primary)}.nav-link.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:var(--color-primary)}.theme-toggle{background:none;border:none;cursor:pointer;position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.theme-toggle span{position:absolute;transition:opacity var(--duration-fast) var(--ease-standard)}.hamburger{display:none;flex-direction:column;cursor:pointer;gap:4px}.hamburger span{width:25px;height:3px;background-color:var(--color-text);transition:all var(--duration-fast) var(--ease-standard)}@media (max-width: 768px){.nav-menu{position:fixed;top:70px;left:0;right:0;background-color:var(--color-background);flex-direction:column;padding:var(--space-24);transform:translateY(-100%);opacity:0;visibility:hidden;transition:all var(--duration-normal) var(--ease-standard);border-bottom:1px solid var(--color-border)}.nav-menu.active{transform:translateY(0);opacity:1;visibility:visible}.hamburger{display:flex}.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}}.hero{min-height:100vh;display:flex;align-items:center;padding:70px 0 0;background-color:var(--color-background)}.hero-container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-16);position:relative}.hero-content{display:grid;grid-template-columns:1fr auto;gap:var(--space-32);align-items:center}.hero-title{font-size:3.5rem;font-weight:var(--font-weight-bold);margin-bottom:var(--space-16);line-height:1.1}.highlight{color:var(--color-primary)}.hero-subtitle{font-size:var(--font-size-xl);margin-bottom:var(--space-16);color:var(--color-text-secondary)}.typewriter{color:var(--color-primary);font-weight:var(--font-weight-medium);position:relative}.typewriter:after{content:"|";color:var(--color-primary);animation:cursor-blink 1s infinite;margin-left:2px}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.hero-description{font-size:var(--font-size-lg);line-height:1.6;margin-bottom:var(--space-32);max-width:600px;color:var(--color-text-secondary)}.hero-buttons{display:flex;gap:var(--space-16);margin-bottom:var(--space-32)}.social-links{display:flex;gap:var(--space-16)}.social-links a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-base);background-color:var(--color-secondary);color:var(--color-text);transition:all var(--duration-fast) var(--ease-standard)}.social-links a:hover{background-color:var(--color-primary);color:var(--color-btn-primary-text);transform:translateY(-2px)}.hero-image{display:flex;justify-content:center;align-items:center}.scroll-indicator{position:absolute;bottom:var(--space-32);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;animation:bounce 2s infinite}.scroll-arrow{width:2px;height:30px;background-color:var(--color-primary);position:relative}.scroll-arrow:after{content:"";position:absolute;bottom:0;left:-4px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:8px solid var(--color-primary)}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.about{padding:80px 0;background-color:var(--color-surface)}.about-content{max-width:800px;margin:0 auto;text-align:center}.about-description{font-size:var(--font-size-lg);line-height:1.7;margin-bottom:var(--space-24);color:var(--color-text-secondary)}.about-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-32);margin-top:var(--space-32)}.stat{text-align:center}.stat-number{display:block;font-size:2.5rem;font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--space-8)}.stat-label{font-size:var(--font-size-base);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.experience{padding:80px 0;background-color:var(--color-background)}.experience-timeline{max-width:800px;margin:0 auto;position:relative}.experience-timeline:before{content:"";position:absolute;left:50%;transform:translate(-50%);width:2px;height:100%;background-color:var(--color-border)}.experience-item{display:flex;align-items:center;margin-bottom:var(--space-32);position:relative}.experience-item:nth-child(2n){flex-direction:row-reverse}.experience-content{flex:1;padding:var(--space-24);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);box-shadow:var(--shadow-sm);margin:0 var(--space-24);position:relative}.experience-content:before{content:"";position:absolute;top:50%;transform:translateY(-50%);width:0;height:0;border:10px solid transparent}.experience-item:nth-child(odd) .experience-content:before{right:-20px;border-left-color:var(--color-card-border)}.experience-item:nth-child(2n) .experience-content:before{left:-20px;border-right-color:var(--color-card-border)}.experience-date{position:absolute;left:50%;transform:translate(-50%);background-color:var(--color-primary);color:var(--color-btn-primary-text);padding:var(--space-8) var(--space-16);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap}.experience-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-8);color:var(--color-text)}.experience-company{font-size:var(--font-size-base);color:var(--color-primary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-16)}.experience-description{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-16)}.experience-skills{display:flex;flex-wrap:wrap;gap:var(--space-8)}.skill-tag{padding:var(--space-4) var(--space-12);background-color:var(--color-secondary);color:var(--color-text);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.projects{padding:80px 0;background-color:var(--color-surface)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-32);margin-top:var(--space-32);align-items:stretch}.project-card{background-color:var(--color-background);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);padding:var(--space-24);transition:all var(--duration-fast) var(--ease-standard);position:relative;overflow:hidden;display:flex;flex-direction:column;height:100%}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.project-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-16);gap:var(--space-12)}.project-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);flex:1;line-height:1.3}.project-links{display:flex;gap:var(--space-12);margin-top:auto;padding-top:var(--space-16)}.project-link{display:flex;align-items:center;justify-content:center;gap:var(--space-6);padding:var(--space-8) var(--space-12);border-radius:var(--radius-base);background-color:var(--color-secondary);color:var(--color-text);transition:all var(--duration-fast) var(--ease-standard);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:1px solid var(--color-border)}.project-link:hover{background-color:var(--color-primary);color:var(--color-btn-primary-text);border-color:var(--color-primary);transform:translateY(-1px)}.project-description{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-16);flex-grow:1}.project-tech{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-bottom:var(--space-16)}.tech-tag{padding:var(--space-4) var(--space-8);background-color:var(--color-secondary);color:var(--color-text);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.skills{padding:80px 0;background-color:var(--color-background)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-24);margin-top:var(--space-32)}.skill-category{background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);padding:var(--space-24)}.skill-category-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-16);color:var(--color-text);text-align:center}.skill-items{display:flex;flex-wrap:wrap;gap:var(--space-8)}.skill-item{padding:var(--space-6) var(--space-12);background-color:var(--color-secondary);color:var(--color-text);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-standard)}.skill-item:hover{background-color:var(--color-primary);color:var(--color-btn-primary-text)}.contact{padding:80px 0;background-color:var(--color-surface)}.contact-content{max-width:600px;margin:0 auto;text-align:center}.contact-description{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--space-32);line-height:1.6}.contact-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-24);margin-bottom:var(--space-32)}.contact-item{padding:var(--space-20);background-color:var(--color-background);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);transition:all var(--duration-fast) var(--ease-standard)}.contact-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.contact-item-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin-bottom:var(--space-8);color:var(--color-text)}.contact-item-value{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-medium)}.contact-enhanced{padding:80px 0;position:relative;overflow:hidden}.contact-header{text-align:center;margin-bottom:var(--space-32)}.contact-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-top:var(--space-16);line-height:1.6}.contact-content-enhanced{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-32);max-width:1200px;margin:0 auto;align-items:start}.contact-info-enhanced{background-color:var(--color-background);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);padding:var(--space-32);box-shadow:var(--shadow-md);height:fit-content}.contact-info-header h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-16);color:var(--color-text)}.contact-info-header p{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-24)}.contact-methods{margin-bottom:var(--space-32)}.contact-method{display:flex;align-items:center;gap:var(--space-16);margin-bottom:var(--space-20);padding:var(--space-16);border-radius:var(--radius-base);transition:all var(--duration-fast) var(--ease-standard)}.contact-method:hover{background-color:var(--color-secondary)}.contact-method-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:var(--color-primary);color:var(--color-btn-primary-text);border-radius:var(--radius-base);flex-shrink:0}.contact-method-content{display:flex;flex-direction:column}.contact-method-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-4)}.contact-method-value{font-size:var(--font-size-base);color:var(--color-text);font-weight:var(--font-weight-medium);text-decoration:none}.contact-method-value:hover{color:var(--color-primary)}.contact-cta{text-align:center}.contact-form-enhanced{background-color:var(--color-background);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);padding:var(--space-32);box-shadow:var(--shadow-md)}.form-header-enhanced{text-align:center;margin-bottom:var(--space-32)}.form-header-enhanced h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-12);color:var(--color-text)}.form-header-enhanced p{color:var(--color-text-secondary);line-height:1.6}.enhanced-form{display:flex;flex-direction:column}.form-grid{display:grid;grid-template-columns:1fr;gap:var(--space-20);margin-bottom:var(--space-24)}.form-row{display:flex;flex-direction:column}.form-row-full{grid-column:1 / -1}.form-field{margin-bottom:var(--space-20)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--space-8);color:var(--color-text)}.input-wrapper{position:relative;display:flex;align-items:center}.form-input{width:100%;padding:var(--space-12) var(--space-16);border:2px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-base);background-color:var(--color-surface);color:var(--color-text);transition:all var(--duration-fast) var(--ease-standard);outline:none;box-sizing:border-box}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-input::placeholder{color:var(--color-text-secondary);opacity:.7}.form-input[rows]{min-height:120px;resize:vertical;padding-top:var(--space-12);line-height:1.5}.form-field.has-error .form-input{border-color:var(--color-error)}.form-field.has-error .form-label{color:var(--color-error)}.input-wrapper .form-input{padding-right:var(--space-32)}.input-icon{position:absolute;right:var(--space-12);top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none;z-index:1}.field-error{display:flex;align-items:center;gap:var(--space-6);margin-top:var(--space-6);font-size:var(--font-size-sm);color:var(--color-error)}.error-icon{font-size:var(--font-size-sm)}.required-asterisk{color:var(--color-error)}.enhanced-alert{padding:var(--space-16);border-radius:var(--radius-base);margin-bottom:var(--space-24);display:flex;align-items:center;gap:var(--space-12)}.alert-error{background-color:rgba(var(--color-red-500-rgb),.1);border:1px solid rgba(var(--color-red-500-rgb),.3);color:var(--color-error)}.alert-success{background-color:rgba(var(--color-teal-500-rgb),.1);border:1px solid rgba(var(--color-teal-500-rgb),.3);color:var(--color-success)}.alert-content{display:flex;align-items:center;gap:var(--space-8)}.alert-icon{flex-shrink:0}.alert-message{font-weight:var(--font-weight-medium)}.form-actions-enhanced{text-align:center}.btn--enhanced{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:var(--space-8);font-weight:var(--font-weight-semibold);letter-spacing:.025em;padding:var(--space-12) var(--space-24)}.btn--enhanced:disabled{opacity:.7;cursor:not-allowed}.loading-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.form-disclaimer{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-16);line-height:1.5}.footer{background-color:var(--color-charcoal-800);color:var(--color-gray-200);position:relative;overflow:hidden}.footer-container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-16);position:relative;z-index:2}.footer-main{padding:60px 0 40px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:var(--space-32);align-items:start}.footer-brand{max-width:400px}.footer-brand-name{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-teal-300);margin-bottom:var(--space-8)}.footer-tagline{font-size:var(--font-size-base);color:var(--color-gray-300);margin-bottom:var(--space-12);font-weight:var(--font-weight-medium)}.footer-description{color:var(--color-gray-300);line-height:1.6;margin-bottom:var(--space-24)}.footer-social{display:flex;gap:var(--space-12)}.footer-social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:rgba(var(--color-teal-500-rgb),.1);color:var(--color-teal-300);border-radius:var(--radius-base);transition:all var(--duration-fast) var(--ease-standard);border:1px solid rgba(var(--color-teal-500-rgb),.2)}.footer-social-link:hover{background-color:var(--color-teal-300);color:var(--color-charcoal-800);transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--color-teal-500-rgb),.3)}.footer-links{display:flex;flex-direction:column}.footer-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-gray-200);margin-bottom:var(--space-16)}.footer-nav{display:flex;flex-direction:column;gap:var(--space-8)}.footer-nav-link{background:none;border:none;color:var(--color-gray-300);text-align:left;cursor:pointer;font-size:var(--font-size-base);padding:var(--space-4) 0;transition:color var(--duration-fast) var(--ease-standard)}.footer-nav-link:hover{color:var(--color-teal-300)}.footer-contact{display:flex;flex-direction:column}.footer-contact-info{margin-bottom:var(--space-20)}.footer-contact-item{display:flex;align-items:center;gap:var(--space-12);margin-bottom:var(--space-12)}.footer-contact-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background-color:rgba(var(--color-teal-500-rgb),.1);color:var(--color-teal-300);border-radius:var(--radius-sm);flex-shrink:0}.footer-contact-link{color:var(--color-gray-300);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard)}.footer-contact-link:hover{color:var(--color-teal-300)}.footer-resume-btn{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background-color:rgba(var(--color-teal-500-rgb),.1);color:var(--color-teal-300);border:1px solid rgba(var(--color-teal-500-rgb),.2);border-radius:var(--radius-base);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-standard);width:fit-content}.footer-resume-btn:hover{background-color:var(--color-teal-300);color:var(--color-charcoal-800);transform:translateY(-1px)}.footer-newsletter{display:flex;flex-direction:column}.footer-newsletter-text{color:var(--color-gray-300);line-height:1.6;margin-bottom:var(--space-16)}.footer-cta-btn{background-color:var(--color-teal-500);color:var(--color-charcoal-800);border:none;padding:var(--space-10) var(--space-20);border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);width:fit-content}.footer-cta-btn:hover{background-color:var(--color-teal-300);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--color-teal-500-rgb),.3)}.footer-bottom{border-top:1px solid rgba(var(--color-gray-300-rgb),.1);padding:var(--space-20) 0}.footer-bottom-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-16)}.footer-copyright{color:var(--color-gray-300);font-size:var(--font-size-sm)}.footer-meta{display:flex;align-items:center;gap:var(--space-12);font-size:var(--font-size-sm);color:var(--color-gray-300)}.footer-meta-item{display:flex;align-items:center;gap:var(--space-4)}.footer-meta-separator{color:rgba(var(--color-gray-300-rgb),.5)}.footer-bg-decoration{position:absolute;inset:0;opacity:.03;z-index:1}.footer-bg-grid{width:100%;height:100%;background-image:linear-gradient(rgba(var(--color-teal-300-rgb),.1) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--color-teal-300-rgb),.1) 1px,transparent 1px);background-size:50px 50px}.back-to-top{position:fixed;bottom:var(--space-24);right:var(--space-24);width:48px;height:48px;background-color:var(--color-primary);color:var(--color-btn-primary-text);border:none;border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-standard);z-index:100;opacity:0;visibility:hidden;transform:translateY(20px)}.back-to-top.show,.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background-color:var(--color-primary-hover);transform:translateY(-2px)}.timeline{max-width:800px;margin:0 auto;position:relative}.timeline:before{content:"";position:absolute;left:50%;transform:translate(-50%);width:2px;height:100%;background-color:var(--color-border)}.timeline-item{display:flex;align-items:center;margin-bottom:var(--space-32);position:relative}.timeline-item:nth-child(2n){flex-direction:row-reverse}.timeline-content{flex:1;padding:var(--space-24);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);box-shadow:var(--shadow-sm);margin:0 var(--space-24);position:relative}.timeline-content:before{content:"";position:absolute;top:50%;transform:translateY(-50%);width:0;height:0;border:10px solid transparent}.timeline-item:nth-child(odd) .timeline-content:before{right:-20px;border-left-color:var(--color-card-border)}.timeline-item:nth-child(2n) .timeline-content:before{left:-20px;border-right-color:var(--color-card-border)}.timeline-header{margin-bottom:var(--space-12)}.timeline-header h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4);color:var(--color-text)}.company{font-size:var(--font-size-base);color:var(--color-primary);font-weight:var(--font-weight-medium)}.timeline-meta{display:flex;gap:var(--space-16);margin-bottom:var(--space-16);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.timeline-responsibilities{margin:0;padding-left:var(--space-20)}.timeline-responsibilities li{margin-bottom:var(--space-8);color:var(--color-text-secondary);line-height:1.6}.project-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-8);margin-bottom:var(--space-32)}.filter-btn{padding:var(--space-8) var(--space-16);background-color:var(--color-secondary);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.filter-btn:hover,.filter-btn.active{background-color:var(--color-primary);color:var(--color-btn-primary-text);border-color:var(--color-primary)}.project-type{padding:var(--space-4) var(--space-8);background-color:var(--color-secondary);color:var(--color-text);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;flex-shrink:0}.skills-categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-24);margin-bottom:var(--space-32)}.category-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-16);color:var(--color-text);text-align:center}.skills-list{display:flex;flex-wrap:wrap;gap:var(--space-8)}.certifications{margin-bottom:var(--space-32)}.section-subtitle{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);text-align:center;margin-bottom:var(--space-24);color:var(--color-text)}.cert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-24)}.cert-card{background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);padding:var(--space-24);text-align:center;transition:all var(--duration-fast) var(--ease-standard)}.cert-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.cert-icon{font-size:2rem;margin-bottom:var(--space-12)}.cert-card h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-8);color:var(--color-text)}.cert-card p{color:var(--color-text-secondary);margin-bottom:var(--space-12);line-height:1.5}.cert-year{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:var(--font-weight-medium)}.cert-meta{display:flex;flex-direction:column;gap:var(--space-4)}.cert-issuer{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic}.publication-meta{display:flex;gap:var(--space-16);align-items:center}.publication-venue{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic}.publications{margin-bottom:var(--space-32)}.publication-card{background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);padding:var(--space-24);transition:all var(--duration-fast) var(--ease-standard)}.publication-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.publication-card h4{margin-bottom:var(--space-8)}.publication-card h4 a{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-semibold)}.publication-card h4 a:hover{text-decoration:underline}.publication-card p{color:var(--color-text-secondary);margin-bottom:var(--space-12);line-height:1.6}.publication-year{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:var(--font-weight-medium)}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-32);align-items:start}.contact-info h3{font-size:var(--font-size-2xl);margin-bottom:var(--space-16);color:var(--color-text)}.contact-info p{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-24)}.contact-details{margin-bottom:var(--space-24)}.contact-details .contact-item{display:flex;align-items:center;gap:var(--space-12);margin-bottom:var(--space-12)}.contact-icon{font-size:var(--font-size-lg)}.contact-details .contact-item a{color:var(--color-primary);text-decoration:none}.contact-details .contact-item a:hover{text-decoration:underline}.contact-form{background-color:var(--color-background);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);padding:var(--space-24)}.form-group{margin-bottom:var(--space-16)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--space-6);color:var(--color-text)}.form-control{width:100%;padding:var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-base);background-color:var(--color-surface);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-standard)}.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-control::placeholder{color:var(--color-text-secondary)}textarea.form-control{resize:vertical;min-height:120px}.btn--full-width{width:100%}.alert{padding:var(--space-12);margin-bottom:var(--space-16);border-radius:var(--radius-base);font-size:var(--font-size-sm)}.alert-error{background-color:var(--color-error);color:#fff}.alert-success{background-color:var(--color-success);color:#fff}@media (max-width: 768px){.hero-content{grid-template-columns:1fr;text-align:center}.hero-title{font-size:2.5rem}.hero-buttons{flex-direction:column;align-items:center}.timeline:before{left:var(--space-16)}.timeline-item{flex-direction:column;align-items:flex-start;padding-left:var(--space-32)}.timeline-item:nth-child(2n){flex-direction:column}.timeline-content{margin:0;margin-top:var(--space-16)}.timeline-content:before{display:none}.experience-timeline:before{left:var(--space-16)}.experience-item{flex-direction:column;align-items:flex-start;padding-left:var(--space-32)}.experience-item:nth-child(2n){flex-direction:column}.experience-content{margin:0;margin-top:var(--space-16)}.experience-content:before{display:none}.experience-date{position:relative;left:0;transform:none;align-self:flex-start;margin-left:calc(-1 * var(--space-32));margin-bottom:var(--space-8)}.projects-grid,.skills-grid,.skills-categories,.cert-grid{grid-template-columns:1fr}.contact-content{grid-template-columns:1fr;gap:var(--space-24)}.contact-info{grid-template-columns:1fr}.timeline-meta{flex-direction:column;gap:var(--space-4)}.contact-content-enhanced{grid-template-columns:1fr;gap:var(--space-24)}.contact-info-enhanced,.contact-form-enhanced{padding:var(--space-24)}.contact-method{padding:var(--space-12)}.form-grid{gap:var(--space-16)}.footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-24)}.footer-brand{grid-column:1 / -1;max-width:none;text-align:center;margin-bottom:var(--space-24)}.footer-main{padding:40px 0 30px}.footer-bottom-content{flex-direction:column;text-align:center;gap:var(--space-12)}}@media (max-width: 480px){.container{padding:0 var(--space-12)}.hero-title{font-size:2rem}.section-title{font-size:var(--font-size-2xl)}.btn--lg{padding:var(--space-10) var(--space-20);font-size:var(--font-size-base)}.hero-buttons{gap:var(--space-12)}.hero-buttons .btn{width:100%;max-width:200px}.project-filters{flex-direction:column;align-items:center}.filter-btn{width:100%;max-width:200px;text-align:center}.contact-info-enhanced,.contact-form-enhanced{padding:var(--space-16)}.contact-method{padding:var(--space-8);margin-bottom:var(--space-12)}.contact-method-icon{width:40px;height:40px}.form-input{padding:var(--space-10) var(--space-12)}.input-wrapper .form-input{padding-right:var(--space-32)}.input-icon{right:var(--space-10)}.footer-grid{grid-template-columns:1fr;gap:var(--space-20);text-align:center}.footer-brand{margin-bottom:var(--space-20)}.footer-social{justify-content:center}.footer-nav{align-items:center}.footer-main{padding:30px 0 20px}.footer-contact-info{text-align:center}.footer-contact-item{justify-content:center}.footer-newsletter{align-items:center;text-align:center}}
