@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;font-weight:400;color-scheme:dark;color:#e8edf2;background-color:#0a0e14;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}#root{min-height:100vh;width:100%}button{font-family:inherit;font-size:inherit;line-height:inherit;margin:0;padding:0;border:none;background:none;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #7fb8d4;outline-offset:2px;border-radius:4px}*{scroll-behavior:smooth}:root{--bg: #0a0e14;--surface: rgba(255, 255, 255, .04);--surface-strong: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--text: #e8edf2;--text-muted: #9aa3ad;--text-dim: #6b7480;--accent: #7fb8d4;--accent-strong: #a8d0e6;--max-width: 1080px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}html,body{background:var(--bg)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;color:var(--text);overflow-x:hidden}.app{position:relative;min-height:100vh;isolation:isolate}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.bg-image,.bg-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.bg-image{background:url(/hero-bg.jpg) center/cover no-repeat;filter:saturate(.9) brightness(.78)}.bg-overlay{background:radial-gradient(ellipse at top,#0a0e1440,#0a0e148c,#0a0e14eb),linear-gradient(180deg,#0a0e1459,#0a0e14b3)}.header{position:fixed;top:0;left:0;right:0;z-index:100;padding:1rem 0;background:#0a0e148c;backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);border-bottom:1px solid rgba(255,255,255,.06)}.header .container{display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.1rem;font-weight:700;letter-spacing:.04em;color:var(--accent);text-decoration:none}.nav{display:flex;gap:.25rem}.nav-link{background:transparent;border:none;color:var(--text-muted);font-size:.875rem;font-weight:500;cursor:pointer;padding:.5rem .85rem;border-radius:6px;text-transform:lowercase;letter-spacing:.02em;transition:color .2s ease,background .2s ease}.nav-link:hover{color:var(--text);background:#ffffff0a}.nav-link.active{color:var(--accent);background:#7fb8d41a}.hero{height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;padding:5rem 0 1.5rem;position:relative;overflow:hidden}.hero-inner{text-align:center;max-width:760px}.hero-eyebrow{font-size:.8rem;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem;opacity:0;animation:fadeIn .7s ease .1s forwards}.hero-title{font-size:clamp(2.25rem,5.5vw,4rem);font-weight:600;line-height:1.1;letter-spacing:-.025em;color:var(--text);margin-bottom:.75rem;opacity:0;animation:fadeIn .8s ease .15s forwards}.hero-subtitle{font-size:clamp(1.15rem,2.2vw,1.5rem);font-weight:400;color:var(--accent-strong);margin-bottom:1rem;min-height:2rem;display:flex;align-items:center;justify-content:center;gap:2px;opacity:0;animation:fadeIn .8s ease .3s forwards}.typing-text{font-weight:500}.caret{display:inline-block;width:2px;height:1.2em;background:var(--accent);animation:blink 1.1s steps(2,start) infinite}@keyframes blink{0%,to{opacity:0}50%{opacity:1}}.hero-description{font-size:1rem;color:var(--text-muted);max-width:540px;margin:0 auto 1.5rem;line-height:1.6;opacity:0;animation:fadeIn .8s ease .45s forwards}.hero-actions{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;margin-bottom:2rem;opacity:0;animation:fadeIn .8s ease .6s forwards}.icon-link{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border-strong);border-radius:50%;color:var(--text);text-decoration:none;transition:all .2s ease}.icon-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.text-link{color:var(--text);text-decoration:none;font-size:.95rem;font-weight:500;padding:.5rem .25rem;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.text-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.hero-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;opacity:0;animation:fadeIn .9s ease .75s forwards}.tab-chip{background:#ffffff0f;border:1px solid var(--border-strong);color:var(--text);padding:.55rem 1.1rem;border-radius:999px;font-size:.9rem;font-weight:500;cursor:pointer;text-transform:lowercase;letter-spacing:.01em;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:all .2s ease}.tab-chip:hover{background:#7fb8d41f;border-color:var(--accent);color:var(--accent-strong);transform:translateY(-1px)}.tab-chip.active{background:var(--accent);border-color:var(--accent);color:#0a0e14}.panel{min-height:100vh;background:#0a0e14d1;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:7rem 0 5rem;animation:panelIn .35s ease both}@keyframes panelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem}.panel-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:600;letter-spacing:-.02em;text-transform:lowercase;color:var(--text)}.panel-title:before{content:"/ ";color:var(--accent);font-weight:400}.panel-close{background:transparent;border:1px solid var(--border-strong);color:var(--text-muted);padding:.45rem .95rem;border-radius:999px;cursor:pointer;font-size:.85rem;font-family:inherit;display:inline-flex;align-items:center;gap:.4rem;transition:all .2s ease}.panel-close:hover{color:var(--accent);border-color:var(--accent)}.timeline{position:relative;max-width:760px;margin:0 auto}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:var(--border-strong)}.timeline-item{position:relative;margin-bottom:2rem;padding-left:2.5rem}.timeline-item:last-child{margin-bottom:0}.timeline-marker{position:absolute;left:0;top:8px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2px solid var(--text-dim)}.timeline-marker.current{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px #7fb8d426}.timeline-content{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem 1.75rem;transition:border-color .2s ease,background .2s ease}.timeline-content:hover{border-color:var(--border-strong);background:var(--surface-strong)}.timeline-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem 1rem;margin-bottom:.25rem}.timeline-header h3{font-size:1.15rem;font-weight:600;color:var(--text)}.timeline-company{color:var(--accent);font-size:.9rem;font-weight:500}.timeline-date{color:var(--text-dim);font-size:.85rem;margin-left:auto;font-variant-numeric:tabular-nums}.timeline-location{color:var(--text-dim);font-size:.85rem;margin-bottom:1rem}.timeline-achievements{list-style:none;padding:0}.timeline-achievements li{position:relative;padding-left:1.25rem;margin-bottom:.6rem;color:var(--text-muted);font-size:.95rem;line-height:1.6}.timeline-achievements li:last-child{margin-bottom:0}.timeline-achievements li:before{content:"";position:absolute;left:0;top:.7rem;width:5px;height:1px;background:var(--accent)}.publications-list{display:flex;flex-direction:column;gap:1.5rem;max-width:800px;margin:0 auto}.publication-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.75rem;transition:border-color .2s ease,background .2s ease}.publication-card:hover{border-color:var(--border-strong);background:var(--surface-strong)}.publication-title{font-size:1.1rem;font-weight:600;color:var(--text);margin-bottom:.5rem;line-height:1.4}.publication-authors{font-size:.875rem;color:var(--text-muted);margin-bottom:.25rem}.publication-journal{font-size:.9rem;color:var(--accent);font-weight:500;margin-bottom:.25rem}.publication-date{font-size:.8rem;color:var(--text-dim);margin-bottom:1rem;font-variant-numeric:tabular-nums}.publication-description{font-size:.95rem;color:var(--text-muted);line-height:1.65;margin-bottom:1rem}.publication-link{display:inline-block;color:var(--accent);text-decoration:none;font-size:.9rem;font-weight:500;border-bottom:1px solid transparent;transition:border-color .2s ease}.publication-link:hover{border-bottom-color:var(--accent)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.project-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.75rem;transition:border-color .2s ease,background .2s ease,transform .2s ease}.project-card:hover{border-color:var(--border-strong);background:var(--surface-strong);transform:translateY(-2px)}.project-featured{border-color:#7fb8d459}.project-title{font-size:1.1rem;font-weight:600;color:var(--text);margin-bottom:.75rem}.project-description{color:var(--text-muted);font-size:.95rem;line-height:1.65;margin-bottom:1.25rem;flex-grow:1}.project-technologies{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}.tech-tag{background:#7fb8d414;color:var(--accent-strong);padding:.2rem .65rem;border-radius:999px;font-size:.78rem;font-weight:500;border:1px solid rgba(127,184,212,.15)}.project-link{color:var(--accent);text-decoration:none;font-size:.9rem;font-weight:500;border-bottom:1px solid transparent;align-self:flex-start;transition:border-color .2s ease}.project-link:hover{border-bottom-color:var(--accent)}.project-note{color:var(--text-dim);font-size:.85rem;font-style:italic;align-self:flex-start}.skills-wrap{max-width:720px;margin:0 auto;text-align:center}.skills-grid{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.skills-groups{display:flex;flex-direction:column;gap:1.75rem;text-align:left}.skills-group-label{font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:.75rem}.skill-tag{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);padding:.45rem .9rem;border-radius:999px;font-size:.85rem;font-weight:500;transition:all .2s ease;cursor:default}.skill-tag:hover{border-color:var(--accent);color:var(--accent-strong)}.skills-toggle{display:inline-block;margin-top:1.75rem;background:transparent;border:none;color:var(--text-dim);font-size:.85rem;cursor:pointer;font-family:inherit;transition:color .2s ease}.skills-toggle:hover{color:var(--accent)}.contact-block{max-width:600px;margin:0 auto;text-align:center}.contact-line{color:var(--text-muted);margin-bottom:2rem;font-size:1.05rem;line-height:1.7}.contact-actions{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.btn-primary{display:inline-block;background:var(--accent);color:#0a0e14;padding:.85rem 1.5rem;border-radius:999px;text-decoration:none;font-weight:600;font-size:.95rem;transition:transform .2s ease,box-shadow .2s ease}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 24px #7fb8d440}.footer{padding:2rem 0;text-align:center;color:var(--text-dim);font-size:.8rem;border-top:1px solid var(--border);background:#0a0e1480;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.container{padding:0 1.25rem}.header .container{gap:.5rem}.nav{gap:0}.nav-link{padding:.5rem;font-size:.8rem}.hero{padding:5rem 0 3rem}.hero-tabs{gap:.45rem}.tab-chip{padding:.5rem .95rem;font-size:.85rem}.timeline-header{flex-direction:column;align-items:flex-start;gap:.25rem}.timeline-date{margin-left:0}.projects-grid{grid-template-columns:1fr}.panel{padding:2.5rem 0 3rem}}@media (max-width: 480px){.logo{font-size:1rem}.nav-link{padding:.4rem;font-size:.75rem}}
