.timeline-item.svelte-x8a3kw{margin-bottom:1rem;position:relative}.timeline-item.svelte-x8a3kw:last-child{margin-bottom:0}.timeline-marker.svelte-x8a3kw{background:var(--color-bg);border:1.5px solid var(--color-marker);z-index:1;border-radius:50%;width:7px;height:7px;transition:background .2s;position:absolute;top:.65rem;left:-1.625rem}.timeline-item.svelte-x8a3kw:hover .timeline-marker:where(.svelte-x8a3kw){background:var(--color-marker)}.timeline-item.is-note.svelte-x8a3kw .timeline-marker:where(.svelte-x8a3kw){opacity:.5;border-width:1px;width:5px;height:5px;top:.55rem}.timeline-content.svelte-x8a3kw{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:.625rem;transition:border-color .25s;overflow:hidden}.timeline-content.svelte-x8a3kw:hover{border-color:var(--color-border)}.timeline-item.svelte-x8a3kw:not(.is-hobby):not(.is-note) .timeline-content:where(.svelte-x8a3kw){border-color:var(--color-project-border)}.is-hobby.svelte-x8a3kw .timeline-content:where(.svelte-x8a3kw){background:var(--color-surface);border:1px dashed var(--color-border)}.is-hobby.svelte-x8a3kw .timeline-header:where(.svelte-x8a3kw){padding:.875rem 2.75rem .875rem 1.25rem}.is-hobby.svelte-x8a3kw .timeline-date:where(.svelte-x8a3kw){font-size:.6875rem}.is-hobby.svelte-x8a3kw .timeline-title:where(.svelte-x8a3kw){color:var(--color-text);font-size:.9375rem;font-weight:500}.is-hobby.svelte-x8a3kw .role-tag:where(.svelte-x8a3kw){border-color:var(--color-border);opacity:.7;background:0 0;padding:.1rem .4rem;font-size:.6875rem}.is-hobby.svelte-x8a3kw .expand-icon:where(.svelte-x8a3kw){opacity:.4;width:1.25rem;height:1.25rem}.is-hobby.svelte-x8a3kw .expand-icon:where(.svelte-x8a3kw):hover{opacity:.8;background:0 0}.is-hobby.svelte-x8a3kw .timeline-body:where(.svelte-x8a3kw){border-top:none;padding:0 1.25rem .875rem;font-size:.8125rem;animation:none}.is-hobby.svelte-x8a3kw .meta-row:where(.svelte-x8a3kw){margin-top:.625rem}.is-hobby.svelte-x8a3kw .meta-label:where(.svelte-x8a3kw){font-size:.6875rem}.is-hobby.svelte-x8a3kw .project-description:where(.svelte-x8a3kw){color:var(--color-text);margin-top:.75rem;padding-top:0;font-size:.8125rem;line-height:1.6}.is-hobby.svelte-x8a3kw .project-description:where(.svelte-x8a3kw) p:last-child{margin-bottom:0}.is-note.svelte-x8a3kw .timeline-content:where(.svelte-x8a3kw){background:var(--color-surface);border:1px dashed var(--color-border)}.is-note.svelte-x8a3kw .timeline-header:where(.svelte-x8a3kw){padding:.625rem 2.75rem .625rem 1.25rem}.is-note.svelte-x8a3kw .timeline-date:where(.svelte-x8a3kw){font-size:.625rem}.is-note.svelte-x8a3kw .timeline-title:where(.svelte-x8a3kw){color:var(--color-text);font-size:.8125rem;font-weight:500}.is-note.svelte-x8a3kw .expand-icon:where(.svelte-x8a3kw){opacity:.3;width:1.25rem;height:1.25rem}.is-note.svelte-x8a3kw .timeline-body:where(.svelte-x8a3kw){color:var(--color-text);padding:.75rem 1.25rem .875rem;font-size:.75rem;line-height:1.4;animation:.2s svelte-x8a3kw-slideDown}.is-note.svelte-x8a3kw .timeline-body:where(.svelte-x8a3kw) p{margin-bottom:.75rem}.is-note.svelte-x8a3kw .timeline-body:where(.svelte-x8a3kw) p:last-child{margin-bottom:0}.timeline-header.svelte-x8a3kw{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:none;flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 2.75rem 1rem 1.25rem;display:flex;position:relative}.timeline-header-left.svelte-x8a3kw{flex-direction:column;flex:1;align-items:flex-start;gap:.25rem;min-width:0;display:flex}.timeline-logo.svelte-x8a3kw{object-fit:contain;filter:brightness(0)saturate();flex-shrink:0;width:auto;max-width:12rem;height:2.5rem}html.dark .timeline-logo.svelte-x8a3kw{filter:brightness(0)saturate()invert()}.timeline-date.svelte-x8a3kw{font-family:var(--font-mono);color:var(--color-muted);white-space:nowrap;letter-spacing:.02em;font-size:.75rem;font-weight:400}.timeline-title.svelte-x8a3kw{color:var(--color-text);letter-spacing:-.01em;font-size:1.1rem;font-weight:600;line-height:1.3}.timeline-roles.svelte-x8a3kw{flex-wrap:wrap;gap:.3rem;display:flex}.role-tag.svelte-x8a3kw{color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:.25rem;padding:.15rem .5rem;font-size:.75rem;font-weight:500;line-height:1.4}.expand-icon.svelte-x8a3kw{color:var(--color-muted);border-radius:.375rem;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;transition:transform .25s,color .2s;display:flex;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.expand-icon.svelte-x8a3kw:hover{background:var(--color-hover)}.expand-icon.expanded.svelte-x8a3kw{color:var(--color-text);transform:translateY(-50%)rotate(45deg)}.timeline-body.svelte-x8a3kw{border-top:1px solid var(--color-card-border);padding:0 1.25rem 1.25rem;font-size:.9375rem;animation:.25s svelte-x8a3kw-slideDown}@keyframes svelte-x8a3kw-slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.meta-row.svelte-x8a3kw{flex-wrap:wrap;align-items:baseline;gap:.375rem .25rem;margin-top:.875rem;line-height:1.5;display:flex}.meta-label.svelte-x8a3kw{letter-spacing:.03em;text-transform:uppercase;color:var(--color-muted);font-size:.75rem;font-weight:600}.meta-row.svelte-x8a3kw a:where(.svelte-x8a3kw){color:var(--color-text);border-bottom:1px solid var(--color-border)}.meta-row.svelte-x8a3kw a:where(.svelte-x8a3kw):hover{border-bottom-color:var(--color-text)}.project-description.svelte-x8a3kw{margin-top:.75rem;padding-top:0;line-height:1.7}.project-description.svelte-x8a3kw p:last-child{margin-bottom:0}@media (width<=640px){.timeline-marker.svelte-x8a3kw{width:6px;height:6px;left:-1.375rem}.timeline-header.svelte-x8a3kw{gap:.625rem;padding:.875rem 2.5rem .875rem 1rem}.timeline-title.svelte-x8a3kw{font-size:1rem;line-height:1.25}.timeline-logo.svelte-x8a3kw{display:none}.role-tag.svelte-x8a3kw{padding:.1rem .4rem;font-size:.6875rem}.is-hobby.svelte-x8a3kw .timeline-header:where(.svelte-x8a3kw),.is-note.svelte-x8a3kw .timeline-header:where(.svelte-x8a3kw){padding-left:1rem;padding-right:2.5rem}.timeline-body.svelte-x8a3kw{padding:0 1rem 1rem}.is-hobby.svelte-x8a3kw .timeline-body:where(.svelte-x8a3kw){padding:0 1rem .75rem}.is-note.svelte-x8a3kw .timeline-body:where(.svelte-x8a3kw){padding:.625rem 1rem .75rem}.expand-icon.svelte-x8a3kw{right:.75rem}.meta-row.svelte-x8a3kw{flex-direction:column;gap:.125rem}}.stack-section.svelte-15dr9xo{margin-bottom:4rem}.section-title.svelte-15dr9xo{letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);margin-bottom:1.25rem;font-size:.875rem;font-weight:600}.stack-table.svelte-15dr9xo{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:.625rem;overflow:hidden}.stack-header.svelte-15dr9xo{background:var(--color-surface);border-bottom:1px solid var(--color-border);color:var(--color-muted);grid-template-columns:140px 1fr;gap:1rem;padding:.875rem 1.25rem;font-size:.8125rem;font-weight:500;display:grid}.stack-header-tools.svelte-15dr9xo{padding-left:.5rem}.stack-row.svelte-15dr9xo{border-bottom:1px solid var(--color-border);grid-template-columns:140px 1fr;align-items:start;gap:1rem;padding:.875rem 1.25rem;display:grid}.stack-row.svelte-15dr9xo:last-child{border-bottom:none}.stack-category.svelte-15dr9xo{color:var(--color-muted);padding-top:.15rem;font-size:.9375rem;font-weight:500}.stack-items.svelte-15dr9xo{flex-wrap:wrap;gap:.5rem;display:flex}.stack-item.svelte-15dr9xo{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:.375rem;padding:.25rem .6rem;font-size:.8125rem;font-weight:400;line-height:1.4}@media (width<=640px){.stack-header.svelte-15dr9xo{display:none}.stack-row.svelte-15dr9xo{grid-template-columns:1fr;gap:.5rem}.stack-category.svelte-15dr9xo{font-size:.875rem}}.companies-section.svelte-t3jurz{margin-bottom:4rem}.section-title.svelte-t3jurz{letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);margin-bottom:1.25rem;font-size:.875rem;font-weight:600}.company-list.svelte-t3jurz{flex-direction:column;display:flex}.company-list.svelte-t3jurz li:where(.svelte-t3jurz){border-bottom:1px solid var(--color-card-border);justify-content:space-between;align-items:baseline;gap:1rem;padding:.875rem 0;display:flex}.company-list.svelte-t3jurz li:where(.svelte-t3jurz):last-child{border-bottom:none}.company-list.svelte-t3jurz a:where(.svelte-t3jurz){color:var(--color-text);border-bottom:none;font-weight:500}.company-list.svelte-t3jurz a:where(.svelte-t3jurz):hover{border-bottom:1px solid var(--color-text)}.company-list.svelte-t3jurz .period:where(.svelte-t3jurz){font-family:var(--font-mono);color:var(--color-muted);white-space:nowrap;font-size:.8125rem}@media (width<=640px){.company-list.svelte-t3jurz li:where(.svelte-t3jurz){flex-direction:column;align-items:flex-start;gap:.25rem}}.links-section.svelte-4ndzwf{margin-bottom:4rem}.section-title.svelte-4ndzwf{letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);margin-bottom:1.5rem;font-size:.875rem;font-weight:600}.link-group.svelte-4ndzwf{margin-bottom:1.75rem}.link-group.svelte-4ndzwf:last-child{margin-bottom:0}.link-group.svelte-4ndzwf h3:where(.svelte-4ndzwf){letter-spacing:.03em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.875rem;font-size:.8125rem;font-weight:600}.link-grid.svelte-4ndzwf{flex-wrap:wrap;gap:.5rem;display:flex}.link-item.svelte-4ndzwf{background:var(--color-card-bg);border:1px solid var(--color-card-border);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;border-radius:.5rem;max-width:100%;padding:.4rem .85rem;font-size:.8125rem;transition:all .2s;display:inline-block;overflow:hidden}.link-item.svelte-4ndzwf:hover{background:var(--color-hover);border-color:var(--color-border)}.hero.svelte-1uha8ag{text-align:center;border-bottom:1px solid var(--color-border);margin-bottom:2rem;padding-bottom:1.5rem}.hero-content.svelte-1uha8ag{flex-direction:column;align-items:center;gap:.5rem;display:flex}.logotype.svelte-1uha8ag{font-family:var(--font-mono);letter-spacing:-.04em;color:var(--color-text);margin-bottom:.75rem;font-size:3rem;font-weight:500}.logotype.svelte-1uha8ag .accent:where(.svelte-1uha8ag){color:var(--color-accent);font-weight:600}.logotype.svelte-1uha8ag .bracket:where(.svelte-1uha8ag){color:var(--color-muted);font-weight:300}.name.svelte-1uha8ag{color:var(--color-text);letter-spacing:-.01em;font-size:1.125rem;font-weight:500}.tagline.svelte-1uha8ag{color:var(--color-muted);font-size:.9375rem;font-weight:400}.bio-section.svelte-1uha8ag{margin-bottom:2rem}.bio-body.svelte-1uha8ag{color:var(--color-text);font-size:1rem;line-height:1.75}.bio-body.svelte-1uha8ag p:last-child{margin-bottom:0}.projects-section.svelte-1uha8ag{margin-bottom:4rem}.section-header.svelte-1uha8ag{align-items:center;gap:.75rem;margin-bottom:2rem;display:flex}.section-title.svelte-1uha8ag{letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);font-size:.875rem;font-weight:600}.section-count.svelte-1uha8ag{color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);font-size:.75rem;font-weight:500;font-family:var(--font-mono);border-radius:999px;padding:.15rem .5rem}.timeline.svelte-1uha8ag{padding-left:1.75rem;position:relative}.timeline.svelte-1uha8ag:before{content:"";background:var(--color-timeline-line);width:1px;position:absolute;top:.4rem;bottom:.4rem;left:.25rem}footer.svelte-1uha8ag{color:var(--color-muted);border-top:1px solid var(--color-border);font-size:.8125rem;font-family:var(--font-mono);justify-content:center;align-items:center;gap:.5rem;padding-top:2rem;display:flex}.footer-brand.svelte-1uha8ag{color:var(--color-text);font-weight:500}.footer-sep.svelte-1uha8ag{color:var(--color-border)}@media (width<=640px){.hero.svelte-1uha8ag{margin-bottom:3rem;padding-bottom:2rem}.logotype.svelte-1uha8ag{font-size:2rem}.timeline.svelte-1uha8ag{padding-left:1.5rem}}
