.carousel-container{flex-direction:column;margin-bottom:2rem;display:none;position:relative;overflow:visible}@media (min-width:768px){.carousel-container{display:block}}.carousel-main{width:100%;max-width:1400px;margin-left:auto;margin-right:auto;position:relative}.carousel-wrapper{aspect-ratio:16/9;max-width:64rem;margin:0 auto;position:relative;overflow:hidden}.carousel-slide{width:100%;transition:transform .6s cubic-bezier(.4,0,.2,1),opacity .6s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.carousel-slide-enter.slide-enter-right{animation:.6s cubic-bezier(.4,0,.2,1) forwards slideInRight}.carousel-slide-enter.slide-enter-left{animation:.6s cubic-bezier(.4,0,.2,1) forwards slideInLeft}.carousel-slide-exit.slide-exit-left{animation:.6s cubic-bezier(.4,0,.2,1) forwards slideOutLeft}.carousel-slide-exit.slide-exit-right{animation:.6s cubic-bezier(.4,0,.2,1) forwards slideOutRight}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.carousel-item{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);max-width:64rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);border-radius:1rem;margin-left:auto;margin-right:auto;transition-property:all;transition-duration:.5s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.5s;position:relative;overflow:hidden}.carousel-item:hover{--tw-shadow:var(--tw-shadow-colored);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-shadow-color:hsl(var(--primary)/.2)}.carousel-item{aspect-ratio:16/9;height:auto}.carousel-border{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from:hsl(var(--primary))var(--tw-gradient-from-position);--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#a855f7 var(--tw-gradient-via-position),var(--tw-gradient-to);opacity:0;border-radius:1rem;padding:2px;transition-property:opacity;transition-duration:.7s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.7s;position:absolute;inset:0}.group:hover .carousel-border{opacity:1}.carousel-border-inner{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));border-radius:1rem;width:100%;height:100%}.carousel-nav-button{pointer-events:none;z-index:40;--tw-translate-y:-50%;width:2.5rem;height:2.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1));opacity:0;background-color:#fffc;border-style:none;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;position:absolute;top:50%}.carousel-nav-button:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));background-color:#ffffffe6}.group:hover .carousel-nav-button{pointer-events:auto;opacity:1}.carousel-nav-button:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));background-color:#000c}.carousel-nav-button:hover:is(.dark *){background-color:#000000e6}.carousel-nav-left{left:calc(13.5% + 24px)}.carousel-nav-right{right:calc(13.5% + 24px)}@media (max-width:1023px){.carousel-nav-left{left:calc(12.5% + 20px)}.carousel-nav-right{right:calc(12.5% + 20px)}}.carousel-image-container{aspect-ratio:16/9;border-radius:1rem;height:auto;position:relative;overflow:hidden}.carousel-image{object-fit:cover;object-position:top;width:100%;height:100%}.carousel-overlay{background-image:linear-gradient(to top,var(--tw-gradient-stops));--tw-gradient-from:#000c var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#0006 var(--tw-gradient-via-position),var(--tw-gradient-to);transition-property:all;transition-duration:.5s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.5s;position:absolute;inset:0}.group:hover .carousel-overlay{--tw-gradient-from:#000000e6 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#00000080 var(--tw-gradient-via-position),var(--tw-gradient-to)}.carousel-content{text-align:center;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));flex-direction:column;align-items:center;padding:3rem 1rem 1.5rem;display:flex;position:absolute;bottom:0;left:0;right:0}.carousel-title{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:#fff var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#f3f4f6 var(--tw-gradient-via-position),var(--tw-gradient-to);color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:.25rem;font-size:1.125rem;font-weight:700;line-height:1.75rem;transition-property:all;transition-duration:.5s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.5s}.group:hover .carousel-title{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.carousel-description-wrapper{position:relative}.carousel-description-bg{border-radius:var(--radius);opacity:0;--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);background-color:#ffffff1a;transition-property:opacity;transition-duration:.5s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.5s;position:absolute;inset:0}.group:hover .carousel-description-bg{opacity:1}.carousel-description-bg:is(.dark *){background-color:#11182733}.carousel-description{--tw-text-opacity:1;max-width:36rem;color:rgb(229 231 235/var(--tw-text-opacity,1));margin-left:auto;margin-right:auto;padding:.375rem .75rem;font-size:11px;line-height:1.625;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;display:none;position:relative}.group:hover .carousel-description{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:768px){.carousel-description{display:block}}.carousel-tech-container{flex-wrap:wrap;justify-content:center;margin-top:.25rem;display:flex}.carousel-tech-container>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*calc(1 - var(--tw-space-x-reverse)))}.carousel-tech-badge{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);background-color:#fff3;border-width:1px;border-color:#ffffff4d;border-radius:9999px;margin-bottom:.375rem;padding:.125rem .5rem;font-size:9px;font-weight:500;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;position:relative}.carousel-tech-badge:hover{--tw-translate-y:-.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));border-color:hsl(var(--primary)/.5);background-color:hsl(var(--primary)/.3);--tw-shadow:var(--tw-shadow-colored);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-shadow-color:hsl(var(--primary)/.2)}.carousel-tech-more{color:#fffc;--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);background-color:#ffffff1a;border-width:1px;border-color:#fff3;border-radius:9999px;margin-bottom:.375rem;padding:.125rem .5rem;font-size:9px;font-weight:500;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;position:relative}.carousel-tech-more:hover{background-color:#fff3;border-color:#fff6}.carousel-links{margin-top:.75rem;display:flex}.carousel-links>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.carousel-link{border-radius:var(--radius);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);border-width:1px;padding:.5rem 1rem;font-size:11px;font-weight:500;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;position:relative}.carousel-link:hover{--tw-translate-y:-.125rem;--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.carousel-demo-link{background-color:#fff3;border-color:#ffffff4d}.carousel-demo-link:hover{border-color:hsl(var(--primary)/.5);background-color:hsl(var(--primary)/.2);--tw-shadow-color:hsl(var(--primary)/.2);--tw-shadow:var(--tw-shadow-colored)}.carousel-repo-link{border-color:hsl(var(--primary)/.5);background-color:hsl(var(--primary)/.3)}.carousel-repo-link:hover{border-color:hsl(var(--primary)/.7);background-color:hsl(var(--primary)/.5);--tw-shadow-color:hsl(var(--primary)/.3);--tw-shadow:var(--tw-shadow-colored)}.carousel-link-bg{border-radius:var(--radius);opacity:0;transition-property:opacity;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;position:absolute;inset:0}.carousel-demo-link:hover .carousel-link-bg{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from:hsl(var(--primary)/0)var(--tw-gradient-from-position);--tw-gradient-to:hsl(var(--primary)/.2)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);opacity:1}.carousel-repo-link:hover .carousel-link-bg{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from:hsl(var(--primary)/.2)var(--tw-gradient-from-position);--tw-gradient-to:#a855f733 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);opacity:1}.carousel-link-text{z-index:10;position:relative}.carousel-indicators{justify-content:center;gap:.75rem;margin-top:2rem;display:flex}.carousel-indicator{border-radius:9999px;height:.375rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s}.carousel-indicator.active{background-color:hsl(var(--primary));width:2rem}.carousel-indicator.active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(77 233 210/var(--tw-bg-opacity,1))}.carousel-indicator.inactive{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1));width:1rem}.carousel-indicator.inactive:hover{background-color:hsl(var(--primary)/.5)}.carousel-indicator.inactive:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.carousel-indicator.inactive:hover:is(.dark *){background-color:#4de9d280}.tech-badge-0{animation-delay:0s}.tech-badge-1{animation-delay:.1s}.tech-badge-2{animation-delay:.2s}.project-card{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:#0000;border-radius:1.5rem;flex-direction:column;height:100%;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;display:flex;position:relative;overflow:hidden}.project-card:hover{--tw-scale-x:1.01;--tw-scale-y:1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));border-color:hsl(var(--primary)/.1);--tw-shadow:var(--tw-shadow-colored);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-shadow-color:hsl(var(--primary)/.1)}.project-card:is(.dark *){background-color:#111827b3}.project-card:hover:is(.dark *){border-color:hsl(var(--primary)/.2);--tw-shadow-color:hsl(var(--primary)/.2);--tw-shadow:var(--tw-shadow-colored)}.project-card-image-container{width:100%;height:12rem;position:relative;overflow:hidden}.project-card-image{object-fit:cover;object-position:top;width:100%;height:100%;transition-property:transform;transition-duration:.5s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.5s}.project-card-image-overlay{background-image:linear-gradient(to top,var(--tw-gradient-stops));--tw-gradient-from:#0006 var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),transparent var(--tw-gradient-via-position),var(--tw-gradient-to);opacity:.6;position:absolute;inset:0}.project-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.project-folder-icon{--tw-text-opacity:1;width:1.25rem;height:1.25rem;color:rgb(37 99 235/var(--tw-text-opacity,1));transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.2s}.group:hover .project-folder-icon{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));color:hsl(var(--primary));--tw-brightness:brightness(1.1);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.project-folder-icon:is(.dark *),.group:hover .project-folder-icon:is(.dark *){--tw-text-opacity:1;color:rgb(77 233 210/var(--tw-text-opacity,1))}.project-card-links{display:flex}.project-card-links>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*calc(1 - var(--tw-space-x-reverse)))}.project-card-link{transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.2s}.project-card-link:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));color:hsl(var(--primary));--tw-brightness:brightness(1.1);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.project-card-link:hover:is(.dark *){color:hsl(var(--primary))}.project-card-link-icon{--tw-text-opacity:1;width:1.25rem;height:1.25rem;color:rgb(55 65 81/var(--tw-text-opacity,1))}.project-card-link-icon:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.project-card-content{flex-direction:column;height:100%;display:flex}.project-card-title{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1));font-size:1.125rem;font-weight:700;line-height:1.75rem}.project-card-title:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:768px){.project-card-title{font-size:1.25rem;line-height:1.75rem}}.project-card-description{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.625;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.group:hover .project-card-description{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.project-card-description:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.group:hover .project-card-description:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.project-card-tech{flex-wrap:wrap;gap:.5rem;display:flex}.project-card-tech-item{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1));font-size:.75rem;font-weight:500;line-height:1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.group:hover .project-card-tech-item{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.project-card-tech-item:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.group:hover .project-card-tech-item:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.projects-grid{max-width:64rem;margin-left:auto;margin-right:auto}.projects-grid-container{grid-template-columns:repeat(1,minmax(0,1fr));align-items:stretch;gap:1rem;display:grid}@media (min-width:768px){.projects-grid-container{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.projects-grid-container{grid-template-columns:repeat(3,minmax(0,1fr))}}.project-modal-content{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-shadow:var(--tw-shadow-colored);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-shadow-color:hsl(var(--primary)/.1);border-width:1px;border-color:#0000;border-radius:1.5rem}.project-modal-content:is(.dark *){--tw-shadow-color:hsl(var(--primary)/.2);--tw-shadow:var(--tw-shadow-colored);background-color:#111827b3;border-color:#0000}.project-modal-title{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1));font-size:1.5rem;font-weight:700;line-height:2rem}.project-modal-title:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.project-modal-body{margin-top:1rem}.project-modal-body>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.project-modal-image-container{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);width:100%;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);aspect-ratio:16/9;border-radius:1rem;position:relative;overflow:hidden}.project-modal-image{object-fit:cover;width:100%;height:100%}.project-modal-description{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.625}.project-modal-tech-section>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.project-modal-tech-title{text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1));font-size:.875rem;font-weight:600;line-height:1.25rem}.project-modal-tech-title:is(.dark *){--tw-text-opacity:1;color:rgb(77 233 210/var(--tw-text-opacity,1))}.project-modal-tech-list{flex-wrap:wrap;gap:.5rem;display:flex}.project-modal-tech-badge{border-radius:calc(var(--radius) - 2px);--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1));padding:.25rem .5rem;font-size:.75rem;font-weight:500;line-height:1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.2s}.project-modal-tech-badge:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1));background-color:#1f293780}.project-modal-links{flex-wrap:wrap;gap:.75rem;padding-top:.5rem;display:flex}.project-modal-link{border-radius:1rem;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;line-height:1.25rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;display:inline-flex}.project-modal-link:hover{--tw-translate-y:-.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.project-modal-demo-link{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.project-modal-demo-link:hover{--tw-shadow-color:#3b82f64d;--tw-shadow:var(--tw-shadow-colored);--tw-brightness:brightness(1.1);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.project-modal-demo-link:is(.dark *){--tw-bg-opacity:1;background-color:rgb(77 233 210/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.project-modal-demo-link:hover:is(.dark *){--tw-shadow-color:#4de9d24d;--tw-shadow:var(--tw-shadow-colored)}.project-modal-repo-link{--tw-border-opacity:1;border-width:1px;border-color:rgb(229 231 235/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.project-modal-repo-link:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1));border-color:#3b82f680}.project-modal-repo-link:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.project-modal-repo-link:hover:is(.dark *){--tw-text-opacity:1;color:rgb(77 233 210/var(--tw-text-opacity,1));border-color:#4de9d280}.projects-view-all-container{justify-content:center;margin-top:2.5rem;display:flex}.projects-view-all-link{--tw-border-opacity:1;border-width:1px;border-color:rgb(229 231 235/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1));--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);border-radius:9999px;align-items:center;gap:.5rem;padding:.75rem 2rem;font-weight:500;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;display:inline-flex}.projects-view-all-link:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1));--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);border-color:#3b82f64d}.projects-view-all-link:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1));background-color:#111827b3;border-color:#ffffff1a}.projects-view-all-link:hover:is(.dark *){border-color:hsl(var(--primary)/.3);--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.projects-view-all-icon{width:1rem;height:1rem;transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.group:hover .projects-view-all-icon{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.carousel-item-inner-wrapper{transform-origin:50%;width:100%;height:100%}.carousel-slide-active{z-index:10}.carousel-slide-next,.carousel-slide-prev{z-index:5}.carousel-slide-inactive{z-index:0}.carousel-slide-active .carousel-item-inner-wrapper{opacity:1;transform:scale(1)translate(0)}.carousel-slide-next .carousel-item-inner-wrapper{opacity:.35;transform:scale(.88)translate(-40px)}@media (max-width:1023px){.carousel-slide-next .carousel-item-inner-wrapper{transform:scale(.88)translate(-20px)}}@media (max-width:767px){.carousel-slide-next .carousel-item-inner-wrapper{transform:scale(.88)translate(-10px)}}.carousel-slide-prev .carousel-item-inner-wrapper{opacity:.35;transform:scale(.88)translate(40px)}@media (max-width:1023px){.carousel-slide-prev .carousel-item-inner-wrapper{transform:scale(.88)translate(20px)}}@media (max-width:767px){.carousel-slide-prev .carousel-item-inner-wrapper{transform:scale(.88)translate(10px)}}.carousel-slide-inactive .carousel-item-inner-wrapper{opacity:0;transform:scale(.88)translate(0)}
