.hero[data-astro-cid-ge2uvauf]{max-width:934px;font-family:var(--font-ui);margin:0;padding:48px 24px 72px 0;line-height:1.3}.hero-hello[data-astro-cid-ge2uvauf]{color:var(--color-text-faint);margin:0 0 16px;font-size:16px}.hero-card[data-astro-cid-ge2uvauf]{aspect-ratio:910/448;touch-action:pan-y;user-select:none;cursor:grab;--scene-tint:#fff;position:relative;overflow:clip}.hero-card[data-astro-cid-ge2uvauf].is-dragging{cursor:grabbing}html[data-theme=dark] .hero-card[data-astro-cid-ge2uvauf]{--scene-tint:#4a5680}.hero-title[data-astro-cid-ge2uvauf]{max-width:680px;color:var(--color-text-secondary);text-wrap:pretty;margin:16px 0 0;font-size:48px;font-weight:700;line-height:1.3}.hero-lead[data-astro-cid-ge2uvauf]{max-width:450px;color:var(--color-text-strong);margin:16px 0 0;font-size:12px}.hero-card[data-astro-cid-ge2uvauf]{--bar:28px;--dot-off:#e5e5e5}html[data-theme=dark] .hero-card[data-astro-cid-ge2uvauf]{--dot-off:#ffffff2e}.hero-photo[data-astro-cid-ge2uvauf]{clip-path:inset(0);background:url(/assets/index/hero-skyline.jpg) 50% 49%/cover;transition:clip-path .35s cubic-bezier(.32,.72,0,1);position:absolute;inset:0;overflow:clip}.hero-bar[data-astro-cid-ge2uvauf]{height:var(--bar);opacity:0;visibility:hidden;justify-content:space-between;align-items:center;transition:opacity .15s,visibility 0s .15s;display:flex;position:absolute;bottom:0;left:0;right:0}.hero-card[data-astro-cid-ge2uvauf]:hover .hero-photo[data-astro-cid-ge2uvauf],.hero-card[data-astro-cid-ge2uvauf]:focus-within .hero-photo[data-astro-cid-ge2uvauf]{clip-path:inset(0 0 var(--bar) 0)}.hero-card[data-astro-cid-ge2uvauf]:hover .hero-bar[data-astro-cid-ge2uvauf],.hero-card[data-astro-cid-ge2uvauf]:focus-within .hero-bar[data-astro-cid-ge2uvauf]{opacity:1;visibility:visible;transition:opacity .25s .35s,visibility}@media (hover:none){.hero-photo[data-astro-cid-ge2uvauf]{clip-path:inset(0 0 var(--bar) 0)}.hero-bar[data-astro-cid-ge2uvauf]{opacity:1;visibility:visible}}.hero-modes[data-astro-cid-ge2uvauf]{gap:6px;display:flex}.hero-mode[data-astro-cid-ge2uvauf],.hero-clear[data-astro-cid-ge2uvauf]{font:inherit;font-size:12px;line-height:var(--bar);color:var(--color-text-strong);cursor:pointer;background:0 0;border:0;padding:0}.hero-mode[data-astro-cid-ge2uvauf]:hover,.hero-clear[data-astro-cid-ge2uvauf]:hover{color:var(--color-text-accent)}.hero-mode[data-astro-cid-ge2uvauf][aria-pressed=true]{cursor:default;font-weight:700}.hero-mode[data-astro-cid-ge2uvauf]:hover[aria-pressed=true]{color:var(--color-text-strong)}.hero-mode[data-astro-cid-ge2uvauf]:focus-visible,.hero-clear[data-astro-cid-ge2uvauf]:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:2px}.hero-card[data-astro-cid-ge2uvauf].is-drawing{cursor:crosshair;--draw-bg:#f6f6f6}html[data-theme=dark] .hero-card[data-astro-cid-ge2uvauf].is-drawing{--draw-bg:var(--color-bg-secondary)}.hero-card[data-astro-cid-ge2uvauf].is-drawing .hero-photo[data-astro-cid-ge2uvauf]{clip-path:inset(0 0 var(--bar) 0)}.hero-card[data-astro-cid-ge2uvauf].is-drawing .hero-bar[data-astro-cid-ge2uvauf]{opacity:1;visibility:visible}.hero-pens[data-astro-cid-ge2uvauf],.hero-card[data-astro-cid-ge2uvauf].is-drawing .hero-dots[data-astro-cid-ge2uvauf]{display:none}.hero-card[data-astro-cid-ge2uvauf].is-drawing .hero-pens[data-astro-cid-ge2uvauf]{align-items:center;margin-right:-4px;display:flex}.hero-clear[data-astro-cid-ge2uvauf]{margin-right:12px}.hero-draw[data-astro-cid-ge2uvauf]{background:var(--draw-bg,#f6f6f6);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s;position:absolute;inset:0}.hero-card[data-astro-cid-ge2uvauf].is-drawing .hero-draw[data-astro-cid-ge2uvauf]{opacity:1;visibility:visible;transition:opacity .25s,visibility}.hero-draw[data-astro-cid-ge2uvauf] canvas[data-astro-cid-ge2uvauf]{touch-action:none;width:100%;height:100%;position:absolute;inset:0}.hero-glow[data-astro-cid-ge2uvauf]{filter:blur(6px);opacity:.7;pointer-events:none}.hero-ink[data-astro-cid-ge2uvauf]{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--color-text-accent) 70%, transparent));left:50%;top:calc((100% - var(--bar)) / 2);pointer-events:none;width:min(320px,50%);position:absolute;overflow:visible;transform:translate(-50%,-50%)}.hero-ink[data-astro-cid-ge2uvauf] path[data-astro-cid-ge2uvauf]{fill:none;stroke:var(--color-text-accent);stroke-width:4.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.hero-ink[data-astro-cid-ge2uvauf].is-writing path[data-astro-cid-ge2uvauf]{animation:2s cubic-bezier(.45,.05,.4,1) .2s forwards hero-write}.hero-ink[data-astro-cid-ge2uvauf].is-gone{display:none}@keyframes hero-write{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.hero-ink[data-astro-cid-ge2uvauf] path[data-astro-cid-ge2uvauf]{stroke-dashoffset:0}.hero-ink[data-astro-cid-ge2uvauf].is-writing path[data-astro-cid-ge2uvauf]{animation:none}}.hero-dots[data-astro-cid-ge2uvauf]{margin-right:-4px;display:flex}.hero-dot[data-astro-cid-ge2uvauf],.hero-pen[data-astro-cid-ge2uvauf]{width:12px;height:var(--bar);cursor:pointer;background:0 0;border:0;place-items:center start;padding:0;display:grid}.hero-dot[data-astro-cid-ge2uvauf]:before{content:"";background:var(--dot-off);width:8px;height:8px;transition:background-color .2s}.hero-dot[data-astro-cid-ge2uvauf]:hover:before{background:color-mix(in srgb, var(--color-text-accent) 40%, var(--dot-off))}.hero-dot[data-astro-cid-ge2uvauf][aria-pressed=true]:before{background:var(--color-text-accent)}.hero-dot[data-astro-cid-ge2uvauf]:focus-visible,.hero-pen[data-astro-cid-ge2uvauf]:focus-visible{outline:2px solid var(--color-text-accent);outline-offset:-2px}.hero-pen[data-astro-cid-ge2uvauf]:before{content:"";background:var(--pen);outline-offset:1px;outline:1px solid #0000;width:8px;height:8px;transition:outline-color .2s}.hero-pen[data-astro-cid-ge2uvauf]:hover:before{outline-color:color-mix(in srgb, var(--pen) 40%, transparent)}.hero-pen[data-astro-cid-ge2uvauf][aria-pressed=true]:before{outline-color:var(--pen)}@media (prefers-reduced-motion:reduce){.hero-photo[data-astro-cid-ge2uvauf],.hero-bar[data-astro-cid-ge2uvauf]{transition:none}}.hero-pixels[data-astro-cid-ge2uvauf]{width:100%;height:100%;image-rendering:pixelated;pointer-events:none;position:absolute;top:0;left:0}.hero-grid[data-astro-cid-ge2uvauf]{pointer-events:none;--grid-line:#ffffff24;background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);background-size:var(--cell,7px) var(--cell,7px);position:absolute;inset:0}@media (width<=640px){.hero[data-astro-cid-ge2uvauf]{padding:32px 16px 56px}.hero-card[data-astro-cid-ge2uvauf]{aspect-ratio:4/3}.hero-title[data-astro-cid-ge2uvauf]{font-size:32px}}.lp-stage[data-astro-cid-cffy3dzv]{perspective:var(--lp-perspective,140cqw);perspective-origin:var(--lp-eye,50% 30%);position:absolute;inset:0}.lp[data-astro-cid-cffy3dzv]{left:var(--lp-left,50%);top:var(--lp-top,50%);width:var(--w);height:var(--d);margin-left:calc(var(--w) / -2);margin-top:calc(var(--d) / -2);--w:var(--lp-width,30cqw);--d:calc(var(--w) / 1.4);--t:calc(var(--w) * .026);--lid-t:calc(var(--w) * .008);--dur:var(--lp-duration,.8s);--ease:var(--lp-ease,cubic-bezier(.25, 1, .5, 1));transform-style:preserve-3d;transform:translate3d(var(--lp-x,0px), var(--lp-y,0px), var(--lp-z,0px)) rotateX(var(--lp-tilt,58deg)) rotateZ(var(--lp-yaw,0deg)) rotateZ(var(--lp-spin,0deg));transition:transform var(--lp-pose-duration,var(--dur)) var(--ease);position:absolute}.lp-deck[data-astro-cid-cffy3dzv]{border-radius:2.4%/3.4%;width:100%;height:100%;position:absolute;inset:0}.lp-slice[data-astro-cid-cffy3dzv]{position:absolute;inset:0}.lp-slice--body[data-astro-cid-cffy3dzv]{--depth:var(--t);border-radius:2.4%/3.4%}.lp-front[data-astro-cid-cffy3dzv]{height:var(--t);transform-origin:top;background:linear-gradient(#f1f2f4 0%,#d8d9dc 18%,#b5b7bb 70%,#8c8e93 100%);position:absolute;top:100%;left:2.4%;right:2.4%;transform:rotateX(-90deg)translateZ(.5px)}.lp-scoop[data-astro-cid-cffy3dzv]{border-radius:0 0 calc(var(--w) * .018) calc(var(--w) * .018);background:linear-gradient(#c3c5c9 0%,#eceef0 100%);width:18%;height:42%;position:absolute;top:0;left:50%;translate:-50%;box-shadow:inset 0 1px 1px #0000002e}.lp-foot[data-astro-cid-cffy3dzv]{background:#1b1c1f;border-radius:0 0 40% 40%/0 0 100% 100%;width:7%;height:22%;position:absolute;top:100%}.lp-foot--left[data-astro-cid-cffy3dzv]{left:4%}.lp-foot--right[data-astro-cid-cffy3dzv]{right:4%}.lp-shadow[data-astro-cid-cffy3dzv]{background:var(--lp-shadow,#02061e8c);filter:blur(calc(var(--w) * .06));transform:translateZ(calc(var(--t) * -1));border-radius:6%;position:absolute;inset:4% 2% -2%}.lp-lid[data-astro-cid-cffy3dzv]{width:100%;height:100%;transform-style:preserve-3d;transform-origin:bottom;transform:rotateX(var(--lp-open,-66deg));transition:transform var(--dur) var(--ease);position:absolute;bottom:100%;left:0}.lp-slice--lid[data-astro-cid-cffy3dzv],.lp-face[data-astro-cid-cffy3dzv]{border-radius:3.4% 3.4% .8% .8%/4.8% 4.8% 1.1% 1.1%}.lp-slice--lid[data-astro-cid-cffy3dzv]{--depth:var(--lid-t)}.lp-face[data-astro-cid-cffy3dzv]{backface-visibility:hidden;width:100%;height:100%;position:absolute;inset:0}.lp-screen[data-astro-cid-cffy3dzv]{background:linear-gradient(#d9dadd,#b4b6ba);padding:.35%;transform:translateZ(.5px)}.lp-bezel[data-astro-cid-cffy3dzv]{background:#050506;border-radius:3.1% 3.1% .6% .6%/4.4% 4.4% .8% .8%;width:100%;height:100%;position:relative;overflow:hidden}.lp-display[data-astro-cid-cffy3dzv]{background:#000;border-radius:1.4% 1.4% 0 0/2% 2% 0 0;position:absolute;inset:1.6% 1.5% 4.8%;overflow:hidden}.lp-display[data-astro-cid-cffy3dzv]>*{width:100%;height:100%;position:absolute;inset:0}.lp-notch[data-astro-cid-cffy3dzv]{border-radius:0 0 calc(var(--w) * .016) calc(var(--w) * .016);background:#050506;width:10%;height:3.4%;position:absolute;top:0;left:50%;translate:-50%}.lp-chin[data-astro-cid-cffy3dzv]{background:linear-gradient(#232427 0%,#151618 100%);height:3.8%;position:absolute;bottom:0;left:0;right:0}.lp-back[data-astro-cid-cffy3dzv]{transform:translateZ(calc(var(--lid-t) * -1)) rotateY(180deg)}.lp-grip[data-astro-cid-cffy3dzv]{cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;position:absolute}.lp-grip[data-astro-cid-cffy3dzv]:active{cursor:grabbing}.lp-grip--corner[data-astro-cid-cffy3dzv]{width:32%;height:55%;transform:translateZ(calc(var(--lid-t) + 2px));bottom:-10%}.lp-grip--left[data-astro-cid-cffy3dzv]{left:-6%}.lp-grip--right[data-astro-cid-cffy3dzv]{right:-6%}.lp-grip--lid[data-astro-cid-cffy3dzv]{height:22%;top:-6%;left:26%;right:26%}.lp-grip--near[data-astro-cid-cffy3dzv]{transform:translateZ(2px)}.lp-grip--far[data-astro-cid-cffy3dzv]{transform:translateZ(calc(var(--lid-t) * -1 - 2px))}@media (prefers-reduced-motion:reduce){.lp[data-astro-cid-cffy3dzv],.lp-lid[data-astro-cid-cffy3dzv]{transition:none}}.projects[data-astro-cid-t3eiqlen]{--step:50vh;max-width:none;height:calc(max(100vh, 560px) + var(--count) * var(--step))}.pj-sticky[data-astro-cid-t3eiqlen]{height:100svh;min-height:560px;padding:24px;display:flex;position:sticky;top:0}.pj-card[data-astro-cid-t3eiqlen]{border:1px solid var(--color-text-disabled);background:var(--color-bg-default);border-radius:24px;flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:214px 264px minmax(0,1fr);gap:24px 36px;padding:23px;transition:background-color .3s,border-color .3s;display:grid}.pj-list[data-astro-cid-t3eiqlen]{flex-direction:column;align-self:start;min-width:0;display:flex;position:relative}.pj-item[data-astro-cid-t3eiqlen]{z-index:1;height:48px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;padding:0 24px;text-decoration:none;display:flex;position:relative}.pj-item[data-astro-cid-t3eiqlen] .type-h4[data-astro-cid-t3eiqlen]{white-space:nowrap;transition:color .3s;display:block}.pj-item[data-astro-cid-t3eiqlen].is-active .type-h4[data-astro-cid-t3eiqlen]{color:var(--color-on-accent)}.pj-item[data-astro-cid-t3eiqlen]:focus-visible{outline:2px solid var(--color-accent-outline);outline-offset:2px}.pj-pill[data-astro-cid-t3eiqlen]{background:var(--color-text-accent);opacity:0;will-change:transform, width, height;border-radius:8px;height:48px;transition:opacity .3s,background-color .3s;position:absolute;top:0;left:0;right:0}.projects[data-astro-cid-t3eiqlen].has-selection .pj-pill[data-astro-cid-t3eiqlen]{opacity:1}.pj-descs[data-astro-cid-t3eiqlen]{align-self:start;display:grid}.pj-desc[data-astro-cid-t3eiqlen]{opacity:0;pointer-events:none;grid-area:1/1;transition:opacity .3s,transform .4s cubic-bezier(.25,1,.5,1);transform:translateY(6px)}.pj-desc[data-astro-cid-t3eiqlen].is-active{opacity:1;pointer-events:auto;transition-delay:80ms;transform:none}.pj-photo[data-astro-cid-t3eiqlen]{--lit-base:color-mix(in oklab, var(--color-warm-bg), #3d372d 4%);--lit-wall:color-mix(in oklab, var(--color-warm-bg), #3d372d 14%);--lit-front:color-mix(in oklab, var(--color-warm-bg), #3d372d 8%);--lit-edge:color-mix(in oklab, var(--color-warm-bg), #3d372d 22%);--lit-pool:var(--color-bg-default);--lit-ao:#3a302233;--lit-contact:#342a1e80;--lit-spill:color-mix(in srgb, var(--color-text-accent) 6%, transparent);background:var(--lit-base);border-radius:8px;position:relative;overflow:hidden;container-type:size}html[data-theme=dark] .pj-photo[data-astro-cid-t3eiqlen]{--lit-base:var(--color-bg-secondary);--lit-wall:color-mix(in oklab, var(--color-bg-default), #000 30%);--lit-front:var(--color-bg-default);--lit-edge:color-mix(in oklab, var(--color-bg-default), #000 50%);--lit-pool:color-mix(in oklab, var(--color-bg-secondary), #fff 9%);--lit-ao:#00000080;--lit-contact:#000c;--lit-spill:color-mix(in srgb, var(--color-text-accent) 14%, transparent)}.pj-backdrop[data-astro-cid-t3eiqlen]{background:radial-gradient(130% 100% at 50% 44%, transparent 45%, var(--lit-edge) 100%), linear-gradient(180deg, var(--lit-wall) 0%, var(--lit-base) 50%, var(--lit-front) 100%);position:absolute;inset:0}.pj-scene[data-astro-cid-t3eiqlen]{aspect-ratio:1;--lp-width:62cqw;--lp-left:50%;--lp-top:68.5%;--lp-tilt:64deg;--lp-yaw:0deg;--lp-pose-duration:0s;--lp-perspective:260cqw;--lp-eye:50% 68.5%;--lp-shadow:var(--lit-contact);--lp-duration:1.4s;--lp-ease:cubic-bezier(.3, .8, .25, 1);--lp-open:-179.5deg;width:min(100cqw,100cqh);position:absolute;top:50%;left:50%;translate:-50% -50%;container-type:inline-size}.projects[data-astro-cid-t3eiqlen].is-open .pj-scene[data-astro-cid-t3eiqlen]{--lp-open:-72deg}.projects[data-astro-cid-t3eiqlen].is-lid-dragging .pj-scene[data-astro-cid-t3eiqlen]{--lp-duration:0s}.projects[data-astro-cid-t3eiqlen].is-lid-settling .pj-scene[data-astro-cid-t3eiqlen]{--lp-duration:.6s}.pj-floor-stage[data-astro-cid-t3eiqlen]{perspective:var(--lp-perspective);perspective-origin:var(--lp-eye);position:absolute;inset:0}.pj-floor[data-astro-cid-t3eiqlen]{--w:var(--lp-width);--d:calc(var(--w) / 1.4);left:var(--lp-left);top:var(--lp-top);width:calc(var(--w) * 3);height:calc(var(--d) * 3);margin-left:calc(var(--w) * -1.5);margin-top:calc(var(--d) * -1.5);transform:translate(var(--lp-x,0px), var(--lp-y,0px)) rotateX(var(--lp-tilt)) rotateZ(var(--lp-yaw)) translateZ(calc(var(--w) * -.032));position:absolute}.pj-floor[data-astro-cid-t3eiqlen]>span[data-astro-cid-t3eiqlen]{position:absolute}.pj-pool[data-astro-cid-t3eiqlen]{background:radial-gradient(closest-side, var(--lit-pool), transparent);inset:0 0 8%}.pj-ao[data-astro-cid-t3eiqlen]{background:radial-gradient(closest-side, var(--lit-ao) 30%, transparent);inset:28% 27% 25%}.pj-spill[data-astro-cid-t3eiqlen]{background:radial-gradient(closest-side, var(--lit-spill), transparent);opacity:0;transition:opacity 1.2s .6s;inset:58% 28% 14%}.projects[data-astro-cid-t3eiqlen].has-selection .pj-spill[data-astro-cid-t3eiqlen]{opacity:1}.projects[data-astro-cid-t3eiqlen].is-lid-shut .pj-spill[data-astro-cid-t3eiqlen]{opacity:0;transition-delay:0s}.pj-screens[data-astro-cid-t3eiqlen]{background:#000;container-type:inline-size}.pj-screen[data-astro-cid-t3eiqlen]{opacity:0;transition:opacity .4s;position:absolute;inset:0}.pj-screen[data-astro-cid-t3eiqlen].is-active{opacity:1}.projects[data-astro-cid-t3eiqlen].is-spinning .pj-screen[data-astro-cid-t3eiqlen]{transition:none}.pj-screen[data-astro-cid-t3eiqlen] img[data-astro-cid-t3eiqlen],.pj-screen[data-astro-cid-t3eiqlen] video[data-astro-cid-t3eiqlen]{object-fit:cover;width:100%;height:100%;display:block}.pj-screen[data-astro-cid-t3eiqlen] video[data-astro-cid-t3eiqlen]{object-fit:contain;background:#fff}.pj-soon[data-astro-cid-t3eiqlen]{color:#f1f0ec;height:100%;font-family:var(--font-sans);text-transform:uppercase;text-align:center;background:linear-gradient(#16171b 0%,#21283c 100%);place-items:center;padding:8cqw;font-size:5cqw;font-weight:700;display:grid}@media (width<=1100px){.pj-card[data-astro-cid-t3eiqlen]{grid-template-rows:auto minmax(0,1fr);grid-template-columns:214px minmax(0,1fr)}.pj-list[data-astro-cid-t3eiqlen]{grid-row:1/-1}.pj-descs[data-astro-cid-t3eiqlen]{grid-area:1/2;max-width:480px}.pj-photo[data-astro-cid-t3eiqlen]{grid-area:2/2}}@media (width<=640px){.pj-sticky[data-astro-cid-t3eiqlen]{padding:16px}.pj-card[data-astro-cid-t3eiqlen]{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);row-gap:16px;padding:15px}.pj-list[data-astro-cid-t3eiqlen]{overscroll-behavior-x:contain;scrollbar-width:none;flex-direction:row;grid-row:auto;margin-inline:-15px;padding-inline:15px;scroll-padding-inline:15px;overflow-x:auto}.pj-list[data-astro-cid-t3eiqlen]::-webkit-scrollbar{display:none}.pj-item[data-astro-cid-t3eiqlen]{flex-shrink:0;padding:0 16px}.pj-pill[data-astro-cid-t3eiqlen]{right:auto}.pj-descs[data-astro-cid-t3eiqlen]{grid-area:auto;max-width:none}.pj-photo[data-astro-cid-t3eiqlen]{grid-area:auto}}@media (height<=559px){.projects[data-astro-cid-t3eiqlen]{height:auto}.pj-sticky[data-astro-cid-t3eiqlen]{height:auto;min-height:0;position:static}.pj-photo[data-astro-cid-t3eiqlen]{aspect-ratio:4/3}}@media (prefers-reduced-motion:reduce){.pj-pill[data-astro-cid-t3eiqlen],.pj-desc[data-astro-cid-t3eiqlen],.pj-screen[data-astro-cid-t3eiqlen],.pj-spill[data-astro-cid-t3eiqlen]{transition:none}}
