:root{--bg: #0b0c10;--bg-elev: #131419;--bg-elev-2: #1a1c22;--border: #23252d;--text: #edeef0;--text-dim: #989ca7;--text-faint: #5a5e69;--accent: #5b8def;--accent-soft: rgba(91, 141, 239, .14);--status: #6fbe9c;--display: "Space Grotesk", "Inter", system-ui, sans-serif;--sans: "Inter", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--radius: 12px;--container: 1440px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.55}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft);color:var(--accent)}button{font-family:inherit;background:none;border:none;cursor:pointer;color:inherit}img{display:block;max-width:100%}.container{max-width:var(--container);margin:0 auto;padding:0 clamp(20px,4vw,56px)}.desktop-only{display:flex}.mobile-only{display:none}@media (max-width: 760px){.desktop-only{display:none}.mobile-only{display:flex}}.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:var(--accent);margin:0 0 10px;text-transform:uppercase}.section-title{font-family:var(--display);font-weight:600;font-size:clamp(26px,3.6vw,34px);margin:0 0 10px;letter-spacing:-.01em}.section-sub{color:var(--text-dim);max-width:56ch;margin:0 0 48px;font-size:15.5px}section{padding:96px 0;border-bottom:1px solid var(--border)}.btn{font-family:var(--sans);font-weight:600;font-size:14.5px;padding:13px 24px;border-radius:8px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:opacity .15s,border-color .15s,background .15s}.btn-sm{padding:9px 16px;font-size:13.5px}.btn-primary{background:var(--accent);color:#0b0c10}.btn-primary:hover{opacity:.88}.btn-outline{background:transparent;color:var(--text);border-color:var(--border)}.btn-outline:hover{border-color:var(--text-dim)}.btn-repo{background:transparent;color:var(--text-dim);border-color:var(--border)}.btn-repo:hover{border-color:var(--text-dim);color:var(--text)}.btn-repo svg{flex-shrink:0}.site-header{position:sticky;top:0;z-index:50;background:transparent;transition:background .2s,border-color .2s;border-bottom:1px solid transparent}.site-header.is-scrolled{background:#0e0f13d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom-color:var(--border)}.header-inner{display:flex;align-items:center;justify-content:space-between;padding-top:18px;padding-bottom:18px}.logo{font-family:var(--display);font-weight:700;font-size:19px}.logo-dot{color:var(--accent)}.nav-links{gap:32px}.nav-links button{font-size:14.5px;color:var(--text-dim);transition:color .15s}.nav-links button:hover{color:var(--text)}.menu-toggle{width:34px;height:34px;flex-direction:column;align-items:center;justify-content:center;gap:5px}.menu-toggle span{width:20px;height:2px;background:var(--text)}.mobile-menu{display:flex;flex-direction:column;gap:4px;padding:8px 24px 20px;border-bottom:1px solid var(--border);background:var(--bg)}.mobile-menu button:not(.btn){text-align:left;padding:10px 0;font-size:15px;color:var(--text-dim);border-bottom:1px solid var(--border)}.mobile-menu .btn{margin-top:12px}.hero{padding-top:88px;padding-bottom:88px}.hero-meta{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:13px;color:var(--text-dim);background:var(--bg-elev);border:1px solid var(--border);padding:7px 14px;border-radius:100px;margin-bottom:28px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--status);box-shadow:0 0 0 3px #6fbe9c2e}.hero-title{font-family:var(--display);font-weight:700;font-size:clamp(36px,6vw,60px);line-height:1.08;letter-spacing:-.02em;margin:0 0 14px;max-width:16ch}.hero-role{font-family:var(--mono);font-size:16px;color:var(--accent);margin:0 0 22px}.hero-lede{color:var(--text-dim);font-size:17.5px;max-width:58ch;margin:0 0 36px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.about-summary{font-size:18px;color:var(--text);max-width:82ch;margin:0 0 44px;line-height:1.7}.facts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.fact{background:var(--bg-elev);padding:18px 20px;display:flex;flex-direction:column;gap:6px;border-left:1px solid var(--border)}.fact:first-child{border-left:none}.fact-label{font-family:var(--mono);font-size:11.5px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}.fact-value{font-size:14.5px;font-weight:500;color:var(--text);word-break:break-word}a.fact-value:hover{color:var(--accent)}.stack-groups{display:flex;flex-direction:column;gap:44px}.stack-group-title{font-family:var(--display);font-size:16px;font-weight:600;color:var(--text);margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--border)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:12px}.tech-chip{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:18px 10px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;transition:transform .15s,border-color .15s}.tech-chip:hover{transform:translateY(-3px);border-color:var(--text-faint)}.tech-icon{height:28px;display:flex;align-items:center;justify-content:center}.tech-fallback{font-family:var(--mono);font-size:12px;color:var(--text-dim);background:var(--bg-elev-2);border-radius:6px;padding:6px 8px}.tech-name{font-size:12.5px;color:var(--text-dim)}.stack-more{margin:16px 0 0;font-size:13px;color:var(--text-faint)}.projects-filter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 36px}.filter-chip{font-family:var(--mono);font-size:12.5px;color:var(--text-dim);background:var(--bg-elev);border:1px solid var(--border);padding:8px 16px;border-radius:100px;transition:border-color .15s,color .15s,background .15s}.filter-chip:hover{border-color:var(--text-faint);color:var(--text)}.filter-chip.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.filter-empty{color:var(--text-faint);font-size:14.5px;padding:32px 0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}.project-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.project-cover{aspect-ratio:16 / 9;background:linear-gradient(135deg,var(--bg-elev-2),var(--bg-elev));display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--border)}.project-cover img{width:100%;height:100%;object-fit:cover}.project-cover-fallback{font-family:var(--display);font-size:34px;font-weight:700;color:var(--text-faint)}.project-content{padding:30px;display:flex;flex-direction:column;flex:1}.project-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.project-head h3{font-family:var(--display);font-size:21px;margin:0}.project-year{font-family:var(--mono);font-size:12.5px;color:var(--accent)}.project-type{font-family:var(--mono);font-size:12px;color:var(--text-faint);margin:6px 0 14px}.project-tagline{font-size:15px;color:var(--text-dim);margin:0 0 16px}.project-bullets{margin:0 0 18px;padding-left:18px;font-size:14px;color:var(--text-dim)}.project-bullets li{margin-bottom:8px}.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.project-tags span,.project-tags button{font-family:var(--mono);font-size:11.5px;color:var(--text-dim);background:var(--bg-elev-2);border:1px solid var(--border);padding:4px 10px;border-radius:5px}.project-tags button{cursor:pointer;transition:border-color .15s,color .15s,background .15s}.project-tags button:hover{border-color:var(--text-faint);color:var(--text)}.project-tags button.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.project-actions{margin-top:auto;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.project-private{font-family:var(--mono);font-size:12.5px;color:var(--text-faint)}.edu-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px}@media (max-width: 780px){.edu-layout{grid-template-columns:1fr}}.edu-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:16px}.edu-school{font-weight:700;font-size:16px;margin:0 0 4px}.edu-period{font-family:var(--mono);font-size:12.5px;color:var(--accent);margin:0 0 8px}.edu-degree{color:var(--text-dim);font-size:14.5px;margin:0}.lang-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0 0;font-size:14px}.lang-name{font-weight:600}.lang-level{color:var(--text-dim);text-align:right}.cert-list{display:flex;flex-direction:column}.cert-item{padding:14px 0;border-bottom:1px solid var(--border)}.cert-item:first-child{padding-top:0}.cert-item:last-child{border-bottom:none}.cert-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.cert-name{font-weight:600;font-size:14.5px}.cert-year{font-family:var(--mono);font-size:12px;color:var(--text-faint);white-space:nowrap}.cert-issuer{font-size:13px;color:var(--text-faint);margin:2px 0 0}.cert-detail{font-size:13px;color:var(--text-dim);margin:4px 0 0}.contact{border-bottom:none}.contact-actions{display:flex;gap:12px;flex-wrap:wrap}footer{padding:28px 0 40px;font-size:13px;color:var(--text-faint)}
