.detect[data-astro-cid-5le2ezw5]{margin:0;display:grid;position:relative}.detect[data-astro-cid-5le2ezw5]>img,.detect__svg[data-astro-cid-5le2ezw5]{grid-area:1/1}.detect[data-astro-cid-5le2ezw5] img{width:100%}.detect__svg[data-astro-cid-5le2ezw5]{width:100%;height:100%;overflow:visible}.obj__mask[data-astro-cid-5le2ezw5]{fill:color-mix(in oklch, var(--signal) 18%, transparent);stroke:var(--signal);stroke-linejoin:round}.obj__box[data-astro-cid-5le2ezw5]{fill:none;stroke:var(--signal)}.obj--alt[data-astro-cid-5le2ezw5] .obj__mask[data-astro-cid-5le2ezw5]{fill:color-mix(in oklch, var(--cyan) 20%, transparent);stroke:var(--cyan)}.obj--alt[data-astro-cid-5le2ezw5] .obj__box[data-astro-cid-5le2ezw5]{stroke:var(--cyan)}.pose[data-astro-cid-5le2ezw5] line[data-astro-cid-5le2ezw5]{stroke:var(--cyan);stroke-linecap:round}.pose[data-astro-cid-5le2ezw5] circle[data-astro-cid-5le2ezw5]{fill:var(--signal)}.tag[data-astro-cid-5le2ezw5]{background:var(--signal);color:var(--on-signal);font:600 var(--t-label)/1 var(--font-mono);white-space:nowrap;padding:3px 6px;position:absolute;transform:translateY(-100%)}.tag[data-astro-cid-5le2ezw5] b[data-astro-cid-5le2ezw5]{opacity:.75;font-weight:500}.tag--alt[data-astro-cid-5le2ezw5]{background:var(--cyan)}.detect--below[data-astro-cid-5le2ezw5] .detect__hud[data-astro-cid-5le2ezw5]{max-width:none;margin-top:var(--s-2);color:var(--muted);background:0 0;padding:0;position:static}.detect__hud[data-astro-cid-5le2ezw5]{left:var(--s-2);bottom:var(--s-2);max-width:calc(100% - 2 * var(--s-2));padding:var(--s-1) var(--s-2);color:var(--text-2);background:oklch(0% 0 0/.7);line-height:1.5;position:absolute}.detect--animate[data-astro-cid-5le2ezw5] [data-astro-cid-5le2ezw5]:is(.obj,.pose,.tag){animation:lock var(--dur-box) var(--ease) both;animation-delay:calc(.35s + var(--i) * 3 * var(--stagger))}@keyframes lock{0%{opacity:0}to{opacity:1}}.hero[data-astro-cid-ge2uvauf]{padding-block:var(--s-8);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);display:grid}h1[data-astro-cid-ge2uvauf]{margin-top:var(--s-4);font-size:var(--t-name);letter-spacing:-.045em;line-height:.95}.hero__dot[data-astro-cid-ge2uvauf]{color:var(--signal)}.hero__lede[data-astro-cid-ge2uvauf]{margin-top:var(--s-5);max-width:34ch;font-size:var(--t-20);color:var(--text-2);line-height:1.45}.hero__links[data-astro-cid-ge2uvauf]{gap:var(--s-1) var(--s-5);margin-top:var(--s-6);flex-wrap:wrap;display:flex}.hero__links[data-astro-cid-ge2uvauf] a[data-astro-cid-ge2uvauf]{padding-block:var(--s-2);color:var(--text);border-bottom:1px solid var(--border);display:inline-block}.hero__links[data-astro-cid-ge2uvauf] a[data-astro-cid-ge2uvauf]:hover{color:var(--signal);border-color:var(--signal)}.hero__photo[data-astro-cid-ge2uvauf]{justify-self:end;width:100%;max-width:min(30rem,80svh - 8.8rem)}.pv__switch[data-astro-cid-ge2uvauf]{margin:0 0 var(--s-3);border:0;padding:0;display:flex}.pv__opt[data-astro-cid-ge2uvauf]{display:inline-flex;position:relative}.pv__opt[data-astro-cid-ge2uvauf] input[data-astro-cid-ge2uvauf]{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pv__opt[data-astro-cid-ge2uvauf] span[data-astro-cid-ge2uvauf]{min-height:44px;padding:0 var(--s-4);border:1px solid var(--border-strong);color:var(--text);white-space:nowrap;align-items:center;display:inline-flex}.pv__opt[data-astro-cid-ge2uvauf]+.pv__opt[data-astro-cid-ge2uvauf] span[data-astro-cid-ge2uvauf]{border-left:0}.pv__opt[data-astro-cid-ge2uvauf]:hover span[data-astro-cid-ge2uvauf]{color:var(--signal)}.pv__opt[data-astro-cid-ge2uvauf] input[data-astro-cid-ge2uvauf]:checked+span[data-astro-cid-ge2uvauf]{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}.pv__opt[data-astro-cid-ge2uvauf] input[data-astro-cid-ge2uvauf]:focus-visible+span[data-astro-cid-ge2uvauf]{outline:2px solid var(--signal);outline-offset:2px}.pv[data-astro-cid-ge2uvauf]:not(:has(input[value=model]:checked)) :is(.detect__svg,.tag,.detect__hud),.pv[data-astro-cid-ge2uvauf]:not(:has(input[value=model]:checked)) .pv__note[data-astro-cid-ge2uvauf]{display:none}.pv__note[data-astro-cid-ge2uvauf]{margin-top:var(--s-3);color:var(--text-2)}@media (width<=60rem){.hero[data-astro-cid-ge2uvauf]{padding-block:var(--s-7)}}@media (height<=30rem){.hero[data-astro-cid-ge2uvauf]{align-items:start}h1[data-astro-cid-ge2uvauf]{font-size:min(var(--t-name), 16svh)}.pv__opt[data-astro-cid-ge2uvauf] span[data-astro-cid-ge2uvauf]{padding-inline:var(--s-2)}}@media (width<=44rem){.hero[data-astro-cid-ge2uvauf]{grid-template-columns:1fr}.hero__photo[data-astro-cid-ge2uvauf]{justify-self:start;max-width:min(26rem,80svh - 8.8rem)}}.ask[data-astro-cid-pxsnwkw7]{padding-block:var(--s-2);color:var(--cyan);text-align:left;justify-self:start}.ask[data-astro-cid-pxsnwkw7]:before{content:"› ";color:var(--signal)}.ask[data-astro-cid-pxsnwkw7]:hover{color:var(--signal)}html.no-js .ask[data-astro-cid-pxsnwkw7]{display:none}@media (pointer:coarse){.ask[data-astro-cid-pxsnwkw7]{min-height:44px}}.job__id[data-astro-cid-t3eiqlen]{align-items:flex-start;gap:var(--s-3);flex-direction:column;display:flex}.job__id[data-astro-cid-t3eiqlen] .job__logo{object-fit:contain;width:48px;height:48px}.job__points[data-astro-cid-t3eiqlen]{margin-top:var(--s-3);gap:var(--s-2);color:var(--text-2);max-width:64ch;padding:0;list-style:none;display:grid}.job__points[data-astro-cid-t3eiqlen] li[data-astro-cid-t3eiqlen]{padding-left:1.2em;position:relative}.job__points[data-astro-cid-t3eiqlen] li[data-astro-cid-t3eiqlen]:before{content:"›";color:var(--signal);position:absolute;left:0}.job__side[data-astro-cid-t3eiqlen]{gap:var(--s-3);align-content:start;display:grid}.job__metric[data-astro-cid-t3eiqlen]{gap:var(--s-1);border-left:2px solid var(--signal);padding-left:var(--s-3);display:grid}.job__v[data-astro-cid-t3eiqlen]{font-size:var(--t-20);letter-spacing:-.02em;color:var(--signal);line-height:1}.job__stack[data-astro-cid-t3eiqlen]{padding:0 0 0 calc(var(--s-3) + 2px);gap:2px;line-height:1.5;list-style:none;display:grid}@media (width<=60rem){.job__side[data-astro-cid-t3eiqlen]{margin-top:var(--s-2)}.job__stack[data-astro-cid-t3eiqlen]{gap:var(--s-1) var(--s-4);flex-wrap:wrap;display:flex}}@media (width<=44rem){.job__id[data-astro-cid-t3eiqlen]{flex-direction:row;align-items:center}}.mural[data-astro-cid-o4ixamdj]{margin-top:var(--s-7);padding-top:var(--s-7);border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,39rem);align-items:start;gap:clamp(2rem,5vw,4.5rem);display:grid}.mural__title[data-astro-cid-o4ixamdj]{margin-top:var(--s-2);font-size:var(--t-entry);letter-spacing:-.02em;font-weight:600;line-height:1.25}.mural__cap[data-astro-cid-o4ixamdj]{margin-top:var(--s-4);color:var(--text-2);max-width:44ch}.mural__note[data-astro-cid-o4ixamdj]{margin-top:var(--s-3);color:var(--muted);max-width:44ch}.cmp[data-astro-cid-o4ixamdj]{margin:0}.cmp__stage[data-astro-cid-o4ixamdj]{cursor:ew-resize;user-select:none;border:1px solid var(--border);position:relative}@media (pointer:coarse){.cmp__stage[data-astro-cid-o4ixamdj]{cursor:auto}}.cmp__stage[data-astro-cid-o4ixamdj] .cmp__img{pointer-events:none;width:100%}.cmp__stage[data-astro-cid-o4ixamdj] .cmp__top{height:100%;clip-path:inset(0 calc(100% - var(--pos)) 0 0);position:absolute;inset:0}.cmp__mask[data-astro-cid-o4ixamdj]{background:var(--signal);-webkit-mask:var(--mask) center / 100% 100% no-repeat;mask:var(--mask) center / 100% 100% no-repeat luminance;opacity:0;transition:opacity var(--dur-box) var(--ease);position:absolute;inset:0}.cmp--mask[data-astro-cid-o4ixamdj] .cmp__mask[data-astro-cid-o4ixamdj]{opacity:.85}.cmp__line[data-astro-cid-o4ixamdj]{top:0;bottom:0;left:var(--pos);background:var(--signal);width:2px;margin-left:-1px;position:absolute}.cmp__line[data-astro-cid-o4ixamdj]:after{content:"";border:2px solid var(--signal);background:var(--bg);width:14px;height:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.cmp__tag[data-astro-cid-o4ixamdj]{top:var(--s-2);left:var(--s-2);padding:var(--s-1) var(--s-2);color:var(--text);background:oklch(0% 0 0/.65);position:absolute}.cmp__tag--r[data-astro-cid-o4ixamdj]{left:auto;right:var(--s-2)}.cmp__controls[data-astro-cid-o4ixamdj]{align-items:center;gap:var(--s-4);margin-top:var(--s-3);display:flex}.cmp__range[data-astro-cid-o4ixamdj]{flex:1}.cmp__range[data-astro-cid-o4ixamdj] input[data-astro-cid-o4ixamdj]{width:100%;accent-color:var(--signal);min-height:24px}@media (pointer:coarse){.cmp__range[data-astro-cid-o4ixamdj] input[data-astro-cid-o4ixamdj]{min-height:44px}}.cmp__btn[data-astro-cid-o4ixamdj]{padding:var(--s-2) var(--s-3);border:1px solid var(--border-strong);min-height:44px;color:var(--text)}.cmp__btn[data-astro-cid-o4ixamdj]:hover{border-color:var(--signal);color:var(--signal)}.cmp__btn[data-astro-cid-o4ixamdj][aria-pressed=true]{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}@media (width<=60rem){.mural[data-astro-cid-o4ixamdj]{gap:var(--s-6);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}}@media (width<=44rem){.mural[data-astro-cid-o4ixamdj]{grid-template-columns:1fr}}.cards[data-astro-cid-yhnx4hum]{gap:var(--s-5);display:grid}.card[data-astro-cid-yhnx4hum]{gap:var(--s-6);padding:var(--s-5);background:var(--surface);border:1px solid var(--border);grid-template-columns:minmax(0,17rem) minmax(0,1fr);align-items:center;display:grid}.card__body[data-astro-cid-yhnx4hum]{padding-block:var(--s-4)}.card[data-astro-cid-yhnx4hum] .card__img{width:100%}.card__title[data-astro-cid-yhnx4hum]{font-size:var(--t-entry);letter-spacing:-.02em;line-height:1.25}.card__title[data-astro-cid-yhnx4hum] a[data-astro-cid-yhnx4hum]{color:var(--text)}.card__title[data-astro-cid-yhnx4hum] a[data-astro-cid-yhnx4hum]:hover{color:var(--signal)}.card__fig[data-astro-cid-yhnx4hum]{gap:var(--s-2);margin:0;display:grid}.card__sum[data-astro-cid-yhnx4hum]{margin-top:var(--s-3);color:var(--text-2);max-width:60ch}.card__by[data-astro-cid-yhnx4hum]{margin-top:var(--s-2);color:var(--muted)}.card__me[data-astro-cid-yhnx4hum]{color:var(--text)}.card__venue[data-astro-cid-yhnx4hum],.card__read[data-astro-cid-yhnx4hum]{margin-top:var(--s-2)}.status[data-astro-cid-yhnx4hum]{color:var(--signal)}@media (width<=44rem){.card[data-astro-cid-yhnx4hum]{grid-template-columns:1fr}.card__body[data-astro-cid-yhnx4hum]{padding-block:0}}.proj__link[data-astro-cid-ftq3vvlr]{padding-block:var(--s-2);display:inline-block}.proj__links[data-astro-cid-ftq3vvlr]{padding:0;list-style:none}.proj__side[data-astro-cid-ftq3vvlr]{gap:var(--s-2);align-content:start;justify-items:start;display:grid}.proj__more[data-astro-cid-ftq3vvlr]{margin-top:var(--s-2);color:var(--text-2);max-width:64ch}.proj__more[data-astro-cid-ftq3vvlr] .label[data-astro-cid-ftq3vvlr]{color:var(--signal);margin-right:var(--s-1)}.contact__big[data-astro-cid-he3spzz3]{font-size:clamp(1.625rem, 1rem + 2.2vw, var(--t-40));letter-spacing:-.04em;font-weight:600;line-height:1.05}.contact__big[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3]{color:var(--text);background-image:linear-gradient(var(--signal), var(--signal));overflow-wrap:anywhere;background-position:0 100%;background-repeat:no-repeat;background-size:100% 3px}.contact__big[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3]:hover{color:var(--signal)}.contact__intro[data-astro-cid-he3spzz3]{margin-top:var(--s-5);color:var(--text-2);max-width:50ch}.contact__links[data-astro-cid-he3spzz3]{gap:var(--s-1) var(--s-5);margin-top:var(--s-5);flex-wrap:wrap;display:flex}.contact__links[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3]{padding-block:var(--s-2);display:inline-block}.about[data-astro-cid-oxgmilyn]{gap:var(--s-5);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);display:grid}.about__block[data-astro-cid-oxgmilyn]{padding:var(--s-5);background:var(--surface);border:1px solid var(--border)}.about__block[data-astro-cid-oxgmilyn] dd[data-astro-cid-oxgmilyn]{margin:var(--s-3) 0 0;color:var(--text-2)}.about__edu[data-astro-cid-oxgmilyn]{gap:var(--s-4);align-items:flex-start;display:flex}.about__edu[data-astro-cid-oxgmilyn] .about__logo{object-fit:contain;flex:none;width:48px;height:48px}.about__edu[data-astro-cid-oxgmilyn]>div[data-astro-cid-oxgmilyn]{gap:var(--s-1);display:grid}.about__school[data-astro-cid-oxgmilyn]{font-size:var(--t-entry);letter-spacing:-.02em;color:var(--text);font-weight:600;line-height:1.25}.about__school[data-astro-cid-oxgmilyn]:hover{color:var(--signal)}.about__list[data-astro-cid-oxgmilyn]{gap:var(--s-1);padding:0;list-style:none;display:grid}.about__list[data-astro-cid-oxgmilyn] li[data-astro-cid-oxgmilyn]:before{content:"› ";color:var(--signal)}@media (width<=44rem){.about[data-astro-cid-oxgmilyn]{grid-template-columns:1fr}}
