:root{--color-bg:#21db8f;--color-nav:#079e02;--color-text:#000;--color-text-hover:#fff}.projects-title,.subheader-static,.morphing-tech>span{color:#0000;-webkit-text-fill-color:transparent;background-size:200vw 100%;background-attachment:fixed;-webkit-background-clip:text;background-clip:text;animation:8s linear infinite title-gradient}.projects-title{background-image:linear-gradient(90deg,#7000a3,#000,#7000a3)}.subheader-static,.morphing-tech>span{background-image:linear-gradient(90deg,#1402b3,#000,#1402b3)}@keyframes title-gradient{0%{background-position:0 0}to{background-position:-200vw 0}}.projects-title{text-align:center;letter-spacing:.12em;margin:2rem 0 3rem;font-family:Inter Display,sans-serif;font-size:5rem;font-weight:700}.projects-subheader{text-align:center;margin:-1rem 0 3rem;font-family:Inter Display,sans-serif;font-size:3rem;font-weight:600}.morphing-tech{vertical-align:baseline;filter:url(#morphing-text-filter)blur(.6px);min-width:10ch;display:inline-grid}.project-carousel{align-items:center;gap:1rem;margin:2rem -18rem 18rem;display:flex;position:relative}.carousel-arrow{z-index:10;color:#fff;cursor:pointer;background:0 0;border:none;padding:.5rem;font-size:2.5rem;line-height:1;transition:transform .15s,opacity .15s;position:absolute;top:50%;transform:translateY(-50%)}.carousel-arrow:hover:not(:disabled){transform:translateY(-50%)scale(1.15)}.carousel-arrow:disabled{opacity:.3;cursor:default}#carousel-prev{left:9rem}#carousel-next{right:9rem}.carousel-viewport{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 8rem,#000 12rem calc(100% - 12rem),#0000 calc(100% - 8rem));mask-image:linear-gradient(90deg,#0000 8rem,#000 12rem calc(100% - 12rem),#0000 calc(100% - 8rem))}.carousel-track{will-change:transform;gap:2rem;padding:4rem 0;display:flex}@property --glow{syntax:"<number>";inherits:false;initial-value:0}@property --shade{syntax:"<number>";inherits:false;initial-value:0}.project-card-v{--glow:0;background:linear-gradient(#f2f0ef, #f2f0ef) padding-box, radial-gradient(600px circle at var(--mouse-x,50%) var(--mouse-y,50%), rgba(147, 51, 234, var(--glow)), rgba(236, 72, 153, var(--glow)), #d8d8d8 60%) border-box;opacity:.55;border:2px solid #0000;border-radius:12px;flex-direction:column;flex-shrink:0;width:320px;transition:transform .3s,opacity .3s,--glow .4s;display:flex;position:relative}.project-card-v:hover{--glow:1}.project-card-v.active{opacity:1;transform:scale(1.06)}.project-card-v.active:hover{z-index:2;transform:scale(1.2)}.project-card-v:after{content:"";background:radial-gradient(400px circle at var(--mouse-x,50%) var(--mouse-y,50%), #00000012, transparent 40%);opacity:0;pointer-events:none;z-index:1;border-radius:12px;transition:opacity .3s;position:absolute;inset:0}.project-card-v:hover:after{opacity:1}.project-card-image{background:#000;border-radius:12px 12px 0 0;width:100%;height:240px;overflow:hidden}.project-card-image img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.project-card-body{box-sizing:border-box;flex-direction:column;gap:.85rem;height:400px;padding:1.25rem 1.5rem 1.5rem;font-family:Inter Display,sans-serif;display:flex}.project-card-title{letter-spacing:.12em;cursor:pointer;color:#000;margin:0;font-family:Inter Display,sans-serif;font-size:1.25rem;font-weight:600}.project-card-description{cursor:pointer;-webkit-line-clamp:8;color:#888;-webkit-box-orient:vertical;flex:1;margin:0;font-size:.9rem;line-height:1.5;transition:color .2s;display:-webkit-box;overflow:hidden}.project-card-title:hover~.project-card-description,.project-card-title:hover~.project-card-description .project-card-readmore,.project-card-description:hover,.project-card-description:hover .project-card-readmore{color:#444}.project-card-readmore{color:#888;font-weight:600;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline}.project-card-techs{flex-wrap:wrap;gap:.5rem;padding-top:.75rem;display:flex}.tech-bubble{--glow:0;background:linear-gradient(#c2c2c2, #c2c2c2) padding-box, radial-gradient(80px circle at var(--mouse-x,50%) var(--mouse-y,50%), rgba(147, 51, 234, var(--glow)), rgba(236, 72, 153, var(--glow)), #00000026 80%) border-box;letter-spacing:.02em;color:#000;border:2px solid #0000;border-radius:4px;padding:.25rem .45rem;font-family:Inter Display,monospace;font-size:.8rem;font-weight:500;transition:--glow .3s;position:relative}.tech-bubble:hover{--glow:1}.project-popup{z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.project-popup[hidden]{display:none}.popup-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;position:absolute;inset:0}.popup-content{--glow:0;--shade:0;background:radial-gradient(400px circle at var(--mouse-x,50%) var(--mouse-y,50%), rgba(0, 0, 0, var(--shade)), transparent 40%) padding-box, linear-gradient(#f2f0ef, #f2f0ef) padding-box, radial-gradient(800px circle at var(--mouse-x,50%) var(--mouse-y,50%), rgba(147, 51, 234, var(--glow)), rgba(236, 72, 153, var(--glow)), #d8d8d8 60%) border-box;color:#888;border:2px solid #0000;border-radius:4px;width:min(820px,90vw);max-height:88vh;transition:--glow .4s,--shade .3s;position:relative;overflow-y:auto;box-shadow:0 20px 60px #0006}.popup-content:hover{--glow:1;--shade:.07}.popup-close{color:#888;cursor:pointer;z-index:2;background:0 0;border:none;font-size:1.75rem;line-height:1;transition:--glow .4s,--shade .3s;position:absolute;top:1rem;right:1rem}.popup-close:hover{color:#444}.popup-links{flex-wrap:wrap;gap:1.5rem;margin-bottom:1.25rem;display:flex}.popup-link{color:#888;word-break:break-all;font-family:Cutive Mono,monospace;font-size:.95rem;transition:color .2s}.popup-link:hover{color:#444}.popup-body p a{color:#888;transition:color .2s}.popup-body p a:hover{color:#444}.popup-video{background:#000;width:100%}.popup-video iframe{aspect-ratio:16/9;border:none;width:100%;display:block}.popup-video video{border:none;width:100%;height:auto;max-height:60vh;display:block}.popup-video:empty{display:none}.popup-body{padding:2rem 2.5rem 2.5rem;font-family:Playfair Display,serif}.popup-body h2{color:#000;margin:0 0 1.25rem;font-family:Inter Display,sans-serif;font-size:2rem;font-weight:700}.popup-body p{margin:0 0 1rem;font-size:1rem;line-height:1.65}.popup-body p:last-child{margin-bottom:0}.popup-demo-label{margin:0 0 .5rem;font-family:Inter Display,sans-serif;font-weight:600}.sister-credit{text-align:center;color:#000;margin:-14rem 0 4rem;font-family:Cutive Mono,monospace;font-size:1.25rem}
