.badge.svelte-vqhepg{background-color:#1d3040;color:#f2eee2;border:1px solid transparent;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;cursor:default}.badge.svelte-vqhepg:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 4px 14px -6px var(--accent-soft)}.badge.dark-mode.svelte-vqhepg{background-color:#f2eee2;color:#1d3040}.exp-card.svelte-sigu5e{padding:.75rem 0;border-bottom:1px solid var(--border);transition:background-color .2s ease}.exp-card.svelte-sigu5e:last-child{border-bottom:none}.exp-card.svelte-sigu5e:hover{background-color:var(--card-hover)}.dates.svelte-sigu5e{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;opacity:.5;margin-bottom:.35rem}.body.svelte-sigu5e{width:100%}@media (min-width: 900px){.exp-card.svelte-sigu5e{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:2rem}.dates.svelte-sigu5e{margin-bottom:0;padding-top:.2rem}}.note-link.svelte-sigu5e{color:var(--accent);text-decoration:none;white-space:nowrap}.note-link.svelte-sigu5e:hover{text-decoration:underline}.social.svelte-eiu6no{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem;text-decoration:none;color:inherit;opacity:.75;transition:opacity .2s ease,color .2s ease}.social.svelte-eiu6no span:where(.svelte-eiu6no){border-bottom:1px solid transparent;transition:border-color .2s ease}.social.svelte-eiu6no:hover span:where(.svelte-eiu6no){border-color:currentColor}.social.svelte-eiu6no:hover{opacity:1;color:var(--accent)}.grid-cards.svelte-13aniff{display:grid;gap:2.5rem 2rem}@media (min-width: 900px){.grid-cards.svelte-13aniff{grid-template-columns:repeat(2,minmax(0,1fr))}}.showcase-item.svelte-13aniff{display:flex;flex-direction:column;gap:1rem}.placeholder.svelte-13aniff{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:1rem;font-family:var(--font-display);font-size:1.75rem;font-weight:700;text-align:center;color:var(--accent);background:var(--accent-soft)}.title.svelte-13aniff{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;text-decoration:none;color:inherit;transition:color .2s ease}.title.svelte-13aniff .link-icon{font-size:.75em;opacity:.5;transition:opacity .2s ease,transform .2s ease}.title.svelte-13aniff:hover{color:var(--accent)}.title.svelte-13aniff:hover .link-icon{opacity:1;transform:translate(2px,-2px)}.case-study.svelte-13aniff{color:var(--accent);text-decoration:none;white-space:nowrap}.case-study.svelte-13aniff:hover{text-decoration:underline}.stack.svelte-13aniff{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;opacity:.55;margin-top:.35rem;text-transform:uppercase}.preview.svelte-13aniff{aspect-ratio:12 / 7;overflow:hidden;border-radius:12px;border:1px solid var(--border)}.preview.svelte-13aniff img:where(.svelte-13aniff),.preview.svelte-13aniff video:where(.svelte-13aniff){display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;transition:transform .4s ease}.preview.svelte-13aniff:hover img:where(.svelte-13aniff),.preview.svelte-13aniff:hover video:where(.svelte-13aniff){transform:scale(1.02)}.hero.svelte-189sikd{padding:1rem 0 2rem}.name.svelte-189sikd{font-family:var(--font-display);font-size:clamp(3.5rem,9vw,5.5rem);font-weight:700;font-variation-settings:"opsz" 144;line-height:1;letter-spacing:-.03em;margin:0}.subtitle.svelte-189sikd{font-family:var(--font-mono);font-size:clamp(.85rem,1.4vw,.95rem);margin:.75rem 0 0;letter-spacing:.18em;text-transform:uppercase;opacity:.7}.name.svelte-189sikd span:where(.svelte-189sikd),.subtitle.svelte-189sikd span:where(.svelte-189sikd){display:inline-block;will-change:opacity}@media (prefers-reduced-motion: reduce){.name.svelte-189sikd span:where(.svelte-189sikd),.subtitle.svelte-189sikd span:where(.svelte-189sikd){opacity:1!important;transition:none!important}}.side-nav.svelte-1eoh2jy{position:fixed;top:50%;left:2rem;transform:translateY(-50%);z-index:10;display:none}@media (min-width: 1400px){.side-nav.svelte-1eoh2jy{display:block}}ul.svelte-1eoh2jy{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}a.svelte-1eoh2jy{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit;opacity:.45;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;transition:opacity .2s ease,color .2s ease}a.svelte-1eoh2jy:hover,a.active.svelte-1eoh2jy{opacity:1;color:var(--accent)}.dash.svelte-1eoh2jy{display:inline-block;width:1.5rem;height:1px;background:currentColor;transition:width .2s ease}a.active.svelte-1eoh2jy .dash:where(.svelte-1eoh2jy),a.svelte-1eoh2jy:hover .dash:where(.svelte-1eoh2jy){width:2.5rem}.contact-wrap.svelte-yv0d8m{margin-top:.5rem}.lede.svelte-yv0d8m{opacity:.7;margin:0 0 1rem}.channels.svelte-yv0d8m{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.channels.svelte-yv0d8m a:where(.svelte-yv0d8m){display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;margin:0 -.75rem;border:1px solid transparent;border-radius:8px;text-decoration:none;color:inherit;transition:border-color .2s ease,color .2s ease,background-color .2s ease}.channels.svelte-yv0d8m a:where(.svelte-yv0d8m) .arrow{margin-left:auto;opacity:0;transform:translate(-4px);transition:opacity .2s ease,transform .2s ease}.channels.svelte-yv0d8m a:where(.svelte-yv0d8m):hover{color:var(--accent);border-color:var(--border);background-color:var(--accent-soft)}.channels.svelte-yv0d8m a:where(.svelte-yv0d8m):hover .arrow{opacity:1;transform:translate(0)}.rail-body.svelte-6nptm0{min-width:0}.ai-list.svelte-6nptm0{display:grid;gap:.75rem;padding-left:1.1rem;list-style:disc}.ai-list.svelte-6nptm0 strong:where(.svelte-6nptm0){font-weight:600}.notes.svelte-6nptm0{display:grid;gap:.25rem}.notes.svelte-6nptm0 a:where(.svelte-6nptm0){display:grid;gap:.25rem;padding:.75rem;margin:0 -.75rem;border-radius:8px;text-decoration:none;color:inherit}.notes.svelte-6nptm0 a:where(.svelte-6nptm0):hover{background:var(--card-hover)}.note-title.svelte-6nptm0{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.notes.svelte-6nptm0 a:where(.svelte-6nptm0):hover .note-title:where(.svelte-6nptm0){color:var(--accent)}.note-blurb.svelte-6nptm0{opacity:.7;line-height:1.6}@media (min-width: 900px){.rail.svelte-6nptm0{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:2rem;padding-top:1.25rem;border-top:1px solid var(--border)}.rail.svelte-6nptm0 .section-header{position:sticky;top:1.5rem;align-self:start;border-bottom:none;padding-bottom:0}}
