@layer components{.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:#fdfbfaeb;background-color:lab(98.8419% .339061 1.07771/.92);border-radius:4px;padding:4px 8px;line-height:1.6;display:inline}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .annotation-label-text{background-color:#060606eb;background-color:lab(1.5609% 0 0/.92)}}[data-theme=dark] .annotation-label-text{background-color:#060606eb;background-color:lab(1.5609% 0 0/.92)}.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{z-index:60;opacity:0;transform: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);position:fixed}.mobile-annotation-tooltip.visible{opacity:1;filter:blur();transform:translateY(0)}.mobile-annotation-tooltip-body{font-family:var(--font-body);-webkit-backdrop-filter:blur(16px)saturate(1.2);text-wrap:pretty;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;background-color:#fdfbfaeb;background-color:lab(98.8419% .339061 1.07771/.92);border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .mobile-annotation-tooltip-body{background-color:#060606eb;background-color:lab(1.5609% 0 0/.92)}}[data-theme=dark] .mobile-annotation-tooltip-body{background-color:#060606eb;background-color:lab(1.5609% 0 0/.92)}@media (prefers-reduced-motion:reduce){.mobile-annotation-tooltip,.mobile-annotation-tooltip.visible{filter:none;transition:opacity .2s var(--ease-out);transform:none}}.annotation-marker>span{color:#000000e6;background:#fffffff2;position:relative;box-shadow:0 0 0 1.5px #0000004d,0 2px 8px -2px #0006}[data-project-contrast=dark] .annotation-marker>span{color:#fffffff2;background:#000000bf;box-shadow:0 0 0 1.5px #fff6,0 2px 8px -2px #0000004d}.annotation-marker[data-marker-contrast=light]>span{color:#000000e6;background:#fffffff2;box-shadow:0 0 0 1.5px #0000004d,0 2px 8px -2px #0006}.annotation-marker[data-marker-contrast=dark]>span{color:#fffffff2;background:#000000bf;box-shadow:0 0 0 1.5px #fff6,0 2px 8px -2px #0000004d}.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)}}@keyframes marker-ring{0%{opacity:.6;box-shadow:0 0}to{opacity:0;box-shadow:0 0 0 16px}}.annotation-marker.desktop-marker:not(.exiting)>span{animation:marker-enter .5s var(--ease-out)forwards;animation-delay:calc(var(--annotation-index,0)*80ms)}.annotation-marker.desktop-marker:before{content:"";pointer-events:none;animation:1.2s ease-out infinite marker-ring;animation-delay:calc(var(--annotation-index,0)*80ms + .6s);opacity:0;color:#fffc;border-radius:50%;position:absolute;inset:13px}[data-project-contrast=dark] .annotation-marker.desktop-marker:before{color:#00000080}.annotation-marker.desktop-marker[data-marker-contrast=light]:before{color:#fffc}.annotation-marker.desktop-marker[data-marker-contrast=dark]:before{color:#00000080}.annotation-marker.desktop-marker:hover:before,.annotation-marker.desktop-marker:focus:before{opacity:0;animation:none}.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.desktop-marker:not(.exiting)>span,.annotation-marker.exiting>span{opacity:1;animation:none;transform:none}.annotation-marker.exiting>span{opacity:0}.annotation-marker.desktop-marker:before{animation:none;display:none}}.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-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%)}.project-feed{padding:0 0 clamp(2rem,6vh,4rem);position:relative}.project-feed-empty{font-family:var(--font-display);font-size:var(--text-lg);color:var(--content-secondary)}.project-feed-cta{flex-direction:column;align-items:flex-start;gap:1.5rem;padding:clamp(2.5rem,6vw,5rem) clamp(1.25rem,4vw,3rem);display:flex}.project-feed-cta-headline{max-width:28ch;font-family:var(--font-display);font-size:var(--text-2xl);line-height:var(--leading-display-lg);letter-spacing:.005em;color:var(--content-primary);text-wrap:balance;margin:0}.project-feed-cta-button{background:var(--content-primary);color:var(--content-inverse);font-family:var(--font-body);font-size:var(--text-base);transition:opacity .2s var(--ease-out),scale .12s var(--ease-out);border-radius:9999px;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:inline-flex}@media (hover:hover){.project-feed-cta-button:hover{opacity:.9}}.project-feed-cta-button:active{scale:.97}.project-feed-cta-button:focus-visible{outline:2px solid var(--interactive-focus);outline-offset:3px}@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}}.project-group+.project-group{margin-top:clamp(2rem,5vh,4rem)}.media-segment{background:#edebe7;background:lab(93.0506% .514418 2.2175);justify-content:center;align-items:center;margin-block-end:clamp(.5rem,1.5vw,1rem);padding:clamp(1rem,4vw,3rem);display:flex;position:relative;overflow:hidden}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .media-segment{background:#282624;background:lab(15.3162% .722349 1.74714)}}[data-theme=dark] .media-segment{background:#282624;background:lab(15.3162% .722349 1.74714)}[data-theme=light] .media-segment{background:#edebe7;background:lab(93.0506% .514418 2.2175)}.media-segment-frame{--seg-w:16;--seg-h:9;--media-max-height:68svh;width:100%;aspect-ratio:var(--seg-w)/var(--seg-h);max-width:calc(var(--media-max-height)*var(--seg-w)/var(--seg-h));max-height:var(--media-max-height);margin-inline:auto;position:relative}.media-segment-el{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.media-segment-caption{z-index:2;max-width:min(60ch,70%);font-size:var(--text-xs);text-align:right;color:var(--content-primary);border-radius:6px;line-height:1.5;position:absolute;bottom:clamp(.75rem,2vw,1.5rem);right:clamp(.75rem,2vw,1.5rem)}.project-nav{z-index:40;height:0;position:sticky;top:0}.project-nav-anchor{width:fit-content;position:relative;top:clamp(.75rem,2vw,1.5rem);left:clamp(.75rem,2vw,1.5rem)}.project-nav-chip{max-width:min(80vw,22rem);font-family:var(--font-display);font-size:var(--text-sm);color:var(--content-primary);background:var(--surface-overlay,var(--surface-raised));border:1px solid var(--border-subtle);cursor:pointer;-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);transition:color .15s var(--ease-out),border-color .15s var(--ease-out),scale .12s var(--ease-out);border-radius:9999px;align-items:center;gap:.5ch;padding:.4rem .75rem;display:inline-flex;box-shadow:0 1px 2px #00000014,0 8px 24px -8px #00000040;box-shadow:0 1px 2px lab(0% 0 0/.08),0 8px 24px -8px lab(0% 0 0/.25)}.project-nav-chip:active{scale:.96}.project-nav-chip:focus-visible,.project-nav-chip-item:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:8px}.project-nav-chip-index{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--content-tertiary)}.project-nav-chip-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (hover:hover){.project-nav-chip:hover{border-color:var(--content-tertiary)}}.project-nav-overlay{z-index:41;background:var(--surface-overlay,var(--surface-raised));border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);opacity:0;transform-origin:0 0;pointer-events:none;width:max-content;max-width:min(92vw,48rem);transition:opacity .18s var(--ease-out),transform .18s var(--ease-out);border-radius:14px;gap:clamp(1rem,2vw,1.75rem);padding:clamp(1rem,2vw,1.5rem);display:flex;position:absolute;top:calc(100% + .5rem);left:0;transform:translateY(-6px)scale(.98);box-shadow:0 4px 16px -2px #0000004d,0 16px 48px -8px #00000059;box-shadow:0 4px 16px -2px lab(0% 0 0/.3),0 16px 48px -8px lab(0% 0 0/.35)}.project-nav[data-open=true] .project-nav-overlay{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.project-nav-info{scrollbar-width:thin;flex:auto;min-width:0;max-width:34ch;max-height:min(60vh,30rem);overflow-y:auto}.project-nav-info-block{display:none}.project-nav-info-block[data-selected=true]{display:block}.project-nav-info-title{font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-display-md);color:var(--content-primary);margin:0 0 .4rem}.project-nav-info-desc{font-size:var(--text-sm);color:var(--content-secondary);text-wrap:pretty;margin:0 0 .6rem;line-height:1.55}.project-nav-info-meta{font-size:var(--text-xs);color:var(--content-tertiary);font-variant-numeric:tabular-nums;margin:0 0 .85rem}.project-nav-chips{scrollbar-width:thin;flex-direction:column;flex:none;gap:.3rem;max-height:min(60vh,26rem);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.project-nav-chip-item{text-align:left;width:100%;font-family:var(--font-display);font-size:var(--text-sm);color:var(--content-secondary);cursor:pointer;transition:color .15s var(--ease-out),background-color .15s var(--ease-out);background:0 0;border:0;border-radius:7px;align-items:baseline;gap:.6ch;padding:.4rem .6rem;display:inline-flex}.project-nav-chip-item:hover{color:var(--content-primary);background:var(--surface-sunken,#0000000d)}@supports (color:lab(0% 0 0)){.project-nav-chip-item:hover{background:var(--surface-sunken,lab(0% 0 0/.05))}}.project-nav-chip-item[aria-current=true]{color:var(--content-primary)}.project-nav-chip-item[data-active=true] .project-nav-chip-item-idx{color:var(--accent-primary)}.project-nav-chip-item-idx{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--content-tertiary)}@media (max-width:700px){.project-nav-overlay{flex-direction:column;max-width:min(92vw,30rem)}.project-nav-info{max-width:none}.project-nav-chips{flex-flow:wrap;max-height:none}}.project-list-writeup{max-width:64ch;font-size:var(--text-sm);color:var(--content-secondary);text-wrap:pretty;line-height:1.7}.project-list-writeup>:first-child{margin-top:0}.project-list-writeup :is(h1,h2,h3,h4,h5,h6){font-family:var(--font-display);color:var(--content-primary);font-weight:400;line-height:var(--leading-display-md);margin:1.6em 0 .5em}.project-list-writeup h1{font-size:var(--text-lg)}.project-list-writeup h2{font-size:var(--text-base)}.project-list-writeup :is(h3,h4,h5,h6){font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--content-tertiary)}.project-list-writeup p{margin:0 0 .9em}.project-list-writeup :is(ul,ol){margin:0 0 .9em;padding-left:1.25em}.project-list-writeup li{margin-bottom:.35em}.project-list-writeup :last-child{margin-bottom:0}.project-list-writeup a{color:var(--interactive-link);text-underline-offset:2px;text-decoration:underline}.project-list-writeup strong{color:var(--content-primary);font-weight:600}.project-list-writeup img{border-radius:6px;max-width:100%;height:auto}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.media-segment{animation:linear both segment-reveal;animation-timeline:view();animation-range:entry entry 28%}}}@keyframes segment-reveal{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:reduce){.project-nav-overlay,.project-nav[data-open=true] .project-nav-overlay{transition:opacity .18s var(--ease-out);transform:none}.project-nav-chip:active,.project-feed-cta-button:active{scale:1}}}
