.site-footer.svelte-1xanmip{display:flex;min-height:100px;align-items:center;justify-content:space-between;gap:16px 24px;border-top:1px solid var(--line);color:var(--ink);font-size:.78rem}p.svelte-1xanmip{margin:0}.footer-links.svelte-1xanmip{display:flex;flex-wrap:wrap;gap:8px 24px}a.svelte-1xanmip{display:inline-flex;min-height:44px;align-items:center;font-weight:700;text-decoration:underline;text-underline-offset:3px;transition:color .16s ease}a.svelte-1xanmip:hover,a.svelte-1xanmip:focus-visible{color:var(--blue)}@media(max-width:640px){.site-footer.svelte-1xanmip{align-items:flex-start;flex-direction:column;justify-content:center;min-height:0;padding-block:24px}}.site-header.svelte-6dnk4d{display:flex;min-height:88px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.brand.svelte-6dnk4d{display:inline-flex;min-height:44px;align-items:center;font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.16em;text-decoration:none;text-transform:uppercase;white-space:nowrap}.nav.svelte-6dnk4d{display:flex;align-items:center;gap:30px}.nav-link.svelte-6dnk4d{display:inline-flex;min-height:44px;align-items:center;color:var(--ink);font-size:.88rem;font-weight:650;text-decoration:none;transition:color .16s ease}.nav-text.svelte-6dnk4d{border-bottom:2px solid transparent;line-height:1.2;transition:border-color .18s ease}.nav-link.svelte-6dnk4d:hover,.nav-link.svelte-6dnk4d:focus-visible{color:var(--blue)}.nav-link.svelte-6dnk4d:hover .nav-text:where(.svelte-6dnk4d),.nav-link.svelte-6dnk4d:focus-visible .nav-text:where(.svelte-6dnk4d),.is-current.svelte-6dnk4d .nav-text:where(.svelte-6dnk4d){border-bottom-color:var(--blue)}@media(max-width:640px){.site-header.svelte-6dnk4d{min-height:72px}.brand.svelte-6dnk4d{letter-spacing:.12em}.nav.svelte-6dnk4d{gap:16px}.nav-link.svelte-6dnk4d{font-size:.78rem}}@media(max-width:360px){.writing-link.svelte-6dnk4d{display:none}}.site.svelte-q6nd41{display:flex;min-height:100vh;flex-direction:column;background:var(--paper);color:var(--ink)}main.svelte-q6nd41{flex:1}.page.svelte-1mlv1iz{padding-block:2rem 4.5rem}code.svelte-cdexkf{padding:.1em .35em;background:var(--paper-deep);font-family:var(--mono);font-size:.92em}a.svelte-cdexkf{color:var(--blue-dark);text-decoration:underline;text-underline-offset:3px;transition:color .16s ease}a.svelte-cdexkf:hover,a.svelte-cdexkf:focus-visible{color:var(--blue)}blockquote.svelte-1e2vmuv{margin:2rem 0;padding-left:1.25rem;border-left:2px solid var(--blue);color:var(--ink);font-family:var(--display);font-size:clamp(1.45rem,2vw,1.75rem);font-style:italic;font-weight:600;font-synthesis:none;letter-spacing:-.015em;line-height:1.35;text-wrap:balance}.button.svelte-8vh7bl{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:0 20px;border:1px solid var(--ink);background-color:transparent;background-image:linear-gradient(90deg,var(--blue),var(--blue));background-position:left center;background-repeat:no-repeat;background-size:0 100%;color:var(--ink);font-family:var(--sans);font-size:.88rem;font-weight:700;line-height:1;text-align:center;text-decoration:none;cursor:pointer;transition:background-size .24s ease,border-color .24s ease,color .24s ease,transform .16s ease}.primary.svelte-8vh7bl{background-color:var(--ink);color:var(--white)}.button.svelte-8vh7bl:hover,.button.svelte-8vh7bl:focus-visible{background-size:100% 100%;border-color:var(--blue);color:var(--white)}.button.svelte-8vh7bl:hover{transform:translateY(-2px)}.button.svelte-8vh7bl:focus-visible{outline:3px solid var(--blue);outline-offset:4px}@media(prefers-reduced-motion:reduce){.button.svelte-8vh7bl:hover{transform:none}}.portrait-wrap.svelte-nj9o5n{position:relative;align-self:center;width:min(100%,calc(var(--photo-width) + 18px));max-width:100%;margin-inline:auto;padding:14px 18px 22px 0;isolation:isolate}.portrait-wrap.svelte-nj9o5n:before{position:absolute;z-index:0;top:0;right:4px;width:46%;height:38%;border-top:2px solid var(--blue);border-right:2px solid var(--blue);content:""}.portrait-wrap.svelte-nj9o5n:after{position:absolute;z-index:-1;right:0;bottom:0;width:76px;height:76px;background-image:radial-gradient(circle,var(--blue) 0 1.4px,transparent 1.7px);background-size:9px 9px;content:""}.portrait.svelte-nj9o5n{position:relative;z-index:1;width:100%;height:auto;object-fit:cover;object-position:center;border:1px solid var(--line)}.project.svelte-2o3tkz{display:grid;grid-template-rows:subgrid;grid-row:span 3;min-width:0;border-top:3px solid var(--ink)}.project-heading.svelte-2o3tkz{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px 24px;min-width:0;padding:20px 0 24px}.project-meta.svelte-2o3tkz{margin-bottom:8px;color:var(--blue-dark);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.12em;line-height:1.4;text-transform:uppercase}h3.svelte-2o3tkz{color:var(--ink);font-family:var(--display);font-size:clamp(1.9rem,2.8vw,2.85rem);font-weight:600;font-synthesis:none;letter-spacing:-.02em;line-height:1.08}.project-link.svelte-2o3tkz{display:inline-flex;min-height:44px;align-items:center;border-bottom:2px solid var(--blue);font-size:.88rem;font-weight:700;line-height:1.3;text-decoration:none;white-space:nowrap;transition:color .16s ease,border-color .16s ease}.project-link.svelte-2o3tkz:hover,.project-link.svelte-2o3tkz:focus-visible{color:var(--blue);border-bottom-color:var(--blue-dark)}.project-visual.svelte-2o3tkz{display:grid;min-height:360px;height:100%;place-items:center;padding:clamp(16px,2.4vw,28px);overflow:hidden}.field-orange.svelte-2o3tkz{background:linear-gradient(145deg,rgba(255,255,255,.2),transparent 45%),var(--orange)}.field-teal.svelte-2o3tkz{background:linear-gradient(135deg,rgba(255,255,255,.1),transparent 42%),var(--teal)}.project-shot.svelte-2o3tkz{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border:1px solid rgba(16,27,32,.28);background:var(--panel);transition:transform .22s ease}.project.svelte-2o3tkz:has(.project-link:where(.svelte-2o3tkz):hover) .project-shot:where(.svelte-2o3tkz),.project.svelte-2o3tkz:has(.project-link:where(.svelte-2o3tkz):focus-visible) .project-shot:where(.svelte-2o3tkz){transform:scale(1.02)}.project-summary.svelte-2o3tkz{height:100%;padding:24px;border:1px solid var(--line);border-top:0}.fact-label.svelte-2o3tkz{display:block;margin-bottom:10px;color:var(--blue-dark);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.project-summary.svelte-2o3tkz p:where(.svelte-2o3tkz){margin:0;color:var(--ink-soft);line-height:1.6;text-wrap:pretty}@media(prefers-reduced-motion:reduce){.project.svelte-2o3tkz:has(.project-link:where(.svelte-2o3tkz):hover) .project-shot:where(.svelte-2o3tkz),.project.svelte-2o3tkz:has(.project-link:where(.svelte-2o3tkz):focus-visible) .project-shot:where(.svelte-2o3tkz){transform:none}}@media(max-width:900px){.project.svelte-2o3tkz{display:grid;grid-template-rows:auto 360px auto;grid-row:auto;height:auto}}@media(max-width:640px){.project-heading.svelte-2o3tkz{grid-template-columns:1fr}.project-link.svelte-2o3tkz{justify-self:start}.project-visual.svelte-2o3tkz{padding:18px 12px}}.employer.svelte-k92ye3{display:block;padding:24px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;transition:background-color .18s ease}.employer.svelte-k92ye3:hover,.employer.svelte-k92ye3:focus-visible{background-image:linear-gradient(90deg,rgba(24,89,230,.08),transparent 42%)}h2.svelte-k92ye3{margin:0;color:var(--ink);font-size:clamp(1.5rem,2.1vw,2rem);font-weight:600;letter-spacing:-.03em;line-height:1.15;transition:color .16s ease}.employer.svelte-k92ye3:hover h2:where(.svelte-k92ye3),.employer.svelte-k92ye3:focus-visible h2:where(.svelte-k92ye3){color:var(--blue)}.positions.svelte-k92ye3{margin:16px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.position.svelte-k92ye3{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line)}.position-title.svelte-k92ye3{color:var(--ink);font-size:1rem;font-weight:650;line-height:1.35}.position-date.svelte-k92ye3{color:var(--blue-dark);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.06em;line-height:1.35;text-align:right;text-transform:uppercase;white-space:nowrap}.description.svelte-k92ye3{margin:16px 0 0;max-width:var(--measure);color:var(--ink-soft);line-height:1.6;text-wrap:pretty}@media(max-width:640px){.position.svelte-k92ye3{grid-template-columns:1fr;gap:4px}.position-date.svelte-k92ye3{text-align:left}}.role.svelte-1b0x3vv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}a.role.svelte-1b0x3vv{transition:background-color .18s ease}a.role.svelte-1b0x3vv:hover,a.role.svelte-1b0x3vv:focus-visible{background-image:linear-gradient(90deg,rgba(24,89,230,.08),transparent 42%)}.role-copy.svelte-1b0x3vv{min-width:0}h2.svelte-1b0x3vv,h3.svelte-1b0x3vv{margin-bottom:8px;color:var(--ink);font-size:clamp(1.35rem,1.8vw,1.7rem);font-weight:600;letter-spacing:-.028em;line-height:1.2;transition:color .16s ease}a.role.svelte-1b0x3vv:hover h2:where(.svelte-1b0x3vv),a.role.svelte-1b0x3vv:hover h3:where(.svelte-1b0x3vv),a.role.svelte-1b0x3vv:focus-visible h2:where(.svelte-1b0x3vv),a.role.svelte-1b0x3vv:focus-visible h3:where(.svelte-1b0x3vv){color:var(--blue)}p.svelte-1b0x3vv{margin:0;color:var(--ink-soft);line-height:1.55}.summary.svelte-1b0x3vv{color:var(--ink);font-size:clamp(1.05rem,1.6vw,1.15rem);line-height:1.6}.role-date.svelte-1b0x3vv{padding-top:8px;color:var(--blue-dark);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.08em;line-height:1.4;text-transform:uppercase;white-space:nowrap}@media(max-width:640px){.role.svelte-1b0x3vv{grid-template-columns:1fr;gap:4px}.role-date.svelte-1b0x3vv{grid-row:1;padding-top:0}}.note.svelte-1v2j1d3{display:grid;grid-template-columns:210px minmax(220px,1fr) minmax(220px,1fr);align-items:start;gap:32px;padding:24px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;transition:background-color .18s ease}.note.svelte-1v2j1d3:hover,.note.svelte-1v2j1d3:focus-visible{background-image:linear-gradient(90deg,rgba(24,89,230,.08),transparent 42%)}.note-meta.svelte-1v2j1d3{margin:5px 0 0;color:var(--blue-dark);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.1em;line-height:1.45;text-transform:uppercase}h2.svelte-1v2j1d3,h3.svelte-1v2j1d3{margin:0;color:var(--ink);font-size:clamp(1.4rem,2vw,1.85rem);font-weight:600;letter-spacing:-.03em;line-height:1.15;transition:color .16s ease}.note.svelte-1v2j1d3:hover h2:where(.svelte-1v2j1d3),.note.svelte-1v2j1d3:hover h3:where(.svelte-1v2j1d3),.note.svelte-1v2j1d3:focus-visible h2:where(.svelte-1v2j1d3),.note.svelte-1v2j1d3:focus-visible h3:where(.svelte-1v2j1d3){color:var(--blue)}.note-description.svelte-1v2j1d3{margin:0;max-width:48ch;color:var(--ink-soft);line-height:1.6;text-wrap:pretty}@media(max-width:900px){.note.svelte-1v2j1d3{grid-template-columns:170px minmax(0,1fr);gap:20px 32px}.note-description.svelte-1v2j1d3{grid-column:2}}@media(max-width:640px){.note.svelte-1v2j1d3{grid-template-columns:1fr;gap:12px}.note-description.svelte-1v2j1d3{grid-column:auto}}.about-layout.svelte-1n2lu9n{display:grid;gap:40px;align-items:start}.about-copy.svelte-1n2lu9n{max-width:62ch;color:var(--ink-soft);font-size:1.0625rem;line-height:1.65;text-wrap:pretty}.about-copy.svelte-1n2lu9n p:where(.svelte-1n2lu9n)+p:where(.svelte-1n2lu9n){margin-top:16px}.personal-photos.svelte-1n2lu9n{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:28px}.personal-photos.svelte-1n2lu9n img:where(.svelte-1n2lu9n){width:100%;height:auto;object-fit:cover;border:1px solid var(--line)}.personal-photos.svelte-1n2lu9n p:where(.svelte-1n2lu9n){margin-top:8px;color:var(--ink-soft);font-size:.88rem;line-height:1.4}h3.svelte-1n2lu9n{margin-bottom:22px;color:var(--blue-dark);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.12em;line-height:1.4;text-transform:uppercase}dl.svelte-1n2lu9n{display:grid;gap:22px}dt.svelte-1n2lu9n{margin-bottom:6px;color:var(--blue-dark);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.12em;line-height:1.4;text-transform:uppercase}ul.svelte-1n2lu9n{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none}li.svelte-1n2lu9n{color:var(--ink);font-family:var(--display);font-size:clamp(1.35rem,2vw,1.8rem);font-weight:600;font-synthesis:none;letter-spacing:-.02em;line-height:1.2}li.svelte-1n2lu9n:not(:last-child):after{content:" · ";color:var(--blue)}
