.project-gallery.svelte-196oeii{width:min(62rem,calc(100vw - 2rem));margin:3rem 50%;transform:translate(-50%)}.project-gallery__title.svelte-196oeii{margin:0 0 .75rem;color:var(--foreground);font-size:.875rem;font-weight:600;letter-spacing:-.01em}.project-gallery__stage.svelte-196oeii{position:relative;width:100%;max-height:75svh;min-height:12rem;overflow:hidden;border:1px solid color-mix(in oklab,var(--border) 72%,var(--foreground) 28%);border-radius:.875rem;background:var(--muted);box-shadow:0 16px 42px #00000017,0 2px 8px #0000000d;transition:aspect-ratio .24s ease}.project-gallery__carousel,.project-gallery__carousel [data-slot=carousel-content],.project-gallery__carousel [data-embla-container],.project-gallery__carousel [data-embla-slide]{height:100%}.project-gallery__track{margin-inline-start:0}.project-gallery__item{padding-inline-start:0}.project-gallery__slide.svelte-196oeii{position:relative;display:grid;width:100%;height:100%;place-items:center;overflow:hidden}.project-gallery__slide.svelte-196oeii>:is(img:where(.svelte-196oeii),video:where(.svelte-196oeii),iframe:where(.svelte-196oeii)){display:block;width:100%;height:100%;border:0;object-fit:contain}.project-gallery__slide.svelte-196oeii>iframe:where(.svelte-196oeii){background:var(--background)}.project-gallery__fallback.svelte-196oeii{position:absolute;inset:50% auto auto 50%;border-radius:.5rem;padding:.55rem .8rem;background:var(--background);box-shadow:0 2px 8px #00000014;color:var(--foreground);font-size:.8125rem;font-weight:600;text-decoration:none;transform:translate(-50%,-50%)}.project-gallery__caption.svelte-196oeii{margin:.7rem 0 0;color:var(--muted-foreground);font-size:.8125rem;line-height:1.45;text-align:center}.project-gallery__controls.svelte-196oeii{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.85rem}.project-gallery__buttons.svelte-196oeii{display:flex;gap:.45rem}.project-gallery__button{width:2.25rem;height:2.25rem;border-radius:.625rem}.project-gallery__count.svelte-196oeii{color:var(--muted-foreground);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:550}.project-gallery__thumbnails.svelte-196oeii{display:flex;gap:.55rem;margin-top:.7rem;padding:.2rem .15rem .45rem;overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity}.project-gallery__thumbnail.svelte-196oeii{position:relative;display:block;width:5rem;height:3.25rem;flex:0 0 auto;overflow:hidden;border:1px solid var(--border);border-radius:.55rem;padding:0;background:var(--muted);color:var(--muted-foreground);cursor:pointer;opacity:.72;scroll-snap-align:center;transition:border-color .15s ease,box-shadow .15s ease,opacity .15s ease}.project-gallery__thumbnail.svelte-196oeii:hover,.project-gallery__thumbnail--active.svelte-196oeii{opacity:1}.project-gallery__thumbnail--active.svelte-196oeii{border-color:var(--foreground);box-shadow:0 0 0 2px var(--background),0 0 0 3px var(--foreground)}.project-gallery__thumbnail.svelte-196oeii:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.project-gallery__thumbnail.svelte-196oeii>:is(img:where(.svelte-196oeii),video:where(.svelte-196oeii)){display:block;width:100%;height:100%;object-fit:cover}.project-gallery__thumbnail-badge.svelte-196oeii{position:absolute;right:.28rem;bottom:.28rem;display:grid;width:1.15rem;height:1.15rem;place-items:center;border-radius:999px;background:#000000a3;color:#fff}.project-gallery__thumbnail-badge.svelte-196oeii svg{width:.68rem;height:.68rem}.project-gallery__embed-thumbnail.svelte-196oeii{display:flex;width:100%;height:100%;align-items:center;justify-content:center;gap:.3rem;padding:.35rem;background:var(--background)}.project-gallery__embed-thumbnail.svelte-196oeii svg{width:.85rem;height:.85rem;flex:0 0 auto}.project-gallery__embed-thumbnail.svelte-196oeii span:where(.svelte-196oeii){overflow:hidden;font-size:.625rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}@media(max-width:40rem){.project-gallery.svelte-196oeii{width:calc(100vw - 1.25rem)}.project-gallery__stage.svelte-196oeii{min-height:10rem;border-radius:.7rem}}@media(prefers-reduced-motion:reduce){.project-gallery__stage.svelte-196oeii,.project-gallery__thumbnail.svelte-196oeii{transition:none}}.project-toc.svelte-9enxa0{position:sticky;top:5.5rem;max-height:calc(100svh - 7rem);overflow-y:auto;scrollbar-width:thin}ul.svelte-9enxa0{margin:0;padding:0;list-style:none}li.svelte-9enxa0{padding:.125rem .125rem .125rem calc(var(--toc-indent) * 1.125rem + .125rem);color:var(--muted-foreground);font-size:1rem;line-height:1.5;transition:color .15s ease}li[aria-level="1"].svelte-9enxa0{font-weight:500}li.svelte-9enxa0:has(>a[aria-current=true]:where(.svelte-9enxa0)),ul.svelte-9enxa0:hover li:where(.svelte-9enxa0){color:var(--foreground)}a.svelte-9enxa0{border-radius:.125rem;color:inherit;text-decoration:none}a.svelte-9enxa0:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}a.svelte-9enxa0:focus-visible{outline:2px solid var(--ring);outline-offset:3px}@media(max-width:74.999rem){.project-toc.svelte-9enxa0{position:static;max-height:none;margin-bottom:3rem;overflow:visible}li.svelte-9enxa0{position:relative;padding-block:.15rem;padding-left:calc(var(--toc-indent) * 1rem + 1.5rem);color:var(--foreground)}li.svelte-9enxa0:before{position:absolute;left:calc(var(--toc-indent) * 1rem + .2rem);content:"▪"}}@media(prefers-reduced-motion:reduce){li.svelte-9enxa0{transition:none}}html{scroll-behavior:smooth}.project-article.svelte-gygcht{width:100%;max-width:48rem;grid-template-columns:minmax(0,1fr)}.project-main-column.svelte-gygcht,.project-toc-column.svelte-gygcht{min-width:0}.project-prose :is(h2,h3,h4,h5,h6)[id]{scroll-margin-top:5.5rem}.project-prose>:is(h1,h2),.project-prose details>summary>:is(h1,h2){color:var(--foreground);font-size:clamp(1.5rem,1.35rem + .6vw,1.8rem);font-weight:650;line-height:1.2;letter-spacing:-.03em;text-wrap:balance}.project-prose>:is(h1,h2){margin-top:3.75rem;margin-bottom:1rem}.project-prose>:is(h1,h2):first-child{margin-top:0}.project-prose>h3{margin-top:2.75rem;margin-bottom:.75rem;color:var(--foreground);font-size:1.25rem;font-weight:600;line-height:1.3;letter-spacing:-.02em;text-wrap:balance}.project-hover-note{appearance:none;margin:0;border:0;border-bottom:1px dotted color-mix(in oklab,currentColor 58%,transparent);border-radius:.15em;padding:0 .04em;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-align:inherit;cursor:help;transition:background-color .14s ease,border-color .14s ease}.project-hover-note:hover,.project-hover-note[aria-describedby]{border-bottom-color:currentColor;background:color-mix(in oklab,var(--accent) 78%,transparent)}.project-hover-note:focus-visible{outline:2px solid var(--ring);outline-offset:3px}.prose details{margin:2rem 0;padding:.15rem 0;background:transparent}.prose details[open]{padding-bottom:.9rem}.prose details>summary{display:flex;align-items:center;gap:.8rem;margin:0;padding:.85rem .15rem;color:var(--foreground);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.prose details>summary::-webkit-details-marker{display:none}.prose details>summary:before{width:.5rem;height:.5rem;flex:0 0 auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;color:var(--muted-foreground);content:"";transform:rotate(-45deg);transition:color .14s ease,transform .14s ease}.prose details[open]>summary:before{transform:rotate(45deg)}.prose details>summary:hover:before{color:var(--foreground)}.prose details>summary:focus-visible{border-radius:.25rem;outline:2px solid var(--ring);outline-offset:3px}.prose details>summary>:is(h1,h2,h3,h4,h5,h6){flex:1;margin:0;color:inherit}.prose details>summary+*{margin-top:.65rem}.prose details>:last-child{margin-bottom:0}.project-embed{margin:2.75rem 0}.project-image{width:fit-content;max-width:100%;margin:2.75rem auto}.project-image__media{display:block;max-width:100%;height:auto;margin:0 auto}.project-embed--iframe{width:min(72rem,calc(100vw - 2rem));margin-left:50%;transform:translate(-50%)}.project-embed__video,.project-embed__frame-shell{width:100%;border:1px solid color-mix(in oklab,var(--border) 78%,var(--foreground) 22%);border-radius:.75rem;background:var(--muted);box-shadow:0 18px 44px #0000001a,0 3px 10px #0000000f}.project-embed__video{display:block;max-height:min(80svh,52rem);object-fit:contain}.project-embed__frame-shell{height:clamp(28rem,75svh,42rem);overflow:hidden}.project-embed__iframe{display:block;width:100%;height:100%;border:0;background:var(--background)}.project-embed__caption,.project-image__caption{margin-top:.7rem;color:var(--muted-foreground);font-size:.8125rem;line-height:1.45;text-align:center}.project-hover-tooltip.svelte-gygcht{position:fixed;z-index:60;visibility:hidden;width:max-content;max-width:min(20rem,calc(100vw - 1.5rem));border:1px solid color-mix(in oklab,var(--border) 75%,var(--foreground) 25%);border-radius:.625rem;padding:.6rem .75rem;background:var(--popover);box-shadow:0 14px 34px #00000021,0 3px 9px #00000014;color:var(--popover-foreground);font-size:.8125rem;font-weight:450;line-height:1.45;overflow-wrap:anywhere;text-wrap:pretty;pointer-events:none;opacity:0;transform:translateY(2px) scale(.985);transform-origin:center bottom}.project-hover-tooltip.positioned.svelte-gygcht{visibility:visible;opacity:1;transform:translateY(0) scale(1);animation:svelte-gygcht-hover-note-in .14s ease-out}.project-hover-tooltip[data-placement=bottom].svelte-gygcht{transform-origin:center top}.project-hover-tooltip.svelte-gygcht:after{position:absolute;left:var(--tooltip-arrow-left);width:.5rem;height:.5rem;background:var(--popover);content:"";transform:translate(-50%) rotate(45deg)}.project-hover-tooltip[data-placement=top].svelte-gygcht:after{bottom:-.3rem;border-right:1px solid color-mix(in oklab,var(--border) 75%,var(--foreground) 25%);border-bottom:1px solid color-mix(in oklab,var(--border) 75%,var(--foreground) 25%)}.project-hover-tooltip[data-placement=bottom].svelte-gygcht:after{top:-.3rem;border-top:1px solid color-mix(in oklab,var(--border) 75%,var(--foreground) 25%);border-left:1px solid color-mix(in oklab,var(--border) 75%,var(--foreground) 25%)}@keyframes svelte-gygcht-hover-note-in{0%{opacity:0;transform:translateY(2px) scale(.985)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-hover-note{transition:none}.prose details>summary:before{transition:none}.project-hover-tooltip.positioned.svelte-gygcht{animation:none}}@media(min-width:75rem){.project-article--with-toc.svelte-gygcht{max-width:none;grid-template-columns:minmax(0,1fr) minmax(0,45rem) minmax(0,1fr)}.project-article--with-toc.svelte-gygcht>.project-main-column:where(.svelte-gygcht){grid-column:2}.project-article--with-toc.svelte-gygcht>.project-toc-column:where(.svelte-gygcht){grid-row:4;grid-column:1;align-self:stretch;justify-self:end;width:min(17rem,calc(100% - 3rem));margin-right:3rem}.project-article--with-toc.svelte-gygcht>.project-prose:where(.svelte-gygcht){grid-row:4}}
