:root{--max-width-content: 1440px;--content-padding: 2rem;--content-padding-mobile: 1.5rem;--color-primary: #4f46e5;--color-primary-rgb: 79, 70, 229;--color-primary-dark: #3730a3;--color-primary-light: #8b5cf6;--color-secondary: #ec4899;--color-secondary-rgb: 236, 72, 153;--color-secondary-dark: #db2777;--color-accent: #06b6d4;--color-accent-rgb: 8, 145, 178;--color-accent-light: #06b6d4;--color-tertiary: #059669;--color-tertiary-rgb: 5, 150, 105;--color-success: #059669;--color-warning: #d97706;--color-error: #dc2626;--color-info: --color-accent;--color-secondary-alpha: rgba(236, 72, 153, .1);--color-primary-alpha: rgba(99, 102, 241, .1);--color-heading: #1f2937;--color-text-primary: #374151;--color-text-secondary: #4b5563;--color-text-tertiary: #6b7280;--color-bg: #ffffff;--color-bg-secondary: #f9fafb;--color-border-global: #e5e7eb;--color-border-subtle: rgba(0, 0, 0, .1);--hover-bg: rgba(0, 0, 0, .05);--accent-ui-bg: rgba(59, 130, 246, .1);--accent-ui-rgb: 59, 130, 246;--card-bg: rgba(255, 255, 255, .8);--card-code-bg: #f3f4f6 --card-bg-hover: rgba(255, 255, 255, .9);--card-border-color: rgba(0, 0, 0, .1);--card-border-color-hover: rgba(0, 0, 0, .2);--card-border-radius: 16px;--shadow-card-default: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-card-hover: 0 10px 15px -3px rgba(0, 0, 0, .15), 0 4px 6px -2px rgba(0, 0, 0, .08);--shadow-paragraph-hover: 0 2px 8px -2px rgba(0, 0, 0, .08), 0 1px 3px -1px rgba(0, 0, 0, .04);--shadow-icon: 0 2px 5px rgba(0, 0, 0, .15);--icon-wrapper-size: 72px;--icon-wrapper-border-radius: 16px;--icon-size: 32px;--icon-wrapper-size-mobile: 60px;--icon-bg-primary: rgba(var(--color-primary-rgb), .1);--icon-border-primary: rgba(var(--color-primary-rgb), .3);--icon-color-primary: var(--color-primary);--icon-effect-primary: rgba(var(--color-primary-rgb), .08);--icon-bg-secondary: rgba(var(--color-secondary-rgb), .1);--icon-border-secondary: rgba(var(--color-secondary-rgb), .3);--icon-color-secondary: var(--color-secondary);--icon-effect-secondary: rgba(var(--color-secondary-rgb), .08);--icon-bg-accent: rgba(var(--color-accent-rgb), .1);--icon-border-accent: rgba(var(--color-accent-rgb), .3);--icon-color-accent: var(--color-accent);--icon-effect-accent: rgba(var(--color-accent-rgb), .08);--icon-bg-tertiary: rgba(var(--color-tertiary-rgb), .1);--icon-border-tertiary: rgba(var(--color-tertiary-rgb), .3);--icon-color-tertiary: var(--color-tertiary);--icon-effect-tertiary: rgba(var(--color-tertiary-rgb), .08);--glow-size: 120px;--glow-scale-default: .8;--glow-scale-hover: 1.2;--glow-opacity-default: 0;--glow-opacity-hover: .3;--glow-strength: .2;--bg-glow-strength: .1;--gradient-text-hero: linear-gradient(135deg, #8b5cf6 0%, var(--color-secondary) 25%, var(--color-primary) 100%);--card-hover-border-gradient: linear-gradient(45deg, transparent 25%, rgba(var(--color-primary-rgb), .5) 50%, transparent 75%);--card-hover-border-gradient-start: linear-gradient(45deg, transparent 25%, rgba(var(--color-primary-rgb), .3) 50%, transparent 75%);--card-hover-border-gradient-pulse: linear-gradient(45deg, transparent 25%, rgba(var(--color-primary-rgb), .7) 50%, transparent 75%);--space-0: 0;--space-px: 1px;--space-0-5: .125rem;--space-1: .25rem;--space-1-5: .375rem;--space-2: .5rem;--space-2-5: .625rem;--space-3: .75rem;--space-3-5: .875rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.25rem;--space-10: 2.5rem;--space-11: 2.75rem;--space-12: 3rem;--space-14: 3.5rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-28: 7rem;--space-32: 8rem;--space-36: 9rem;--space-40: 10rem;--space-44: 11rem;--space-48: 12rem;--space-52: 13rem;--space-56: 14rem;--space-60: 15rem;--space-64: 16rem;--space-72: 18rem;--space-80: 20rem;--space-96: 24rem;--space-xxs: var(--space-1);--space-xs: var(--space-2);--space-sm: var(--space-3);--space-md: var(--space-4);--space-lg: var(--space-6);--space-xl: var(--space-8);--space-xxl: var(--space-12);--space-xxxl: var(--space-16);--space-xxxxl: var(--space-32);--font-family-sans: "Inter", sans-serif;--font-weight-thin: 300;--font-weight-normal: 400;--font-weight-semibold: 600;--font-weight-bold: 700;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-xxl: 2rem;--font-size-h1: 3rem;--font-size-h2: 2.5rem;--font-size-h3: 2rem;--font-size-h4: 1.5rem;--font-size-h5: 1.25rem;--font-size-h6: 1.125rem;--blog-heading-h1-size: var(--font-size-h1);--blog-heading-h2-size: var(--font-size-h2);--blog-heading-h3-size: var(--font-size-h3);--blog-heading-h4-size: var(--font-size-h4);--blog-heading-h5-size: var(--font-size-h5);--blog-heading-h6-size: var(--font-size-h6);--blog-heading-line-height: 1.3;--blog-heading-letter-spacing: -.02em;--blog-heading-margin-top: var(--space-xl);--blog-heading-margin-bottom: var(--space-md);--blog-heading-accent-color: var(--color-primary);--blog-heading-border-color: rgba(var(--color-primary-rgb), .2);--blog-heading-border-width: 3px;--blog-heading-border-radius: 2px;--transition-duration-xs: .15s;--transition-duration-sm: .2s;--transition-duration-md: .3s;--transition-duration-lg: .4s;--transition-duration-xl: .6s;--transition-easing-standard: cubic-bezier(.4, 0, .2, 1);--transition-easing-ease: ease;--transition-easing-bounce: cubic-bezier(.68, -.55, .265, 1.55);--pulse-animation-duration: 2s;--color-toggle-bg: #e0e0e0;--color-toggle-thumb: #ffffff;--color-sun-icon: #f59e0b;--color-moon-icon: #5d5ff4;--header-bg: rgba(255, 255, 255, .588);--header-bg-mobile: rgb(255, 255, 255);--blur-amount: 10px;--breakpoint-mobile: 480px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--bg-approach-section: radial-gradient(ellipse at center, rgba(var(--color-primary-rgb), .03) 0%, transparent 70%);--bg-approach-before: radial-gradient(circle at 20% 80%, rgba(var(--color-primary-rgb), var(--bg-glow-strength, .1)) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(var(--color-secondary-rgb), var(--bg-glow-strength, .1)) 0%, transparent 50%);--gradient-title-decoration: linear-gradient(90deg, transparent, rgba(var(--color-primary-rgb), .5), transparent);--transition-card: transform var(--transition-duration-sm, .2s) var(--transition-easing-standard), box-shadow var(--transition-duration-sm, .2s) var(--transition-easing-standard), border-color var(--transition-duration-sm, .2s) var(--transition-easing-standard);--transition-glow: all var(--transition-duration-xl, .6s) var(--transition-easing-standard);--transition-icon-wrapper: transform var(--transition-duration-md, .4s) var(--transition-easing-standard);--transition-icon-bg: all var(--transition-duration-md, .4s) var(--transition-easing-standard);--transition-icon: transform var(--transition-duration-sm, .3s) var(--transition-easing-standard), color var(--transition-duration-sm, .3s) var(--transition-easing-standard)}[data-theme=dark]{--color-primary: #a5b4fc;--color-primary-rgb: 165, 180, 252;--color-primary-dark: #818cf8;--color-primary-light: #c7d2fe;--color-secondary: #f472b6;--color-secondary-rgb: 244, 114, 182;--color-secondary-dark: #ec4899;--color-accent: #22d3ee;--color-accent-rgb: 34, 211, 238;--color-accent-light: #67e8f9;--color-tertiary: #34d399;--color-tertiary-rgb: 52, 211, 153;--color-success: #34d399;--color-warning: #fbbf24;--color-error: #f87171;--color-secondary-alpha: rgba(244, 114, 182, .2);--color-primary-alpha: rgba(129, 140, 248, .2);--color-heading: #f9fafb;--color-text-primary: #f3f4f6;--color-text-secondary: #e5e7eb;--color-text-tertiary: #d1d5db;--color-bg: #1a1a1a;--color-bg-secondary: #2d2d2d;--color-border-global: #374151;--color-border-subtle: rgba(255, 255, 255, .1);--hover-bg: rgba(255, 255, 255, .05);--accent-ui-bg: rgba(59, 130, 246, .2);--accent-ui-rgb: 96, 165, 250;--card-bg: rgba(255, 255, 255, .02);--card-code-bg: rgba(55, 52, 49, .8);--card-bg-hover: rgba(255, 255, 255, .05);--card-border-color: rgba(255, 255, 255, .1);--card-border-color-hover: rgba(255, 255, 255, .2);--blog-heading-accent-color: var(--color-primary);--blog-heading-border-color: rgba(var(--color-primary-rgb), .3);--shadow-card-default: none;--shadow-card-hover: 0 10px 15px -3px rgba(0, 0, 0, .25), 0 4px 6px -2px rgba(0, 0, 0, .15);--shadow-paragraph-hover: 0 2px 8px -2px rgba(0, 0, 0, .15), 0 1px 3px -1px rgba(0, 0, 0, .08);--shadow-icon: 0 2px 5px rgba(0, 0, 0, .2);--icon-bg-primary: rgba(var(--color-primary-rgb), .15);--icon-border-primary: rgba(var(--color-primary-rgb), .25);--icon-color-primary: var(--color-primary);--icon-effect-primary: rgba(var(--color-primary-rgb), .1);--icon-bg-secondary: rgba(var(--color-secondary-rgb), .15);--icon-border-secondary: rgba(var(--color-secondary-rgb), .25);--icon-color-secondary: var(--color-secondary);--icon-effect-secondary: rgba(var(--color-secondary-rgb), .1);--icon-bg-accent: rgba(var(--color-accent-rgb), .15);--icon-border-accent: rgba(var(--color-accent-rgb), .25);--icon-color-accent: var(--color-accent);--icon-effect-accent: rgba(var(--color-accent-rgb), .1);--icon-bg-tertiary: rgba(var(--color-tertiary-rgb), .15);--icon-border-tertiary: rgba(var(--color-tertiary-rgb), .25);--icon-color-tertiary: var(--color-tertiary);--icon-effect-tertiary: rgba(var(--color-tertiary-rgb), .1);--glow-opacity-hover: .2;--glow-strength: .15;--bg-glow-strength: .08;--gradient-text-hero: linear-gradient(135deg, #a78bfa 0%, #f472b6 50%, var(--color-primary) 100%);--card-hover-border-gradient: linear-gradient(45deg, transparent 25%, rgba(var(--color-primary-rgb), .4) 50%, transparent 75%);--card-hover-border-gradient-start: linear-gradient(45deg, transparent 25%, rgba(var(--color-primary-rgb), .2) 50%, transparent 75%);--card-hover-border-gradient-pulse: linear-gradient(45deg, transparent 25%, rgba(var(--color-primary-rgb), .6) 50%, transparent 75%);--color-toggle-bg: #444444;--color-toggle-thumb: #222222;--color-sun-icon: #fbbf24;--color-moon-icon: #5d5ff4;--header-bg: rgba(19, 18, 30, .451);--header-bg-mobile: rgba(19, 18, 30, .97)}html{height:100%;scroll-behavior:smooth;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{height:100%;margin:0;font-family:var(--font-family-sans, system-ui, -apple-system, sans-serif);background-color:var(--color-bg);color:var(--color-text-primary);transition:background-color .3s ease,color .3s ease;line-height:1.6}[appSimpleScrollReveal]{will-change:opacity,transform}[appScrollReveal]{will-change:opacity,transform,filter}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;transition-duration:0s!important;transition-delay:0s!important}}.container{max-width:var(--max-width-content, 1440px);margin:0 auto;position:relative;z-index:1}.section-header{text-align:center;position:relative}.section-title{font-size:clamp(2.5rem,5vw,var(--font-size-h2, 3.5rem));font-weight:var(--font-weight-bold, 700);margin-bottom:var(--space-md, 1.5rem);line-height:1.1;letter-spacing:-.02em;color:var(--color-heading)}.title-gradient{background:var(--gradient-text-hero);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative}.section-subtitle{font-size:var(--font-size-lg, 1.25rem);color:var(--color-text-secondary);max-width:var(--max-width-text-md, 600px);margin:0 auto;line-height:1.6}.title-decoration{width:100px;height:1px;background:var(--gradient-title-decoration, linear-gradient(90deg, transparent, rgba(var(--color-primary-rgb), .5), transparent));margin:var(--space-sm, .75rem) auto 0}.header-container{display:flex;align-items:center;justify-content:space-between;position:relative;padding:1rem}.header-left{display:flex;align-items:center;gap:2rem}.header-right{display:flex;align-items:center;margin-left:auto}.logo{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-start;transition:transform .3s cubic-bezier(.4,0,.2,1)}.logo:hover{transform:scale(1.05)}.logo:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 1px var(--color-bg),0 0 0 4px var(--color-primary)}*:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-40px;left:6px;background:var(--color-primary);color:var(--color-bg);padding:8px 16px;text-decoration:none;border-radius:4px;font-weight:600;z-index:9999;transition:top .2s ease}.skip-link:focus{top:6px}@media (prefers-contrast: high){:root{--color-primary: #0000ff;--color-secondary: #ff0000;--color-text-primary: #000000;--color-bg: #ffffff;--color-border-global: #000000}[data-theme=dark]{--color-primary: #00ffff;--color-secondary: #ff00ff;--color-text-primary: #ffffff;--color-bg: #000000;--color-border-global: #ffffff}}@media (forced-colors: active){*:focus-visible{outline:2px solid ButtonText;outline-offset:2px}}.container{width:100%;max-width:var(--max-width);margin:0 auto}.grid{display:grid;gap:var(--space-md)}@media (width <= 768px){.grid{grid-template-columns:repeat(12,1fr)}.col-span-6{grid-column:span 6}.col-span-4{grid-column:span 4}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.title-gradient{background:linear-gradient(90deg,var(--color-primary, #4f46e5),var(--color-secondary, #ec4899));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent;display:inline-block;position:relative}.m-0{margin:var(--space-0)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.m-6{margin:var(--space-6)}.m-8{margin:var(--space-8)}.m-10{margin:var(--space-10)}.m-12{margin:var(--space-12)}.m-16{margin:var(--space-16)}.m-20{margin:var(--space-20)}.m-24{margin:var(--space-24)}.m-32{margin:var(--space-32)}.p-0{padding:var(--space-0)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.p-10{padding:var(--space-10)}.p-12{padding:var(--space-12)}.p-16{padding:var(--space-16)}.p-20{padding:var(--space-20)}.p-24{padding:var(--space-24)}.p-32{padding:var(--space-32)}.mt-0{margin-top:var(--space-0)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mt-12{margin-top:var(--space-12)}.mt-16{margin-top:var(--space-16)}.mb-0{margin-bottom:var(--space-0)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mb-12{margin-bottom:var(--space-12)}.mb-16{margin-bottom:var(--space-16)}.ml-0{margin-left:var(--space-0)}.ml-1{margin-left:var(--space-1)}.ml-2{margin-left:var(--space-2)}.ml-3{margin-left:var(--space-3)}.ml-4{margin-left:var(--space-4)}.ml-6{margin-left:var(--space-6)}.ml-8{margin-left:var(--space-8)}.mr-0{margin-right:var(--space-0)}.mr-1{margin-right:var(--space-1)}.mr-2{margin-right:var(--space-2)}.mr-3{margin-right:var(--space-3)}.mr-4{margin-right:var(--space-4)}.mr-6{margin-right:var(--space-6)}.mr-8{margin-right:var(--space-8)}.pt-0{padding-top:var(--space-0)}.pt-1{padding-top:var(--space-1)}.pt-2{padding-top:var(--space-2)}.pt-3{padding-top:var(--space-3)}.pt-4{padding-top:var(--space-4)}.pt-6{padding-top:var(--space-6)}.pt-8{padding-top:var(--space-8)}.pt-12{padding-top:var(--space-12)}.pt-16{padding-top:var(--space-16)}.pb-0{padding-bottom:var(--space-0)}.pb-1{padding-bottom:var(--space-1)}.pb-2{padding-bottom:var(--space-2)}.pb-3{padding-bottom:var(--space-3)}.pb-4{padding-bottom:var(--space-4)}.pb-6{padding-bottom:var(--space-6)}.pb-8{padding-bottom:var(--space-8)}.pb-12{padding-bottom:var(--space-12)}.pb-16{padding-bottom:var(--space-16)}.pl-0{padding-left:var(--space-0)}.pl-1{padding-left:var(--space-1)}.pl-2{padding-left:var(--space-2)}.pl-3{padding-left:var(--space-3)}.pl-4{padding-left:var(--space-4)}.pl-6{padding-left:var(--space-6)}.pl-8{padding-left:var(--space-8)}.pr-0{padding-right:var(--space-0)}.pr-1{padding-right:var(--space-1)}.pr-2{padding-right:var(--space-2)}.pr-3{padding-right:var(--space-3)}.pr-4{padding-right:var(--space-4)}.pr-6{padding-right:var(--space-6)}.pr-8{padding-right:var(--space-8)}.gap-0{gap:var(--space-0)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.gap-10{gap:var(--space-10)}.gap-12{gap:var(--space-12)}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-top:auto;margin-bottom:auto}.m-auto{margin:auto}.scroll-reveal-hidden{opacity:0;transform:translateY(30px) scale(.95);filter:blur(2px);transition:all .8s cubic-bezier(.25,.46,.45,.94)}.scroll-reveal-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0px)}.experience-card-wrapper.scroll-reveal-hidden{opacity:0;transform:translateY(50px) scale(.9);filter:blur(3px);transition:all 1s cubic-bezier(.16,1,.3,1)}.experience-card-wrapper.scroll-reveal-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0px)}.contact-card-wrapper.scroll-reveal-hidden{opacity:0;transform:translateY(40px) scale(.97);filter:blur(2px);transition:all .9s cubic-bezier(.25,.46,.45,.94)}.contact-card-wrapper.scroll-reveal-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0px)}@media (max-width: 600px){.scroll-reveal-hidden{transform:translateY(10px) scale(.995);filter:blur(1.2px)}}@media (prefers-reduced-motion: reduce){.scroll-reveal-hidden,.experience-card-wrapper.scroll-reveal-hidden{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}}@keyframes slideInProfessional{0%{opacity:0;transform:translateY(-12px) scale(.98)}60%{opacity:.8;transform:translateY(-2px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideOutFast{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(0) scale(.98)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
