:root{--bg:#0b0b0c;--surface:#17181b;--surface-2:#121316;--text:#d9d9dc;--heading:#f5f5f6;--muted:#a4a4ab;--accent:#e2e2e6;--border:#f5f5f633;--font-sans:Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);height:100vh;color:var(--text);font-family:var(--font-sans);line-height:1.65;overflow:hidden}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3,p,ul{margin:0}.layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:72px;max-width:1220px;height:100vh;margin:0 auto;padding:0 28px;display:grid}.sidebar{flex-direction:column;height:100vh;padding:88px 0 48px;display:flex;position:sticky;top:0;overflow:hidden}.brand{color:var(--heading);letter-spacing:-.02em;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:700;line-height:1.1}.role{color:var(--heading);margin-top:14px;font-size:1rem;font-weight:500}.intro-copy{color:var(--muted);max-width:30ch;margin-top:16px}.nav-toggle{border:1px solid var(--border);width:fit-content;color:var(--accent);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;background:0 0;border-radius:999px;margin-top:28px;padding:8px 14px;font-size:.78rem;display:none}.section-nav{gap:12px;margin-top:42px;display:grid}.section-nav a{width:fit-content;color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;padding:4px 0;font-size:.82rem;transition:color .2s,transform .2s;display:inline-flex}.section-nav a:before{content:"";background:var(--muted);width:28px;height:1px;transition:width .2s,background-color .2s}.section-nav a:hover,.section-nav a.active{color:var(--heading);transform:translate(3px)}.section-nav a:hover:before,.section-nav a.active:before{background:var(--accent);width:56px}.sidebar-actions{flex-wrap:wrap;gap:10px;margin-top:42px;display:flex}.sidebar-more{flex-wrap:wrap;gap:8px 14px;margin-top:14px;display:flex}.sidebar-more a{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;font-size:.72rem}.sidebar-more a:hover{color:var(--heading)}.button{border:1px solid var(--border);color:var(--accent);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;border-radius:6px;padding:10px 16px;font-size:.78rem;transition:background-color .2s,color .2s}.button:hover{background:#f5f5f61a}.button:focus-visible,.nav-toggle:focus-visible,.section-nav a:focus-visible,.socials a:focus-visible,.version-switch select:focus-visible{background:#f5f5f614}.button-outline{color:var(--text)}.button-outline:hover{color:var(--accent)}.button-icon{justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:inline-flex}.button-icon svg{width:22px;height:20px}.button-icon img{object-fit:contain;width:22px;height:22px;display:block}.socials{flex-wrap:wrap;gap:14px;margin-top:18px;padding-top:0;display:flex}.socials a{color:var(--muted);font-size:.95rem}.socials a:hover{color:var(--heading)}.version-switch{align-items:center;gap:10px;margin-top:auto;display:flex}.version-switch label{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem}.version-switch select{border:1px solid var(--border);background:var(--surface-2);color:var(--heading);font-family:var(--font-mono);border-radius:6px;padding:7px 10px;font-size:.75rem}@media (height<=900px) and (width>=1025px){.sidebar{padding:58px 0 24px}.brand{font-size:clamp(1.45rem,2.2vw,1.95rem)}.role{margin-top:10px;font-size:.9rem}.intro-copy{max-width:34ch;margin-top:10px;font-size:.9rem;line-height:1.45}.section-nav{gap:8px;margin-top:24px}.section-nav a{letter-spacing:.06em;font-size:.74rem}.sidebar-actions{gap:8px;margin-top:20px}.button{padding:8px 12px;font-size:.72rem}.socials{gap:10px;margin-top:12px}.socials a{font-size:.86rem}.version-switch{gap:8px;margin-top:auto}.version-switch label,.version-switch select{font-size:.68rem}}@media (height<=760px) and (width>=1025px){.sidebar{padding:36px 0 16px}.brand{font-size:1.35rem}.role{font-size:.82rem}.intro-copy{margin-top:8px;font-size:.82rem;line-height:1.4}.section-nav{margin-top:16px}.section-nav a:before{width:20px}.section-nav a:hover:before,.section-nav a.active:before{width:38px}.button{padding:7px 10px;font-size:.66rem}.socials a{font-size:.8rem}.version-switch select{padding:5px 8px}}.content{height:100vh;padding:92px 0 72px;overflow:hidden auto}.section{margin-bottom:86px;scroll-margin-top:40px}.page-title{color:var(--heading);margin-bottom:22px;font-size:1.4rem;line-height:1.25}h2{color:var(--heading);align-items:center;gap:12px;margin-bottom:20px;font-size:clamp(1.3rem,2.3vw,1.65rem);display:flex}.section-index{color:var(--accent);font-family:var(--font-mono);font-size:.9rem;font-weight:500}.section p{color:var(--muted);max-width:68ch;margin-bottom:14px}.chip-grid{flex-wrap:wrap;gap:10px;display:flex}.chip{color:#c4c4c9;font-size:.82rem;font-family:var(--font-mono);border:1px solid #f5f5f638;border-radius:999px;padding:8px 12px}.skill-groups{gap:28px;display:grid}.skill-group-title{color:var(--heading);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;font-size:.78rem}.project-card{background:var(--surface-2);border:1px solid #f5f5f624;border-radius:10px;margin-bottom:14px;padding:22px;transition:border-color .2s,transform .2s}.project-card:hover{border-color:#f5f5f659;transform:translateY(-2px)}.project-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.project-head h3{color:var(--heading);font-size:1.08rem}.project-links{flex-wrap:wrap;gap:12px;display:flex}.project-links a{color:#ededf0;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.additional-demo-links{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px 18px;margin-top:16px;font-size:.88rem;display:flex}.additional-demo-links a{color:var(--text);text-underline-offset:3px;-webkit-text-decoration:underline #f5f5f67a;text-decoration:underline #f5f5f67a;transition:color .2s,text-decoration-color .2s}.additional-demo-links a:hover,.additional-demo-links a:focus-visible{color:var(--heading);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.project-card ul{color:var(--muted);margin-top:10px;padding-left:18px}.project-card li{margin:6px 0}.timeline{gap:14px;display:grid}.timeline-item{border:1px solid #0000;border-radius:10px;grid-template-columns:130px minmax(0,1fr);gap:18px;padding:18px;transition:border-color .2s;display:grid}.timeline-item:hover{background:#f5f5f608;border-color:#f5f5f638}.timeline-period{color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;padding-top:2px;font-size:.78rem}.timeline-item h3{color:var(--heading);margin-bottom:8px;font-size:1rem}.timeline-item ul{color:var(--muted);margin-top:8px;padding-left:18px}.timeline-item li{margin:6px 0}.contact-list{flex-direction:column;gap:8px;display:flex}.contact-list a,.contact-list span{color:var(--muted)}.contact-list a:hover{color:var(--accent)}.site-footer{color:#88888f;margin-top:40px;padding-bottom:26px;font-size:.86rem}@media (width<=1024px){body{height:auto;min-height:100vh;overflow:auto}.layout{grid-template-columns:1fr;gap:0;height:auto}.sidebar{height:auto;min-height:auto;padding:56px 0 18px;position:static;overflow:visible}.intro-copy{max-width:60ch}.nav-toggle{display:inline-flex}.section-nav{opacity:0;max-height:0;margin-top:18px;transition:max-height .25s,opacity .25s;overflow:hidden}.section-nav.is-open{opacity:1;max-height:320px}.sidebar-actions{margin-top:22px}.sidebar-more{margin-top:12px}.socials{margin-top:22px;padding-top:0}.version-switch{margin-top:14px}.content{height:auto;padding:12px 0 52px;overflow:visible}.section{margin-bottom:64px}}@media (width<=720px){.layout{padding:0 18px}.brand{font-size:2rem}.timeline-item{grid-template-columns:1fr;gap:8px}.project-head{flex-direction:column}}
