body{margin:0;padding:0;width:100%;min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f9fafb}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}::selection{background-color:#0052cc;color:#fff}:root{--color-white: #ffffff;--color-black: #000000;--color-blue-primary: #0052cc;--color-blue-dark: #003d99;--color-blue-light: #e8f0ff;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-900: #111827;--font-display: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--space-px: 1px;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}@media(prefers-color-scheme:dark){:root{--color-gray-50: #0f172a;--color-gray-100: #1e293b;--color-gray-200: #334155;--color-gray-300: #475569;--color-gray-400: #64748b;--color-gray-500: #78909c;--color-gray-600: #94a3b8;--color-gray-700: #cbd5e1;--color-gray-900: #f1f5f9;--color-blue-light: #001f4d}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:1rem;line-height:1.6;color:var(--color-gray-900);background-color:var(--color-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}p{color:var(--color-gray-600)}a{color:var(--color-blue-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-blue-dark)}section{position:relative;width:100%;padding:var(--space-12) var(--space-4)}.container{max-width:1280px;margin:0 auto;width:100%}.btn{font-family:var(--font-body);font-weight:600;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);display:inline-block}.btn--primary:hover{background-color:var(--color-blue-dark);box-shadow:0 4px 12px #0052cc40;transform:translateY(-2px)}.btn--outline{background-color:transparent;color:var(--color-blue-primary);border:2px solid var(--color-blue-primary)}.btn--outline:hover{background-color:var(--color-blue-light)}.grid{display:grid;gap:var(--space-6)}.grid--2,.grid--3{grid-template-columns:1fr}.card{background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-base)}.card:hover{border-color:var(--color-blue-primary);box-shadow:var(--shadow-lg);transform:translateY(-4px)}@media(min-width:640px){section{padding:var(--space-16) var(--space-8)}h1{font-size:3rem}h2{font-size:2.5rem}.grid--2,.grid--3{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){section{padding:var(--space-20) var(--space-8)}h1{font-size:3.5rem}h2{font-size:3rem}.grid--3{grid-template-columns:repeat(3,1fr)}}.text-center{text-align:center}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.navbar{position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background-color:#ffffffb3;border-bottom:1px solid rgba(0,0,0,0);transition:all var(--transition-base);padding:var(--space-4) 0}.navbar--scrolled{background-color:#fffffff2;border-bottom-color:#00000014;box-shadow:var(--shadow-sm)}.navbar-container{max-width:1280px;margin:0 auto;padding:0 var(--space-4);display:flex;align-items:center;justify-content:space-between;height:60px}.navbar-logo{display:flex;align-items:center}.logo-link{text-decoration:none;display:flex;align-items:center;gap:var(--space-2)}.logo-image{height:40px;width:auto;object-fit:contain}.logo-text{font-family:var(--font-display);font-size:1.5rem;font-weight:700;letter-spacing:-.5px;color:var(--color-black);background:linear-gradient(135deg,#0052cc,#003d99);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.navbar-menu--desktop{display:none;align-items:center;gap:var(--space-6);justify-content:center;flex:1}.navbar-item{font-family:var(--font-body);font-size:.9375rem;font-weight:500;color:var(--color-gray-600);text-decoration:none;transition:color var(--transition-fast);position:relative}.navbar-item:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background-color:var(--color-blue-primary);transition:width var(--transition-fast)}.navbar-item:hover{color:var(--color-blue-primary)}.navbar-item:hover:after{width:100%}.navbar-actions--desktop{display:none;align-items:center;gap:var(--space-4)}.navbar-toggle{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:var(--space-2);width:40px;height:40px}.hamburger{display:flex;flex-direction:column;gap:5px;width:24px;height:18px}.hamburger-line{width:100%;height:2px;background-color:var(--color-black);border-radius:2px;transition:all var(--transition-fast);transform-origin:center}.navbar-toggle--active .hamburger-line:nth-child(1){transform:none}.navbar-toggle--active .hamburger-line:nth-child(2){opacity:1}.navbar-toggle--active .hamburger-line:nth-child(3){transform:none}.navbar-menu--mobile{position:absolute;top:90px;left:0;right:0;background-color:var(--color-white);border-bottom:1px solid var(--color-gray-200);padding:var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);align-items:center;animation:slideDown .3s cubic-bezier(.4,0,.2,1)}.navbar-item--mobile{font-family:var(--font-body);font-size:1rem;font-weight:500;color:var(--color-gray-700);text-decoration:none;padding:var(--space-3) var(--space-2);transition:color var(--transition-fast)}.navbar-item--mobile:hover{color:var(--color-blue-primary)}.btn--mobile{width:100%;margin-top:var(--space-3)}.language-selector{display:none;align-items:center;gap:var(--space-3)}.language-selector--mobile{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-3);width:100%;justify-content:center;position:relative}.language-selector--mobile:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:25%;height:1px;background-color:var(--color-gray-200)}.lang-btn{font-family:var(--font-body);font-size:.8125rem;font-weight:600;padding:var(--space-1) var(--space-3);border:none;background:none;cursor:pointer;color:var(--color-gray-600);transition:color var(--transition-fast)}.lang-btn:hover,.lang-btn.active{color:var(--color-blue-primary)}.lang-divider{color:var(--color-gray-400)}.btn{font-family:var(--font-body);font-size:.9375rem;font-weight:600;padding:var(--space-2) var(--space-6);border-radius:var(--radius-lg);border:none;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn--primary{background-color:var(--color-blue-primary);color:var(--color-white);box-shadow:0 2px 8px #0052cc26}.btn--primary:hover{background-color:var(--color-blue-dark);box-shadow:0 4px 12px #0052cc40;transform:translateY(-1px)}.btn--primary:active{transform:translateY(0)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(min-width:640px){.navbar-container{height:64px;padding:0 var(--space-6)}.navbar-menu--desktop,.navbar-actions--desktop,.language-selector{display:flex}.navbar-toggle,.navbar-menu--mobile{display:none}}body.modal-open .navbar{filter:brightness(.5);transition:filter .3s ease-out}@media(max-width:768px){.logo-image{height:35px}.logo-text{font-size:1.25rem}}@media(min-width:1024px){.navbar-container{height:70px;padding:0 var(--space-8)}.navbar-item{font-size:1rem}}.hero{position:relative;width:100%;min-height:100vh;background-color:var(--color-white);overflow:hidden;display:flex;align-items:center;justify-content:center;margin-top:60px}.hero-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;display:block}.hero-content{position:relative;z-index:2;width:100%;max-width:1280px;margin:0 auto;padding:var(--space-8) var(--space-4);text-align:center}.hero-text{animation:fadeInUp 1s ease-out .2s both}.hero-title{font-family:var(--font-display);font-size:2rem;font-weight:800;line-height:1.2;letter-spacing:-1px;color:var(--color-black);margin-bottom:var(--space-6);word-spacing:.1em}.gradient-text{background:linear-gradient(135deg,#0052cc,#003d99);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-family:var(--font-body);font-size:1.0625rem;font-weight:400;color:var(--color-gray-600);margin-bottom:var(--space-8);line-height:1.6;max-width:600px;margin-left:auto;margin-right:auto}.hero-actions{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-12);align-items:center}.btn--lg{padding:var(--space-3) var(--space-8);font-size:1rem;font-weight:600;border-radius:var(--radius-lg);height:48px;display:inline-flex;align-items:center;justify-content:center;min-width:200px}.btn--secondary{background-color:var(--color-white);color:var(--color-blue-primary);border:2px solid var(--color-blue-primary)}.btn--secondary:hover{background-color:var(--color-blue-light);border-color:var(--color-blue-primary);transform:translateY(-2px)}.hero-stats{display:flex;flex-direction:column;gap:var(--space-8);justify-content:center;align-items:center;padding-top:var(--space-8);border-top:1px solid var(--color-gray-200)}.stat{animation:fadeInUp 1s ease-out both}.stat:nth-child(1){animation-delay:.4s}.stat:nth-child(2){animation-delay:.5s}.stat:nth-child(3){animation-delay:.6s}.stat-number{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--color-blue-primary);line-height:1}.stat-label{font-family:var(--font-body);font-size:.875rem;color:var(--color-gray-500);margin-top:var(--space-2)}.hero-scroll-indicator{position:absolute;bottom:var(--space-8);left:50%;transform:translate(-50%);z-index:3;text-align:center;animation:bounce 2s ease-in-out infinite}.scroll-line{width:2px;height:24px;background:linear-gradient(to bottom,var(--color-blue-primary),transparent);margin:0 auto var(--space-2)}.hero-scroll-indicator p{font-family:var(--font-body);font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--color-gray-500);font-weight:600}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(10px)}}@keyframes popIn{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.hero-me-image{position:absolute;bottom:0;left:55%;top:100%;z-index:2;width:550px;height:550px;clip-path:inset(0 0 40% 0);animation:popIn .6s cubic-bezier(.34,1.56,.64,1) 1s both}.hero-me-image img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}@media(max-width:640px){.hero-me-image{left:65%;width:400px;height:400px}}@media(min-width:640px){.hero{margin-top:64px}.hero-content{padding:var(--space-12) var(--space-8)}.hero-title{font-size:3rem}.hero-subtitle{font-size:1.25rem}.hero-actions{flex-direction:row;justify-content:center;gap:var(--space-6)}.hero-stats{flex-direction:row;gap:var(--space-12);justify-content:center}.hero-me-image{width:400px;height:400px}}@media(min-width:1024px){.hero{margin-top:70px}.hero-content{padding:var(--space-16) var(--space-8)}.hero-title{font-size:3.75rem;letter-spacing:-1.5px}.hero-subtitle{font-size:1.375rem;line-height:1.7}.hero-scroll-indicator{bottom:var(--space-12)}.hero-me-image{width:550px;height:550px}}.section-header{text-align:center;margin-bottom:var(--space-16);animation:fadeInUp .8s ease-out}.section-title{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--color-black);margin-bottom:var(--space-3);letter-spacing:-.5px}.section-subtitle{font-family:var(--font-body);font-size:1.0625rem;color:var(--color-gray-600);font-weight:400;line-height:1.6}.about{background-color:var(--color-white);border-top:1px solid var(--color-gray-200)}.about-grid{display:grid;gap:var(--space-12)}.about-content{display:flex;flex-direction:column;gap:var(--space-6);animation:fadeInUp .8s ease-out .1s both}.about-content p{font-size:1.0625rem;line-height:1.8;color:var(--color-gray-700)}.about-cta{display:flex;gap:var(--space-4);margin-top:var(--space-4)}.about-presentation{display:grid;grid-template-columns:1fr;gap:var(--space-8);align-items:center;margin-bottom:var(--space-12)}.about-photo{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);animation:fadeInUp .8s ease-out .1s both;position:relative}.profile-image{width:50%;max-width:100px;border-radius:20px;box-shadow:var(--shadow-lg);object-fit:cover;position:relative;z-index:1}.profile-name{font-size:1.125rem;font-weight:700;color:var(--color-black);text-align:center;margin:0;letter-spacing:.5px;position:relative;z-index:1}.about-text{display:flex;flex-direction:column;gap:var(--space-6);animation:fadeInUp .8s ease-out .2s both}.about-text p{font-size:1rem;line-height:1.8;color:var(--color-black)}.about-features{display:grid;grid-template-columns:1fr;gap:var(--space-6);animation:fadeInUp .8s ease-out .2s both}.feature-card{background:linear-gradient(135deg,#0052cc0d,#003d990d);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid rgba(0,82,204,.1);text-align:center;transition:all var(--transition-base)}.feature-card:hover{border-color:var(--color-blue-primary);background:linear-gradient(135deg,#0052cc1a,#003d991a);transform:translateY(-4px)}.feature-icon{font-size:2.5rem;margin-bottom:var(--space-3)}.feature-title{font-size:1.25rem;font-weight:600;color:var(--color-black);margin-bottom:var(--space-2)}.feature-description{font-size:.9375rem;color:var(--color-gray-600);line-height:1.6}.services{background-color:var(--color-gray-50)}.services-grid{display:grid;grid-template-columns:1fr;gap:var(--space-8)}.service-card{background-color:var(--color-white);padding:var(--space-8);border-radius:var(--radius-lg);border:1px solid var(--color-gray-200);transition:all var(--transition-base);position:relative}.service-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#0052cc,#003d99);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.service-card:hover{border-color:var(--color-blue-primary);box-shadow:var(--shadow-lg);transform:translateY(-8px)}.service-number{font-family:var(--font-display);font-size:3rem;font-weight:700;color:#0052cc1a;margin-bottom:var(--space-2)}.service-title{font-size:1.5rem;font-weight:700;color:var(--color-black);margin-bottom:var(--space-3)}.service-description{font-size:1rem;color:var(--color-gray-600);line-height:1.8;margin-bottom:var(--space-6)}.service-features{display:flex;flex-wrap:wrap;gap:var(--space-3)}.feature-badge{background-color:var(--color-blue-light);color:var(--color-blue-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);font-size:.875rem;font-weight:600}.stack{background-color:var(--color-white)}.tech-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}.tech-card{background:linear-gradient(135deg,#0052cc0d,#003d990d);padding:var(--space-8);border-radius:var(--radius-lg);text-align:center;border:1px solid rgba(0,82,204,.1);transition:all var(--transition-base)}.tech-card:hover{border-color:var(--color-blue-primary);background:linear-gradient(135deg,#0052cc1a,#003d991a);transform:translateY(-4px);box-shadow:var(--shadow-md)}.tech-icon-large{font-size:3rem;margin-bottom:var(--space-4)}.tech-name{font-size:1.25rem;font-weight:700;color:var(--color-black);margin-bottom:var(--space-2)}.tech-category{font-size:.875rem;color:var(--color-blue-primary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.projects{background-color:var(--color-gray-50)}.projects-grid{display:grid;grid-template-columns:1fr;gap:var(--space-8)}.project-card{background-color:var(--color-white);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-gray-200);transition:all var(--transition-base);display:flex;flex-direction:column}.project-card:hover{border-color:var(--color-blue-primary);box-shadow:var(--shadow-lg);transform:translateY(-8px)}.project-header{width:100%;height:4px;margin-bottom:var(--space-4);border-radius:2px;background:linear-gradient(90deg,#0052cc,#003d99)}.project-title{font-size:1.25rem;font-weight:700;color:var(--color-black);margin-bottom:var(--space-2)}.project-description{font-size:1rem;color:var(--color-gray-600);line-height:1.8;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-tag{background-color:var(--color-blue-light);color:var(--color-blue-primary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:.75rem;font-weight:600}.project-card .btn{align-self:flex-start}@media(min-width:640px){.section-title{font-size:2.5rem}.about-features,.services-grid,.tech-grid,.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.section-title{font-size:3rem}.about-presentation{grid-template-columns:1fr 1fr;gap:var(--space-16)}.profile-image{max-width:100%}.about-grid{grid-template-columns:1fr 1fr;gap:var(--space-16)}.services-grid{grid-template-columns:repeat(3,1fr)}.tech-grid{grid-template-columns:repeat(6,1fr)}.projects-grid{grid-template-columns:repeat(3,1fr)}}.journey{background:linear-gradient(135deg,#f5f7fa,#fff);padding:var(--space-20) 0;overflow:visible;min-height:800px}.journey-container{max-width:1280px;margin:0 auto;padding:0 var(--space-4)}.journey-header{text-align:center;margin-bottom:var(--space-16);animation:fadeInUp .8s ease-out}.journey-header .section-title{font-size:2rem;font-weight:800;color:var(--color-black);margin-bottom:var(--space-3)}.journey-header .section-subtitle{font-size:1.0625rem;color:var(--color-gray-600)}.timeline{position:relative;padding:var(--space-8) 0}.timeline:before{content:"";position:absolute;left:50%;transform:translate(-50%);width:3px;height:100%;background:#000;top:0}.timeline-item{margin-bottom:var(--space-12);animation:fadeInUp .6s ease-out both}.timeline-item:nth-child(1){animation-delay:.1s}.timeline-item:nth-child(2){animation-delay:.2s}.timeline-item:nth-child(3){animation-delay:.3s}.timeline-item:nth-child(4){animation-delay:.4s}.timeline-item:nth-child(5){animation-delay:.5s}.timeline-item:nth-child(n+6){animation-delay:.6s}.timeline-marker{position:absolute;left:50%;transform:translate(-50%);width:60px;height:60px;display:flex;align-items:center;justify-content:center;z-index:2;margin-top:var(--space-2)}.marker-dot{width:20px;height:20px;border-radius:50%;background:var(--color-white);border:4px solid #0052cc;transition:all .3s ease}.timeline-item.timeline-education .marker-dot{border-color:#0052cc;background:#e3f2fd}.timeline-item.timeline-experience .marker-dot{border-color:#10b981;background:#d1fae5}.timeline-item.timeline-achievement .marker-dot{border-color:#f59e0b;background:#fef3c7}.timeline-item.timeline-project .marker-dot{border-color:#8b5cf6;background:#ede9fe}.timeline-item:hover .marker-dot{transform:scale(1.3);box-shadow:0 0 20px #0552cc4d}.timeline-content{width:calc(50% - 40px);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-white);border:1px solid var(--color-gray-200);transition:all .3s ease;margin-top:var(--space-3)}.timeline-item:nth-child(odd) .timeline-content{margin-left:0}.timeline-item:nth-child(2n) .timeline-content{margin-left:auto}.timeline-item:hover .timeline-content{border-color:#0052cc;box-shadow:0 8px 24px #0552cc26;transform:translateY(-4px)}.timeline-year{display:inline-block;font-size:.875rem;font-weight:700;color:var(--color-white);background:#0052cc;padding:var(--space-1) var(--space-3);border-radius:20px;margin-bottom:var(--space-3)}.timeline-item.timeline-education .timeline-year{background:#0052cc}.timeline-item.timeline-experience .timeline-year{background:#10b981}.timeline-item.timeline-achievement .timeline-year{background:#f59e0b}.timeline-item.timeline-project .timeline-year{background:#8b5cf6}.timeline-title{font-size:1.125rem;font-weight:700;color:var(--color-black);margin-bottom:var(--space-2);margin-top:0}.timeline-description{font-size:.95rem;color:var(--color-gray-600);line-height:1.6;margin:0}.timeline-item.year-2026 .marker-dot{border-color:#06b6d4;background:#cffafe}.timeline-item.year-2026 .timeline-year{background:#06b6d4}.timeline-item.year-2026 .timeline-content{border-color:#06b6d4}.timeline-item.year-2026:hover .timeline-content{border-color:#06b6d4;box-shadow:0 8px 24px #06b6d426}.timeline-item.year-2025 .marker-dot{border-color:#f59e0b;background:#fef3c7}.timeline-item.year-2025 .timeline-year{background:#f59e0b}.timeline-item.year-2025 .timeline-content{border-color:#f59e0b}.timeline-item.year-2025:hover .timeline-content{border-color:#f59e0b;box-shadow:0 8px 24px #f59e0b26}.timeline-item.year-2024 .marker-dot{border-color:#8b5cf6;background:#ede9fe}.timeline-item.year-2024 .timeline-year{background:#8b5cf6}.timeline-item.year-2024 .timeline-content{border-color:#8b5cf6}.timeline-item.year-2024:hover .timeline-content{border-color:#8b5cf6;box-shadow:0 8px 24px #8b5cf626}.timeline-item.year-2023 .marker-dot{border-color:#ec4899;background:#fce7f3}.timeline-item.year-2023 .timeline-year{background:#ec4899}.timeline-item.year-2023 .timeline-content{border-color:#ec4899}.timeline-item.year-2023:hover .timeline-content{border-color:#ec4899;box-shadow:0 8px 24px #ec489926}@media(max-width:768px){.timeline:before{left:30px}.timeline-marker{position:absolute;left:30px;width:auto;height:auto}.marker-dot{width:16px;height:16px;border-width:3px}.timeline-item:nth-child(odd) .timeline-content,.timeline-item:nth-child(2n) .timeline-content{width:calc(100% - 80px);margin-left:70px}.journey-header .section-title{font-size:1.75rem}.timeline-title{font-size:1rem}.timeline-description{font-size:.9rem}}@media(max-width:640px){.timeline:before{left:20px}.timeline-marker{left:20px}.marker-dot{width:14px;height:14px;border-width:2px}.timeline-item:nth-child(odd) .timeline-content,.timeline-item:nth-child(2n) .timeline-content{width:calc(100% - 60px);margin-left:50px}.timeline-content{padding:var(--space-4)}.journey-header .section-title{font-size:1.5rem}.timeline-title{font-size:.95rem}.timeline-description{font-size:.85rem}.timeline-year{font-size:.75rem;padding:var(--space-1) var(--space-2)}}@media(min-width:640px){.journey-header .section-title{font-size:2.5rem}}@media(min-width:1024px){.journey-header .section-title{font-size:3rem}.timeline-content{padding:var(--space-8)}.timeline-title{font-size:1.25rem}}.skills{background:var(--color-blue-dark);padding:var(--space-16) 0;overflow:hidden}.skills-container{max-width:1280px;margin:0 auto;padding:0 var(--space-4)}.skills-header{text-align:center;margin-bottom:var(--space-16);animation:fadeInUp .8s ease-out}.skills-header .section-title{font-size:2rem;font-weight:800;color:var(--color-white);margin-bottom:var(--space-3)}.skills-header .section-subtitle{font-size:1.0625rem;color:#ffffffb3}.mac-window{background:var(--color-white);border-radius:12px;box-shadow:0 15px 40px #00000059;overflow:hidden;animation:fadeInUp .8s ease-out .1s both}.mac-header{background:linear-gradient(to bottom,#f3f3f3,#e8e8e8);padding:12px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #d0d0d0}.mac-buttons{display:flex;gap:8px}.mac-btn{width:13px;height:13px;border-radius:50%}.mac-btn-red{background:#ff5f56}.mac-btn-yellow{background:#ffbd2e}.mac-btn-green{background:#27c93f}.mac-title{flex:1;text-align:center;font-size:.875rem;font-weight:500;color:var(--color-white)}.mac-content{background-image:url(/assets/mac-wallpaper.png);background-size:cover;background-position:center;background-repeat:no-repeat;min-height:500px;padding:var(--space-10);display:flex;align-items:flex-start;justify-content:flex-start;position:relative}.desktop-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-8);width:100%}.icon-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:12px}.icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-image{width:100%;height:100%;object-fit:contain;object-position:center}.icon-label{font-size:.75rem;font-weight:500;color:#ffffffe6;text-align:center;margin:0;max-width:80px;word-wrap:break-word;text-shadow:0 2px 4px rgba(0,0,0,.3);line-height:1.2}.other-tools{margin-top:var(--space-16);padding:var(--space-12);background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);animation:fadeInUp .8s ease-out .3s both}.other-tools-title{font-size:1.25rem;font-weight:700;color:var(--color-white);margin-bottom:var(--space-8);text-align:center}.tools-badges{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center}.badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:50px;font-size:.875rem;font-weight:600;border:2px solid transparent}.badge-icon{font-size:1.2rem}.badge-huggingface,.badge-rag,.badge-supabase,.badge-railway,.badge-claude,.badge-openai{background:var(--color-blue-light);color:var(--color-white);border:none}@media(max-width:768px){.desktop-icons{grid-template-columns:repeat(3,1fr);gap:var(--space-6)}.icon{width:70px;height:70px}.mac-content{min-height:400px;padding:var(--space-6)}.skills-header .section-title{font-size:1.75rem}.icon-label{font-size:.7rem}.other-tools{margin-top:var(--space-12);padding:var(--space-8)}.other-tools-title{font-size:1.1rem}.badge{font-size:.8rem;padding:var(--space-2) var(--space-4)}}@media(max-width:640px){.desktop-icons{grid-template-columns:repeat(2,1fr)}.icon{width:60px;height:60px}.mac-content{min-height:350px;padding:var(--space-4)}.icon-item{gap:var(--space-2)}}@media(min-width:640px){.skills-header .section-title{font-size:2.5rem}}@media(min-width:1024px){.desktop-icons{grid-template-columns:repeat(6,1fr)}.skills-header .section-title{font-size:3rem}.icon{width:90px;height:90px}.mac-content{min-height:550px;padding:var(--space-12)}}.projects-sections-wrapper{background:linear-gradient(135deg,#f5f7fa,#fff)}.projects-section{padding:var(--space-16) 0}.section-contributions{padding-top:var(--space-20)!important;position:relative}.section-contributions:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:75%;height:2px;background-color:var(--color-blue-primary)}.projects-container{max-width:1280px;margin:0 auto;padding:0 var(--space-4)}.projects-header{text-align:center;margin-bottom:var(--space-12);animation:fadeInUp .8s ease-out}.projects-header .section-title{font-size:2rem;font-weight:800;color:var(--color-black);margin-bottom:var(--space-3)}.projects-header .section-subtitle{font-size:1.0625rem;color:var(--color-gray-600)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-8);animation:fadeInUp .8s ease-out .1s both}.projects-grid-large{grid-template-columns:1fr;gap:var(--space-20);max-width:none}.project-card{background:var(--color-white);padding:var(--space-8);border-radius:var(--radius-lg);border:2px solid var(--color-gray-200);transition:all .3s ease;display:flex;flex-direction:column}.project-card:hover{border-color:var(--color-blue-primary);box-shadow:0 12px 32px #0052cc26;transform:translateY(-8px)}.project-item{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10);align-items:center;position:relative;min-height:300px}.project-item:nth-child(2n){grid-template-columns:1fr 1fr;direction:rtl}.project-item:nth-child(2n)>*{direction:ltr}.project-image{border-radius:var(--radius-lg);overflow:hidden;background:var(--color-gray-100);height:100%;min-height:320px;width:100%;object-fit:cover;object-position:center;box-shadow:0 24px 56px #0000002e;transition:transform .3s ease}.project-info-card{background:var(--color-blue-light);padding:var(--space-8)!important;border-radius:var(--radius-lg)!important;border:none!important;display:flex!important;flex-direction:column!important;margin-left:calc(var(--space-8) * -1.8);position:relative;z-index:10}.project-link-icon{position:absolute;top:var(--space-4);right:var(--space-4);color:var(--color-white);text-decoration:none;transition:all .3s ease;display:flex;align-items:center;justify-content:center;background:none;cursor:pointer}.project-info-card .project-title,.project-info-card .project-description{color:var(--color-white)}.project-info-card .project-tag{background:var(--color-white);color:var(--color-blue-primary);border:1px solid transparent}.project-info-card .project-tag:hover{background:#00d9ff33;color:var(--color-white);border-color:#00d9ff;box-shadow:0 0 12px #00d9ff99,inset 0 0 8px #00d9ff33}.project-item:nth-child(2n) .project-info-card{margin-left:0;margin-right:calc(var(--space-8) * -1.8)}.project-title{font-size:1.5rem;font-weight:700;color:var(--color-black);margin-bottom:var(--space-4);margin-top:0}.project-description{font-size:1rem;color:var(--color-gray-600);line-height:1.8;margin-bottom:var(--space-6);flex-grow:1}.project-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto}.project-tag{background:var(--color-blue-light);color:var(--color-blue-primary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:.8rem;font-weight:600;cursor:default;transition:all .3s ease;border:1px solid transparent}.project-tag:hover{background:#00d9ff26;color:var(--color-white);border-color:#00d9ff;box-shadow:0 0 12px #00d9ff99,inset 0 0 8px #00d9ff33}body.modal-open{overflow:hidden}body.modal-open section{filter:brightness(.5);transition:filter .3s ease-out;pointer-events:none}.project-modal{display:none;position:fixed;inset:0;background-color:#000000bf;z-index:1000;justify-content:center;align-items:center;padding:var(--space-4);animation:fadeIn .3s ease-out}.project-modal-content{position:relative;width:100%;max-width:600px;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.project-modal-close{position:absolute;top:8px;right:8px;background:#0006;border:none;font-size:1.5rem;color:var(--color-white);cursor:pointer;z-index:1003;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.project-modal-close:hover{background:#0009;transform:scale(1.1)}.project-modal-card{background:var(--color-blue-dark);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;max-height:80vh;overflow-y:auto}.project-modal-body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.project-modal-title{font-size:1.5rem;font-weight:700;color:var(--color-white);margin:0}.project-modal-description{font-size:1rem;color:#ffffffd9;line-height:1.8;margin:0}.project-modal-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-white);text-decoration:none;transition:all .3s ease;padding:0;background:none}.project-modal-link:hover{opacity:.8;transform:scale(1.1)}.project-modal-link-text{display:none;font-size:1rem;font-weight:600}@media(max-width:640px){.project-modal-link-text{display:inline}}.project-modal-card .project-tags{gap:var(--space-2)}.project-modal-card .project-tag{background:#ffffff26;color:var(--color-white);border:1px solid rgba(255,255,255,.3);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:.8rem;font-weight:600;transition:all .3s ease}.project-modal-card .project-tag:hover{background:#ffffff40;border-color:#ffffff80;box-shadow:0 0 12px #fff3}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:900px){.project-item{grid-template-columns:1fr!important;gap:var(--space-6);min-height:auto;direction:ltr!important}.project-item:nth-child(2n){grid-template-columns:1fr!important;direction:ltr!important}.project-info-card{margin-left:0!important;margin-right:0!important}}@media(max-width:768px){.projects-section{padding:var(--space-12) 0}.projects-header .section-title{font-size:1.75rem}.projects-header .section-subtitle{font-size:1rem}.projects-grid-large{gap:var(--space-10)}.project-card{padding:var(--space-6)}.project-info-card{padding:var(--space-8)!important}.project-image{min-height:250px}.project-content{margin-left:0!important;margin-right:0!important}.project-title{font-size:1.1rem}.project-description{font-size:.9rem}}@media(max-width:640px){.projects-section{padding:var(--space-10) 0}.projects-header .section-title{font-size:1.5rem}.projects-header .section-subtitle{font-size:.95rem}.projects-grid-large{gap:var(--space-6)}.project-card{padding:var(--space-4)}.project-item{grid-template-columns:1fr}.project-image{min-height:200px;cursor:pointer}.project-info-card{display:none!important}.project-link-icon{font-size:1.2rem}.project-title{font-size:1rem}.project-description{font-size:.85rem}.project-tags{gap:var(--space-1)}.project-tag{font-size:.7rem;padding:.2rem var(--space-1)}.project-modal{display:flex}.project-modal-title{font-size:1.25rem}.project-modal-description{font-size:.95rem}}@media(min-width:640px){.projects-header .section-title{font-size:2.5rem}}@media(min-width:1024px){.projects-section{padding:var(--space-20) 0}.projects-header .section-title{font-size:3rem}.projects-container{padding:0 var(--space-8)}}.contact{background:var(--color-blue-light);padding:var(--space-20) 0;overflow:hidden}.contact-container{max-width:1280px;margin:0 auto;padding:0 var(--space-4)}.contact-header{text-align:center;margin-bottom:var(--space-16);animation:fadeInUp .8s ease-out}.contact-header .section-title{font-size:2rem;font-weight:800;color:var(--color-white);margin-bottom:var(--space-3)}.contact-header .section-subtitle{font-size:1.0625rem;color:#fffc}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:start;animation:fadeInUp .8s ease-out .1s both}.contact-content .contact-form{order:-1}.contact-content .contact-info{order:1}.contact-form{display:flex;flex-direction:column;gap:var(--space-6)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:.9375rem;font-weight:600;color:var(--color-white)}.form-input,.form-textarea{padding:var(--space-3) var(--space-4);border:2px solid rgba(0,61,153,.2);border-radius:var(--radius-lg);font-family:var(--font-body);font-size:1rem;color:var(--color-white);background:#ffffff0d;transition:all .3s ease}.form-input::placeholder,.form-textarea::placeholder{color:#fff9}.form-input:focus,.form-textarea:focus{outline:none;border-color:#003d99e6;box-shadow:0 0 0 3px #003d991a}.form-textarea{resize:vertical;min-height:150px}.form-submit{padding:var(--space-3) var(--space-6);background:var(--color-blue-primary);color:var(--color-white);border:none;border-radius:50px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:var(--space-2)}.form-submit:hover:not(:disabled){background:var(--color-blue-dark);transform:translateY(-2px);box-shadow:0 8px 24px #0052cc66}.form-submit:disabled{opacity:.6;cursor:not-allowed}.form-message{padding:var(--space-4);border-radius:var(--radius-lg);font-weight:600;text-align:center;animation:slideIn .3s ease-out;margin-top:var(--space-2)}.form-message--success{background:#1abc9c26;color:#1abc9c;border:2px solid #1abc9c}.form-message--error{background:#e74c3c26;color:#e74c3c;border:2px solid #e74c3c}.contact-info{display:flex;flex-direction:column;gap:var(--space-8)}.contact-method-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);background:#ffffff0d;border:2px solid rgba(0,61,153,.2);border-radius:var(--radius-lg);transition:all .3s ease;text-decoration:none}.contact-method-card:hover{border-color:#003d99e6;transform:translateY(-4px)}.contact-card-icon{width:24px;height:24px;flex-shrink:0;color:var(--color-white);stroke-width:1.5}.contact-card-content{display:flex;flex-direction:column;gap:var(--space-1)}.contact-card-title{font-size:.9375rem;font-weight:400;color:var(--color-white);margin:0}.contact-card-link{font-size:.875rem;font-weight:200;color:var(--color-white);text-decoration:none;transition:color .3s ease}.contact-method-card:hover .contact-card-link{color:var(--color-white)}.cv-download-btn{padding:var(--space-4) var(--space-6);background:var(--color-blue-primary);color:var(--color-white);border:2px solid var(--color-blue-primary);border-radius:50px;font-size:1rem;font-weight:600;text-decoration:none;text-align:center;cursor:pointer;transition:all .3s ease;display:block;margin-top:var(--space-4)}.cv-download-btn:hover{background:var(--color-blue-dark);color:var(--color-white);transform:translateY(-2px);box-shadow:0 8px 24px #0052cc66}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.contact{padding:var(--space-12) 0}.contact-header .section-title{font-size:1.75rem}.contact-header .section-subtitle{font-size:1rem}.contact-content{grid-template-columns:1fr;gap:var(--space-10)}.form-input,.form-textarea{padding:var(--space-3) var(--space-3);font-size:16px}.contact-method-card{gap:var(--space-4);padding:var(--space-4) var(--space-6)}.contact-card-icon{width:24px;height:24px}.contact-card-title{font-size:.875rem}.contact-card-link{font-size:.8125rem}.cv-download-btn{padding:var(--space-3) var(--space-4);font-size:.95rem}}@media(max-width:640px){.contact{padding:var(--space-10) 0}.contact-header .section-title{font-size:1.5rem}.contact-header .section-subtitle{font-size:.95rem}.contact-method-card{gap:var(--space-4);padding:var(--space-4) var(--space-6)}.contact-card-icon{width:24px;height:24px}.contact-card-title{font-size:.9rem}.contact-card-link{font-size:.85rem}.cv-download-btn{padding:var(--space-3) var(--space-3);font-size:.9rem}}@media(min-width:640px){.contact-header .section-title{font-size:2.5rem}}@media(min-width:1024px){.contact{padding:var(--space-20) 0}.contact-header .section-title{font-size:3rem}.contact-container{padding:0 var(--space-8)}}.footer{background-color:var(--color-gray-900);color:var(--color-gray-200);padding:var(--space-6) 0;margin-top:0}.footer-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-6)}.footer-logo-section{display:flex;align-items:flex-end;gap:var(--space-3)}.footer-logo{height:40px;width:auto;object-fit:contain}.footer-brand{font-family:var(--font-display);font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,#0052cc,#003d99);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.copyright{font-size:.875rem;color:var(--color-gray-500);margin:0;white-space:nowrap}@media(max-width:640px){.footer-content{flex-direction:column;gap:var(--space-2)}.footer-logo{height:35px}.footer-brand{font-size:1.25rem}.copyright{white-space:normal;font-size:.8rem}}
