#project .container{display:flex}#project .projectFigure{display:flex;flex-direction:column;align-items:center;gap:calc(var(--spacing) * 2);cursor:pointer;overflow:hidden;width:100%;height:100%;transition:transform var(--duration-normal) var(--ease-default),box-shadow var(--duration-normal) var(--ease-default);animation:fadeInUp var(--duration-slow) var(--ease-out) both}#project .projectFigure:first-child{animation-delay:calc(var(--stagger-delay) * 1)}#project .projectFigure:nth-child(2){animation-delay:calc(var(--stagger-delay) * 2)}#project .projectFigure:nth-child(3){animation-delay:calc(var(--stagger-delay) * 3)}#project .projectFigure:nth-child(4){animation-delay:calc(var(--stagger-delay) * 4)}#project .projectFigure:nth-child(5){animation-delay:calc(var(--stagger-delay) * 5)}#project .projectFigure:nth-child(6){animation-delay:calc(var(--stagger-delay) * 6)}#project .projectFigure:hover{transform:translateY(-4px);box-shadow:0 8px 16px oklch(from var(--color-neutral-000) l c h/.1)}#project .projectImage{object-fit:cover;margin-bottom:.5rem;width:100%;height:200px;transition:transform var(--duration-slow) var(--ease-default)}#project .projectFigure .projectImage{border-bottom:.5rem solid transparent;transition:border-color var(--duration-normal) var(--ease-default),transform var(--duration-slow) var(--ease-default)}#project .projectFigure:hover .projectImage{border-color:var(--color-primary-400);transform:scale(1.02)}#project .projectCaption{font-size:.875rem;color:var(--color-neutral-200);margin-bottom:1rem;padding:0 .5rem;width:100%}#project .projectCaption h4{color:var(--color-primary-400);font-size:var(--text-lg);font-weight:500;margin-bottom:1rem}#project .projectCaption p{color:var(--color-neutral-300);font-size:var(--text-base)}#project .projectTags{display:flex;flex-wrap:wrap;gap:calc(var(--spacing) * 2);margin-top:calc(var(--spacing) * 3);justify-content:left}#project .projectTagPill,#project .projectTagPill:link,#project .projectTagPill:visited,#project button.projectTagPill{display:inline-block;padding:calc(var(--spacing) * 1) calc(var(--spacing) * 3);background-color:var(--color-neutral-600);color:var(--color-neutral-100);border-radius:9999px;font-size:var(--text-sm);font-weight:400;text-decoration:none;background-image:none;border:none;cursor:pointer;transition:transform var(--duration-fast) var(--ease-default),background-color var(--duration-fast) var(--ease-default)}#project .projectTagPill:hover{transform:scale(1.05);text-decoration:none;background-image:none;background-color:var(--color-info-400);color:var(--color-neutral-1000)}#project .projectTagPill.active{background-color:var(--color-primary-400);color:var(--color-neutral-1000)}.projectSkeleton{display:flex;flex-direction:column;gap:.75rem;width:100%}.projectSkeletonImage{width:100%;height:200px}.projectSkeletonImage,.projectSkeletonLine{background:linear-gradient(90deg,var(--color-neutral-700) 25%,var(--color-neutral-800) 50%,var(--color-neutral-700) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.projectSkeletonLine{height:1rem}.projectSkeletonLine:nth-child(2){width:60%}.projectSkeletonLine:nth-child(3){width:100%}.projectSkeletonLine:nth-child(4){width:85%}main .modalOverlay .projectDetailsTitle{text-align:left;width:100%}.modalOverlay{--modal-bg:var(--color-neutral-1000);--modal-border-radius:var(--radius-modal,0.5rem);--modal-padding:var(--spacing-modal,1.5rem);--modal-max-width:28rem;--modal-shadow:0 20px 25px -5px oklch(0% 0 0/0.1),0 10px 10px -5px oklch(0% 0 0/0.04);position:fixed;inset:0;background-color:oklch(0 0 0/.8);display:flex;align-items:center;justify-content:center;z-index:50;animation:fadeIn var(--duration-fast) var(--ease-default) both}.modalContent{position:relative;background-color:var(--modal-bg);border-radius:var(--modal-border-radius);padding:var(--modal-padding);max-width:var(--modal-max-width);max-height:calc(100vh - 2rem);width:100%;margin:0 1rem;box-shadow:var(--modal-shadow);animation:scaleIn var(--duration-normal) var(--ease-bounce) both;overflow-y:auto}.modalClose{position:sticky;top:0;margin-left:auto;margin-bottom:-2rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;cursor:pointer;font-size:1.5rem;line-height:1;color:var(--color-neutral-400);transition:background-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default),transform var(--duration-fast) var(--ease-default)}.modalClose:hover{background-color:var(--color-neutral-800);color:var(--color-neutral-100);transform:scale(1.1)}.modalClose:active{transform:scale(.95)}.modalContent.small{--modal-max-width:20rem}.modalContent.medium{--modal-max-width:28rem}.modalContent.large{--modal-max-width:40rem}.modalContent.xlarge{--modal-max-width:64rem}.modalContent.full{--modal-max-width:calc(100% - 2rem)}.modalContent.danger{border-top:4px solid var(--color-alert-300)}.modalContent.warning{border-top:4px solid var(--color-warning-300)}.modalContent.success{border-top:4px solid var(--color-success-300)}.modalContent.info{border-top:4px solid var(--color-info-300)}.projectDetails{--carousel-aspect-ratio:4/3;--thumbnail-size:60px;--details-gap:calc(var(--spacing) * 4)}.projectDetailsContent.slide-in-left{animation:slideInLeft .3s var(--ease-out) both}.projectDetailsContent.slide-in-right{animation:slideInRight .3s var(--ease-out) both}@keyframes slideInLeft{0%{opacity:0;transform:translateX(50rem)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(-50rem)}to{opacity:1;transform:translateX(0)}}.projectNav{justify-content:center;gap:calc(var(--spacing) * 8);margin-bottom:calc(var(--spacing) * 4);padding-right:calc(var(--spacing) * 8)}.projectNav,.projectNavButton{display:flex;align-items:center}.projectNavButton{gap:calc(var(--spacing) * 2);background:transparent;border:none;cursor:pointer;font-size:var(--text-base);color:var(--color-primary-400);transition:color .2s;padding:calc(var(--spacing) * 1) calc(var(--spacing) * 2)}.projectNavButton:hover:not(.disabled){color:var(--color-primary-300)}.projectNavButton.disabled{color:var(--color-neutral-600);cursor:default}.projectNavArrow{font-size:var(--text-xl);font-weight:500;line-height:1}.projectDetailsTitle{font-size:var(--text-2xl);font-weight:500;color:var(--color-primary-400);margin-bottom:calc(var(--spacing) * 4)}.projectDetailsAccordion{display:flex;flex-direction:column;gap:calc(var(--spacing) * 2)}.accordionHeader{display:flex;justify-content:space-between;align-items:center;padding:calc(var(--spacing) * 3) calc(var(--spacing) * 4);background-color:var(--color-neutral-800);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-lg);font-weight:500;color:var(--color-neutral-200);width:100%;text-align:left}.accordionHeader:hover{background-color:var(--color-neutral-700)}.accordionHeader.expanded{background-color:var(--color-primary-400);color:var(--color-neutral-1000)}.accordionContent{padding:calc(var(--spacing) * 4);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.projectDetailsDesktop{display:none}@media (width >= 48rem){.projectDetailsAccordion{display:none}.projectDetailsDesktop{display:grid;grid-template-columns:3fr 2fr;gap:calc(var(--spacing) * 4)}.projectDetailsRight{display:flex;flex-direction:column;gap:var(--details-gap)}}.carouselWrapper{display:flex;flex-direction:column;gap:calc(var(--spacing) * 3)}.carouselMain{position:relative;width:100%;aspect-ratio:var(--carousel-aspect-ratio);overflow:hidden;border-radius:var(--radius-sm);background-color:var(--color-neutral-800);touch-action:pan-y pinch-zoom;cursor:grab}.carouselImage{object-fit:cover;transition:opacity var(--duration-fast) var(--ease-default)}.carouselImage.fading{opacity:0}.carouselNav{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background-color:var(--color-neutral-000);opacity:.7;color:var(--color-neutral-1000);border:3px solid var(--color-neutral-000);width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:var(--text-xl);display:flex;align-items:center;justify-content:center;transition:background-color .2s}.carouselNav:hover{background-color:var(--color-primary-400)}.carouselPrev{left:calc(var(--spacing) * 2)}.carouselNext{right:calc(var(--spacing) * 2)}.carouselThumbnails{display:flex;flex-wrap:wrap;gap:calc(var(--spacing) * 2)}.thumbnail{flex-shrink:0;width:var(--thumbnail-size);height:45px;border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;transition:border-color .2s;padding:0;background:none;opacity:.5}.thumbnail.active{opacity:1}.thumbnail.active,.thumbnail:hover{border-color:var(--color-primary-400)}.thumbnail img{object-fit:cover;width:100%;height:100%}.detailsSection{display:flex;flex-direction:column;gap:calc(var(--spacing) * 4)}.detailsLabel{font-size:var(--text-base);font-weight:500;color:var(--color-neutral-000);text-transform:uppercase;margin-bottom:calc(var(--spacing) * 1)}.detailsClient,.detailsLocation,.detailsSummary{font-size:var(--text-base);color:var(--color-neutral-200)}.tagsList{display:flex;flex-wrap:wrap;gap:calc(var(--spacing) * 2)}.tagPill{display:inline-block;padding:calc(var(--spacing) * 1) calc(var(--spacing) * 3);background-color:var(--color-neutral-600);color:var(--color-neutral-100);border-radius:9999px;font-size:var(--text-sm);font-weight:400}.carouselSkeleton{position:absolute;inset:0;background:linear-gradient(90deg,var(--color-neutral-700) 25%,var(--color-neutral-600) 50%,var(--color-neutral-700) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;z-index:1}.thumbnail{position:relative}.thumbnail.loading img{opacity:0}.thumbnailSkeleton{position:absolute;inset:0;background:linear-gradient(90deg,var(--color-neutral-700) 25%,var(--color-neutral-600) 50%,var(--color-neutral-700) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}