.doc-theme-toggle.svelte-1epj2wm{position:fixed;top:1rem;right:1rem;z-index:50;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg-alt);color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.doc-theme-toggle.svelte-1epj2wm:hover{background:var(--color-bg);color:var(--color-text)}.doc-theme-toggle.svelte-1epj2wm:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.doc-page.svelte-1epj2wm{max-width:740px;margin:0 auto;padding:3.5rem 1.5rem 6rem;font-size:15px;line-height:1.65;color:var(--color-text);font-family:var(--font-sans)}.doc-header.svelte-1epj2wm{margin-bottom:1.75rem}.doc-logo.svelte-1epj2wm{position:fixed;top:1rem;left:1rem;z-index:50;display:flex;align-items:center;justify-content:center;color:var(--color-text)}.doc-logo.svelte-1epj2wm svg:where(.svelte-1epj2wm){width:1.75rem;height:1.75rem}.doc-logo.svelte-1epj2wm path:where(.svelte-1epj2wm){fill:currentColor;transition:fill .2s ease}.doc-logo.svelte-1epj2wm:hover path:where(.svelte-1epj2wm),.doc-logo.svelte-1epj2wm:focus-visible path:where(.svelte-1epj2wm){fill:var(--color-accent)}.doc-name.svelte-1epj2wm{font-family:var(--font-display);font-size:2.125rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.2rem;color:var(--color-text)}.doc-subtitle.svelte-1epj2wm{color:var(--color-text-muted);margin-bottom:.2rem;font-size:.9375rem}.doc-subtitle.svelte-1epj2wm a:where(.svelte-1epj2wm){color:var(--color-text);text-decoration:underline;text-underline-offset:2px}.doc-subtitle.svelte-1epj2wm a:where(.svelte-1epj2wm):hover{color:var(--color-accent)}.doc-links.svelte-1epj2wm{color:var(--color-text-muted);font-size:.875rem}.doc-links.svelte-1epj2wm a:where(.svelte-1epj2wm){color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px;transition:color .1s}.doc-links.svelte-1epj2wm a:where(.svelte-1epj2wm):hover{color:var(--color-text)}.doc-available-wrap.svelte-1epj2wm{white-space:nowrap}.doc-available-sep.svelte-1epj2wm{margin-right:.3em}.doc-available.svelte-1epj2wm{color:#16a34a;font-size:.8125rem}:root.dark .doc-available.svelte-1epj2wm{color:#4ade80}.doc-tagline.svelte-1epj2wm{color:var(--color-text);font-size:1.1875rem;font-weight:500;line-height:1.4;letter-spacing:-.01em;max-width:60ch;margin-bottom:.6rem}.doc-bio.svelte-1epj2wm{color:var(--color-text);max-width:66ch;margin-bottom:0}.doc-bio.svelte-1epj2wm p:where(.svelte-1epj2wm)+p:where(.svelte-1epj2wm){margin-top:.6rem}.doc-section.svelte-1epj2wm{margin-top:2rem}.doc-section-heading.svelte-1epj2wm{font-family:var(--font-display);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding-bottom:.375rem;margin-bottom:.875rem}.doc-entry.svelte-1epj2wm{margin-bottom:.25rem;padding:.5rem;margin-left:-.5rem;margin-right:-.5rem;border-radius:6px;transition:background .15s;outline:none}.doc-entry.svelte-1epj2wm:has(.doc-entry-toggle:where(.svelte-1epj2wm):focus-visible){background:var(--color-bg-alt)}@media (hover: hover){.doc-entry.svelte-1epj2wm:hover{background:var(--color-bg-alt)}.doc-entry--expandable.svelte-1epj2wm:hover .doc-chevron:where(.svelte-1epj2wm){transform:rotate(180deg);opacity:.7}.doc-entry--expandable.svelte-1epj2wm:hover .doc-bullets-wrap:where(.svelte-1epj2wm){grid-template-rows:1fr;margin-top:.375rem}}.doc-entry-toggle.svelte-1epj2wm{display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:4px;background:none;color:inherit;cursor:pointer}.doc-entry-toggle.svelte-1epj2wm:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.doc-entry--expandable.svelte-1epj2wm{cursor:pointer}.doc-entry--pinned.svelte-1epj2wm{background:var(--color-bg-alt)}.doc-entry-header.svelte-1epj2wm{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:nowrap}.doc-entry-left.svelte-1epj2wm{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;min-width:0}.doc-entry-right.svelte-1epj2wm{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.doc-icon.svelte-1epj2wm{box-sizing:content-box;width:14px;height:14px;padding:2px;-o-object-fit:contain;object-fit:contain;flex-shrink:0;background:#fff;border-radius:3px}.doc-org.svelte-1epj2wm{font-weight:600;color:var(--color-text)}a.doc-org.svelte-1epj2wm{text-decoration:underline;text-underline-offset:2px;transition:color .1s}a.doc-org.svelte-1epj2wm:hover{color:var(--color-accent)}.doc-sep.svelte-1epj2wm{color:var(--color-text-muted)}.doc-role.svelte-1epj2wm{color:var(--color-text)}.doc-period.svelte-1epj2wm{color:var(--color-text-muted);font-size:.8125rem;white-space:nowrap}.doc-chevron.svelte-1epj2wm{color:var(--color-text-muted);opacity:.45;transition:transform .25s ease,opacity .15s;flex-shrink:0}.doc-entry.svelte-1epj2wm:has(.doc-entry-toggle:where(.svelte-1epj2wm):focus-visible) .doc-chevron:where(.svelte-1epj2wm),.doc-entry--pinned.svelte-1epj2wm .doc-chevron:where(.svelte-1epj2wm){transform:rotate(180deg);opacity:.7}.doc-bullets-wrap.svelte-1epj2wm{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease,margin-top .28s ease;margin-top:0}.doc-entry.svelte-1epj2wm:has(.doc-entry-toggle:where(.svelte-1epj2wm):focus-visible) .doc-bullets-wrap:where(.svelte-1epj2wm),.doc-entry--pinned.svelte-1epj2wm .doc-bullets-wrap:where(.svelte-1epj2wm){grid-template-rows:1fr;margin-top:.375rem}.doc-bullets.svelte-1epj2wm{min-height:0;overflow:hidden;padding:0;list-style:none;margin:0}.doc-bullets.svelte-1epj2wm li:where(.svelte-1epj2wm){color:var(--color-text-muted);font-size:.9375rem;padding-left:1.125rem;position:relative;margin-bottom:.15rem}.doc-bullets.svelte-1epj2wm li:where(.svelte-1epj2wm):before{content:"·";position:absolute;left:.25rem;color:var(--color-text-muted)}.doc-bullets--always.svelte-1epj2wm{display:block;margin-top:.375rem}.doc-entry--peek.svelte-1epj2wm{animation:svelte-1epj2wm-doc-peek-row 1.6s ease-in-out 1s 1}.doc-entry--peek.svelte-1epj2wm .doc-bullets-wrap:where(.svelte-1epj2wm){animation:svelte-1epj2wm-doc-peek-grid 1.6s linear 1s 1}.doc-entry--peek.svelte-1epj2wm .doc-bullets:where(.svelte-1epj2wm){animation:svelte-1epj2wm-doc-peek-line 1.6s ease-in-out 1s 1}.doc-entry--peek.svelte-1epj2wm .doc-chevron:where(.svelte-1epj2wm){animation:svelte-1epj2wm-doc-peek-chevron 1.6s ease-in-out 1s 1}@keyframes svelte-1epj2wm-doc-peek-row{0%,to{background-color:transparent}25%,70%{background-color:var(--color-bg-alt)}}@keyframes svelte-1epj2wm-doc-peek-grid{0%,to{grid-template-rows:0fr;margin-top:0}1%,99%{grid-template-rows:1fr}30%,65%{margin-top:.375rem}}@keyframes svelte-1epj2wm-doc-peek-line{0%,to{max-height:0}30%,65%{max-height:1.6rem}}@keyframes svelte-1epj2wm-doc-peek-chevron{0%,to{transform:rotate(0);opacity:.45}30%,65%{transform:rotate(180deg);opacity:.7}}@media (prefers-reduced-motion: reduce){.doc-entry--peek.svelte-1epj2wm,.doc-entry--peek.svelte-1epj2wm .doc-bullets-wrap:where(.svelte-1epj2wm),.doc-entry--peek.svelte-1epj2wm .doc-bullets:where(.svelte-1epj2wm),.doc-entry--peek.svelte-1epj2wm .doc-chevron:where(.svelte-1epj2wm){animation:none}}.doc-work-heading.svelte-1epj2wm{min-width:0}.doc-work.svelte-1epj2wm .doc-entry-right:where(.svelte-1epj2wm){padding-top:.35rem}.doc-work-title.svelte-1epj2wm{font-family:var(--font-display);font-size:inherit;font-weight:600;color:var(--color-text);margin:0;line-height:1.4}.doc-work-title.svelte-1epj2wm a:where(.svelte-1epj2wm){color:inherit;text-decoration:underline;text-underline-offset:2px}.doc-work-title.svelte-1epj2wm a:where(.svelte-1epj2wm):hover{color:var(--color-accent)}.doc-work-context.svelte-1epj2wm{color:var(--color-text-muted);font-size:.8125rem;margin:.05rem 0 0}.doc-work-details.svelte-1epj2wm{min-height:0;overflow:hidden}.doc-work-summary.svelte-1epj2wm{color:var(--color-text-muted);font-size:.9375rem;max-width:66ch;margin:0}.doc-work-tech.svelte-1epj2wm{color:var(--color-text-muted);font-size:.8125rem;margin:.35rem 0 0;opacity:.85}.doc-skills.svelte-1epj2wm{display:flex;flex-direction:column;gap:.15rem}.doc-skill-row.svelte-1epj2wm{display:flex;gap:.75rem;font-size:.9375rem;flex-wrap:wrap;padding:.25rem .5rem;margin-left:-.5rem;border-radius:4px;transition:background .15s}.doc-skill-row.svelte-1epj2wm:hover{background:var(--color-bg-alt)}.doc-skill-cat.svelte-1epj2wm{color:var(--color-text);font-weight:500;width:10.5rem;flex-shrink:0}.doc-skill-list.svelte-1epj2wm{color:var(--color-text-muted);flex:1}.doc-strip-outer.svelte-1epj2wm{width:100vw;position:relative;left:50%;transform:translate(-50%);overflow:hidden;mask-image:linear-gradient(to right,transparent 0%,black 5%,black 95%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,black 5%,black 95%,transparent 100%);padding:.75rem 0 1rem;cursor:ew-resize}.doc-strip-track.svelte-1epj2wm{display:flex;gap:14px;width:-moz-max-content;width:max-content;will-change:transform;padding:4px 0}.doc-strip-card.svelte-1epj2wm{position:relative;width:280px;aspect-ratio:2 / 1;flex-shrink:0;overflow:hidden;border-radius:8px;border:1px solid var(--color-border);display:block;background:var(--color-bg-alt);cursor:pointer}.doc-repo-grid.svelte-1epj2wm{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.doc-repo-grid.svelte-1epj2wm .doc-strip-card:where(.svelte-1epj2wm){width:auto}.doc-strip-img.svelte-1epj2wm{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease;display:block}.doc-strip-card.svelte-1epj2wm:hover .doc-strip-img:where(.svelte-1epj2wm){transform:scale(1.06)}.doc-strip-overlay.svelte-1epj2wm{position:absolute;inset:0;background:#000000b8;opacity:0;transition:opacity .25s ease;display:flex;flex-direction:column;justify-content:flex-end;padding:.875rem 1rem;pointer-events:none}.doc-strip-card.svelte-1epj2wm:hover .doc-strip-overlay:where(.svelte-1epj2wm){opacity:1}.doc-strip-info.svelte-1epj2wm{display:flex;flex-direction:column;gap:.25rem}.doc-strip-name.svelte-1epj2wm{font-size:.875rem;font-weight:600;color:#fff;line-height:1.2}.doc-strip-desc.svelte-1epj2wm{font-size:.75rem;color:#ffffffb3;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.doc-strip-meta.svelte-1epj2wm{display:flex;gap:.625rem;font-size:.7rem;color:#ffffff80;margin-top:.125rem}.doc-contact-intro.svelte-1epj2wm{color:var(--color-text-muted);font-size:.9375rem;max-width:60ch;margin-bottom:1rem}.doc-contact-intro.svelte-1epj2wm a:where(.svelte-1epj2wm){color:var(--color-text);text-decoration:underline;text-underline-offset:2px}.doc-contact-intro.svelte-1epj2wm a:where(.svelte-1epj2wm):hover{color:var(--color-accent)}.doc-contact-status.svelte-1epj2wm{font-size:.875rem;padding:.625rem .75rem;border-radius:6px;border:1px solid var(--color-border);margin-bottom:1rem}.doc-contact-status--ok.svelte-1epj2wm{color:var(--color-text);background:var(--color-bg-alt)}.doc-contact-status--err.svelte-1epj2wm{color:#b91c1c;border-color:#b91c1c;background:transparent}:root.dark .doc-contact-status--err.svelte-1epj2wm{color:#f87171;border-color:#f87171}.doc-contact-again.svelte-1epj2wm{margin-left:.5rem;color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px;background:none;border:none;padding:0;font:inherit;cursor:pointer}.doc-contact-again.svelte-1epj2wm:hover{color:var(--color-text)}.doc-contact-form.svelte-1epj2wm{display:flex;flex-direction:column;gap:.875rem;max-width:540px}.doc-hp.svelte-1epj2wm{position:absolute;left:-9999px}.doc-field-row.svelte-1epj2wm{display:flex;gap:.875rem}.doc-field.svelte-1epj2wm{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.doc-field.svelte-1epj2wm label:where(.svelte-1epj2wm){font-size:.75rem;font-weight:500;color:var(--color-text-muted)}.doc-field.svelte-1epj2wm input:where(.svelte-1epj2wm),.doc-field.svelte-1epj2wm textarea:where(.svelte-1epj2wm){font-family:inherit;font-size:.875rem;color:var(--color-text);background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .625rem;width:100%;transition:border-color .15s,box-shadow .15s}.doc-field.svelte-1epj2wm textarea:where(.svelte-1epj2wm){resize:vertical;min-height:96px}.doc-field.svelte-1epj2wm input:where(.svelte-1epj2wm):focus,.doc-field.svelte-1epj2wm textarea:where(.svelte-1epj2wm):focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-accent) 25%,transparent)}.doc-field.svelte-1epj2wm input[aria-invalid=true]:where(.svelte-1epj2wm),.doc-field.svelte-1epj2wm textarea[aria-invalid=true]:where(.svelte-1epj2wm){border-color:#b91c1c}.doc-field-foot.svelte-1epj2wm{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.doc-field-error.svelte-1epj2wm{color:#b91c1c;font-size:.75rem}:root.dark .doc-field-error.svelte-1epj2wm{color:#f87171}.doc-field-count.svelte-1epj2wm{color:var(--color-text-muted);font-size:.7rem;margin-left:auto}.doc-contact-submit.svelte-1epj2wm{align-self:flex-start;font-family:inherit;font-size:.875rem;font-weight:500;color:var(--color-bg);background:var(--color-text);border:1px solid var(--color-text);border-radius:6px;padding:.5rem 1.1rem;cursor:pointer;transition:opacity .15s}.doc-contact-submit.svelte-1epj2wm:hover{opacity:.85}.doc-contact-submit.svelte-1epj2wm:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.doc-contact-submit.svelte-1epj2wm:disabled{opacity:.55;cursor:not-allowed}.doc-footer.svelte-1epj2wm{margin-top:3.5rem;padding-top:1rem;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.75rem}.doc-footer.svelte-1epj2wm p:where(.svelte-1epj2wm){margin:0}@media (max-width: 600px){.doc-page.svelte-1epj2wm{padding:4rem 1.25rem}.doc-logo.svelte-1epj2wm,.doc-theme-toggle.svelte-1epj2wm{position:absolute}.doc-entry-left.svelte-1epj2wm{row-gap:.05rem}.doc-available-wrap.svelte-1epj2wm{display:block}.doc-available-sep.svelte-1epj2wm{display:none}.doc-entry-left.svelte-1epj2wm .doc-sep:where(.svelte-1epj2wm){display:none}.doc-role.svelte-1epj2wm{flex-basis:100%;font-size:.875rem;color:var(--color-text-muted)}.doc-skill-cat.svelte-1epj2wm{width:100%}.doc-skill-row.svelte-1epj2wm{flex-direction:column;gap:.1rem}.doc-field-row.svelte-1epj2wm{flex-direction:column}}
