:root{--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.333rem;--text-2xl:1.777rem;--text-3xl:2.369rem;--text-4xl:3.157rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--primary-50:#f0f7f7;--primary-100:#dceae8;--primary-200:#badcd8;--primary-300:#8ec8c3;--primary-400:#5eafa9;--primary-500:#3d9690;--primary-600:#2d7471;--primary-700:#235a58;--primary-800:#1c4744;--primary-900:#173736;--neutral-50:#f9fafb;--neutral-100:#f2f4f7;--neutral-200:#e5e8ed;--neutral-300:#d1d6df;--neutral-400:#9ba5b7;--neutral-500:#667085;--neutral-600:#4d5871;--neutral-700:#384259;--neutral-800:#1e2a3b;--neutral-900:#121926;--accent-coral:#ff7a5c;--accent-gold:#f4b942;--accent-blue:#4ea5d9;--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--line-tight:1.2;--line-snug:1.375;--line-normal:1.5;--line-relaxed:1.75;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 2px 6px #10182814;--shadow-lg:0 8px 16px #1018281a;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:1rem;--radius-full:9999px;font-family:var(--font-sans);line-height:var(--line-normal);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--neutral-800);background-color:var(--neutral-50);font-weight:400}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--neutral-100);min-width:320px;min-height:100vh;color:var(--neutral-800);margin:0;padding:0}a{color:var(--primary-600);transition:color var(--transition-fast);font-weight:500;text-decoration:none}a:hover{color:var(--primary-500);text-decoration:underline}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:var(--line-tight);color:var(--neutral-900);margin-top:0}h1{font-size:var(--text-4xl);letter-spacing:-.02em}h2{font-size:var(--text-3xl);letter-spacing:-.01em}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}button{border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-base);background-color:var(--primary-500);color:#fff;cursor:pointer;transition:background-color var(--transition-normal), transform var(--transition-normal), box-shadow var(--transition-normal);border:1px solid #0000;font-family:inherit;font-weight:500}button:hover{background-color:var(--primary-600);box-shadow:var(--shadow-md);transform:translateY(-2px)}button:focus,button:focus-visible{outline:2px solid var(--primary-300);outline-offset:2px}.text-center{text-align:center}.container{width:100%;max-width:1100px;padding:0 var(--space-4);margin:0 auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:.5s forwards fadeIn}.animate-slideUp{animation:.5s forwards slideUp}#root{max-width:1000px;padding:var(--space-8);background-color:var(--neutral-50);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);margin:0 auto}header{margin-bottom:var(--space-12);padding-bottom:var(--space-6);border-bottom:1px solid var(--neutral-200);opacity:0;animation:.6s ease-out forwards fadeIn;position:relative}header img.profile{top:var(--space-2);left:var(--space-2);border-radius:var(--radius-full);border:3px solid var(--primary-200);width:96px;height:96px;box-shadow:var(--shadow-md);transition:transform var(--transition-normal), box-shadow var(--transition-normal);position:absolute}header img.profile:hover{box-shadow:var(--shadow-lg);transform:scale(1.05)}header h1{margin:var(--space-2) 0;color:var(--neutral-900);padding-left:120px;font-weight:700}header p{font-size:var(--text-lg);color:var(--neutral-600);margin-top:var(--space-1);padding-left:120px}main{text-align:left;opacity:0;animation:.8s ease-out .2s forwards slideUp}main section{margin-bottom:var(--space-12);padding:var(--space-6);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal), box-shadow var(--transition-normal);background-color:#fff}main section:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}main section h2{font-size:var(--text-2xl);margin-bottom:var(--space-4);color:var(--primary-700);padding-bottom:var(--space-2);border-bottom:2px solid var(--primary-200);position:relative}main section p{font-size:var(--text-base);line-height:var(--line-relaxed);color:var(--neutral-700);max-width:65ch}main section#quick-links{background-color:var(--primary-50)}main ul{gap:var(--space-6);margin-top:var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}main ul li{position:relative}main ul li a{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);font-weight:500;font-size:var(--text-base);color:var(--primary-600);transition:all var(--transition-normal);background-color:#fff;align-items:center;text-decoration:none;display:inline-flex}main ul li a:hover{color:var(--primary-500);background-color:var(--primary-100);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}main section#about{border-left:4px solid var(--primary-400)}footer{margin-top:var(--space-8);padding:var(--space-4) 0;background-color:var(--neutral-800);background:linear-gradient(to right, var(--primary-800), var(--neutral-800));color:#fff;text-align:center;border-radius:0 0 var(--radius-lg) var(--radius-lg);opacity:0;animation:.6s ease-out .8s forwards fadeIn}footer p{font-size:var(--text-sm);margin:0}@media (width<=768px){#root{padding:var(--space-4)}header{text-align:center;padding-top:110px}header img.profile{margin:0 auto var(--space-4);display:block;position:static}header h1,header p{padding-left:0}main ul{justify-content:center}}@media (width<=480px){main section{padding:var(--space-4)}main ul{align-items:stretch;gap:var(--space-3);flex-direction:column}main ul li a{text-align:center;display:block}}.resume-page{max-width:900px;padding:var(--space-8);color:var(--neutral-800);line-height:var(--line-normal);background-color:var(--neutral-50);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);opacity:0;margin:0 auto;animation:.6s ease-out forwards fadeIn}.resume-page ul{margin-block:1em;margin-inline:0;padding-inline-start:40px;list-style-type:disc;display:block}.resume-page li{text-align:-webkit-match-parent;display:list-item}.resume-page header{margin-bottom:var(--space-8);border-bottom:2px solid var(--primary-200);padding-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex;position:relative}.resume-page header:after{content:"";background-color:var(--primary-500);width:100px;height:2px;position:absolute;bottom:-2px;left:0}.name-section{flex:1;align-items:center;display:flex}.nav-section{align-items:center;gap:var(--space-6);display:flex}.resume-page h1{font-size:var(--text-3xl);color:var(--neutral-900);text-align:left;letter-spacing:-.02em;margin:0;font-weight:700}.subtle-download{align-items:center;gap:var(--space-2);color:var(--primary-600);font-size:var(--text-sm);transition:all var(--transition-normal);background:var(--primary-50);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-sm);border:none;font-family:inherit;font-weight:500;text-decoration:none;display:inline-flex}.subtle-download:hover{color:var(--primary-500);background-color:var(--primary-100);box-shadow:var(--shadow-md);transform:translateY(-2px)}.download-icon{font-size:var(--text-sm)}.download-text{font-weight:500}.back-link{color:var(--neutral-600);font-size:var(--text-sm);transition:all var(--transition-normal);background-color:var(--neutral-100);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);text-decoration:none}.resume-page h2{color:var(--primary-700);margin:var(--space-6) 0 var(--space-4);border-bottom:1px solid var(--neutral-200);padding-bottom:var(--space-2);font-size:var(--text-2xl);letter-spacing:-.01em}.resume-page h3{margin:var(--space-4) 0 var(--space-2);color:var(--neutral-900);font-size:var(--text-xl)}.resume-summary{padding:var(--space-6);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:var(--space-8);border-left:4px solid var(--primary-400);opacity:0;background-color:#fff;animation:.6s ease-out .2s forwards slideUp}.resume-summary p{color:var(--neutral-700);line-height:var(--line-relaxed);max-width:65ch}.resume-section{margin-bottom:var(--space-8);padding:var(--space-6);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);opacity:0;background-color:#fff;animation:.6s ease-out .4s forwards slideUp}.experience-item{margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--neutral-200);transition:transform var(--transition-normal)}.experience-item:hover{transform:translateY(-2px)}.experience-item h3{font-size:var(--text-xl);margin-bottom:var(--space-1);color:var(--neutral-900);font-weight:600}.experience-item:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.company,.institution{margin:var(--space-1) 0;color:var(--neutral-600);font-style:italic;font-size:var(--text-base);background-color:var(--primary-50);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);display:inline-block}.degree-detail{margin:var(--space-1) 0;color:var(--neutral-800);font-weight:500;font-size:var(--text-base)}.location{margin:var(--space-1) 0;color:var(--neutral-600);font-size:var(--text-sm)}.year{color:var(--neutral-500);margin-top:0;margin-bottom:var(--space-3);font-size:var(--text-sm)}.competencies-container{gap:var(--space-6);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.competencies-list{min-width:250px;padding-left:var(--space-6);flex:1;margin:0;list-style-position:outside}.competencies-list li{margin-bottom:var(--space-3);line-height:var(--line-normal);text-align:left;color:var(--neutral-700);padding-left:var(--space-2);list-style-type:disc;display:list-item;position:relative}.competencies-list li::marker{color:var(--primary-500)}.experience-list{padding-left:var(--space-6)!important;margin-top:var(--space-2)!important;width:100%!important;list-style-type:disc!important;display:block!important}.experience-list li{color:var(--neutral-700);margin-bottom:var(--space-3)!important;line-height:var(--line-relaxed)!important;text-align:left!important;float:none!important;clear:both!important;width:100%!important;display:list-item!important;position:relative!important}.experience-list li::marker{color:var(--primary-500)}@media (width<=768px){.resume-page{padding:var(--space-4)}.resume-page header{flex-direction:column;align-items:flex-start}.name-section{margin-bottom:var(--space-3);width:100%}.nav-section{justify-content:flex-start;gap:var(--space-3);width:100%;margin-top:var(--space-2)}.resume-section,.resume-summary{padding:var(--space-4)}}@media (width<=480px){.resume-page h1{font-size:var(--text-2xl)}.resume-page h2{font-size:var(--text-xl)}.nav-section{align-items:flex-start;gap:var(--space-2);flex-direction:column}.nav-section>*{text-align:center;width:100%}.competencies-container{gap:var(--space-2);flex-direction:column}.competencies-list{width:100%}}.blog-index{max-width:900px;padding:var(--space-8);background-color:var(--neutral-50);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);opacity:0;margin:0 auto;animation:.6s ease-out forwards fadeIn}.blog-index header{margin-bottom:var(--space-8);padding-bottom:var(--space-4);border-bottom:2px solid var(--primary-200);justify-content:space-between;align-items:center;display:flex;position:relative}.blog-index header:after{content:"";background-color:var(--primary-500);width:100px;height:2px;position:absolute;bottom:-2px;left:0}.blog-index h1{font-size:var(--text-4xl);color:var(--neutral-900);margin:0;font-weight:600}.back-link:hover{color:var(--primary-500);background-color:var(--primary-50);box-shadow:var(--shadow-md);transform:translateY(-2px)}.posts-list{gap:var(--space-8);flex-direction:column;display:flex}.post-preview{padding:var(--space-6);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal), box-shadow var(--transition-normal);border-left:4px solid var(--primary-400);background-color:#fff}.post-preview:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.post-preview h2{margin:0 0 var(--space-2) 0;font-size:var(--text-2xl);line-height:var(--line-tight)}.post-preview h2 a{color:var(--neutral-900);transition:color var(--transition-normal);text-decoration:none}.post-preview h2 a:hover{color:var(--primary-600)}.post-date{font-size:var(--text-sm);color:var(--neutral-500);margin-bottom:var(--space-4);font-weight:500;display:block}.post-excerpt{color:var(--neutral-700);line-height:var(--line-relaxed);margin:var(--space-4) 0;max-width:65ch}.read-more{color:var(--primary-600);transition:color var(--transition-normal);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background-color:var(--primary-50);align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.read-more:hover{color:var(--primary-500);background-color:var(--primary-100);text-decoration:none}@media (width<=768px){.blog-index{padding:var(--space-4)}.blog-index header{align-items:flex-start;gap:var(--space-4);flex-direction:column}.blog-index h1{font-size:var(--text-3xl)}.post-preview h2{font-size:var(--text-xl)}.post-preview{padding:var(--space-4)}}.not-found{max-width:900px;padding:var(--space-8);background-color:var(--neutral-50);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);opacity:0;margin:0 auto;animation:.6s ease-out forwards fadeIn}.not-found header{margin-bottom:var(--space-8);padding-bottom:var(--space-4);border-bottom:2px solid var(--primary-200);justify-content:space-between;align-items:center;display:flex}.not-found h1{font-size:var(--text-4xl);color:var(--neutral-900);margin:0;font-weight:600}.not-found main{padding:var(--space-6);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background-color:#fff}.not-found main p{color:var(--neutral-600);margin-bottom:var(--space-6)}.not-found-links{gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.not-found-links a{color:var(--primary-700);font-weight:500;text-decoration:none}.not-found-links a:hover{color:var(--primary-500);text-decoration:underline}.blog-post{max-width:900px;padding:var(--space-8);background-color:var(--neutral-50);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);opacity:0;margin:0 auto;animation:.6s ease-out forwards fadeIn}.blog-post header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.blog-post article{padding:var(--space-8);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);background-color:#fff}.blog-post h1{font-size:var(--text-4xl);color:var(--neutral-900);margin:0 0 var(--space-2) 0;line-height:var(--line-tight);font-weight:600}.post-date{font-size:var(--text-sm);color:var(--neutral-500);margin-bottom:var(--space-8);padding-bottom:var(--space-4);border-bottom:2px solid var(--primary-200);font-weight:500;display:block}.back-link,.home-link,.back-link-footer{color:var(--primary-600);transition:all var(--transition-normal);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background-color:#fff;font-weight:500;text-decoration:none;display:inline-block}.back-link:hover,.home-link:hover,.back-link-footer:hover{color:var(--primary-500);background-color:var(--primary-50);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.post-content{line-height:var(--line-relaxed);color:var(--neutral-800);max-width:65ch}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{margin-top:var(--space-8);margin-bottom:var(--space-4);color:var(--neutral-900);font-weight:600;line-height:var(--line-tight)}.post-content h1{font-size:var(--text-3xl)}.post-content h2{font-size:var(--text-2xl);padding-bottom:var(--space-2);border-bottom:2px solid var(--primary-200)}.post-content h3{font-size:var(--text-xl)}.post-content h4{font-size:var(--text-lg)}.post-content p{margin:var(--space-4) 0;line-height:var(--line-relaxed)}.post-content a{color:var(--primary-600);transition:color var(--transition-normal);border-bottom:1px solid var(--primary-200);text-decoration:none}.post-content a:hover{color:var(--primary-500);border-bottom-color:var(--primary-500)}.post-content ul,.post-content ol{margin:var(--space-4) 0;padding-left:var(--space-8)}.post-content li{margin:var(--space-2) 0;line-height:var(--line-relaxed)}.post-content blockquote{margin:var(--space-6) 0;padding:var(--space-4) var(--space-6);border-left:4px solid var(--primary-400);background-color:var(--primary-50);border-radius:var(--radius-md);font-style:italic}.post-content code{background-color:var(--neutral-100);color:var(--neutral-800);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-family:Courier New,Monaco,monospace;font-size:var(--text-sm)}.post-content pre{background-color:var(--neutral-800);color:var(--neutral-100);padding:var(--space-6);border-radius:var(--radius-md);margin:var(--space-6) 0;overflow-x:auto}.post-content pre code{color:inherit;background-color:#0000;padding:0}.post-content hr{border:none;border-top:2px solid var(--neutral-200);margin:var(--space-8) 0}.post-content img{max-width:100%;height:auto;margin:var(--space-6) 0;border-radius:var(--radius-md);box-shadow:var(--shadow-md)}@media (width<=768px){.blog-post,.blog-post article{padding:var(--space-4)}.blog-post h1{font-size:var(--text-3xl)}.post-content{max-width:100%}.post-content h1{font-size:var(--text-2xl)}.post-content h2{font-size:var(--text-xl)}.post-content h3{font-size:var(--text-lg)}}.contact-page{max-width:900px;padding:var(--space-8);background-color:var(--neutral-50);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);opacity:0;margin:0 auto;animation:.6s ease-out forwards fadeIn}.contact-page header{margin-bottom:var(--space-8);padding-bottom:var(--space-4);border-bottom:2px solid var(--primary-200);justify-content:space-between;align-items:center;display:flex;position:relative}.contact-page header:after{content:"";background-color:var(--primary-500);width:100px;height:2px;position:absolute;bottom:-2px;left:0}.contact-page h1{font-size:var(--text-4xl);color:var(--neutral-900);margin:0;font-weight:600}.back-link{color:var(--primary-600);transition:all var(--transition-normal);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background-color:#fff;font-weight:500;text-decoration:none}.back-link:hover{color:var(--primary-500);background-color:var(--primary-50);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.contact-intro{margin-bottom:var(--space-8);padding:var(--space-6);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border-left:4px solid var(--primary-400);background-color:#fff}.contact-intro p{font-size:var(--text-lg);color:var(--neutral-700);line-height:var(--line-relaxed);max-width:65ch;margin:0}.contact-form{padding:var(--space-8);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background-color:#fff}.form-group{margin-bottom:var(--space-6)}.form-group label{margin-bottom:var(--space-2);color:var(--neutral-800);font-weight:500;font-size:var(--text-base);display:block}.required{color:var(--accent-coral)}.form-group input,.form-group textarea{width:100%;padding:var(--space-3);border:2px solid var(--neutral-300);border-radius:var(--radius-md);font-size:var(--text-base);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);background-color:var(--neutral-50);font-family:inherit}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);background-color:#fff;outline:none}.form-group input.error,.form-group textarea.error{border-color:var(--accent-coral)}.error-message{margin-top:var(--space-2);color:var(--accent-coral);font-size:var(--text-sm);font-weight:500;display:block}.form-error{padding:var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--accent-coral);border-radius:var(--radius-md);color:var(--accent-coral);background-color:#fee;font-weight:500}.submit-button{background-color:var(--primary-500);color:#fff;padding:var(--space-3) var(--space-8);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-sm);border:none;font-weight:500}.submit-button:hover{background-color:var(--primary-600);box-shadow:var(--shadow-md);transform:translateY(-2px)}.submit-button:active{transform:translateY(0)}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.success-message{text-align:center;padding:var(--space-12);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-top:var(--space-8);border:2px solid var(--primary-200);background-color:#fff}.success-message h2{color:var(--primary-600);margin-bottom:var(--space-4);font-size:var(--text-3xl)}.success-message p{color:var(--neutral-700);font-size:var(--text-lg);margin-bottom:var(--space-8);line-height:var(--line-relaxed)}.btn-home{background-color:var(--primary-500);color:#fff;padding:var(--space-3) var(--space-8);border-radius:var(--radius-md);transition:all var(--transition-normal);box-shadow:var(--shadow-sm);font-weight:500;text-decoration:none;display:inline-block}.btn-home:hover{background-color:var(--primary-600);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}@media (width<=768px){.contact-page{padding:var(--space-4)}.contact-page header{align-items:flex-start;gap:var(--space-4);flex-direction:column}.contact-page h1{font-size:var(--text-3xl)}.contact-form{padding:var(--space-6)}.contact-intro{padding:var(--space-4)}}
