.project-tile-wrapper.svelte-krn66g{position:relative;width:100%;margin:0;padding:0;transform:translateZ(0);backface-visibility:hidden}.project-tile.svelte-krn66g{position:relative;cursor:pointer;background:hsl(var(--b1));transition:transform .2s ease,box-shadow .2s ease;outline:none;border:none;padding:0;width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;will-change:transform;box-shadow:none}[data-theme=light] .project-tile.svelte-krn66g{background:#fff;box-shadow:none}[data-theme=dark] .project-tile.svelte-krn66g{background:hsl(var(--b2));box-shadow:none}@media (min-width: 768px){[data-theme=light] .project-tile.svelte-krn66g{box-shadow:0 1px 2px #00000008}[data-theme=dark] .project-tile.svelte-krn66g{box-shadow:0 1px 2px #00000026}}.project-tile-wrapper.svelte-krn66g:hover .project-tile:where(.svelte-krn66g),.project-tile.svelte-krn66g:focus-visible{transform:translateY(-2px)}[data-theme=light] .project-tile-wrapper.svelte-krn66g:hover .project-tile:where(.svelte-krn66g),[data-theme=light] .project-tile.svelte-krn66g:focus-visible{box-shadow:0 4px 12px #00000014,0 2px 4px #0000000a}[data-theme=dark] .project-tile-wrapper.svelte-krn66g:hover .project-tile:where(.svelte-krn66g),[data-theme=dark] .project-tile.svelte-krn66g:focus-visible{box-shadow:0 4px 12px #00000040,0 2px 4px #00000026}.project-tile.svelte-krn66g:active{transform:translateY(-1px)}.project-tile.svelte-krn66g:focus-visible{outline-offset:3px}[data-theme=light] .project-tile.svelte-krn66g:focus-visible{outline:1px solid rgba(0,0,0,.2)}[data-theme=dark] .project-tile.svelte-krn66g:focus-visible{outline:1px solid rgba(255,255,255,.3)}.image-wrapper.svelte-krn66g{position:relative;aspect-ratio:16/10;overflow:hidden;background:hsl(var(--b2));min-height:200px;width:100%;max-width:100%;border:none;outline:none;margin:0;padding:0;box-sizing:border-box}.image-skeleton.svelte-krn66g{position:absolute;inset:0;background:linear-gradient(90deg,hsl(var(--b2)),hsl(var(--b3)) 25%,hsl(var(--b2)) 50% 100%);background-size:200% 100%;animation:svelte-krn66g-skeleton-loading 1.2s ease-in-out infinite;z-index:1}[data-theme=dark] .image-skeleton.svelte-krn66g{background:linear-gradient(90deg,#28282d,#3c3c41 25%,#28282d 50% 100%);background-size:200% 100%}@keyframes svelte-krn66g-skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.shimmer.svelte-krn66g{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.2) 50%,transparent 60%);animation:svelte-krn66g-shimmer 1.5s ease-in-out infinite;mix-blend-mode:overlay}@keyframes svelte-krn66g-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.project-image.svelte-krn66g{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);transform:translateZ(0) scale(1.03);backface-visibility:hidden;will-change:transform,opacity;opacity:0}.project-image.loaded.svelte-krn66g{opacity:1;transform:translateZ(0) scale(1);animation:svelte-krn66g-imageReveal .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes svelte-krn66g-imageReveal{0%{opacity:0;transform:translateZ(0) scale(1.02)}to{opacity:1;transform:translateZ(0) scale(1)}}.project-tile-wrapper.svelte-krn66g:hover .project-image:where(.svelte-krn66g){transform:scale(1.05) translateZ(0)}@media (hover: none){.project-image.svelte-krn66g{opacity:1!important}}@media (max-width: 768px){.project-image.svelte-krn66g{opacity:1!important}}.category-badge.svelte-krn66g{position:absolute;top:10px;left:10px;width:8px;height:8px;padding:0;background:transparent!important;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .2s ease;cursor:pointer;border:none;outline:none;pointer-events:all}[data-theme=dark] .category-badge.svelte-krn66g{background:transparent!important}.category-badge.svelte-krn66g:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px;border-radius:4px}.category-icon.svelte-krn66g{width:1.5rem;height:1.5rem;display:block;color:#8b8b8b;transition:color .2s ease;opacity:1}[data-theme=dark] .category-icon.svelte-krn66g{color:#7d7d7d;opacity:1}.project-tile-wrapper.svelte-krn66g:hover .category-icon:where(.svelte-krn66g){color:#666;opacity:1}[data-theme=dark] .project-tile-wrapper.svelte-krn66g:hover .category-icon:where(.svelte-krn66g){color:#a6a6a6;opacity:1}.category-badge.svelte-krn66g:hover{transform:scale(1.05)}.category-badge.svelte-krn66g:hover .category-icon:where(.svelte-krn66g){color:#fff;filter:drop-shadow(0 0 8px rgba(255,255,255,.9)) drop-shadow(0 0 12px rgba(255,255,255,.6)) drop-shadow(0 0 16px rgba(255,255,255,.4));transition:all .3s ease}[data-theme=dark] .category-badge.svelte-krn66g:hover .category-icon:where(.svelte-krn66g){color:#fff;filter:drop-shadow(0 0 6px rgba(255,255,255,.5)) drop-shadow(0 0 10px rgba(255,255,255,.3))}.category-badge.svelte-krn66g:active{transform:scale(.95)}.hover-overlay.svelte-krn66g{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 50%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;opacity:0;transition:opacity .3s ease;pointer-events:none}.project-tile-wrapper.svelte-krn66g:hover .hover-overlay:where(.svelte-krn66g),.project-tile.svelte-krn66g:focus-visible .hover-overlay:where(.svelte-krn66g){opacity:1}.hover-content.svelte-krn66g{align-self:flex-start;width:100%}.project-title.svelte-krn66g{font-size:clamp(1rem,3vw,1.5rem);font-weight:300;margin:0 0 .75rem;line-height:1.2;letter-spacing:-.02em;color:#fff;font-family:var(--font-sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;text-shadow:0 2px 8px rgba(0,0,0,.6),0 4px 16px rgba(0,0,0,.3)}.project-metadata.svelte-krn66g{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.meta-item.svelte-krn66g{font-family:var(--font-mono, monospace);font-size:.625rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:#fffc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.meta-item.meta-year.svelte-krn66g{color:#fff;background:#00f;font-weight:600;padding:.2rem .4rem;border-radius:.25rem}@media (max-width: 768px){.project-tile-wrapper.svelte-krn66g:hover .project-tile:where(.svelte-krn66g),.project-tile.svelte-krn66g:focus-visible{transform:translateY(-1px)}.category-badge.svelte-krn66g{width:8px;height:8px;top:8px;left:8px;padding:0}.category-badge.svelte-krn66g:hover{transform:scale(1.05)}.hover-overlay.svelte-krn66g{padding:.75rem}.hover-content.svelte-krn66g{padding-top:0}.project-title.svelte-krn66g{font-size:clamp(.875rem,2.5vw,1.25rem);margin-bottom:.5rem}.project-metadata.svelte-krn66g{gap:.5rem}.meta-item.svelte-krn66g{font-size:.5625rem;max-width:120px}}@media (hover: none){.hover-overlay.svelte-krn66g{opacity:1;background:linear-gradient(to bottom,#0000,#0000001a,#000000b3)}.project-tile.svelte-krn66g:active{transform:scale(.98)}.project-image.svelte-krn66g{transform:none!important}}@media (prefers-reduced-motion: reduce){.project-tile.svelte-krn66g,.project-image.svelte-krn66g,.hover-overlay.svelte-krn66g{transition:none}.project-tile.svelte-krn66g:hover{transform:none}.project-image.svelte-krn66g{transform:none!important}}.projects-container.svelte-uq2an4{width:100%;max-width:100%;margin:0;padding:0}@media (min-width: 768px){.projects-container.svelte-uq2an4{max-width:1440px;margin:0 auto}}.projects-grid.minimal-projects-grid.svelte-uq2an4{display:grid!important;grid-template-columns:1fr!important;gap:0;padding:0;width:100%;max-width:100%;box-sizing:border-box;grid-auto-rows:minmax(0,auto);overflow-x:hidden}.project-tile-wrapper.svelte-uq2an4{transition:all .3s ease}.project-tile-wrapper.non-matching.svelte-uq2an4{opacity:.35;filter:grayscale(30%)}.project-tile-wrapper.non-matching.svelte-uq2an4:hover{opacity:.6;filter:grayscale(15%)}.projects-grid.minimal-projects-grid .project-tile-wrapper{animation:svelte-uq2an4-fadeInUp .5s cubic-bezier(.4,0,.2,1) both;animation-delay:calc(var(--index, 0) * 40ms)}.projects-grid.minimal-projects-grid>*:nth-child(1){--index: 0}.projects-grid.minimal-projects-grid>*:nth-child(2){--index: 1}.projects-grid.minimal-projects-grid>*:nth-child(3){--index: 2}.projects-grid.minimal-projects-grid>*:nth-child(4){--index: 3}.projects-grid.minimal-projects-grid>*:nth-child(5){--index: 4}.projects-grid.minimal-projects-grid>*:nth-child(6){--index: 5}.projects-grid.minimal-projects-grid>*:nth-child(7){--index: 6}.projects-grid.minimal-projects-grid>*:nth-child(8){--index: 7}.projects-grid.minimal-projects-grid>*:nth-child(9){--index: 8}.projects-grid.minimal-projects-grid>*:nth-child(10){--index: 9}.projects-grid.minimal-projects-grid>*:nth-child(11){--index: 10}.projects-grid.minimal-projects-grid>*:nth-child(12){--index: 11}@media (min-width: 640px){.projects-grid.minimal-projects-grid.svelte-uq2an4{grid-template-columns:repeat(2,1fr)!important;gap:0;padding:0}}@media (min-width: 768px){.projects-grid.minimal-projects-grid.svelte-uq2an4{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px;padding:0 2rem}}@media (min-width: 1024px){.projects-grid.minimal-projects-grid.svelte-uq2an4{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px}}@media (min-width: 1200px){.projects-grid.minimal-projects-grid.svelte-uq2an4{grid-template-columns:repeat(3,1fr)!important;gap:24px;padding:0 2rem}}@media (min-width: 1536px){.projects-grid.minimal-projects-grid.svelte-uq2an4{grid-template-columns:repeat(3,1fr)!important;gap:32px;padding:0 2rem}}@media (max-width: 480px){.projects-grid.minimal-projects-grid.svelte-uq2an4{padding:0!important;gap:0!important}}@keyframes svelte-uq2an4-fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.projects-grid.minimal-projects-grid>*{animation:none;opacity:1}}.project-tile-skeleton.svelte-1p1shoh{position:relative;width:100%;animation:svelte-1p1shoh-pulse 2s ease-in-out infinite}.skeleton-image.svelte-1p1shoh{position:relative;width:100%;aspect-ratio:16/10;background:hsl(var(--b2));min-height:200px;overflow:hidden}.skeleton-shimmer.svelte-1p1shoh{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,hsla(var(--bc) / .05) 50%,transparent 100%);animation:svelte-1p1shoh-shimmer 2s ease-in-out infinite}@keyframes svelte-1p1shoh-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes svelte-1p1shoh-pulse{0%,to{opacity:1}50%{opacity:.7}}.skeleton-badge.svelte-1p1shoh{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;background:hsl(var(--b1));border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px hsla(var(--bc) / .1)}.skeleton-icon.svelte-1p1shoh{width:16px;height:16px;background:hsl(var(--b2));border-radius:2px}[data-theme=dark] .skeleton-image.svelte-1p1shoh{background:hsla(var(--bc) / .05)}[data-theme=dark] .skeleton-badge.svelte-1p1shoh{background:hsla(var(--bc) / .08)}[data-theme=dark] .skeleton-icon.svelte-1p1shoh{background:hsla(var(--bc) / .1)}.projects-container.svelte-1molxct{width:100%;max-width:100%;margin:0;padding:0;position:relative;min-height:auto;overflow-y:hidden!important;overflow-x:hidden!important;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;will-change:scroll-position}.projects-container.is-loading.svelte-1molxct{opacity:.8}.projects-grid.minimal-projects-grid.infinite-scroll-grid.svelte-1molxct{display:grid!important;grid-template-columns:1fr!important;gap:0;padding:0;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden!important;position:relative}.projects-grid.minimal-projects-grid.infinite-scroll-grid.is-loading.svelte-1molxct{pointer-events:none}.project-item.svelte-1molxct{opacity:0;animation:svelte-1molxct-itemReveal .5s cubic-bezier(.4,0,.2,1) forwards;transform-origin:center center;will-change:auto;contain:layout style paint;backface-visibility:hidden;transform:translateZ(0);isolation:isolate}.project-item.svelte-1molxct:not(:nth-child(n+13)){will-change:transform,opacity}@keyframes svelte-1molxct-itemReveal{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.skeleton-item.svelte-1molxct{opacity:0;animation:svelte-1molxct-skeletonAppear .3s ease-out forwards}@keyframes svelte-1molxct-skeletonAppear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 640px){.projects-grid.minimal-projects-grid.infinite-scroll-grid.svelte-1molxct{grid-template-columns:repeat(2,1fr)!important;gap:0;padding:0}}@media (min-width: 768px){.projects-container.svelte-1molxct{max-width:1440px;margin:0 auto;padding:2rem 0}.projects-grid.minimal-projects-grid.infinite-scroll-grid.svelte-1molxct{grid-template-columns:repeat(2,1fr)!important;gap:24px;padding:0 2rem}}@media (min-width: 1200px){.projects-grid.minimal-projects-grid.infinite-scroll-grid.svelte-1molxct{grid-template-columns:repeat(3,1fr)!important;gap:24px;padding:0 2rem}}@media (min-width: 1536px){.projects-grid.minimal-projects-grid.infinite-scroll-grid.svelte-1molxct{grid-template-columns:repeat(3,1fr)!important;gap:32px;padding:0 2rem}}@media (max-width: 480px){.projects-container.svelte-1molxct{padding:0}.projects-grid.minimal-projects-grid.infinite-scroll-grid.svelte-1molxct{padding:0;gap:0}}.scroll-sentinel.svelte-1molxct{width:100%;height:80px;display:flex;align-items:center;justify-content:center;margin-top:1rem;position:relative}@media (prefers-reduced-motion: reduce){.project-item.svelte-1molxct{animation:none;opacity:1}}.projects-container.svelte-1molxct{scrollbar-width:thin;scrollbar-color:rgba(0,0,255,.2) transparent}.projects-container.svelte-1molxct::-webkit-scrollbar{width:8px}.projects-container.svelte-1molxct::-webkit-scrollbar-track{background:transparent}.projects-container.svelte-1molxct::-webkit-scrollbar-thumb{background-color:#00f3;border-radius:4px}.projects-container.svelte-1molxct::-webkit-scrollbar-thumb:hover{background-color:#0000ff4d}@supports (scroll-behavior: smooth){*{scroll-behavior:smooth}}.project-item img{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.projects-grid{will-change:scroll-position}.project-item.svelte-1y6plw9{grid-column:auto;grid-row:auto;aspect-ratio:1 / 1;position:relative;overflow:hidden}.image-container.svelte-1y6plw9{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.image-placeholder.svelte-1y6plw9{position:absolute;inset:0;background:#f0f0f0;z-index:1;transition:opacity .3s ease}.image-placeholder.loaded.svelte-1y6plw9{opacity:0;pointer-events:none}.skeleton-shimmer.svelte-1y6plw9{width:100%;height:100%;background:linear-gradient(90deg,#f0f0f0,#f8f8f8,#f0f0f0);background-size:200% 100%;animation:svelte-1y6plw9-shimmer 1.5s infinite}@keyframes svelte-1y6plw9-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.project-image.svelte-1y6plw9{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;opacity:0;transition:opacity .3s ease;z-index:2;min-width:100%;min-height:100%}.project-image.visible.svelte-1y6plw9{opacity:1}.project-no-image.svelte-1y6plw9{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5;color:#999;font-size:.875rem;z-index:2}.project-overlay.svelte-1y6plw9{z-index:3}.category-wipeout-container.svelte-1y6plw9{z-index:4}.clad-projects-grid.svelte-1owedzp{width:100%;display:flex;flex-direction:column;margin:0 auto;padding:0;position:relative;box-sizing:border-box;isolation:isolate}.projects-grid.svelte-1owedzp .category-wipeout-container:where(.svelte-1owedzp),.projects-grid.svelte-1owedzp .category-wipeout-overlay:where(.svelte-1owedzp),.projects-grid.svelte-1owedzp .project-overlay:where(.svelte-1owedzp),.projects-grid.svelte-1owedzp .image-container:where(.svelte-1owedzp):before,.projects-grid.svelte-1owedzp .image-container:where(.svelte-1owedzp):after{position:absolute!important}.projects-grid-inner.svelte-1owedzp{display:grid;grid-template-columns:repeat(1,1fr);gap:1.5rem;width:100%;margin:0 auto;padding:1rem;position:relative;box-sizing:border-box;grid-auto-rows:auto;grid-auto-flow:row;align-items:start;min-height:0}.projects-grid-inner.svelte-1owedzp>:where(.svelte-1owedzp){position:relative;grid-column:auto;grid-row:auto;margin:0}.grid-item-wrapper.svelte-1owedzp{display:block;width:100%}@media (min-width: 640px){.projects-grid-inner.svelte-1owedzp:not(.single-column):not(.two-column){grid-template-columns:repeat(2,1fr)}.single-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(1,1fr)}.two-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.projects-grid-inner.svelte-1owedzp{padding:2rem;gap:2rem}}@media (min-width: 1024px){.projects-grid-inner.svelte-1owedzp:not(.single-column):not(.two-column){grid-template-columns:repeat(3,1fr)}.single-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(1,1fr)}.two-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(2,1fr)}}@media (min-width: 1280px){.projects-grid-inner.svelte-1owedzp:not(.single-column):not(.two-column){grid-template-columns:repeat(3,1fr)}.single-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(1,1fr);gap:2.5rem}.two-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(2,1fr)}}@media (min-width: 1536px){.projects-grid-inner.svelte-1owedzp:not(.single-column):not(.two-column){grid-template-columns:repeat(3,1fr);gap:2.5rem}.single-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(1,1fr);gap:2.5rem}.two-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(2,1fr);gap:2.5rem}}@media (min-width: 1920px){.projects-grid-inner.svelte-1owedzp:not(.single-column):not(.two-column){grid-template-columns:repeat(3,1fr);gap:3rem}.single-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(1,1fr);gap:3rem}.two-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(2,1fr);gap:3rem}}.project-item.svelte-1owedzp{width:100%;aspect-ratio:1/1;position:relative;cursor:pointer;transition:all .5s cubic-bezier(.19,1,.22,1);box-shadow:0 0 #0000;transform:translateY(0) scale(1);overflow:hidden;background-color:#f0f0f0;transform-style:preserve-3d;backface-visibility:hidden;min-height:0;contain:layout style;z-index:auto}.project-item.loading.svelte-1owedzp{background-color:#f8f8f8}.project-item.loading.svelte-1owedzp .project-image:where(.svelte-1owedzp){opacity:.3;filter:blur(0px) grayscale(100%)}.project-item.loaded.svelte-1owedzp .project-image:where(.svelte-1owedzp){opacity:1;transition:opacity .4s ease,filter .4s ease}.project-item.failed.svelte-1owedzp{background-color:#f5f5f5}.project-item.failed.svelte-1owedzp .project-image:where(.svelte-1owedzp){opacity:.5;filter:grayscale(100%) brightness(.8)}.placeholder-item.svelte-1owedzp{background-color:#f0f0f0;animation:svelte-1owedzp-fadeIn .3s ease forwards;opacity:.6}.placeholder-content.svelte-1owedzp{width:100%;height:100%;position:relative;overflow:hidden;background:linear-gradient(90deg,#fff0,#fff6,#fff0);background-size:200% 100%;animation:svelte-1owedzp-shimmer 1.5s infinite}@keyframes svelte-1owedzp-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes svelte-1owedzp-fadeIn{0%{opacity:.4}to{opacity:.7}}.project-item.svelte-1owedzp{opacity:1;transform:none}.project-item.svelte-1owedzp:hover,.project-item.viewport-centered.svelte-1owedzp{box-shadow:0 8px 16px #0000000f;transform:translateY(-2px)}.project-item.svelte-1owedzp:not(:hover){will-change:auto}.project-item.svelte-1owedzp:hover .image-container:where(.svelte-1owedzp):before,.project-item.svelte-1owedzp:hover .image-container:where(.svelte-1owedzp):after,.project-item.viewport-centered.svelte-1owedzp .image-container:where(.svelte-1owedzp):before,.project-item.viewport-centered.svelte-1owedzp .image-container:where(.svelte-1owedzp):after{opacity:0}.category-wipeout-container.svelte-1owedzp{position:absolute;top:1rem;right:1rem;z-index:10;overflow:hidden;cursor:pointer;height:2rem;display:flex;align-items:center;opacity:0;transform:translateY(-10px);transition:all .5s cubic-bezier(.19,1,.22,1) .1s;pointer-events:all}.project-item.svelte-1owedzp:hover .category-wipeout-container:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .category-wipeout-container:where(.svelte-1owedzp){opacity:1;transform:translateY(0)}.category-wipeout-text.svelte-1owedzp{color:#fff;font-size:.875rem;font-weight:600;padding:.25rem .75rem;background-color:transparent;position:relative;z-index:2;text-transform:uppercase;letter-spacing:.05em}.category-wipeout-overlay.svelte-1owedzp{position:absolute;top:0;left:0;width:0%;height:100%;background-color:#00f;z-index:1;transition:width .4s cubic-bezier(.19,1,.22,1)}.category-wipeout-container.svelte-1owedzp:hover .category-wipeout-overlay:where(.svelte-1owedzp){width:100%}.category-wipeout-container.svelte-1owedzp:not(:hover) .category-wipeout-overlay:where(.svelte-1owedzp){transition-delay:.1s}.category-wipeout-container.svelte-1owedzp:focus-visible{outline:2px solid white;outline-offset:2px}.project-overlay.svelte-1owedzp{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1rem,3vw,1.5rem);background:linear-gradient(to top,#000000e6,#0009 35%,#0003 60%,#0000 80%)!important;opacity:0;transition:opacity .5s cubic-bezier(.19,1,.22,1),background .5s cubic-bezier(.19,1,.22,1);z-index:4;transform:translateY(10px);pointer-events:none}.project-item.svelte-1owedzp:hover .project-overlay:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-overlay:where(.svelte-1owedzp){opacity:1;transform:translateY(0);background:linear-gradient(to top,rgba(0,0,0,.4),rgba(0,0,0,.1) 50%,transparent 80%)!important}.project-title.svelte-1owedzp{font-family:var(--font-sans);color:#fff;font-size:1.125rem;font-weight:600;line-height:1.3;margin:0;transform:translateY(10px);transition:transform .6s cubic-bezier(.19,1,.22,1);text-shadow:0 2px 4px rgba(0,0,0,.9),0 4px 12px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.2);opacity:0;padding:.375rem .625rem;margin:-.375rem -.625rem .375rem;background:#00000059;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:4px}.projects-grid.single-column-grid.svelte-1owedzp .project-title:where(.svelte-1owedzp){font-size:1.375rem;line-height:1.4}.project-item.svelte-1owedzp:hover .project-title:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-title:where(.svelte-1owedzp){transform:translateY(0);opacity:1;text-shadow:0 1px 4px rgba(0,0,0,.9),0 2px 12px rgba(0,0,0,.4)}.project-location.svelte-1owedzp{color:#fff;font-size:.8125rem;font-weight:500;line-height:1.4;margin-top:.5rem;transform:translateY(10px);transition:transform .6s cubic-bezier(.19,1,.22,1) .05s,opacity .6s cubic-bezier(.19,1,.22,1) .05s;text-shadow:0 1px 3px rgba(0,0,0,.9),0 3px 8px rgba(0,0,0,.4);opacity:0;padding:.25rem .625rem;margin:0 -.625rem;background:#00000040;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:3px}.projects-grid.single-column-grid.svelte-1owedzp .project-location:where(.svelte-1owedzp){font-size:.9375rem;line-height:1.5}.project-item.svelte-1owedzp:hover .project-location:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-location:where(.svelte-1owedzp){transform:translateY(0);opacity:1;text-shadow:0 1px 4px rgba(0,0,0,.8),0 2px 8px rgba(0,0,0,.4)}.project-item.svelte-1owedzp:focus-visible{outline:2px solid var(--p, blue);outline-offset:2px}.scroll-trigger.svelte-1owedzp{height:100px;width:100%;opacity:0;display:flex;justify-content:center;align-items:center;margin:0;position:relative;pointer-events:none;flex-shrink:0}@media (hover: none){.project-overlay.svelte-1owedzp{opacity:.2;background:linear-gradient(to top,rgba(0,0,0,.8),transparent 50%)}.project-item.svelte-1owedzp:active .project-overlay:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-overlay:where(.svelte-1owedzp){opacity:1}.project-item.svelte-1owedzp:active .project-image:where(.svelte-1owedzp){transform:scale(1.05);filter:none!important;-webkit-filter:none!important}.project-item.viewport-centered.svelte-1owedzp .project-image:where(.svelte-1owedzp){filter:none!important;-webkit-filter:none!important}.project-item.svelte-1owedzp:active .category-wipeout-container:where(.svelte-1owedzp){opacity:1;transform:translateY(0)}.project-item.svelte-1owedzp:active .category-wipeout-overlay:where(.svelte-1owedzp){width:100%}}.project-placeholder.svelte-1owedzp{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--b2, #f0f0f0);color:var(--bc, #000000);opacity:.7}@media (max-width: 639.98px){.project-item.viewport-centered.svelte-1owedzp{z-index:1;transition:all .7s cubic-bezier(.19,1,.22,1)}}.hide-category.svelte-1owedzp .category-wipeout-container:where(.svelte-1owedzp){display:none}.projects-grid.single-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){max-width:100%;margin-left:auto;margin-right:auto;width:100%;grid-auto-rows:auto}.projects-grid.svelte-1owedzp:not(.single-column-grid) .projects-grid-inner:where(.svelte-1owedzp){max-width:100%;width:100%;margin-left:auto;margin-right:auto;box-sizing:border-box}.projects-grid.single-column-grid.svelte-1owedzp .project-item:where(.svelte-1owedzp){aspect-ratio:16/9;margin-bottom:1rem;transform-origin:center center}.grid-preloader.svelte-1owedzp{position:fixed;top:0;left:0;width:100%;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--b1, white);z-index:1000;padding-top:var(--header-height-mobile, 4rem);box-sizing:border-box}@media (min-width: 768px){.grid-preloader.svelte-1owedzp{padding-top:var(--header-height-desktop, 4rem)}}.blue-line-loader.svelte-1owedzp{width:min(280px,70vw);height:3px;background-color:#0000ff14;overflow:hidden;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000001a}.blue-line-progress.svelte-1owedzp{height:100%;background:linear-gradient(90deg,#00f,#4040ff,#00f);background-size:200% 100%;transition:width .4s cubic-bezier(.4,0,.2,1);transform-origin:left center;animation:svelte-1owedzp-shimmerProgress 2s ease-in-out infinite}@keyframes svelte-1owedzp-shimmerProgress{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.preloader-text.svelte-1owedzp{font-size:.8125rem;color:var(--bc, #333);opacity:.6;font-weight:400;letter-spacing:.08em;text-transform:uppercase;font-family:var(--font-sans)}.grid-content-hidden.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp),.grid-content-hidden.svelte-1owedzp .scroll-trigger:where(.svelte-1owedzp),.grid-content-hidden.svelte-1owedzp .text-center.py-12:where(.svelte-1owedzp){display:none!important}:root{--duotone-bright: #0070d8;--duotone-dark: #001c4d;--overlay-blue: #0000ff}@media (hover: hover) and (pointer: fine){.project-item.svelte-1owedzp:hover,.project-item.viewport-centered.svelte-1owedzp{box-shadow:0 15px 30px #00000014;transform:translateY(-7px) scale(1.01)}.project-item.svelte-1owedzp:hover .project-image:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-image:where(.svelte-1owedzp){filter:brightness(1);-webkit-filter:brightness(1)}.project-item.svelte-1owedzp:hover .image-container:where(.svelte-1owedzp):before,.project-item.svelte-1owedzp:hover .image-container:where(.svelte-1owedzp):after,.project-item.viewport-centered.svelte-1owedzp .image-container:where(.svelte-1owedzp):before,.project-item.viewport-centered.svelte-1owedzp .image-container:where(.svelte-1owedzp):after{opacity:0}.project-item.svelte-1owedzp:hover .category-wipeout-container:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .category-wipeout-container:where(.svelte-1owedzp){opacity:1;transform:translateY(0)}.project-item.svelte-1owedzp:hover .project-overlay:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-overlay:where(.svelte-1owedzp){opacity:1;transform:translateY(0);background:none!important}.project-item.svelte-1owedzp:hover .project-title:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-title:where(.svelte-1owedzp){transform:translateY(0);opacity:1;text-shadow:0 1px 3px rgba(0,0,0,.5)}.project-item.svelte-1owedzp:hover .project-location:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-location:where(.svelte-1owedzp){transform:translateY(0);opacity:1;text-shadow:0 1px 3px rgba(0,0,0,.5)}}.image-container.svelte-1owedzp{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;z-index:1}.image-container.svelte-1owedzp:before{content:"";position:absolute;inset:0;background-color:var(--overlay-blue);mix-blend-mode:color;z-index:3;transition:opacity 2.2s cubic-bezier(.19,1,.22,1);pointer-events:none;opacity:.12}.image-container.svelte-1owedzp:after{content:none}.project-image.svelte-1owedzp{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;filter:grayscale(70%);transition:transform .5s ease,filter .3s ease;z-index:1;transform:translateZ(0);will-change:transform;min-width:100%;min-height:100%}.project-item.svelte-1owedzp:hover .project-image:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-image:where(.svelte-1owedzp){filter:brightness(1);-webkit-filter:brightness(1)}.single-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(1,1fr)}.two-column-grid.svelte-1owedzp .projects-grid-inner:where(.svelte-1owedzp){grid-template-columns:repeat(2,1fr)}@media (prefers-reduced-motion: reduce){.project-item.animate-in.svelte-1owedzp{animation:none;opacity:1;transform:none}.project-item.svelte-1owedzp,.project-image.svelte-1owedzp,.project-overlay.svelte-1owedzp,.category-wipeout-container.svelte-1owedzp,.category-wipeout-overlay.svelte-1owedzp{transition:none!important}.project-title.svelte-1owedzp,.project-location.svelte-1owedzp{transition:none}.project-item.svelte-1owedzp:hover,.project-item.viewport-centered.svelte-1owedzp{transform:none}.project-item.svelte-1owedzp:hover .project-overlay:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-overlay:where(.svelte-1owedzp){transform:none;opacity:1}.project-item.svelte-1owedzp:hover .project-title:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-title:where(.svelte-1owedzp),.project-item.svelte-1owedzp:hover .project-location:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-location:where(.svelte-1owedzp){transform:none;opacity:1}.project-item.svelte-1owedzp:hover .project-image:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .project-image:where(.svelte-1owedzp){transform:none}.project-item.svelte-1owedzp:hover .category-wipeout-container:where(.svelte-1owedzp),.project-item.viewport-centered.svelte-1owedzp .category-wipeout-container:where(.svelte-1owedzp){transform:none;opacity:1}.category-wipeout-overlay.svelte-1owedzp{transition:none}@keyframes svelte-1owedzp-fadeUpIn{0%,to{opacity:1;transform:none}}@keyframes svelte-1owedzp-shimmerProgress{0%,to{background-position:0% 50%}}@keyframes svelte-1owedzp-skeletonFadeIn{0%,to{opacity:1;transform:none}}@keyframes svelte-1owedzp-shimmer{0%,to{background-position:0% 0}}@keyframes svelte-1owedzp-fadeIn{0%,to{opacity:.7}}}
