@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap);@import url(https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&display=swap);*,:after,:before{box-sizing:border-box}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:10px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;padding:0}code{font-family:JetBrains Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f1,#ec4899);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#4f46e5,#db2777)}:root{--background:#fff;--text-primary:#111827;--text-secondary:#4b5563;--text-tertiary:#6b7280;--accent:#2563eb;--accent-dark:#1e40af;--border-color:#e5e7eb;--card-background:#f9fafb;--card-border:#f3f4f6;--button-text:#fff;--font-primary:"JetBrains Mono",monospace;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-section:6rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--transition-normal:0.2s ease-in-out;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-full:9999px}.dark-theme{--background:#111827;--text-primary:#f9fafb;--text-secondary:#d1d5db;--text-tertiary:#9ca3af;--accent:#3b82f6;--accent-dark:#60a5fa;--border-color:#374151;--card-background:#1f2937;--card-border:#4b5563;--button-text:#fff}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:#fff;background-color:var(--background);color:#111827;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-family:var(--font-primary);line-height:1.6;overflow-x:hidden;text-transform:lowercase}.App{padding-top:5rem}.section{margin:0 auto;max-width:1000px;opacity:0;padding:6rem 2rem;padding:var(--space-section) var(--space-xl);transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out}.section.visible{opacity:1;transform:translateY(0)}.section-title{color:#111827;color:var(--text-primary);font-size:3.5rem;font-weight:800;margin-bottom:4rem;margin-bottom:var(--space-3xl);text-align:center}.header{align-items:center;display:flex;height:5rem;justify-content:center;left:0;padding:0 2rem;padding:0 var(--space-xl);position:fixed;right:0;top:0;transition:background-color .3s ease,border-bottom .3s ease;z-index:100}.header.scrolled{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#fffc}.dark-theme .header.scrolled,.header.scrolled{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color)}.dark-theme .header.scrolled{background-color:#111827cc}.header-container{justify-content:space-between;max-width:1200px;width:100%}.header-container,.header-nav{align-items:center;display:flex}.header-nav{gap:3rem;gap:var(--space-2xl)}.nav-link{color:#4b5563;color:var(--text-secondary);cursor:pointer;font-size:1.2rem;font-weight:700;text-decoration:none;transition:color .2s ease-in-out;transition:color var(--transition-normal)}.nav-link:hover{color:#111827;color:var(--text-primary)}.theme-toggle-btn{align-items:center;background:#0000;border:none;color:#4b5563;color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;padding:0;transition:color .2s ease-in-out;transition:color var(--transition-normal)}.theme-toggle-btn:hover{color:#111827;color:var(--text-primary)}.header-logo{color:#2563eb;color:var(--accent);font-family:JetBrains Mono,monospace;font-family:var(--font-primary);font-size:1.5rem;font-weight:900;letter-spacing:.05em;margin-right:1.5rem;text-transform:lowercase;transition:color .2s ease-in-out;transition:color var(--transition-normal)}.header-logo:hover{color:#1e40af;color:var(--accent-dark)}.hero{overflow:hidden;padding-bottom:4rem;padding-bottom:var(--space-3xl);padding-top:3rem;padding-top:var(--space-2xl);position:relative;text-align:center}.hero:before{animation:hero-bg-move 8s ease-in-out infinite alternate;background:linear-gradient(120deg,#2563eb,#1e40af);background:linear-gradient(120deg,var(--accent) 0,var(--accent-dark) 100%);border-radius:50%;content:"";height:140%;left:-20%;opacity:.08;position:absolute;top:-20%;width:140%;z-index:0}@keyframes hero-bg-move{0%{transform:scale(1) translateY(0)}to{transform:scale(1.1) translateY(20px)}}.hero-cta-group,.hero-subtitle,.hero-title{position:relative;z-index:1}.hero-title{animation:hero-title-fadein 1.2s cubic-bezier(.4,0,.2,1) both}@keyframes hero-title-fadein{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.hero-subtitle{color:#4b5563;color:var(--text-secondary);font-size:1.75rem;margin:0 auto 3rem;margin:0 auto var(--space-2xl);max-width:800px}.hero-cta-group{display:flex;gap:1rem;gap:var(--space-md);justify-content:center}.button{align-items:center;border:1px solid #0000;border-radius:9999px;border-radius:var(--radius-full);cursor:pointer;display:inline-flex;font-size:1.2rem;font-weight:600;gap:.5rem;gap:var(--space-sm);padding:1rem 2.5rem;text-decoration:none;transition:.2s ease-in-out;transition:var(--transition-normal)}.button-primary{background-color:#2563eb;background-color:var(--accent);border-color:#2563eb;border-color:var(--accent);color:#fff;color:var(--button-text)}.button-primary:hover{background-color:#1e40af;background-color:var(--accent-dark);border-color:#1e40af;border-color:var(--accent-dark);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.button-secondary{background-color:initial;border-color:#e5e7eb;border-color:var(--border-color);color:#111827;color:var(--text-primary)}.button-secondary:hover{background-color:#f9fafb;background-color:var(--card-background);border-color:#6b7280;border-color:var(--text-tertiary);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);transform:translateY(-2px)}.projects-grid{grid-gap:2rem;grid-gap:var(--space-xl);display:grid;gap:2rem;gap:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.project-card{background:#f9fafb;background:var(--card-background);border:1px solid #f3f4f6;border:1px solid var(--card-border);border-radius:.75rem;border-radius:var(--radius-lg);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);cursor:pointer;padding:1.5rem;padding:var(--space-lg);position:relative;transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1)}.project-card:hover{border-color:#2563eb;border-color:var(--accent);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--shadow-lg);transform:translateY(-8px) scale(1.035);z-index:2}.project-modal-overlay{align-items:center;background:#00000073;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.project-modal{animation:modal-pop .3s cubic-bezier(.4,0,.2,1);background:#fff;background:var(--background);border-radius:.75rem;border-radius:var(--radius-lg);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--shadow-lg);max-width:500px;padding:3rem;padding:var(--space-2xl);position:relative;width:90vw}@keyframes modal-pop{0%{opacity:0;transform:scale(.95) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.project-modal-close{background:none;border:none;color:#6b7280;color:var(--text-tertiary);cursor:pointer;font-size:1.5rem;position:absolute;right:1rem;top:1rem;transition:color .2s ease-in-out;transition:color var(--transition-normal)}.project-modal-close:hover{color:#2563eb;color:var(--accent)}.project-card-header{align-items:center;display:flex;gap:1rem;gap:var(--space-md);margin-bottom:1rem;margin-bottom:var(--space-md)}.project-icon{align-items:center;background-color:#f3f4f6;background-color:var(--card-border);border-radius:.5rem;border-radius:var(--radius-md);display:flex;flex-shrink:0;font-size:1.75rem;height:48px;justify-content:center;width:48px}.project-card h3{color:#111827;color:var(--text-primary);font-size:1.75rem;font-weight:700}.project-card p{color:#4b5563;color:var(--text-secondary);flex-grow:1;font-size:1.75rem;line-height:1.7;margin-bottom:.5rem;margin-bottom:var(--space-sm);max-width:800px;text-align:left}.project-tech-list{display:flex;flex-wrap:wrap;gap:.5rem;gap:var(--space-sm);margin-bottom:1.5rem;margin-bottom:var(--space-lg)}.project-tech-tag{background-color:initial;border:1px solid #e5e7eb;border:1px solid var(--border-color);border-radius:9999px;border-radius:var(--radius-full);color:#6b7280;color:var(--text-tertiary);font-size:.9rem;font-weight:500;padding:.25rem .6rem}.project-card-footer{display:flex;gap:1rem;gap:var(--space-md);margin-top:auto}.about-text{color:#4b5563;color:var(--text-secondary);font-size:1.75rem;line-height:1.8;margin:0 auto;max-width:800px;text-align:center}.skills-grid{grid-gap:2rem;grid-gap:var(--space-xl);display:grid;gap:2rem;gap:var(--space-xl);grid-template-columns:repeat(4,1fr);margin-top:3rem;margin-top:var(--space-2xl)}.skill-card{background:#f9fafb;background:var(--card-background);border:1px solid #f3f4f6;border:1px solid var(--card-border);border-radius:.5rem;border-radius:var(--radius-md);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);padding:1.5rem;padding:var(--space-lg);transition:box-shadow .18s cubic-bezier(.4,0,.2,1),border-color .18s cubic-bezier(.4,0,.2,1)}.skill-card:hover{border-color:#2563eb;border-color:var(--accent);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--shadow-lg)}.skill-card-title{color:#111827;color:var(--text-primary);font-size:var(--font-xl);font-weight:600;margin-bottom:1.5rem;margin-bottom:var(--space-lg)}.skill-icons-container{display:flex;flex-wrap:wrap;gap:1.5rem;gap:var(--space-lg)}.skill-icon-wrapper{color:#4b5563;color:var(--text-secondary);display:inline-block;font-size:3rem;position:relative;transition:.2s ease-in-out;transition:var(--transition-normal)}.skill-icon-wrapper:hover{color:#2563eb;color:var(--accent);transform:scale(1.1)}.skill-tooltip{background:#2563eb;background:var(--accent);border-radius:.25rem;border-radius:var(--radius-sm);bottom:120%;color:#fff;color:var(--button-text);font-size:.95rem;left:50%;opacity:0;padding:.25em .7em;pointer-events:none;position:absolute;text-align:center;transform:translateX(-50%);transition:opacity .18s cubic-bezier(.4,0,.2,1);visibility:hidden;white-space:nowrap;z-index:10}.skill-icon-wrapper:focus .skill-tooltip,.skill-icon-wrapper:hover .skill-tooltip{opacity:1;visibility:visible}.education-container,.experience-container{display:flex;flex-direction:column;gap:3rem;gap:var(--space-2xl);margin:0 auto;max-width:800px}.education-item,.experience-item{display:flex;gap:2rem;gap:var(--space-xl);position:relative}.education-icon,.experience-icon{color:#2563eb;color:var(--accent);font-size:1.5rem;margin-top:.25rem}.education-header,.experience-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:.25rem;margin-bottom:var(--space-xs)}.education-degree,.experience-role{color:#111827;color:var(--text-primary);font-size:1.75rem;font-weight:700}.education-period,.experience-period{color:#6b7280;color:var(--text-tertiary);font-size:.9rem;font-weight:500}.education-university,.experience-company{color:#4b5563;color:var(--text-secondary);font-size:1.4rem;font-weight:600;margin-bottom:.5rem;margin-bottom:var(--space-sm)}.experience-description{color:#4b5563;color:var(--text-secondary);font-size:1.75rem}.contact{text-align:center}.contact-subtitle{font-size:1.25rem;margin-bottom:3rem;margin-bottom:var(--space-2xl)}.contact-body,.contact-subtitle{color:#4b5563;color:var(--text-secondary)}.contact-body{font-size:1.75rem;line-height:1.8;margin:0 auto;max-width:700px}.contact-email-link{color:#111827;color:var(--text-primary);text-decoration:underline;text-underline-offset:4px;transition:color .2s ease-in-out;transition:color var(--transition-normal)}.contact-email-link:hover{color:#2563eb;color:var(--accent)}.form-group{margin-bottom:.5rem;margin-bottom:var(--space-sm);position:relative}.contact-input.error,.contact-textarea.error{border-color:#ef4444;box-shadow:0 0 0 1px #ef4444}.error-message{color:#ef4444;display:block;font-size:.875rem;font-weight:500;margin-top:.25rem}.contact-form{background:#f9fafb;background:var(--card-background);border-radius:.5rem;border-radius:var(--radius-md);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.5rem;gap:var(--space-sm);margin:2rem auto 2.5rem;max-width:400px;padding:1.5rem 1rem;padding:var(--space-lg) var(--space-md)}.contact-input,.contact-textarea{background:#fff;background:var(--background);border:1px solid #e5e7eb;border:1px solid var(--border-color);border-radius:.25rem;border-radius:var(--radius-sm);color:#111827;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-family:var(--font-primary);font-size:1rem;outline:none;padding:.7em 1em;resize:none;transition:border-color .2s ease-in-out;transition:border-color var(--transition-normal)}.contact-input:focus,.contact-textarea:focus{border-color:#2563eb;border-color:var(--accent)}.contact-form .button-primary{margin-top:.5rem;width:100%}.contact-links{display:flex;gap:1.5rem;gap:var(--space-lg);justify-content:center;margin-top:2.5rem}.contact-link{color:#4b5563;color:var(--text-secondary);font-size:1.5rem;transition:.2s ease-in-out;transition:var(--transition-normal)}.contact-link:hover{color:#111827;color:var(--text-primary);transform:scale(1.1)}.footer{padding:var(--space-4xl) var(--space-xl)}@media (max-width:768px){.section{padding-left:1.5rem;padding-left:var(--space-lg);padding-right:1.5rem;padding-right:var(--space-lg)}.header-container{gap:0;padding:.5rem;padding:var(--space-sm)}.contact-form{max-width:100%;padding:1rem .25rem;padding:var(--space-md) var(--space-xs)}.contact-links{gap:1rem;gap:var(--space-md)}}.projects{padding-top:var(--space-5xl)}.animated-fadein{animation:hero-fadein 1.6s cubic-bezier(.4,0,.2,1) .3s both}@keyframes hero-fadein{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animated-popin{animation:hero-popin 1.2s cubic-bezier(.4,0,.2,1) .7s both}@keyframes hero-popin{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}
/*# sourceMappingURL=main.ea593c09.css.map*/