.photo[data-astro-cid-xjdomtpr]{rotate:var(--tilt);border:1px solid var(--color-line);cursor:zoom-in;transition:rotate .5s cubic-bezier(.2,.7,.2,1),scale .5s cubic-bezier(.2,.7,.2,1),border-color .2s;display:block;box-shadow:0 1.5rem 3rem #0009}.photo[data-astro-cid-xjdomtpr]:hover,.photo[data-astro-cid-xjdomtpr]:focus-visible{border-color:var(--color-fg-muted);rotate:0deg;scale:1.025}.photo--portrait[data-astro-cid-xjdomtpr]{width:min(100%,18rem);margin-inline:auto}img[data-astro-cid-xjdomtpr]{width:100%;height:auto;display:block}.video[data-astro-cid-2gmjvff3]{gap:var(--space-1);flex-direction:column;width:min(100%,20rem);margin-inline:auto;display:flex}.video__play[data-astro-cid-2gmjvff3],.video[data-astro-cid-2gmjvff3] iframe[data-astro-cid-2gmjvff3]{aspect-ratio:9/16;border:1px solid var(--color-line);background:#000;width:100%;display:block}.video__play[data-astro-cid-2gmjvff3]{cursor:pointer;color:var(--color-fg);padding:0;transition:border-color .2s;position:relative;overflow:hidden}.video__play[data-astro-cid-2gmjvff3]:hover,.video__play[data-astro-cid-2gmjvff3]:focus-visible{border-color:var(--color-fg-muted)}.video__play[data-astro-cid-2gmjvff3] img[data-astro-cid-2gmjvff3]{object-fit:cover;opacity:.55;width:100%;height:100%;transition:opacity .3s;position:absolute;inset:0}.video__play[data-astro-cid-2gmjvff3]:hover img[data-astro-cid-2gmjvff3],.video__play[data-astro-cid-2gmjvff3]:focus-visible img[data-astro-cid-2gmjvff3]{opacity:.8}.video__icon[data-astro-cid-2gmjvff3]{border:1px solid var(--color-fg);background:#0009;border-radius:50%;place-items:center;width:4rem;height:4rem;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%}.video__note[data-astro-cid-2gmjvff3]{inset:auto 0 var(--space-2);text-align:center;position:absolute}.video__fallback[data-astro-cid-2gmjvff3]{align-self:center}dialog.svelte-15vcc9p{width:100%;max-width:none;height:100%;max-height:none;color:var(--color-fg);background:#000000f5;border:0;margin:0;padding:0}dialog[open].svelte-15vcc9p{grid-template-rows:auto minmax(0,1fr) auto auto;animation:.3s ease-out svelte-15vcc9p-lb-fade;display:grid}dialog.svelte-15vcc9p::backdrop{background:#000}.bar.svelte-15vcc9p{padding:var(--space-2) var(--gutter);justify-content:space-between;align-items:center;display:flex}.icon.svelte-15vcc9p{padding:var(--space-1);color:var(--color-fg-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;transition:color .2s;display:inline-flex}.icon.svelte-15vcc9p:hover,.icon.svelte-15vcc9p:focus-visible{color:var(--color-fg)}.stage.svelte-15vcc9p{align-items:center;gap:var(--space-2);min-height:0;padding-inline:var(--gutter);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.main.svelte-15vcc9p{object-fit:contain;user-select:none;justify-self:center;max-width:100%;min-height:0;max-height:100%;animation:.35s ease-out svelte-15vcc9p-lb-fade}.caption.svelte-15vcc9p{padding:var(--space-2) var(--gutter) 0;text-align:center;min-height:2.2em;margin:0}.strip.svelte-15vcc9p{gap:var(--space-1);padding:var(--space-2) var(--gutter) var(--space-3);scrollbar-width:none;display:flex;overflow-x:auto}.thumb.svelte-15vcc9p{border:1px solid var(--color-line);opacity:.5;cursor:pointer;background:0 0;flex:none;width:7.5rem;padding:0;transition:opacity .2s,border-color .2s}.thumb.svelte-15vcc9p:hover,.thumb.svelte-15vcc9p:focus-visible,.thumb[aria-current=true].svelte-15vcc9p{opacity:1}.thumb[aria-current=true].svelte-15vcc9p{border-color:var(--color-fg)}.thumb.svelte-15vcc9p img:where(.svelte-15vcc9p){aspect-ratio:16/9;object-fit:cover;width:100%;display:block}@keyframes svelte-15vcc9p-lb-fade{0%{opacity:0}}@media (width<=40rem){.stage.svelte-15vcc9p{grid-template-columns:minmax(0,1fr);grid-template-areas:"pic"}.stage.svelte-15vcc9p>:where(.svelte-15vcc9p){grid-area:pic}.arrow.svelte-15vcc9p{z-index:1;background:#00000080}.arrow.svelte-15vcc9p:first-child{justify-self:start}.arrow.svelte-15vcc9p:last-child{justify-self:end}.thumb.svelte-15vcc9p{width:5.5rem}}canvas.svelte-gk9v5q{aspect-ratio:4/3;background:var(--color-bg);outline:1px solid var(--color-line);outline-offset:-1px;width:100%;display:block}.banner[data-astro-cid-oodzlazz]{height:clamp(20rem,70dvh,46rem);margin-top:-3.5rem;margin-bottom:calc(var(--space-5) * -1);pointer-events:none;position:relative;mask-image:linear-gradient(#000 0% 35%,#0000 100%)}.banner[data-astro-cid-oodzlazz] img[data-astro-cid-oodzlazz]{object-fit:cover;object-position:center 35%;width:100%;height:100%;animation:2.4s ease-out both banner-in}@keyframes banner-in{0%{opacity:0;scale:1.06}}.showcase[data-astro-cid-oodzlazz]{position:relative}.showcase__inner[data-astro-cid-oodzlazz]{max-width:48rem}.intro[data-astro-cid-oodzlazz] p{margin:0 0 var(--space-2);color:var(--color-fg-muted)}.icon-link[data-astro-cid-oodzlazz]{color:var(--color-fg-muted);transition:color .2s;display:inline-flex}.icon-link[data-astro-cid-oodzlazz]:hover,.icon-link[data-astro-cid-oodzlazz]:focus-visible{color:var(--color-fg)}.icon-subtitle[data-astro-cid-oodzlazz]{align-self:flex-start}.step__title[data-astro-cid-oodzlazz] .icon-link[data-astro-cid-oodzlazz]{margin-left:var(--space-1);vertical-align:middle}.step[data-astro-cid-oodzlazz]{align-items:center;gap:var(--space-5);padding-block:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(16rem,30rem);display:grid}.step--flip[data-astro-cid-oodzlazz]{grid-template-columns:minmax(16rem,30rem) minmax(0,1fr)}.step--flip[data-astro-cid-oodzlazz] .step__text[data-astro-cid-oodzlazz]{order:2}.step__text[data-astro-cid-oodzlazz]{gap:var(--space-1);flex-direction:column;max-width:36rem;display:flex}.step__title[data-astro-cid-oodzlazz]{font-size:clamp(2rem,4vw,3rem)}.step__text[data-astro-cid-oodzlazz] p[data-astro-cid-oodzlazz]{font-size:var(--text-md);margin:0}.step__text[data-astro-cid-oodzlazz] a[data-astro-cid-oodzlazz]:not(.icon-link){align-self:flex-start}.step__visual[data-astro-cid-oodzlazz]{gap:var(--space-4);padding:var(--space-2);flex-direction:column;display:flex}.step__visual[data-astro-cid-oodzlazz]>.photo:nth-child(2n){margin-left:var(--space-4);margin-right:calc(var(--space-2) * -1)}.step--flip[data-astro-cid-oodzlazz] .step__visual[data-astro-cid-oodzlazz]>.photo:nth-child(2n){margin-left:calc(var(--space-2) * -1);margin-right:var(--space-4)}.gallery[data-astro-cid-oodzlazz]{gap:var(--space-1);padding-block:var(--space-5);flex-direction:column;display:flex}.gallery__grid[data-astro-cid-oodzlazz]{gap:var(--space-4) var(--space-3);margin-top:var(--space-3);padding:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));display:grid}@media (width<=52rem){.step[data-astro-cid-oodzlazz],.step--flip[data-astro-cid-oodzlazz]{gap:var(--space-3);padding-block:var(--space-4);grid-template-columns:minmax(0,1fr)}.step--flip[data-astro-cid-oodzlazz] .step__text[data-astro-cid-oodzlazz]{order:0}}.demo.svelte-1hl4q87{margin:0 0 var(--space-4)}.demo__frame.svelte-1hl4q87{border:1px solid var(--color-line);aspect-ratio:4/3;position:relative;overflow:hidden}canvas.svelte-1hl4q87{width:480px;height:360px;transform:scale(var(--scale,1));transform-origin:0 0;background:var(--color-bg);cursor:pointer;display:block;position:absolute;top:0;left:0}.demo__overlay.svelte-1hl4q87{inset:auto 0 var(--space-2) 0;text-align:center;pointer-events:none;margin:0;position:absolute}.demo__overlay.svelte-1hl4q87 a:where(.svelte-1hl4q87){pointer-events:auto}figcaption.svelte-1hl4q87{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-1);display:flex}.info.svelte-1hl4q87{flex:none;position:relative}.info__button.svelte-1hl4q87{border:1px solid var(--color-fg-faint);width:1.25rem;height:1.25rem;color:var(--color-fg-muted);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border-radius:50%;padding:0;line-height:1}.info__button.svelte-1hl4q87:hover,.info__button[aria-expanded=true].svelte-1hl4q87{border-color:var(--color-fg);color:var(--color-fg)}.info__panel.svelte-1hl4q87{right:0;bottom:calc(100% + var(--space-1));z-index:2;width:min(28rem,85vw);padding:var(--space-2);background:var(--color-bg);border:1px solid var(--color-line);color:var(--color-fg);line-height:1.5;position:absolute}.info__panel.svelte-1hl4q87 ul:where(.svelte-1hl4q87){margin:var(--space-1) 0 0;padding-left:1.1rem}.info__panel.svelte-1hl4q87 li:where(.svelte-1hl4q87)+li:where(.svelte-1hl4q87){margin-top:var(--space-1)}canvas.svelte-g2rbw0{aspect-ratio:1;outline:1px solid var(--color-line);outline-offset:-1px;width:100%;display:block}.project[data-astro-cid-yq2gsstb]{padding-top:var(--space-5)}.project__inner[data-astro-cid-yq2gsstb]{max-width:48rem}.repo-link[data-astro-cid-yq2gsstb]{color:var(--color-fg-muted);transition:color .2s;display:inline-flex}.step__title[data-astro-cid-yq2gsstb] .repo-link[data-astro-cid-yq2gsstb]{margin-left:var(--space-1);vertical-align:middle}.repo-subtitle[data-astro-cid-yq2gsstb]{align-self:flex-start}.repo-link[data-astro-cid-yq2gsstb]:hover,.repo-link[data-astro-cid-yq2gsstb]:focus-visible{color:var(--color-fg)}.story[data-astro-cid-yq2gsstb]{margin-top:var(--space-5);position:relative}.story__bg[data-astro-cid-yq2gsstb]{pointer-events:none;height:100dvh;margin-bottom:-100dvh;position:sticky;top:0}.step[data-astro-cid-yq2gsstb]{align-items:center;gap:var(--space-5);padding-block:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(14rem,22rem);display:grid;position:relative}.step--flip[data-astro-cid-yq2gsstb]{grid-template-columns:minmax(14rem,22rem) minmax(0,1fr)}.step--flip[data-astro-cid-yq2gsstb] .step__text[data-astro-cid-yq2gsstb]{order:2}.step--text-only[data-astro-cid-yq2gsstb]{grid-template-columns:minmax(0,48rem)}.step__text[data-astro-cid-yq2gsstb]{gap:var(--space-1);flex-direction:column;max-width:40rem;display:flex}.step__title[data-astro-cid-yq2gsstb]{font-size:clamp(2rem,4vw,3rem)}.step__text[data-astro-cid-yq2gsstb] p[data-astro-cid-yq2gsstb]{font-size:var(--text-md);margin:0}.step__text[data-astro-cid-yq2gsstb] a[data-astro-cid-yq2gsstb]{align-self:flex-start}@media (width<=52rem){.step[data-astro-cid-yq2gsstb],.step--flip[data-astro-cid-yq2gsstb]{gap:var(--space-3);grid-template-columns:minmax(0,1fr)}.step--flip[data-astro-cid-yq2gsstb] .step__text[data-astro-cid-yq2gsstb]{order:0}}
