@layer components{@keyframes sticky-widget-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sticky-widget-enter{animation:sticky-widget-enter .2s var(--ease-out)forwards}.mobile-info-hidden{opacity:0;transform:translateY(12px)}.mobile-info-visible{opacity:1;transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);transform:translateY(0)}.mobile-info-description{opacity:0;transform:translateY(8px)}.mobile-info-visible .mobile-info-description{opacity:1;transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);transition-delay:.2s;transform:translateY(0)}.mobile-info-meta-item{opacity:0;transform:translateY(8px)}.mobile-info-visible .mobile-info-meta-item{opacity:1;transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);transition-delay:calc(.4s + var(--item-index,0)*80ms);transform:translateY(0)}@media (prefers-reduced-motion:reduce){.mobile-info-hidden,.mobile-info-visible{transition:none;transform:none}.mobile-info-hidden{opacity:1}.mobile-info-description,.mobile-info-visible .mobile-info-description,.mobile-info-meta-item,.mobile-info-visible .mobile-info-meta-item{opacity:1;transition:none;transform:none}}.project-info-widget{width:min(320px,85vw);position:relative}.project-info-card-bg{pointer-events:none;background:0 0;border:.5px solid #0000;border-radius:20px;transition:background .12s ease-in,box-shadow .12s ease-in,border-color .12s ease-in;position:absolute;inset:-12px -16px}.project-info-widget.expanded .project-info-card-bg{transition:background .18s var(--ease-out),box-shadow .2s var(--ease-out),border-color .18s var(--ease-out);background:#110c09;background:lab(3.67867% 1.2494 1.74029);border-color:#322d2933;border-color:lab(18.7676% 1.98336 3.18609/.2);box-shadow:0 1px 2px #00000014,0 4px 16px -4px #00000029,0 12px 40px -8px #0000001f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .project-info-widget.expanded .project-info-card-bg{background:#0a0705;background:lab(1.97336% .658974 .920162);border-color:#ffffff14;border-color:lab(100% 0 0/.08);box-shadow:0 4px 16px -2px #0006,0 12px 40px -4px #0000004d}}[data-theme=dark] .project-info-widget.expanded .project-info-card-bg{background:#0a0705;background:lab(1.97336% .658974 .920162);border-color:#ffffff14;border-color:lab(100% 0 0/.08);box-shadow:0 4px 16px -2px #0006,0 12px 40px -4px #0000004d}.project-info-widget.expanded .project-info-content{--content-primary:#f1eeeb;--content-secondary:#b0adab;--content-tertiary:#948e89;--color-content-primary:#f1eeeb;--color-content-secondary:#b0adab;--color-content-tertiary:#948e89}@supports (color:lab(0% 0 0)){.project-info-widget.expanded .project-info-content{--content-primary:lab(94.203% .568122 1.79815);--content-secondary:lab(70.9911% .837863 1.66107);--content-tertiary:lab(59.3696% 1.9443 3.15801);--color-content-primary:lab(94.203% .568122 1.79815);--color-content-secondary:lab(70.9911% .837863 1.66107);--color-content-tertiary:lab(59.3696% 1.9443 3.15801)}}.project-info-content{z-index:1;width:min(320px,85vw);padding:12px 16px;position:relative}@media (max-width:1279px){.gallery-section{background-color:var(--section-bg-light,var(--section-bg-dark))}}@media (max-width:1279px) and (prefers-color-scheme:dark){:root:not([data-theme=light]) .gallery-section{background-color:var(--section-bg-dark,var(--section-bg-light))}}@media (max-width:1279px){[data-theme=dark] .gallery-section{background-color:var(--section-bg-dark,var(--section-bg-light))}}:root{--project-text-primary:var(--content-primary);--project-text-secondary:var(--content-secondary);--project-text-tertiary:var(--content-tertiary)}[data-project-contrast=light]{--project-text-primary:var(--stone-100);--project-text-secondary:#b0adab;--project-text-tertiary:#a7a4a1}@supports (color:lab(0% 0 0)){[data-project-contrast=light]{--project-text-secondary:lab(70.9911% .837863 1.66107);--project-text-tertiary:lab(67.5111% .83822 1.6613)}}[data-project-contrast=dark]{--project-text-primary:var(--stone-700);--project-text-secondary:var(--stone-500);--project-text-tertiary:#574e48}@supports (color:lab(0% 0 0)){[data-project-contrast=dark]{--project-text-tertiary:lab(33.8312% 2.98008 4.78295)}}.project-info-widget:not(.expanded) .project-info-content,.project-info-widget:not(.expanded) .project-info-content .text-content-primary{color:var(--project-text-primary)}.project-info-widget:not(.expanded) .project-info-content .text-content-tertiary{color:var(--project-text-tertiary)}.project-info-description-wrapper{max-height:2.8em;transition:max-height .2s var(--ease-out),mask-image .2s var(--ease-out);overflow:hidden;-webkit-mask-image:linear-gradient(#000 50%,#0000 100%);mask-image:linear-gradient(#000 50%,#0000 100%)}.project-info-widget.expanded .project-info-description-wrapper{max-height:20em;-webkit-mask-image:none;mask-image:none}.project-info-description{opacity:.5;transition:opacity .1s ease-in}.project-info-widget.expanded .project-info-description{opacity:1;transition:opacity .15s var(--ease-out)30ms}.project-info-metadata{transition:grid-template-rows .2s var(--ease-out);grid-template-rows:0fr;display:grid}.project-info-widget.expanded .project-info-metadata{grid-template-rows:1fr}.project-info-metadata-inner{overflow:hidden}.project-info-meta-item{opacity:0;filter:blur(4px);transition:opacity 80ms ease-in,transform 80ms ease-in,filter 80ms ease-in;transform:translateY(4px)}.project-info-widget.expanded .project-info-meta-item{opacity:1;filter:blur();transition:opacity .15s var(--ease-out),transform .15s var(--ease-out),filter .15s var(--ease-out);transition-delay:calc(60ms + var(--item-index,0)*30ms);transform:translateY(0)}.project-info-chevron{transition:transform .2s var(--ease-out)}.project-info-widget.expanded .project-info-chevron{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.project-info-card-bg,.project-info-description,.project-info-chevron,.project-info-metadata,.project-info-meta-item{transition:none}.project-info-widget.expanded .project-info-meta-item{transition-delay:0s}}.annotation-label{opacity:0;transition:opacity .5s var(--ease-out),transform .5s var(--ease-out);transition-delay:calc(var(--annotation-index,0)*80ms);transform:translateY(4px)}.annotation-label.visible{opacity:1;transform:translateY(0)}.annotation-label:not(.visible){transition-duration:.8s;transition-delay:0s}.annotation-label-text{-webkit-box-decoration-break:clone;box-decoration-break:clone;-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);background-color:oklch(from var(--surface-sunken)l c h/.88);border-radius:4px;padding:4px 8px;line-height:1.6;display:inline}.annotation-overlay{opacity:0;transition:opacity .4s var(--ease-out);transition-delay:80ms}.annotation-overlay.visible{opacity:1}.annotation-overlay:not(.visible){transition-duration:.8s;transition-delay:0s}@media (prefers-reduced-motion:reduce){.annotation-label,.annotation-label.visible,.annotation-label:not(.visible){transition:opacity .5s var(--ease-out);transition-delay:0s;transform:none}}.annotation-tooltip{opacity:0;filter:blur(4px)drop-shadow(0 1px 2px #00000080);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out),filter .2s var(--ease-out);transform:translateY(-4px)}.annotation-tooltip.visible{opacity:1;filter:blur()drop-shadow(0 1px 2px #00000080);transform:translateY(0)}[data-project-contrast=dark] .annotation-tooltip{filter:blur(4px)}[data-project-contrast=dark] .annotation-tooltip.visible{filter:blur()}@media (prefers-reduced-motion:reduce){.annotation-tooltip,.annotation-tooltip.visible{filter:drop-shadow(0 1px 2px #00000080);transition:opacity .2s var(--ease-out);transform:none}[data-project-contrast=dark] .annotation-tooltip,[data-project-contrast=dark] .annotation-tooltip.visible{filter:none}}.mobile-annotation-tooltip{opacity:0;transform:var(--tooltip-x-transform,translateX(-50%))translateY(var(--tooltip-y-hidden,8px));filter:blur(4px);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out),filter .2s var(--ease-out)}.mobile-annotation-tooltip.visible{opacity:1;transform:var(--tooltip-x-transform,translateX(-50%))translateY(0);filter:blur()}.mobile-annotation-tooltip-body{font-family:var(--font-body);-webkit-backdrop-filter:blur(16px)saturate(1.2);background-color:oklch(from var(--surface-sunken)l c h/.88);width:max-content;max-width:min(280px,80vw);color:var(--content-primary);box-shadow:0 0 0 1px oklch(from var(--content-primary)l c h/.06),0 4px 16px -2px #0006,0 8px 32px -4px #0000004d;border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.5}@media (prefers-reduced-motion:reduce){.mobile-annotation-tooltip,.mobile-annotation-tooltip.visible{transform:var(--tooltip-x-transform,translateX(-50%))translateY(0);filter:none;transition:opacity .2s var(--ease-out)}}.annotation-marker>span{color:#000000e6;background:#fffffff2;position:relative}[data-project-contrast=dark] .annotation-marker>span{color:#fffffff2;background:#000000bf}.annotation-marker:not(.exiting)>span{opacity:0;animation:marker-enter .5s var(--ease-out)forwards;animation-delay:calc(var(--annotation-index,0)*80ms);transform:translateY(8px)}@keyframes marker-enter{to{opacity:1;transform:translateY(0)}}.annotation-marker.exiting>span{opacity:0;animation:marker-exit .4s var(--ease-out)forwards;transform:translateY(8px)}@keyframes marker-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.annotation-marker>span,.annotation-marker:not(.exiting)>span,.annotation-marker.exiting>span{opacity:1;animation:none;transform:none}.annotation-marker.exiting>span{opacity:0}}.annotation-text-list{gap:.25rem;display:grid}.annotation-text-item{opacity:0;animation:annotation-text-enter .4s var(--ease-out)forwards;animation-delay:calc(var(--annotation-index,0)*60ms);grid-template-rows:1fr;display:grid}@keyframes annotation-text-enter{0%{opacity:0;grid-template-rows:0fr}to{opacity:1;grid-template-rows:1fr}}.annotation-text-item.exiting{animation:annotation-text-exit .3s var(--ease-out)forwards}@keyframes annotation-text-exit{0%{opacity:1;grid-template-rows:1fr}to{opacity:0;grid-template-rows:0fr}}.annotation-text-item.active span:last-child{color:var(--content-primary);font-weight:500}@media (prefers-reduced-motion:reduce){.annotation-text-item,.annotation-text-item.exiting{opacity:1;grid-template-rows:1fr;animation:none}.annotation-text-item.exiting{opacity:0;grid-template-rows:0fr}}@keyframes image-placeholder-pulse{0%,to{opacity:.06}50%{opacity:.14}}.image-blur-wrapper:before{content:"";border-radius:inherit;opacity:.1;transition:opacity .3s var(--ease-out);pointer-events:none;border:1px solid;animation:2s ease-in-out infinite image-placeholder-pulse;position:absolute;inset:0}.image-blur-wrapper>img{opacity:0;transition:opacity .3s var(--ease-out)}.image-blur-wrapper.loaded:before{opacity:0;animation:none}.image-blur-wrapper.loaded>img{opacity:1}@media (prefers-reduced-motion:reduce){.image-blur-wrapper:before{opacity:0;animation:none}.image-blur-wrapper>img{opacity:1;transition:none}.image-blur-wrapper.loaded:before{transition:none}}.carousel-nav{z-index:20;cursor:pointer;transition:opacity .2s var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-nav-arrow{background:oklch(from var(--surface-ground)l c h/.7);-webkit-backdrop-filter:blur(12px);width:44px;height:44px;color:var(--stone-100);transition:background .15s var(--ease-out),box-shadow .15s var(--ease-out),color .15s var(--ease-out),transform .2s var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 0 0 1px #ffffff1f,0 4px 12px -4px #0006;box-shadow:0 0 0 1px lab(100% 0 0/.12),0 4px 12px -4px lab(0% 0 0/.4)}.carousel-nav:hover .carousel-nav-arrow{background:oklch(from var(--surface-ground)l c h/.85);transform:scale(1.1);box-shadow:0 0 0 1px #ffffff2e,0 8px 20px -4px #00000080;box-shadow:0 0 0 1px lab(100% 0 0/.18),0 8px 20px -4px lab(0% 0 0/.501961)}.carousel-nav:active .carousel-nav-arrow{transform:scale(.92)}[data-project-contrast=dark] .carousel-nav-arrow{background:oklch(from var(--stone-700)l c h/.12);color:var(--stone-700);box-shadow:0 0 0 1px #00000014,0 4px 12px -4px #0000001f;box-shadow:0 0 0 1px lab(0% 0 0/.08),0 4px 12px -4px lab(0% 0 0/.121569)}[data-project-contrast=dark] .carousel-nav:hover .carousel-nav-arrow{background:oklch(from var(--stone-700)l c h/.18);box-shadow:0 0 0 1px #0000001f,0 8px 20px -4px #0000002e;box-shadow:0 0 0 1px lab(0% 0 0/.12),0 8px 20px -4px lab(0% 0 0/.180392)}.carousel-nav:focus-visible .carousel-nav-arrow{box-shadow:0 0 0 2px var(--surface-ground),0 0 0 4px var(--content-secondary)}.carousel-nav:focus-visible{outline:none}.carousel-nav-prev{left:12px}.carousel-nav-next{right:12px}@media (prefers-reduced-motion:reduce){.carousel-nav,.carousel-nav-arrow{transition:none}.carousel-nav:hover .carousel-nav-arrow,.carousel-nav:active .carousel-nav-arrow{transform:none}}@keyframes page-enter-forward{0%{opacity:0;filter:blur(4px);transform:translate(24px)}to{opacity:1;filter:blur();transform:translate(0)}}@keyframes page-enter-backward{0%{opacity:0;filter:blur(4px);transform:translate(-24px)}to{opacity:1;filter:blur();transform:translate(0)}}.paginated-grid-content[data-direction=forward]{animation:page-enter-forward .4s var(--ease-out)forwards}.paginated-grid-content[data-direction=backward]{animation:page-enter-backward .4s var(--ease-out)forwards}@media (prefers-reduced-motion:reduce){.paginated-grid-content[data-direction=forward],.paginated-grid-content[data-direction=backward]{opacity:1;filter:none;animation:none;transform:none}}.carousel-edge-fade{-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 5% 95%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 5% 95%,#0000 100%)}.carousel-bleed{z-index:15;cursor:pointer;opacity:.35;width:48px;transition:opacity .2s var(--ease-out);border-radius:8px;position:absolute;top:calc(50% - 14px);overflow:hidden;transform:translateY(-50%)}.carousel-bleed-left{left:0}.carousel-bleed-right{right:0}.carousel-bleed-image{position:absolute;inset:0}.carousel-bleed:hover{opacity:.6}.paginated-grid-content{z-index:10;position:relative}@media (prefers-reduced-motion:reduce){.carousel-bleed{transition:none}}@keyframes shimmer-pass{0%{transform:translate(-100%)skew(-15deg)}14%{transform:translate(200%)skew(-15deg)}to{transform:translate(200%)skew(-15deg)}}.contact-cta-shimmer{position:relative;overflow:hidden}.contact-cta-shimmer:after{content:"";mix-blend-mode:overlay;pointer-events:none;background:linear-gradient(105deg,#0000 0%,#fff3 20%,#ffffffe6 42%,#fff 50%,#ffffffe6 58%,#fff3 80%,#0000 100%);width:60%;animation:3.5s ease-in-out 2s infinite shimmer-pass;position:absolute;inset:-2px}@media (prefers-reduced-motion:reduce){.contact-cta-shimmer:after{animation:none;display:none}}}
