:root{--bg:#000;--bg-surface:#080808;--bg-card:#0e0e0e;--bg-card-hover:#161616;--bg-elevated:#121212;--accent:#ffb800;--accent-bright:#ffc833;--accent-dim:rgba(255,184,0,.1);--accent-hover:rgba(255,184,0,.18);--accent-shadow:rgba(255,184,0,.25);--text-bright:#f0f0f0;--text:#d4d4d4;--text-muted:#8a8a8a;--text-dim:#5a5a5a;--border:#2a2a2a;--border-bright:#3a3a3a;--border-dim:#1a1a1a;--status-green:#0f6;--font-serif:"JetBrains Mono","SF Mono","Fira Code",monospace;--font-sans:"JetBrains Mono","SF Mono","Fira Code",monospace;--font-mono:"JetBrains Mono","SF Mono","Fira Code","Roboto Mono",monospace;--header-height:72px;--section-gap:120px;--section-gap-sm:72px;--max-width:1100px;--content-padding:48px;--ease:cubic-bezier(0.645,0.045,0.355,1);--transition:all 0.3s var(--ease)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#000;background-color:var(--bg);color:#d4d4d4;color:var(--text);font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-family:var(--font-sans);font-size:17px;font-weight:400;line-height:1.65;overflow-x:hidden;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}button{font-family:inherit}ol,ul{list-style:none}img{display:block;max-width:100%}body:before{background-image:repeating-linear-gradient(0deg,rgba(255,184,0,.4),rgba(255,184,0,.4) 1px,transparent 0,transparent 3px);content:"";inset:0;opacity:.035;pointer-events:none;position:fixed;z-index:0}.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;position:relative;z-index:1}.main-content{flex:1 1}.content-container{margin:0 auto;max-width:1100px;max-width:var(--max-width);padding:0 48px;padding:0 var(--content-padding)}.site-header{background:transparent;height:72px;height:var(--header-height);left:0;position:fixed;right:0;top:0;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition);z-index:1000}.site-header.scrolled{backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);background:rgba(0,0,0,.92);border-bottom:1px solid #1a1a1a;border-bottom:1px solid var(--border-dim);height:60px}.header-inner{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:1300px;padding:0 48px;padding:0 var(--content-padding)}.logo{color:#ffb800;color:var(--accent);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:1.05rem;font-weight:600;letter-spacing:.05em;padding:8px 0;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.logo:hover{color:#ffc833;color:var(--accent-bright)}.logo-bracket{font-weight:400;opacity:.55}.main-nav{gap:28px}.main-nav,.nav-list{align-items:center;display:flex}.nav-list{gap:4px}.nav-link{align-items:center;border-radius:3px;color:#8a8a8a;color:var(--text-muted);display:flex;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.8rem;gap:5px;letter-spacing:.02em;padding:10px 14px;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.nav-link:hover,.nav-num{color:#ffb800;color:var(--accent)}.nav-num{font-size:.72rem;opacity:.8}.btn-outline,.nav-cta{background:transparent;border:1px solid #ffb800;border:1px solid var(--accent);border-radius:3px;color:#ffb800;color:var(--accent);cursor:pointer;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;padding:10px 18px;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.btn-outline:hover,.nav-cta:hover{background:rgba(255,184,0,.1);background:var(--accent-dim);box-shadow:4px 4px 0 0 rgba(255,184,0,.25);box-shadow:4px 4px 0 0 var(--accent-shadow);-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.hamburger,.nav-backdrop{display:none}.hamburger{align-items:center;background:none;border:none;cursor:pointer;flex-direction:column;gap:6px;height:44px;justify-content:center;position:relative;width:44px;z-index:1100}.hamburger span{background:#ffb800;background:var(--accent);border-radius:1px;display:block;height:1.5px;-webkit-transform-origin:center;transform-origin:center;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition);width:24px}.hamburger.open span:first-child{-webkit-transform:translateY(7.5px) rotate(45deg);transform:translateY(7.5px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.hamburger.open span:nth-child(3){-webkit-transform:translateY(-7.5px) rotate(-45deg);transform:translateY(-7.5px) rotate(-45deg)}.btn-primary{align-items:center;background:transparent;border:1px solid #ffb800;border:1px solid var(--accent);border-radius:3px;color:#ffb800;color:var(--accent);cursor:pointer;display:inline-flex;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.88rem;gap:8px;justify-content:center;letter-spacing:.03em;min-height:48px;padding:16px 32px;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.btn-primary:hover{background:rgba(255,184,0,.1);background:var(--accent-dim);box-shadow:5px 5px 0 0 rgba(255,184,0,.25);box-shadow:5px 5px 0 0 var(--accent-shadow);-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.hero-section{display:flex;flex-direction:column;justify-content:center;margin:0 auto;max-width:1300px;min-height:100vh;min-height:100dvh;padding:112px 48px 80px;padding:calc(var(--header-height) + 40px) var(--content-padding) 80px;position:relative}.hero-content{align-items:center;display:flex;gap:80px;justify-content:space-between;width:100%}.hero-text{flex:1 1;max-width:640px}.hero-greeting{color:#ffb800;color:var(--accent);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.92rem;letter-spacing:.05em;margin-bottom:24px}.hero-name{color:#f0f0f0;color:var(--text-bright);font-size:clamp(2.4rem,6vw,4.6rem);font-weight:700;letter-spacing:-.02em;line-height:1.05;margin-bottom:14px}.hero-name,.hero-tagline{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-family:var(--font-serif)}.hero-tagline{color:#ffb800;color:var(--accent);font-size:clamp(1.4rem,3.4vw,2.2rem);font-weight:400;letter-spacing:0;line-height:1.2;margin-bottom:32px}.hero-tagline:before{color:#ffb800;color:var(--accent);content:"> ";opacity:.7}.hero-name:after{-webkit-animation:terminal-blink 1.1s steps(2,jump-none) infinite;animation:terminal-blink 1.1s steps(2,jump-none) infinite;color:#ffb800;color:var(--accent);content:"_";display:inline-block;font-weight:400;margin-left:6px}@-webkit-keyframes terminal-blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes terminal-blink{0%,50%{opacity:1}51%,to{opacity:0}}.hero-bio{color:#d4d4d4;color:var(--text);font-size:1.02rem;line-height:1.75;margin-bottom:28px;max-width:560px}.accent,.hero-bio .accent{color:#ffb800;color:var(--accent);font-weight:500}.hero-meta{align-items:center;display:flex;flex-wrap:wrap;gap:24px;margin-bottom:40px}.hero-location,.hero-status{align-items:center;color:#8a8a8a;color:var(--text-muted);display:flex;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.78rem;gap:8px;letter-spacing:.02em}.hero-location svg{color:#ffb800;color:var(--accent);flex-shrink:0}.status-dot{-webkit-animation:pulse-dot 2.4s ease-in-out infinite;animation:pulse-dot 2.4s ease-in-out infinite;background:#0f6;background:var(--status-green);border-radius:50%;box-shadow:0 0 8px #0f6;box-shadow:0 0 8px var(--status-green);flex-shrink:0;height:8px;width:8px}@-webkit-keyframes pulse-dot{0%,to{box-shadow:0 0 8px #0f6;box-shadow:0 0 8px var(--status-green);opacity:1}50%{box-shadow:0 0 16px #0f6;box-shadow:0 0 16px var(--status-green);opacity:.7}}@keyframes pulse-dot{0%,to{box-shadow:0 0 8px #0f6;box-shadow:0 0 8px var(--status-green);opacity:1}50%{box-shadow:0 0 16px #0f6;box-shadow:0 0 16px var(--status-green);opacity:.7}}.hero-actions{flex-wrap:wrap;gap:28px}.hero-actions,.hero-socials{align-items:center;display:flex}.hero-socials{gap:4px}.social-link{align-items:center;border-radius:4px;color:#8a8a8a;color:var(--text-muted);display:inline-flex;height:44px;justify-content:center;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition);width:44px}.social-link:hover{background:rgba(255,184,0,.1);background:var(--accent-dim);color:#ffb800;color:var(--accent);-webkit-transform:translateY(-3px);transform:translateY(-3px)}.hero-image-wrap{flex-shrink:0}.hero-image-frame{height:280px;position:relative;width:280px}.hero-image-frame:before{background:linear-gradient(135deg,#ffb800,transparent);background:linear-gradient(135deg,var(--accent),transparent);inset:14px;opacity:.15}.hero-image-frame:after,.hero-image-frame:before{border-radius:50%;content:"";position:absolute;z-index:0}.hero-image-frame:after{border:1px solid #ffb800;border:1px solid var(--accent);inset:-10px;opacity:.35}.hero-photo{border:2px solid #ffb800;border:2px solid var(--accent);border-radius:50%;-webkit-filter:grayscale(15%) contrast(1.05);filter:grayscale(15%) contrast(1.05);height:100%;object-fit:cover;position:relative;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition);width:100%;z-index:1}.hero-photo:hover{-webkit-filter:grayscale(0) contrast(1.05);filter:grayscale(0) contrast(1.05)}.hero-scroll-hint{align-items:center;bottom:32px;color:#5a5a5a;color:var(--text-dim);display:flex;flex-direction:column;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.65rem;gap:10px;left:50%;letter-spacing:.2em;opacity:.7;position:absolute;text-transform:uppercase;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.scroll-line{-webkit-animation:scroll-anim 1.8s ease-in-out infinite;animation:scroll-anim 1.8s ease-in-out infinite;background:linear-gradient(180deg,#ffb800,transparent);background:linear-gradient(to bottom,var(--accent),transparent);height:56px;width:1px}@-webkit-keyframes scroll-anim{0%,to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:top;transform-origin:top}50%{opacity:.3;-webkit-transform:scaleY(.6);transform:scaleY(.6);-webkit-transform-origin:top;transform-origin:top}}@keyframes scroll-anim{0%,to{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:top;transform-origin:top}50%{opacity:.3;-webkit-transform:scaleY(.6);transform:scaleY(.6);-webkit-transform-origin:top;transform-origin:top}}.portfolio-section{padding:120px 0;padding:var(--section-gap) 0}.section-title{align-items:center;color:#f0f0f0;color:var(--text-bright);display:flex;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-family:var(--font-serif);font-size:clamp(1.7rem,3.6vw,2.2rem);font-weight:600;gap:16px;letter-spacing:-.01em;margin-bottom:56px;white-space:nowrap}.section-number{color:#ffb800;color:var(--accent);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:1rem;font-weight:400;letter-spacing:0}.section-line{background:#2a2a2a;background:var(--border);display:block;flex:1 1;height:1px;max-width:320px;min-width:50px}.exp-layout{display:flex;gap:0;margin-bottom:56px;min-height:380px}.exp-tabs{border-left:1px solid #2a2a2a;border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;min-width:200px}.exp-tab{align-items:center;background:none;border:none;border-left:2px solid transparent;color:#8a8a8a;color:var(--text-muted);cursor:pointer;display:flex;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.82rem;gap:8px;justify-content:space-between;margin-left:-1.5px;min-height:48px;padding:16px 22px;text-align:left;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.exp-tab.active,.exp-tab:hover{background:rgba(255,184,0,.1);background:var(--accent-dim);color:#ffb800;color:var(--accent)}.exp-tab.active{border-left-color:#ffb800;border-left-color:var(--accent)}.exp-tab-company{font-size:.85rem;letter-spacing:.02em}.exp-tab-badge{background:#ffb800;background:var(--accent);border-radius:2px;color:#000;color:var(--bg);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.05em;padding:2px 6px}.exp-panel{flex:1 1;padding:0 34px}.exp-content.hidden{display:none}.exp-content.visible{-webkit-animation:fadeIn .4s ease;animation:fadeIn .4s ease;display:block}@-webkit-keyframes fadeIn{0%{opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.exp-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:14px}.exp-role{color:#f0f0f0;color:var(--text-bright);font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-family:var(--font-serif);font-size:1.4rem;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin-bottom:6px}.exp-company-name{color:#ffb800;color:var(--accent);font-weight:500}.exp-meta{align-items:center;color:#8a8a8a;color:var(--text-muted);display:flex;flex-wrap:wrap;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.78rem;gap:8px}.exp-sep{color:#3a3a3a;color:var(--border-bright)}.current-badge{background:rgba(255,184,0,.1);background:var(--accent-dim);border:1px solid #ffb800;border:1px solid var(--accent);border-radius:2px;color:#ffb800;color:var(--accent);flex-shrink:0;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;padding:4px 10px;text-transform:uppercase}.exp-bullets{display:flex;flex-direction:column;gap:12px;margin:24px 0}.exp-bullets li{color:#d4d4d4;color:var(--text);font-size:.95rem;line-height:1.7;padding-left:22px;position:relative}.exp-bullets li:before{color:#ffb800;color:var(--accent);content:"▸";font-size:.8rem;left:0;position:absolute;top:2px}.exp-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.education-card{align-items:flex-start;background:#0e0e0e;background:var(--bg-card);border:1px solid #1a1a1a;border:1px solid var(--border-dim);border-radius:6px;display:flex;gap:22px;padding:26px 30px;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.education-card:hover{background:#161616;background:var(--bg-card-hover);border-color:#ffb800;border-color:var(--accent)}.edu-icon{color:#ffb800;color:var(--accent);flex-shrink:0;margin-top:2px}.edu-title{color:#f0f0f0;color:var(--text-bright);font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-family:var(--font-serif);font-size:1.25rem;font-weight:600;letter-spacing:-.01em;margin-bottom:4px}.edu-degree{color:#d4d4d4;color:var(--text);font-size:.96rem;margin-bottom:8px}.edu-meta{align-items:center;color:#8a8a8a;color:var(--text-muted);display:flex;flex-wrap:wrap;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.78rem;gap:8px}.skills-grid{grid-gap:22px;display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.skill-card{background:#0e0e0e;background:var(--bg-card);border:1px solid #1a1a1a;border:1px solid var(--border-dim);border-radius:6px;padding:26px 28px;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.skill-card:hover{background:#161616;background:var(--bg-card-hover);border-color:#ffb800;border-color:var(--accent);box-shadow:0 10px 30px rgba(0,0,0,.25);-webkit-transform:translateY(-4px);transform:translateY(-4px)}.skill-card-header{align-items:center;display:flex;gap:12px;margin-bottom:18px}.skill-icon{color:#ffb800;color:var(--accent);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:1.2rem}.skill-category{color:#f0f0f0;color:var(--text-bright);font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-family:var(--font-serif);font-size:1.15rem;font-weight:600;letter-spacing:-.01em}.skill-tags{display:flex;flex-wrap:wrap;gap:8px}.skill-tag{background:#121212;background:var(--bg-elevated);border:1px solid #2a2a2a;border:1px solid var(--border);border-radius:3px;color:#d4d4d4;color:var(--text);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.01em;padding:4px 10px;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.skill-tag:hover{background:rgba(255,184,0,.1);background:var(--accent-dim);border-color:#ffb800;border-color:var(--accent);color:#ffb800;color:var(--accent)}.projects-grid{grid-gap:22px;display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.project-card{background:#0e0e0e;background:var(--bg-card);border:1px solid #1a1a1a;border:1px solid var(--border-dim);border-radius:6px;display:flex;flex-direction:column;gap:14px;overflow:hidden;padding:30px;position:relative}.project-card,.project-card:before{transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.project-card:before{background:linear-gradient(90deg,#ffb800,transparent);background:linear-gradient(90deg,var(--accent),transparent);content:"";height:2px;left:0;opacity:0;position:absolute;right:0;top:0}.project-card:hover{background:#161616;background:var(--bg-card-hover);border-color:#ffb800;border-color:var(--accent);box-shadow:0 14px 34px rgba(0,0,0,.3);-webkit-transform:translateY(-6px);transform:translateY(-6px)}.project-card:hover:before{opacity:1}.project-icon{color:#ffb800;color:var(--accent);opacity:.9}.project-title{color:#f0f0f0;color:var(--text-bright);font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-family:var(--font-serif);font-size:1.25rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}.project-summary{color:#d4d4d4;color:var(--text);flex:1 1;font-size:.92rem;line-height:1.7}.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.tech-tag{background:rgba(255,184,0,.1);background:var(--accent-dim);border-radius:3px;color:#ffb800;color:var(--accent);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.01em;padding:4px 10px}.research-block{margin-bottom:56px}.research-block:last-child{margin-bottom:0}.research-sub-heading{align-items:center;color:#8a8a8a;color:var(--text-muted);display:flex;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.85rem;font-weight:500;gap:10px;letter-spacing:.04em;margin-bottom:22px;text-transform:uppercase}.publication-card{background:#0e0e0e;background:var(--bg-card);border:1px solid #1a1a1a;border:1px solid var(--border-dim);border-radius:6px;display:block;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.publication-card:hover{background:#161616;background:var(--bg-card-hover);border-color:#ffb800;border-color:var(--accent);box-shadow:0 10px 30px rgba(0,0,0,.25);-webkit-transform:translateY(-4px);transform:translateY(-4px)}.pub-card-inner{padding:30px}.pub-venue{color:#ffb800;color:var(--accent);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;margin-bottom:12px;text-transform:uppercase}.pub-title{color:#f0f0f0;color:var(--text-bright);font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-family:var(--font-serif);font-size:1.2rem;font-weight:600;letter-spacing:-.01em;line-height:1.4;margin-bottom:12px}.pub-summary{color:#d4d4d4;color:var(--text);font-size:.93rem;line-height:1.7;margin-bottom:18px}.pub-link-label{align-items:center;color:#ffb800;color:var(--accent);display:inline-flex;font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.78rem;gap:6px;letter-spacing:.02em;transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.publication-card:hover .pub-link-label{gap:10px}.articles-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.contact-section{margin:0 auto;max-width:720px;padding:120px 48px;padding:var(--section-gap) var(--content-padding);text-align:center}.contact-overline{color:#ffb800;color:var(--accent);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.88rem;letter-spacing:.04em;margin-bottom:18px}.contact-heading{color:#f0f0f0;color:var(--text-bright);font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-family:var(--font-serif);font-size:clamp(1.8rem,5vw,2.8rem);font-weight:700;letter-spacing:0;margin-bottom:24px}.contact-body{color:#d4d4d4;color:var(--text);font-size:1.02rem;line-height:1.75;margin-bottom:44px}.contact-actions{align-items:center;display:flex;flex-direction:column;gap:28px}.contact-socials{align-items:center;display:flex;gap:12px}.site-footer{border-top:1px solid #1a1a1a;border-top:1px solid var(--border-dim);padding:32px 48px;padding:32px var(--content-padding);text-align:center}.site-footer p{color:#8a8a8a;color:var(--text-muted);font-family:JetBrains Mono,SF Mono,Fira Code,Roboto Mono,monospace;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em}.footer-link{color:#ffb800;color:var(--accent);transition:all .3s cubic-bezier(.645,.045,.355,1);transition:var(--transition)}.footer-link:hover{color:#ffc833;color:var(--accent-bright);text-decoration:underline;text-underline-offset:4px}@media (max-width:980px){:root{--content-padding:36px;--section-gap:90px}.hero-content{align-items:center;flex-direction:column-reverse;gap:48px;text-align:center}.hero-bio,.hero-text{max-width:100%}.hero-actions,.hero-meta{justify-content:center}.hero-image-frame{height:220px;width:220px}.hero-scroll-hint{display:none}.exp-layout{flex-direction:column;min-height:auto}.exp-tabs{-webkit-overflow-scrolling:touch;border-bottom:1px solid #2a2a2a;border-bottom:1px solid var(--border);border-left:none;flex-direction:row;min-width:0;min-width:auto;overflow-x:auto;scrollbar-width:none}.exp-tabs::-webkit-scrollbar{display:none}.exp-tab{border-bottom:2px solid transparent;border-left:none;flex-shrink:0;margin-bottom:-1px;margin-left:0;white-space:nowrap}.exp-tab.active{border-bottom-color:#ffb800;border-bottom-color:var(--accent);border-left-color:transparent}.exp-panel{padding:28px 0 0}}@media (max-width:640px){:root{--content-padding:24px;--section-gap:72px;--header-height:60px}body{font-size:16px}.header-inner{padding:0 24px}.main-nav{background:#121212;background:var(--bg-elevated);border-left:1px solid #2a2a2a;border-left:1px solid var(--border);bottom:0;box-shadow:-16px 0 48px rgba(0,0,0,.5);flex-direction:column;gap:36px;justify-content:center;max-width:340px;padding:80px 36px;position:fixed;right:0;top:0;-webkit-transform:translateX(105%);transform:translateX(105%);transition:-webkit-transform .35s cubic-bezier(.645,.045,.355,1);transition:transform .35s cubic-bezier(.645,.045,.355,1);transition:transform .35s cubic-bezier(.645,.045,.355,1),-webkit-transform .35s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .35s var(--ease);transition:transform .35s var(--ease);transition:transform .35s var(--ease),-webkit-transform .35s var(--ease);width:78vw;z-index:1050}.main-nav.open{-webkit-transform:translateX(0);transform:translateX(0)}.nav-backdrop{background:transparent;display:block;inset:0;pointer-events:none;position:fixed;transition:background .35s cubic-bezier(.645,.045,.355,1);transition:background .35s var(--ease);z-index:1040}.nav-backdrop.visible{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:rgba(0,0,0,.55);pointer-events:auto}.nav-list{align-items:flex-start;flex-direction:column;gap:4px}.nav-link,.nav-list,.nav-list li{width:100%}.nav-link{flex-direction:row;font-size:1rem;gap:8px;padding:14px 16px}.nav-num{font-size:.78rem}.nav-cta{align-self:flex-start;font-size:.85rem;margin-top:12px;padding:14px 22px}.hamburger{display:flex}.hero-section{min-height:auto;padding:104px 48px 64px;padding:calc(var(--header-height) + 32px) var(--content-padding) 64px}.hero-content{gap:36px}.hero-greeting{font-size:.82rem;margin-bottom:18px}.hero-name{font-size:clamp(2.5rem,11vw,3.4rem)}.hero-tagline{font-size:clamp(1.4rem,6vw,1.9rem);margin-bottom:24px}.hero-bio{font-size:.96rem;line-height:1.7;margin-bottom:22px}.hero-meta{align-items:center;flex-direction:column;gap:12px;margin-bottom:32px}.hero-actions{flex-direction:column;gap:24px;width:100%}.btn-primary{max-width:320px;padding:15px 28px;width:100%}.hero-socials{gap:8px}.hero-image-frame{height:180px;width:180px}.portfolio-section{padding:120px 0;padding:var(--section-gap) 0}.section-title{font-size:1.5rem;gap:12px;margin-bottom:36px}.section-number{font-size:.88rem}.section-line{min-width:30px}.exp-tabs{gap:0;margin:0 -48px;margin:0 calc(var(--content-padding)*-1);padding-bottom:2px;padding-left:48px;padding-left:var(--content-padding);padding-right:48px;padding-right:var(--content-padding)}.exp-tab{font-size:.82rem;padding:14px 16px}.exp-panel{padding:28px 0 0}.exp-header{flex-direction:column;gap:10px}.exp-role{font-size:1.2rem}.exp-bullets{gap:14px;margin:20px 0}.exp-bullets li{font-size:.93rem;line-height:1.65}.education-card{gap:16px;padding:22px}.edu-title{font-size:1.1rem}.articles-grid,.projects-grid,.skills-grid{gap:16px;grid-template-columns:1fr}.project-card,.pub-card-inner,.skill-card{padding:24px}.project-title,.pub-title{font-size:1.12rem}.contact-section{padding:120px 48px;padding:var(--section-gap) var(--content-padding)}.contact-body{font-size:.98rem}.contact-actions{gap:24px;width:100%}.contact-actions .btn-primary{max-width:320px;width:100%}.site-footer{padding:28px 48px;padding:28px var(--content-padding)}}@media (max-width:380px){:root{--content-padding:20px}.hero-name{font-size:2.4rem}.hero-tagline{font-size:1.35rem}.hero-image-frame{height:160px;width:160px}.section-title{font-size:1.35rem}}body.menu-open{overflow:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#000;background:var(--bg)}::-webkit-scrollbar-thumb{background:#3a3a3a;background:var(--border-bright);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffb800;background:var(--accent)}::selection{background:#ffb800;background:var(--accent);color:#000;color:var(--bg)}:focus-visible{border-radius:3px;outline:2px solid #ffb800;outline:2px solid var(--accent);outline-offset:3px}
/*# sourceMappingURL=main.32f3a495.css.map*/