:root{--bg:#0d1117;--surface:#12171f;--surface-2:#161b22;--border:#2a313c;--border-subtle:#1e242d;--border-strong:#f0f6fc;--text:#e6edf3;--text-strong:#f0f6fc;--muted:#8b949e;--accent:#3fb950;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--wrap:1080px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);color-scheme:dark}body{border-top:2px solid var(--border-strong);background:radial-gradient(900px 380px at 50% -60px, #f0f6fc0f, transparent 70%), var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6}::selection{background:var(--text-strong);color:var(--bg)}a{color:var(--text-strong);text-underline-offset:3px;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--text-strong);outline-offset:3px}img{max-width:100%}.wrap{width:min(100% - 48px, var(--wrap));margin-inline:auto}.skip-link{z-index:100;background:var(--text-strong);color:var(--bg);font-family:var(--mono);padding:8px 12px;font-size:11px;font-weight:600;text-decoration:none;position:absolute;top:0;left:-9999px}.skip-link:focus{top:12px;left:12px}.site-header{border-bottom:1px solid var(--border);background:#0d1117eb}.header-inner{justify-content:space-between;align-items:center;gap:24px;padding-block:14px;display:flex}.brand{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.brand:hover{text-decoration:none}.brand img{object-fit:cover;border:1px solid var(--border-strong);background:var(--bg);width:36px;height:36px;display:block}.brand-copy{display:block}.brand-title{letter-spacing:-.4px;text-transform:lowercase;color:var(--text-strong);font-size:17px;font-weight:800;line-height:1;display:block}.brand-subtitle{font-family:var(--mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:10px;line-height:1;display:block}.header-right{align-items:center;gap:28px;display:flex}.nav{gap:18px;display:flex}.nav a,.lang a{font-family:var(--mono);letter-spacing:.8px;text-transform:uppercase;color:var(--muted);font-size:10.5px;text-decoration:none}.nav a:hover,.lang a:hover{color:var(--text-strong);text-decoration:none}.lang{font-family:var(--mono);letter-spacing:.8px;align-items:center;gap:6px;font-size:10.5px;display:flex}.lang span{color:var(--border)}.lang a[aria-current=true]{border-bottom:2px solid var(--text-strong);color:var(--text-strong);padding-bottom:2px}.hero{grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);align-items:start;gap:clamp(32px,5vw,64px);padding-block:clamp(56px,9vw,96px) clamp(48px,7vw,72px);display:grid}.eyebrow{font-family:var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);margin:0 0 18px;font-size:10.5px;font-weight:600}.hero h1{letter-spacing:-.045em;max-width:12ch;color:var(--text-strong);text-wrap:balance;margin:0;font-size:clamp(2.5rem,6.4vw,4.4rem);font-weight:800;line-height:.98}.lead{max-width:58ch;color:var(--muted);margin:24px 0 0;font-size:1.02rem;line-height:1.65}.actions{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.btn{border:1px solid var(--border);background:var(--surface-2);height:40px;color:var(--text);font-family:var(--mono);letter-spacing:.3px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:11.5px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--text-strong);background:#21262d;text-decoration:none}.btn.primary{background:var(--text-strong);border-color:var(--text-strong);color:var(--bg)}.btn.primary:hover{background:#fff}.btn .arrow{font-size:13px}.pills{flex-wrap:wrap;gap:6px;margin:34px 0 0;padding:0;list-style:none;display:flex}.pills li{border:1px solid var(--border);background:var(--surface);font-family:var(--mono);letter-spacing:.8px;text-transform:uppercase;color:var(--muted);padding:4px 8px;font-size:10px}.pills li:before{content:"";vertical-align:1px;background:var(--accent);width:5px;height:5px;margin-right:6px;display:inline-block}.profile-card{border:1px solid var(--border);border-top:2px solid var(--border-strong);background:var(--surface);padding:20px}.profile-head{border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding-bottom:18px;display:flex}.profile-head img{object-fit:cover;border:1px solid var(--border-strong);background:var(--bg);width:64px;height:64px;display:block}.profile-name{letter-spacing:-.3px;color:var(--text-strong);font-size:18px;font-weight:800;line-height:1.1}.profile-role{font-family:var(--mono);letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);margin-top:5px;font-size:10px;display:block}.specs{margin:0;padding:6px 0 0}.specs>div{border-bottom:1px solid var(--border-subtle);justify-content:space-between;gap:16px;padding:9px 0;display:flex}.specs>div:last-child{border-bottom:0}.specs dt{font-family:var(--mono);letter-spacing:1px;color:var(--muted);font-size:10px}.status-value:before{content:"";vertical-align:1px;background:var(--accent);width:6px;height:6px;margin-right:6px;display:inline-block}.specs dd{font-family:var(--mono);text-align:right;color:var(--text);margin:0;font-size:11px}.profile-link{border-top:1px solid var(--border);font-family:var(--mono);letter-spacing:.2px;color:var(--text-strong);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:14px;font-size:10.5px;text-decoration:none;display:flex}.profile-link:hover{text-decoration:underline}.section{border-top:1px solid var(--border-subtle);padding-block:clamp(48px,7vw,72px);scroll-margin-top:20px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:10px 32px;margin-bottom:28px;display:flex}.section-head .eyebrow{margin:0 0 8px}.section h2{letter-spacing:-.03em;color:var(--text-strong);margin:0;font-size:clamp(1.45rem,3vw,1.9rem);font-weight:800;line-height:1.1}.section-hint{max-width:52ch;color:var(--muted);margin:0;font-size:.86rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.project-card{border:1px solid var(--border);border-top:2px solid var(--border-strong);background:var(--surface);color:inherit;flex-direction:column;padding:20px;text-decoration:none;transition:background-color .15s,border-color .15s;display:flex}.project-card:hover{border-color:var(--border-strong);background:var(--surface-2);text-decoration:none}.project-card.flagship{background:linear-gradient(135deg, #f0f6fc0d, transparent 60%), var(--surface);grid-column:1/-1;padding:clamp(24px,4vw,36px)}.card-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-index{font-family:var(--mono);letter-spacing:1px;color:var(--muted);font-size:10px}.card-lang{font-family:var(--mono);letter-spacing:.8px;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;font-size:10px;display:inline-flex}.lang-dot{background:var(--dot,var(--muted));width:7px;height:7px;display:inline-block}.card-title{letter-spacing:-.02em;overflow-wrap:anywhere;color:var(--text-strong);margin:0 0 8px;font-size:1.15rem;font-weight:750;line-height:1.2}.project-card.flagship .card-title{margin-bottom:10px;font-size:clamp(1.6rem,3.4vw,2.2rem)}.project-card.flagship .card-desc{max-width:70ch;font-size:.98rem}.card-desc{color:var(--muted);flex-grow:1;margin:0;font-size:.9rem;line-height:1.6}.card-tags{flex-wrap:wrap;gap:5px;margin:20px 0 0;padding:0;list-style:none;display:flex}.card-tags li{border:1px solid var(--border-subtle);background:var(--bg);font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;color:var(--muted);padding:3px 6px;font-size:9.5px}.card-foot{border-top:1px solid var(--border-subtle);font-family:var(--mono);color:var(--muted);justify-content:space-between;align-items:center;gap:14px;margin-top:18px;padding-top:12px;font-size:10px;display:flex}.card-foot .meta{gap:12px;display:flex}.card-foot .open{letter-spacing:.4px;text-transform:uppercase;color:var(--text-strong);font-weight:600}.project-card:hover .open{text-decoration:underline}.project-group+.project-group{margin-top:40px}.group-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding-bottom:8px;display:flex}.group-label{font-family:var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin:0;font-size:10px;font-weight:600}.group-link{font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;color:var(--text-strong);font-size:10px;font-weight:600;text-decoration:none}.group-link:hover{text-decoration:underline}.mini-list{border:1px solid var(--border);background:var(--surface);margin:0;padding:0;list-style:none}.mini-list li{border-bottom:1px solid var(--border-subtle)}.mini-list li:last-child{border-bottom:0}.mini-project{color:inherit;grid-template-columns:34px minmax(0,1fr) 110px 90px 16px;align-items:center;gap:14px;padding:13px 16px;text-decoration:none;transition:background-color .15s;display:grid}.mini-project:hover{background:var(--surface-2);text-decoration:none}.mini-index{font-family:var(--mono);letter-spacing:.5px;color:var(--muted);font-size:9.5px}.mini-body{flex-direction:column;gap:1px;min-width:0;display:flex}.mini-title{color:var(--text-strong);font-size:.92rem;font-weight:700;line-height:1.3}.mini-desc{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.8rem;line-height:1.45;overflow:hidden}.mini-lang{font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;font-size:9.5px;display:inline-flex}.mini-updated{font-family:var(--mono);text-align:right;color:var(--muted);font-size:9.5px}.mini-arrow{text-align:right;color:var(--text-strong);font-size:12px}.mini-project:hover .mini-title{text-decoration:underline}.about-grid{grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);gap:clamp(28px,5vw,64px);display:grid}.prose p{max-width:62ch;color:var(--muted);margin:0 0 16px;font-size:.95rem;line-height:1.7}.prose p:last-child{margin-bottom:0}.stack-label{font-family:var(--mono);letter-spacing:1.4px;color:var(--muted);margin:0 0 12px;font-size:10px;font-weight:600}.chips{flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--border);background:var(--surface);font-family:var(--mono);letter-spacing:.4px;color:var(--text);padding:5px 8px;font-size:10px}.contact-box{border:1px solid var(--border);border-top:2px solid var(--border-strong);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;padding:clamp(26px,4vw,42px);display:flex}.contact-copy .eyebrow{margin-bottom:10px}.contact-copy h2{letter-spacing:-.035em;margin:0 0 10px;font-size:clamp(1.6rem,3.4vw,2.2rem)}.contact-copy p{max-width:52ch;color:var(--muted);margin:0;font-size:.92rem}.site-footer{border-top:1px solid var(--border);margin-top:clamp(40px,6vw,64px)}.footer-inner{font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;padding-block:22px;font-size:10px;display:flex}.footer-inner p{margin:0}.footer-links{align-items:center;gap:16px;display:flex}.footer-inner a{color:var(--muted);text-decoration:none}.footer-inner a:hover,.footer-inner .footer-top{color:var(--text-strong)}.error-page{text-align:center;place-items:center;min-height:60vh;padding-block:80px;display:grid}.error-code{font-family:var(--mono);letter-spacing:-.06em;color:var(--text-strong);margin:0;font-size:clamp(4rem,16vw,8rem);font-weight:800;line-height:1}.error-page h1{letter-spacing:-.03em;color:var(--text-strong);margin:10px 0 8px;font-size:clamp(1.4rem,3vw,1.9rem)}.error-page p{color:var(--muted);margin:0 0 24px}@media (width<=820px){.hero{grid-template-columns:1fr;gap:36px;padding-block:56px 48px}.profile-card{max-width:520px}.project-grid,.about-grid{grid-template-columns:1fr}.about-grid{gap:32px}.nav{gap:14px}}@media (width<=640px){.wrap{width:min(100% - 32px, var(--wrap))}.header-inner{flex-wrap:wrap;gap:12px 18px}.header-right{justify-content:space-between;width:100%}.hero h1{max-width:14ch}.contact-box{align-items:flex-start}.contact-box .btn{width:100%}.mini-project{grid-template-columns:26px minmax(0,1fr) 16px;gap:10px;padding:12px 14px}.mini-lang,.mini-updated{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
