*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;line-height:1.6;color:#1f2328;background-color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;display:flex;flex-direction:column}body::before{content:"";position:fixed;inset:0 0 auto 0;height:420px;background:linear-gradient(180deg, rgba(9,105,218,0.06) 0%, rgba(9,105,218,0) 100%);pointer-events:none;z-index:-1}a{color:#0969da;text-decoration:none;transition:color 150ms ease}a:hover{color:#0550ae;text-decoration:underline}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25;color:#1f2328}img,svg{max-width:100%;display:block}.main-content{flex:1 0 auto;width:100%;max-width:64rem;margin:0 auto;padding:2rem 1.5rem 4rem}@media (min-width: 768px){.main-content{padding:3rem 2rem 5rem}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.site-header{position:sticky;top:0;z-index:200;background-color:rgba(255,255,255,0.85);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid #e5e9ee}.header-inner{width:100%;max-width:64rem;margin:0 auto;height:3.5rem;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}@media (min-width: 768px){.header-inner{padding:0 2rem}}.header-brand{display:flex;align-items:center;gap:.75rem;min-width:0}.brand-link{display:flex;align-items:center;gap:.75rem;color:#1f2328}.brand-link:hover{text-decoration:none}.brand-link:hover .brand-name{color:#0969da}.brand-icon{display:flex;flex-shrink:0}.brand-icon svg{display:block;border-radius:.5rem}.brand-name{font-weight:700;font-size:1.125rem;letter-spacing:-0.01em;color:#1f2328;white-space:nowrap;transition:color 150ms ease}.header-nav{display:flex;align-items:center;gap:.5rem}.header-nav-link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:#57606a;border-radius:.5rem;transition:color 150ms ease,background-color 150ms ease}.header-nav-link:hover{color:#0969da;background-color:#eef1f5;text-decoration:none}.header-nav-link--icon{padding:.5rem;color:#6e7781}.header-nav-link--icon svg{display:block}.header-nav-link--icon:hover{color:#0969da}@media (max-width: 480px){.header-nav-link--text{display:none}}.hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.25rem;padding:2rem 0 3rem}@media (min-width: 768px){.hero{flex-direction:row;text-align:left;align-items:center;gap:2.5rem;padding:3rem 0 4rem}}.hero-portrait{flex-shrink:0;width:160px;height:160px;border-radius:9999px;object-fit:cover;border:4px solid #fff;box-shadow:0 12px 32px rgba(31,35,40,0.14),0 0 0 1px #d0d7de}@media (min-width: 768px){.hero-portrait{width:200px;height:200px}}.hero-body{display:flex;flex-direction:column;gap:.75rem;align-items:center}@media (min-width: 768px){.hero-body{align-items:flex-start}}.hero-name{font-size:2.25rem;font-weight:700;letter-spacing:-0.02em;line-height:1.1}@media (min-width: 768px){.hero-name{font-size:3rem}}.hero-role{font-size:1.125rem;font-weight:600;color:#0969da}@media (min-width: 768px){.hero-role{font-size:1.25rem}}.hero-bio{font-size:1rem;color:#57606a;line-height:1.75;max-width:44ch}.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:.5rem}@media (min-width: 768px){.hero-cta{justify-content:flex-start}}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;border-radius:.5rem;border:1px solid transparent;cursor:pointer;transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease,transform 150ms ease}.btn svg{display:block;width:16px;height:16px;flex-shrink:0}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background-color:#0969da;color:#ffffff}.btn-primary:hover{background-color:#0550ae;color:#ffffff}.btn-secondary{background-color:#fff;border-color:#d0d7de;color:#1f2328}.btn-secondary:hover{border-color:#0969da;color:#0969da;background-color:#f6f8fa}.section{margin-top:3rem}.section:first-of-type{margin-top:2rem}.section-heading{font-size:1.5rem;font-weight:700;letter-spacing:-0.01em;padding-bottom:.75rem;margin-bottom:1.5rem;border-bottom:1px solid #e5e9ee}.section-intro{font-size:1rem;color:#57606a;line-height:1.75;max-width:60ch;margin:-.75rem 0 1.5rem}.project-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}@media (min-width: 600px){.project-grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 960px){.project-grid{grid-template-columns:repeat(3, 1fr)}}.project-card{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;background-color:#fff;border:1px solid #d0d7de;border-radius:.75rem;box-shadow:0 1px 2px rgba(31,35,40,0.08);transition:border-color 150ms ease,box-shadow 150ms ease,transform 150ms ease}.project-card:hover{border-color:#218bff;box-shadow:0 4px 12px rgba(31,35,40,0.1);transform:translateY(-2px)}.project-title{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;color:#1f2328}.project-badge{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;padding:0.15em 0.5em;border-radius:9999px;border:1px solid rgba(154,103,0,0.4);color:#9a6700;background-color:rgba(154,103,0,0.1)}.project-desc{font-size:.875rem;color:#57606a;line-height:1.75;flex:1}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem}.project-tag{font-family:"JetBrains Mono","Fira Code","Cascadia Code",Consolas,monospace;font-size:.75rem;font-weight:500;padding:0.15em 0.55em;border-radius:.25rem;color:#6e7781;background-color:#eef1f5;border:1px solid #e5e9ee}.project-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.project-link{display:inline-flex;align-items:center;gap:0.35em;font-size:.75rem;font-weight:600;padding:0.3em 0.7em;border-radius:.25rem;color:#57606a;background-color:#f6f8fa;border:1px solid #d0d7de;transition:color 150ms ease,border-color 150ms ease,background-color 150ms ease}.project-link:hover{color:#0969da;border-color:#0969da;background-color:rgba(9,105,218,0.1);text-decoration:none}.project-link svg{display:block;width:13px;height:13px;flex-shrink:0}.site-footer{flex-shrink:0;background-color:#f6f8fa;border-top:1px solid #e5e9ee;margin-top:4rem}.footer-inner{width:100%;max-width:64rem;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem}@media (min-width: 768px){.footer-inner{padding:2rem}}.footer-brand-name{font-size:1.125rem;font-weight:700;color:#1f2328}.footer-tagline{font-size:.875rem;color:#57606a;margin-top:.25rem}.footer-social{display:flex;flex-wrap:wrap;gap:1rem}.footer-social-link{display:inline-flex;align-items:center;gap:0.4em;font-size:.875rem;font-weight:500;color:#57606a}.footer-social-link:hover{color:#0969da;text-decoration:none}.footer-social-icon{flex-shrink:0;display:block;opacity:0.9}.footer-copyright{width:100%;max-width:64rem;margin:0 auto;padding:1rem 1.5rem 2rem;border-top:1px solid #e5e9ee}@media (min-width: 768px){.footer-copyright{padding:1rem 2rem 2rem}}.footer-copyright p{font-size:.75rem;color:#6e7781;line-height:1.6;margin:0}.footer-copyright p.footer-disclaimer{margin-top:.5rem}
