:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}html,body,#root,.app-root{min-height:100vh;margin:0;padding:0;box-sizing:border-box;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;background:var(--bg-main);background-attachment:fixed;color:var(--text-main);transition:background .3s,color .3s}:root{--bg-main: linear-gradient(135deg, #fff 0%, #b3e0ff 100%);--bg-section: #fff;--text-main: #1a1a1a;--accent: #646cff;--navbar-bg: rgba(255,255,255,.85);--navbar-blur: 12px;--card-bg: #fff;--shadow: 0 2px 16px 0 rgba(40,40,80,.08)}[data-theme=dark]{--bg-main: linear-gradient(135deg, #12002b 0%, #000 100%);--bg-section: #23262f;--text-main: #f7f7fa;--accent: #8ab4f8;--navbar-bg: rgba(24,26,32,.85);--navbar-blur: 16px;--card-bg: #23262f;--shadow: 0 2px 16px 0 rgba(0,0,0,.25)}.app-root{position:relative;z-index:0;min-height:100vh;display:flex;flex-direction:column}main{flex:1 1 auto;display:flex;flex-direction:column;gap:3rem;padding:2rem 0 3rem}.navbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;background:var(--navbar-bg);-webkit-backdrop-filter:blur(var(--navbar-blur));backdrop-filter:blur(var(--navbar-blur));box-shadow:var(--shadow);padding:.5rem 2rem;border-radius:0 0 1.5rem 1.5rem;margin-bottom:1.5rem}.navbar ul{display:flex;gap:2rem;list-style:none;margin:0;padding:0}.navbar a{color:var(--text-main);font-weight:500;font-size:1.1rem;letter-spacing:.01em;transition:color .2s}.navbar a:hover{color:var(--accent)}.theme-toggle{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--accent);margin-left:1.5rem;transition:color .2s}section{background:var(--bg-section);box-shadow:var(--shadow);border-radius:1.25rem;padding:2.5rem 1.5rem;margin:0 auto;max-width:900px;width:100%}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a1428b3;z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}.modal-content{background:#1e283cf2;border-radius:1.2rem;box-shadow:0 8px 32px #1f26875e;padding:2.5rem 2rem 2rem;min-width:320px;max-width:95vw;max-height:90vh;overflow-y:auto;position:relative;border:1.5px solid rgba(255,255,255,.18);animation:modalPop .25s cubic-bezier(.4,2,.6,1) both}.modal-close{position:absolute;top:1rem;right:1.2rem;background:none;border:none;font-size:2rem;color:#fff;cursor:pointer;opacity:.7;transition:opacity .2s}.modal-close:hover{opacity:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPop{0%{transform:scale(.95) translateY(30px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.projects-section{background:none!important;max-width:900px;margin:4rem auto;padding:2.5rem 2rem}.projects-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:2.2rem;margin-top:2.5rem}.project-card.fancy-card{background:#ffffffd9;border-radius:1.2rem;border:2.5px solid;box-shadow:0 4px 32px #1f26871a;padding:2.2rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1.1rem;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;position:relative;color:inherit}.project-card.fancy-card:hover,.project-card.fancy-card:focus{background:#e3f1ffeb;transform:translateY(-6px) scale(1.03);box-shadow:0 8px 48px #1f26872e;border-color:#1976d2;outline:none}.project-card .project-date{font-size:.85em;color:var(--text-secondary, #555);margin-bottom:.75em;margin-top:-.5em;text-align:left}.project-header{display:flex;align-items:center;gap:1.2em}.project-logo{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:.5em;box-shadow:0 2px 8px #0000001a}.project-short{margin:.7em 0 .5em;font-size:1.08em}.project-links{margin-bottom:.5em}.project-links a{color:#1976d2;margin-right:1.2em;text-decoration:underline;font-weight:500}.project-skills{margin-top:.5em}.project-desc{margin-top:.7em;font-size:1.05em;color:#222b3a}@media (prefers-color-scheme: dark){.project-card.fancy-card{background:#232b3aeb!important;color:#e3eaf7;box-shadow:0 4px 32px #1f26872e}.project-card.fancy-card:hover,.project-card.fancy-card:focus{background:#22304afa!important;border-color:#fff}.project-desc{color:#e3eaf7}}.skills-section{background:none!important;max-width:900px;margin:4rem auto;padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100vh}.skills-list{display:grid;grid-template-columns:repeat(4,1fr);gap:2.2rem;margin-top:2.5rem}.skill-item.fancy-card{background:#ffffffd9;border-radius:1.2rem;border:2.5px solid;box-shadow:0 4px 32px #1f26871a;padding:2.2rem 1.5rem 1.5rem;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;position:relative;color:inherit}.skill-item.fancy-card:hover,.skill-item.fancy-card:focus{background:#e3f1ffeb;transform:translateY(-6px) scale(1.03);box-shadow:0 8px 48px #1f26872e;border-color:#1976d2;outline:none}.skill-desc{color:#222b3a}@media (prefers-color-scheme: dark){.skill-item.fancy-card{background:#232b3aeb!important;color:#e3eaf7;box-shadow:0 4px 32px #1f26872e}.skill-item.fancy-card:hover,.skill-item.fancy-card:focus{background:#22304afa!important;border-color:#fff}.skill-desc{color:#e3eaf7}}.skill-logo-wrap{background:#fff;border-radius:50%;width:64px;height:64px;display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;box-shadow:0 2px 12px #0000001a}.skill-logo{width:44px;height:44px;object-fit:contain}.skill-info{text-align:center}.skill-category{font-size:.95em;color:#1976d2;margin-top:.5em}.modal-skill-header{display:flex;align-items:center;gap:1.2rem}.modal-skill-logo{width:48px;height:48px;border-radius:.5em;background:#fff;object-fit:contain;box-shadow:0 2px 8px #0000001a}.modal-skill-category{font-size:.95em;color:#aaa}.modal-skill-used-in ul{margin:.5em 0 0 1em;padding:0}.modal-skill-used-in li{margin-bottom:.2em}.skills-category{margin-bottom:3rem}.skills-category-title{font-size:1.5rem;margin-bottom:1.2rem;position:relative;display:inline-block}.skills-category-title:after{content:"";position:absolute;width:100%;height:2px;bottom:-4px;left:0;background:linear-gradient(to right,transparent,#0070f3,transparent)}.skills-category-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.2rem}.about-section{max-width:900px;margin:4rem auto;padding:2.5rem 2rem;background:none;border-radius:1.5rem;color:var(--text-color);box-shadow:none}.about-intro{margin-bottom:2.5rem;font-size:1.15em}.about-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem}.about-card.fancy-card{background:#ffffffd9;border-radius:1.2rem;border:2.5px solid;box-shadow:0 4px 32px #1f26871a;padding:2.2rem 1.5rem 1.5rem;display:flex;flex-direction:row;align-items:center;gap:1.2rem;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;position:relative}.about-card.fancy-card:hover,.about-card.fancy-card:focus{background:#e3f1ffeb;transform:translateY(-6px) scale(1.03);box-shadow:0 8px 48px #1f26872e;border-color:#1976d2;outline:none}.about-card-icon{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:.5em;box-shadow:0 2px 8px #0000001a}.about-card h3{margin:0 0 .5em;color:#1976d2}.about-card p{margin:0;color:#222b3a}.about-link{color:#1976d2;text-decoration:underline;font-weight:500;transition:color .15s;word-break:break-all}.about-link:hover,.about-link:focus{color:#0d47a1;text-decoration:underline wavy}@media (prefers-color-scheme: dark){.about-card.fancy-card{background:#232b3aeb!important;color:#e3eaf7;box-shadow:0 4px 32px #1f26872e}.about-card.fancy-card:hover,.about-card.fancy-card:focus{background:#22304afa!important;border-color:#fff}.about-card h3{color:#61dafb}.about-card p{color:#e3eaf7}}.experience-section{background:none!important;max-width:900px;margin:4rem auto;padding:2.5rem 2rem}.experience-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:2.2rem;margin-top:2.5rem}.experience-item.fancy-card{background:#ffffffd9;border-radius:1.2rem;border:2.5px solid;box-shadow:0 4px 32px #1f26871a;padding:2.2rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1.1rem;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;position:relative}.experience-item.fancy-card:hover,.experience-item.fancy-card:focus{background:#e3f1ffeb;transform:translateY(-6px) scale(1.03);box-shadow:0 8px 48px #1f26872e;border-color:#1976d2;outline:none}.experience-header{font-size:1.25em;font-family:Orbitron,Montserrat,sans-serif;letter-spacing:.01em}.experience-period-location{display:flex;gap:1.2em;color:#1976d2;font-size:1em}.experience-description{margin:.7em 0 .5em;font-size:1.08em;color:#222b3a}.experience-skills{margin-top:.5em}@media (prefers-color-scheme: dark){.experience-item.fancy-card{background:#232b3aeb!important;color:#e3eaf7;box-shadow:0 4px 32px #1f26872e}.experience-item.fancy-card:hover,.experience-item.fancy-card:focus{background:#22304afa!important;border-color:#fff}.experience-description{color:#e3eaf7}}.education-section{background:none!important;max-width:900px;margin:4rem auto;padding:2.5rem 2rem}.education-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:2.2rem;margin-top:2.5rem}.education-item.fancy-card{background:#ffffffd9;border-radius:1.2rem;border:2.5px solid #1976d2;box-shadow:0 4px 32px #1f26871a;padding:2.2rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1.1rem;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;position:relative}.education-item.fancy-card:hover,.education-item.fancy-card:focus{background:#e3f1ffeb;transform:translateY(-6px) scale(1.03);box-shadow:0 8px 48px #1f26872e;border-color:#1976d2;outline:none}.education-header{display:flex;align-items:center;gap:1.2em}.education-logo{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:.5em;box-shadow:0 2px 8px #0000001a}.education-degree{font-weight:700;font-size:1.1em}.education-organization{display:block;color:#1976d2;font-size:1.05em}.education-period-location{margin:.7em 0 .5em;font-size:1.08em;display:flex;justify-content:space-between}.education-subjects{margin-top:.7em;font-size:1.05em;color:#222b3a}@media (prefers-color-scheme: dark){.education-item.fancy-card{background:#232b3aeb!important;color:#e3eaf7;box-shadow:0 4px 32px #1f26872e}.education-item.fancy-card:hover,.education-item.fancy-card:focus{background:#22304afa!important;border-color:#fff}.education-subjects{color:#e3eaf7}}.skip-link{position:absolute;left:-999px;top:8px;background:#1976d2;color:#fff;padding:.7em 1.2em;border-radius:.7em;z-index:2000;font-weight:700;font-size:1.1em;transition:left .2s}.skip-link:focus{left:16px;outline:3px solid #fff}@media (max-width: 900px){main{gap:2rem;padding:1rem 0 2rem}.navbar{padding:.5rem 1rem}section{padding:1.5rem .5rem}}@media (max-width: 600px){.navbar ul{gap:.5rem}section{padding:.7rem 0!important;max-width:100vw;border-radius:.7em;overflow-x:visible;box-sizing:border-box;margin-inline:0!important;padding-inline:0!important}h1{font-size:1.5em}h2{font-size:1.2em;margin-top:1.7em!important}h3{font-size:1em}.card,.fancy-card,.experience-item,.education-item,.skills-list,.skills-category-list{padding:.7em 0!important;font-size:.95em!important;border-radius:.7em!important;margin:.5em 0!important;gap:.7em!important;width:100vw!important;max-width:100vw!important;overflow-x:visible!important;box-sizing:border-box!important;margin-inline:0!important;padding-inline:0!important}.skills-list,.skills-category-list{grid-template-columns:1fr!important;gap:1em!important}.theme-toggle,.lang-toggle{font-size:1em!important;width:2.2em!important;height:2.2em!important}.navbar{min-height:56px!important;padding:.3rem .1rem!important}html,body,#root,.app-root{overflow-x:hidden!important;max-width:100vw!important;padding:0!important}#hero,#projects,#skills,#experience,#education{scroll-margin-top:90px!important}}#hero,#projects,#skills,#experience,#education{scroll-margin-top:80px}h1,h2,h3{font-weight:700;margin-bottom:.5em}section{opacity:0;transform:translateY(40px);animation:fadeInUp .8s cubic-bezier(.4,1.4,.6,1) forwards}@keyframes fadeInUp{to{opacity:1;transform:none}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.skill-tag{display:inline-flex;align-items:center;gap:.4em;border:1.5px solid;border-radius:1em;padding:.18em .6em .18em .35em;margin:0 .25em .25em 0;font-size:.97em;background:#e3f2fd;color:#0d223a;cursor:pointer;transition:background .15s,box-shadow .15s,color .15s;box-shadow:0 1px 6px #00000014}.skill-tag-logo{width:1em;height:1em;object-fit:contain;background:#fff;border-radius:50%;box-shadow:0 1px 4px #0000001a;margin-right:.3em}.skill-tag:hover,.skill-tag:focus{background:#1976d2;color:#fff;box-shadow:0 2px 12px #00000021;outline:none}@media (prefers-color-scheme: dark){.skill-tag{background:#22304a!important;color:#fff}.skill-tag:hover,.skill-tag:focus{background:#1976d2!important;color:#fff!important}}
