@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap";:root{--bg:#0e0e10;--bg-raised:#17171a;--bg-topbar:#0e0e10eb;--ink:#f2f1ed;--ink-muted:#93939a;--line:#2a2a2e;--accent:#f5c400;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--font-sans:"IBM Plex Sans", "Segoe UI", sans-serif;--maxw:760px;--gap-section:clamp(3.5rem, 8vw, 6rem);--topbar-h:64px;--sidebar-w:300px}[data-theme=light]{--bg:#f5f4f0;--bg-raised:#fff;--bg-topbar:#e2e0d9f0;--ink:#1a1a1e;--ink-muted:#5c5c66;--line:#d8d8dc;--accent:#c9a000}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);margin:0;font-size:16px;line-height:1.6}::selection{background:var(--accent);color:var(--bg)}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.page{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}.section__title{font-family:var(--font-mono);letter-spacing:.02em;color:var(--accent);margin:0 0 1.75rem;font-size:clamp(1.5rem,4vw,2rem);font-weight:600}.eyebrow{font-family:var(--font-mono);letter-spacing:.02em;color:var(--accent);text-transform:lowercase;margin:0 0 1.25rem;font-size:.8rem}.topbar{z-index:100;height:var(--topbar-h);background:var(--bg-topbar);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);align-items:center;gap:1rem;padding:0 1.5rem;display:flex;position:fixed;top:0;left:0;right:0}.topbar__nav{align-items:center;gap:.25rem;margin-left:auto;margin-right:auto;display:none}.topbar__nav-link{font-family:var(--font-mono);color:var(--ink-muted);letter-spacing:.02em;border-radius:6px;padding:.4rem .7rem;font-size:.78rem;text-decoration:none;transition:color .15s,background-color .15s}.topbar__nav-link:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 6%, transparent)}.topbar__nav-link.is-active{color:var(--accent);background:#f5c40014}.main-content{padding-top:calc(var(--topbar-h) + 1rem);min-height:calc(100vh - var(--topbar-h))}.brand{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink);font-size:1rem;font-weight:600;text-decoration:none}.brand__dot{color:var(--accent)}.lang-switch{font-family:var(--font-mono);border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.8rem;transition:border-color .15s;display:inline-flex}.lang-switch:hover{border-color:var(--accent)}.lang-switch__opt{transition:color .15s}.lang-switch__opt.is-active{color:var(--accent);font-weight:600}.lang-switch__sep{color:var(--line)}.theme-toggle{border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:1.1rem;transition:border-color .15s,color .15s,transform .25s;display:inline-flex}.theme-toggle:hover{border-color:var(--accent);color:var(--accent);transform:rotate(30deg)}.hamburger{cursor:pointer;z-index:150;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:.5rem;display:flex}.hamburger__line{background:var(--ink);transform-origin:50%;border-radius:2px;width:22px;height:2px;transition:transform .3s,opacity .3s,background-color .3s;display:block}.hamburger.is-open .hamburger__line:first-child{transform:translateY(7px)rotate(45deg)}.hamburger.is-open .hamburger__line:nth-child(2){opacity:0}.hamburger.is-open .hamburger__line:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (width>=640px){.topbar__nav{display:flex}.hamburger,.sidebar,.sidebar-overlay{display:none!important}}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);z-index:110;opacity:0;pointer-events:none;background:#0009;transition:opacity .3s;position:fixed;inset:0}.sidebar-overlay.is-visible{opacity:1;pointer-events:auto}.sidebar{width:var(--sidebar-w);background:var(--bg-raised);border-right:1px solid var(--line);z-index:120;flex-direction:column;max-width:85vw;transition:transform .35s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar.is-open{transform:translate(0)}.sidebar__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.sidebar__close{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.2rem;line-height:1;transition:color .15s}.sidebar__close:hover{color:var(--accent)}.sidebar__nav{flex:1;margin:0;padding:1.5rem 0;list-style:none}.sidebar__link{font-family:var(--font-mono);color:var(--ink-muted);letter-spacing:.02em;padding:.9rem 1.5rem;font-size:.95rem;text-decoration:none;transition:color .15s,background-color .15s,padding-left .2s;display:block}.sidebar__link:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 5%, transparent);padding-left:2rem}.sidebar__link.is-active{color:var(--accent);border-left:3px solid var(--accent);background:#f5c4000f;padding-left:calc(1.5rem - 3px)}.sidebar__link-marker{color:var(--accent);opacity:0;margin-right:.5rem;font-weight:600;transition:opacity .15s}.sidebar__link:hover .sidebar__link-marker,.sidebar__link.is-active .sidebar__link-marker{opacity:1}.hero-section{padding-bottom:1.5rem}.hero{align-items:stretch;gap:2rem;padding:1.5rem 0 0;display:flex}.hero__avatar{border:1px solid var(--line);background:var(--bg-raised);border-radius:12px;flex-shrink:0;width:160px;overflow:hidden}.hero__avatar-img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block;transform:scale(1.5)}.hero__text{min-width:0}.hero__name{font-family:var(--font-mono);letter-spacing:-.01em;margin:0 0 .5rem;font-size:clamp(1.9rem,5vw,2.6rem);font-weight:600}.cursor{color:var(--accent);animation:1.1s step-end infinite blink}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.hero__location{color:var(--ink-muted);margin:0 0 1rem;font-size:.95rem}.hero__actions{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.hero__cta{font-family:var(--font-mono);border-bottom:1px solid var(--accent);color:var(--ink);padding-bottom:2px;font-size:.85rem;text-decoration:none;transition:opacity .15s;display:inline-block}.hero__cta:hover{opacity:.7}.hero__cv-btn{font-family:var(--font-mono);color:var(--accent);background:#f5c40014;border:1px solid #f5c4004d;border-radius:6px;align-items:center;gap:.3rem;padding:.35rem .75rem;font-size:.82rem;text-decoration:none;transition:background-color .15s,border-color .15s,transform .15s;display:inline-flex}.hero__cv-btn:hover{border-color:var(--accent);background:#f5c4002e;transform:translateY(-1px)}.section{padding:2rem 0 var(--gap-section);border-top:1px solid var(--line);scroll-margin-top:calc(var(--topbar-h) + 1rem)}.section:first-of-type{border-top:none;padding-top:0}.profile__body p{color:var(--ink);max-width:62ch;margin:0 0 1rem}.profile__body p:last-child{margin-bottom:0}.skills__stack{flex-direction:column;gap:2.25rem;display:flex}.skills__title{font-family:var(--font-mono);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .85rem;font-size:.8rem;font-weight:500}.tags{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--line);color:var(--ink);border-radius:4px;padding:.3rem .6rem;font-size:.85rem;transition:border-color .15s,color .15s}.tag:hover{border-color:var(--accent);color:var(--accent)}.timeline{flex-direction:column;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.timeline__item{border:1px solid var(--line);background:var(--bg-raised);border-radius:8px;padding:1.25rem;transition:border-color .15s,background-color .15s}.timeline__item:hover{border-color:#f5c4004d}.timeline__head{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:1rem;display:flex}.timeline__head-left{align-items:center;gap:1rem;min-width:0;display:flex}.timeline__logo{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:8px;flex-shrink:0;width:44px;height:44px;padding:4px}.timeline__head h3{margin:0;font-size:1.05rem;font-weight:600}.timeline__company{color:var(--ink-muted);font-weight:400}.timeline__link{color:inherit;border-bottom:1px solid #0000;align-items:center;gap:.25rem;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.timeline__link:hover{color:var(--accent);border-bottom-color:var(--accent)}.timeline__link-icon{color:var(--ink-muted);transition:color .15s,transform .15s}.timeline__link:hover .timeline__link-icon{color:var(--accent);transform:translate(1px,-1px)}.timeline__period{font-family:var(--font-mono);color:var(--accent);white-space:nowrap;margin-top:.2rem;font-size:.78rem;display:block}.timeline__toggle{font-family:var(--font-mono);color:var(--ink-muted);flex-shrink:0;font-size:1rem;transition:transform .25s,color .15s}.timeline__toggle.is-open{color:var(--accent);transform:rotate(90deg)}.timeline__details{opacity:0;max-height:0;transition:max-height .35s,opacity .3s;overflow:hidden}.timeline__details.is-open{opacity:1;border-top:1px solid var(--line);max-height:500px;margin-top:1rem;padding-top:1rem}.bullets{color:var(--ink-muted);margin:0;padding-left:1.1rem}.bullets li{margin-bottom:.45rem}.bullets li::marker{color:var(--accent)}.edu-list{flex-direction:column;gap:1.75rem;margin:0;padding:0;list-style:none;display:flex}.edu-item h3{margin:0 0 .3rem;font-size:1rem;font-weight:600}.edu-item__place{color:var(--ink-muted);margin:0}.edu-item__period{font-family:var(--font-mono);color:var(--accent);margin:.2rem 0 0;font-size:.78rem}.projects__grid{flex-direction:column;gap:1.5rem;display:flex}.project-card{border:1px solid var(--line);background:var(--bg-raised);border-radius:8px;padding:1.5rem;transition:border-color .2s,transform .2s}.project-card:hover{border-color:#f5c40066}.project-card__header{margin-bottom:.75rem}.project-card__title{margin:0;font-size:1.1rem;font-weight:600}.project-card__title a{color:var(--ink);align-items:center;gap:.4rem;text-decoration:none;transition:color .15s;display:inline-flex}.project-card__title a:hover{color:var(--accent)}.project-card__icon{color:var(--ink-muted);transition:color .15s,transform .15s}.project-card__title a:hover .project-card__icon{color:var(--accent);transform:translate(2px,-2px)}.project-card__desc{color:var(--ink-muted);margin:0 0 1.25rem;font-size:.95rem;line-height:1.6}.section--contact{padding-bottom:var(--gap-section)}.contact__heading{font-family:var(--font-mono);margin:0 0 .75rem;font-size:1.6rem}.contact__body{color:var(--ink-muted);max-width:52ch;margin:0 0 2rem}.contact-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.contact-list__item{border-bottom:1px solid var(--line);align-items:center;gap:1rem;padding:1.1rem 0;display:flex}.contact-list__icon{color:var(--ink-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-list__label{font-family:var(--font-mono);color:var(--ink-muted);flex-shrink:0;width:5.5rem;font-size:.78rem}.contact-list__value{overflow-wrap:anywhere;flex:1;min-width:0}.contact-list__actions{flex-shrink:0;gap:.5rem;margin-left:auto;display:flex}.contact-btn{border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:.45rem;text-decoration:none;transition:color .15s,border-color .15s,transform .15s;display:flex}.contact-btn:hover{color:var(--accent);border-color:var(--accent);transform:scale(1.08)}.contact-btn.is-copied{color:#4ade80;border-color:#4ade80}.footer{border-top:1px solid var(--line);margin-top:var(--gap-section);font-family:var(--font-mono);color:var(--ink-muted);padding:2rem 0 3rem;font-size:.75rem}.footer__top{flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;display:flex}.footer__socials{align-items:center;gap:1rem;display:flex}.footer__social-link{color:var(--ink-muted);justify-content:center;align-items:center;text-decoration:none;transition:color .15s,transform .15s;display:flex}.footer__social-link:hover{color:var(--accent);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.cursor{animation:none}.sidebar,.sidebar-overlay,.hamburger__line{transition:none}}@media (width<=639px){.hero{text-align:center;flex-flow:column wrap;align-items:center;padding-top:1rem}.hero__avatar{aspect-ratio:3/4;border-radius:16px;width:auto;height:33.33vh}.hero__actions{justify-content:center}.eyebrow{text-align:center}.timeline__head{flex-direction:column;align-items:flex-start;gap:.5rem}.timeline__toggle{position:absolute;top:1.25rem;right:1.25rem}.timeline__item{position:relative}.contact-list__value{display:none}}
