*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{color:#1a1a2e;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6}.layout{grid-template-columns:320px 1fr;align-items:start;gap:3rem;max-width:1360px;margin:0 auto;padding:2.25rem 2rem;display:grid}.sidebar{position:sticky;top:1rem}.sidebar-photo{margin-bottom:1rem}.sidebar-photo img{object-fit:cover;border-radius:50%;width:88px;height:88px;box-shadow:0 4px 20px #00000014}.sidebar-name{letter-spacing:-.02em;font-size:1.6rem;font-weight:700}.sidebar-role{color:#2563eb;margin:.15rem 0 .5rem;font-size:.95rem;font-weight:500}.sidebar-bio{color:#64748b;margin-bottom:.85rem;font-size:.85rem}.sidebar-social a:focus-visible,.btn:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.sidebar-contact{flex-direction:column;gap:.55rem;display:flex}.sidebar-social{gap:.5rem;display:flex}.sidebar-social a{color:#64748b;border:1px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;transition:border-color .2s,color .2s;display:flex}.sidebar-social a:hover{color:#2563eb;border-color:#2563eb}.sidebar-extra{flex-direction:column;gap:.35rem;margin-top:.15rem;display:flex}.sidebar-extra-item{color:#64748b;align-items:center;gap:.45rem;font-size:.82rem;text-decoration:none;display:flex}.sidebar-extra-item svg{color:#94a3b8;flex-shrink:0}.sidebar-extra-item:hover,.sidebar-extra-item:hover svg{color:#2563eb}.btn{cursor:pointer;word-break:break-word;border-radius:10px;align-items:center;gap:.4rem;padding:.6rem 1.1rem;font-size:.85rem;font-weight:500;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.btn-primary{color:#fff;background:#1a1a2e;border:1px solid #1a1a2e}.btn-primary:hover{background:#2563eb;border-color:#2563eb}.btn-outline{color:#1a1a2e;background:#fff;border:1px solid #1a1a2e}.btn-outline:hover{color:#fff;background:#1a1a2e}.skills-keywords{flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem;display:flex}.skills-keywords span{color:#1d4ed8;background:#2563eb14;border-radius:999px;padding:.3rem .75rem;font-size:.82rem;font-weight:500}.hs-discuss{grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:2rem;display:grid}.hs-discuss-item{background:#fff;border:1px solid #e2e8f0;border-radius:16px;gap:1rem;padding:1.4rem 1.6rem;display:flex}.project-icon{color:#2563eb;background:#2563eb1a;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.hs-discuss-item h3{margin-bottom:.3rem;font-size:1.1rem;font-weight:600}.hs-discuss-item p{color:#64748b;font-size:.92rem;line-height:1.5}.skills-by-cat{text-align:center;flex-direction:column;gap:0;max-width:620px;margin:0 auto;display:flex}.skills-cat{border-bottom:1px solid #eef2f7;grid-template-columns:150px 1fr;align-items:center;gap:.5rem 1rem;padding:.7rem 0;display:grid}.skills-cat:last-child{border-bottom:none}.skills-cat-label{text-transform:uppercase;letter-spacing:.05em;color:#2563eb;text-align:right;font-size:.72rem;font-weight:700}.skills-cat .skills-keywords{justify-content:center;margin-bottom:0}.projects-grid{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.project-card{color:inherit;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;padding:1.4rem 1.6rem;text-decoration:none;transition:box-shadow .2s,border-color .2s;display:flex}.project-card:hover{border-color:#2563eb;box-shadow:0 4px 20px #0000000a}.project-card h3{margin-bottom:.5rem;font-size:1.1rem;font-weight:600}.project-card p{color:#64748b;flex-grow:1;margin-bottom:.85rem;font-size:.92rem;line-height:1.5}.project-links{flex-wrap:wrap;gap:.5rem;margin-top:.25rem;display:flex}.gh-link{color:#2563eb;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;display:inline-flex}.gh-link svg{flex-shrink:0}.project-card:hover .gh-link{text-decoration:underline}.contact-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.contact-item{color:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:.9rem;padding:1rem 1.2rem;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex}.contact-item:hover{border-color:#2563eb;box-shadow:0 4px 20px #0000000a}.contact-item svg{color:#2563eb;flex-shrink:0}.contact-text{flex-direction:column;min-width:0;display:flex}.contact-label{color:#64748b;font-size:.78rem;font-weight:500}.contact-value{color:#1a1a2e;word-break:break-word;font-size:.95rem;font-weight:500}.main{min-width:0}.section{margin-bottom:2.75rem}.section-title{margin-bottom:1.5rem;font-size:1.6rem;font-weight:600}.section-intro{color:#64748b;max-width:70ch;margin:-.75rem 0 1.75rem;font-size:1.05rem}.cols-2{grid-template-columns:1fr 1fr;gap:2.5rem;margin-bottom:2.75rem;display:grid}.cols-2 .section{margin-bottom:0}.timeline{padding-left:2rem;position:relative}.timeline:before{content:"";background:#e2e8f0;width:2px;position:absolute;top:8px;bottom:8px;left:7px}.timeline-item{margin-bottom:1.5rem;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-marker{background:#fff;border:2px solid #2563eb;border-radius:50%;width:16px;height:16px;position:absolute;top:6px;left:-2rem}.timeline-content{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.1rem 1.35rem}.timeline-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.2rem;display:flex}.timeline-header h3{font-size:1.1rem;font-weight:600}.timeline-header h3 a{color:inherit;text-decoration:none}.timeline-header h3 a:hover{color:#2563eb;text-decoration:underline}.timeline-date{color:#64748b;white-space:nowrap;font-size:.8rem;font-weight:500}.timeline-role{color:#2563eb;margin-bottom:.5rem;font-size:.9rem;font-weight:500}.timeline-desc{color:#64748b;margin-bottom:.65rem;font-size:.95rem;line-height:1.55}.project-tags{flex-wrap:wrap;gap:.4rem;display:flex}.project-tags span{color:#475569;background:#f1f5f9;border-radius:6px;padding:.2rem .6rem;font-size:.8rem}.footer{color:#64748b;padding:1.5rem 0 0;font-size:.85rem}@media (width<=900px){.layout{grid-template-columns:1fr;gap:2rem;padding:2rem 1.25rem}.sidebar{position:static}.projects-grid,.hs-discuss,.contact-grid{grid-template-columns:1fr}.cols-2{grid-template-columns:1fr;gap:2.75rem}}@media (width<=640px){.sidebar-name{font-size:1.4rem}.section-title{font-size:1.2rem}.timeline-header{flex-direction:column;align-items:flex-start}.project-icon{width:44px;height:44px}.skills-cat{grid-template-columns:1fr;gap:.4rem}.skills-cat-label{text-align:center;width:100%}}
