.icon{flex:none}.icon-fallback{background:var(--fg-subtle);border-radius:50%;flex:none;width:6px;height:6px}.avatar{object-fit:cover;border-radius:50%;margin-bottom:16px;display:block}.hero h1{margin-bottom:16px}.hero-name{color:var(--accent);text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:2px}.bio p{margin:0}.nowrap{white-space:nowrap}.chip--inline{vertical-align:1px;margin-right:2px;padding:0 8px}.actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.availability{color:var(--fg-muted);align-items:center;gap:8px;margin:14px 0 0;font-size:12px;display:flex}.status-dot{background:var(--success);width:6px;height:6px;box-shadow:0 0 0 3px var(--success-bg);border-radius:50%}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}@media (width<=640px){.project-grid{grid-template-columns:1fr}}.card__title{align-items:flex-start;gap:8px;display:flex}.card__title h3{flex:1;min-width:0}.card__emoji{font-size:14px;line-height:1.5}.card__title .badge{flex:none}.card__desc{color:var(--fg-muted);margin:8px 0 0;font-size:13px;line-height:1.6}.strengths{gap:16px;margin:16px 0 0;padding:0;list-style:none;display:grid}.strengths li{gap:12px;display:flex}.strengths__emoji{flex:none;font-size:16px;line-height:1.5}.strengths p{margin:2px 0 0;font-size:13px;line-height:1.6}.timeline{margin:16px 0 0;padding:0;list-style:none}.timeline li{border-top:1px solid var(--border);grid-template-columns:11rem minmax(0,1fr) auto;gap:4px 16px;padding:10px 0;font-size:13px;line-height:1.6;display:grid}.timeline li:last-child{border-bottom:1px solid var(--border)}.timeline__org{font-weight:600}.timeline__when{white-space:nowrap;text-align:right}@media (width<=640px){.timeline li{grid-template-columns:minmax(0,1fr) auto}.timeline__what{grid-area:2/1/auto/-1}}.cv-header{align-items:center;gap:1.25rem;display:flex}.cv-header img{object-fit:cover;border-radius:50%;flex:none}.cv-header p{margin:0}.cv-item{margin-bottom:1.5rem}.cv-row{flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;display:flex}.cv-item p{margin:.1rem 0 .5rem}.cv-item ul:not(.chips){max-width:65ch;margin:.25rem 0 0;padding-left:1.2rem}.cv-item li+li{margin-top:.3rem}.languages{flex-wrap:wrap;gap:.5rem 1.5rem;padding:0;list-style:none;display:flex}.cv-download{margin-top:20px}.cv-org{color:var(--fg);margin:0;font-weight:700}.cv-item h3.cv-title{font:600 17px/1.4 var(--font-sans);letter-spacing:-.01em;margin:.15rem 0 .5rem}.cv-note{font:400 14px var(--font-mono);color:var(--fg-muted);letter-spacing:0}.project-list{gap:1rem;margin-top:1.5rem;display:grid}.project-list .card:hover{border-color:var(--accent)}.project-list .card p{margin:.4rem 0 0}.project-body{margin-top:2rem}:root{--bg:#fff;--fg:#111;--fg-muted:#6b6b6b;--fg-subtle:#8a8a8a;--border:#e8e8e8;--surface:#f4f4f5;--surface-hover:#e9e9eb;--accent:#f59e0b;--accent-soft:#fef3c7;--success:#16a34a;--success-bg:#dcfce7;--success-fg:#15803d;--warning-bg:#ffedd5;--warning-fg:#c2410c;--font-sans:"Geist", "Inter", system-ui, sans-serif;--font-mono:"Geist Mono", "JetBrains Mono", ui-monospace, monospace;--content-width:680px;--gutter:16px;--section-gap:48px;--topbar-width:1200px;--radius-sm:6px;--radius-md:8px;--radius-pill:999px}@media (prefers-color-scheme:dark){:root{--bg:#0b0b0c;--fg:#ededed;--fg-muted:#a1a1a1;--fg-subtle:#7a7a7a;--border:#232326;--surface:#18181b;--surface-hover:#232327;--accent:#fbbf24;--accent-soft:#3a2a06;--success-bg:#052e16;--success-fg:#4ade80;--warning-bg:#431407;--warning-fg:#fb923c}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font:15px/1.7 var(--font-mono);-webkit-font-smoothing:antialiased;margin:0}#root{flex-direction:column;min-height:100dvh;display:flex}a{color:inherit;text-decoration:none;transition:color .15s,background-color .15s,border-color .15s}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.01em;text-wrap:balance;margin:0;line-height:1.25}h1{font-size:24px;font-weight:600}h2{font-size:18px;font-weight:600}h3{font-size:14px;font-weight:600;font-family:var(--font-mono)}main h1{margin-bottom:8px}main h2{margin:40px 0 16px}p{margin:0 0 12px}.topbar,footer{width:100%;max-width:var(--topbar-width);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin-inline:auto;padding:20px 24px;display:flex}.logo{font:700 16px var(--font-sans);letter-spacing:-.02em}.accent{color:var(--accent)}.topbar nav{gap:20px;font-size:13px;display:flex}.topbar nav a{color:var(--fg-muted)}.topbar nav a:hover,.topbar nav a[aria-current]{color:var(--fg)}main{width:100%;max-width:calc(var(--content-width) + 2 * var(--gutter));padding:64px var(--gutter) 96px;flex:1;margin-inline:auto}footer{color:var(--fg-muted);font-size:12px}.heart{color:#e11d48}.muted{color:var(--fg-muted)}.section{margin-top:var(--section-gap);padding-top:var(--section-gap);border-top:1px solid var(--border)}.section>h2:first-child{margin-top:0}.section-label{font:500 11px var(--font-sans);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-subtle);margin:0 0 12px;display:block}.chips{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.chip,.chips li{border-radius:var(--radius-sm);background:var(--surface);color:var(--fg);font:12px/1.6 var(--font-mono);align-items:center;gap:6px;padding:3px 10px;display:inline-flex}a.chip:hover{background:var(--surface-hover)}.card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);padding:14px 16px;display:block}a.card:hover{border-color:color-mix(in srgb, var(--fg) 25%, var(--border))}.badge{border-radius:var(--radius-pill);font:500 11px/1.6 var(--font-sans);background:var(--surface);color:var(--fg-muted);padding:1px 8px;display:inline-block}.badge--finished{background:var(--success-bg);color:var(--success-fg)}.badge--prototype{background:var(--warning-bg);color:var(--warning-fg)}.text-link{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;text-decoration-thickness:2px}.text-link:hover{background:var(--accent-soft)}.btn{border-radius:var(--radius-pill);font:500 13px var(--font-sans);border:1px solid #0000;align-items:center;gap:8px;padding:7px 14px;display:inline-flex}.btn--primary{background:var(--fg);color:var(--bg)}.btn--primary:hover{background:color-mix(in srgb, var(--fg) 85%, var(--bg))}.btn--secondary{background:var(--bg);color:var(--fg);border-color:var(--border)}.btn--secondary:hover{background:var(--surface)}
