.projects-module__GWCWbq__main{width:100%;min-height:0;max-width:var(--max-content);padding:0 clamp(var(--space-4), 5vw, var(--space-6));flex-direction:column;flex:auto;margin:0 auto;display:flex;overflow:hidden}.projects-module__GWCWbq__stickyHead{padding-top:var(--page-head-offset);flex:none;padding-bottom:clamp(.6rem,1.5vh,1rem)}.projects-module__GWCWbq__scrollZone{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:oklch(100% 5.96046e-8 none/.28) transparent;flex-direction:column;flex:auto;gap:clamp(.8rem,2.5vw,1.1rem);min-height:0;padding-top:clamp(.55rem,1.4vh,.75rem);padding-bottom:clamp(2rem,6vh,3.5rem);display:flex;overflow:hidden auto;-webkit-mask-image:linear-gradient(#000 0 100%);mask-image:linear-gradient(#000 0 100%)}.projects-module__GWCWbq__scrollZone::-webkit-scrollbar{width:5px}.projects-module__GWCWbq__scrollZone::-webkit-scrollbar-track{background:0 0}.projects-module__GWCWbq__scrollZone::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#ffffff42;background:lab(100% 0 0/.26)}.projects-module__GWCWbq__scrollZone:hover::-webkit-scrollbar-thumb{background:#fff6;background:lab(100% 0 0/.4)}[data-theme=light] .projects-module__GWCWbq__scrollZone{scrollbar-color:color-mix(in oklch, var(--color-ink) 22%, transparent) transparent}[data-theme=light] .projects-module__GWCWbq__scrollZone::-webkit-scrollbar-thumb{background:color-mix(in oklch, var(--color-ink) 18%, transparent)}[data-theme=light] .projects-module__GWCWbq__scrollZone:hover::-webkit-scrollbar-thumb{background:color-mix(in oklch, var(--color-ink) 30%, transparent)}.projects-module__GWCWbq__scrollZone[data-at-top=false]{-webkit-mask-image:linear-gradient(#0000 0,#000 .8rem 100%);mask-image:linear-gradient(#0000 0,#000 .8rem 100%)}.projects-module__GWCWbq__scrollZone[data-at-bottom=false]{-webkit-mask-image:linear-gradient(#000 0 calc(100% - 1.2rem),#0000 100%);mask-image:linear-gradient(#000 0 calc(100% - 1.2rem),#0000 100%)}.projects-module__GWCWbq__scrollZone[data-at-top=false][data-at-bottom=false]{-webkit-mask-image:linear-gradient(#0000 0,#000 .8rem calc(100% - 1.2rem),#0000 100%);mask-image:linear-gradient(#0000 0,#000 .8rem calc(100% - 1.2rem),#0000 100%)}.projects-module__GWCWbq__hero{margin-bottom:clamp(1.1rem,3vh,1.6rem)}.projects-module__GWCWbq__title{font-family:var(--font-serif,Georgia, serif);font-size:var(--page-title-size);letter-spacing:-.03em;color:var(--color-ink);margin:0;font-weight:600;line-height:1.02}.projects-module__GWCWbq__subtitle{max-width:42ch;font-family:var(--font-sans);color:var(--color-muted);align-items:flex-start;gap:clamp(.55rem,2.5vw,.75rem);margin:clamp(.6rem,1.8vh,.9rem) 0 0;font-size:clamp(.85rem,3.3vw,.96rem);line-height:1.5;display:flex}.projects-module__GWCWbq__subtitleBar{border-radius:var(--radius-full);background:var(--color-primary);opacity:.8;flex:none;align-self:stretch;width:2px;min-height:1.8em}.projects-module__GWCWbq__sortShell{align-items:center;gap:clamp(.5rem,2vw,.75rem);margin-bottom:clamp(1.1rem,3vh,1.6rem);display:flex}.projects-module__GWCWbq__sortLabel{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);font-weight:600}.projects-module__GWCWbq__sortToggle{border-radius:var(--radius-full);border:1px solid var(--color-border);background:color-mix(in oklch, var(--color-surface) 70%, transparent);align-items:center;gap:2px;padding:3px;display:inline-flex}.projects-module__GWCWbq__sortBtn{appearance:none;cursor:pointer;border-radius:var(--radius-full);font-family:var(--font-sans);letter-spacing:.005em;color:var(--color-muted);background:0 0;border:none;padding:clamp(.32rem,1.2vw,.4rem) clamp(.7rem,2.8vw,.95rem);font-size:clamp(.72rem,2.8vw,.8rem);font-weight:600;transition:color .18s ease-out;position:relative}.projects-module__GWCWbq__sortBtn:hover{color:var(--color-ink)}.projects-module__GWCWbq__sortBtn[data-active=true]{color:var(--color-on-primary)}.projects-module__GWCWbq__sortBtn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.projects-module__GWCWbq__sortPill{z-index:0;border-radius:var(--radius-full);background:var(--color-primary);box-shadow:0 6px 16px -8px color-mix(in oklch, var(--color-primary) 70%, transparent);position:absolute;inset:0}.projects-module__GWCWbq__sortBtnText{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){.projects-module__GWCWbq__sortBtn[data-active=true]{background:var(--color-primary)}}.projects-module__GWCWbq__list{flex-direction:column;gap:clamp(.7rem,2vw,.95rem);margin:0;padding:0;list-style:none;display:flex}.projects-module__GWCWbq__item{min-width:0;list-style:none;display:flex}.projects-module__GWCWbq__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;min-width:0;transition:border-color .2s ease-out,transform .2s ease-out,box-shadow .2s ease-out;display:block;position:relative;overflow:hidden}.projects-module__GWCWbq__card:before{content:"";pointer-events:none;background:radial-gradient(65% 140% at 0 50%, color-mix(in oklch, var(--card-accent) 9%, transparent), transparent 72%);opacity:.65;transition:opacity .2s ease-out;position:absolute;inset:0}.projects-module__GWCWbq__card:hover{border-color:color-mix(in oklch, var(--card-accent) 58%, var(--color-border));box-shadow:0 3px 8px -6px color-mix(in oklch, var(--card-accent) 60%, transparent)}.projects-module__GWCWbq__card:hover:before{opacity:1}.projects-module__GWCWbq__cardInner{z-index:1;width:100%;min-width:0;color:var(--color-ink);grid-template-columns:clamp(4.8rem,20vw,5.6rem) minmax(0,1fr);align-items:center;gap:clamp(.8rem,3.2vw,1.1rem);padding:clamp(1rem,4vw,1.35rem);text-decoration:none;display:grid;position:relative}.projects-module__GWCWbq__cardInner:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:calc(var(--radius-lg) - 2px)}.projects-module__GWCWbq__logoTile{aspect-ratio:1;flex:none;justify-content:center;align-items:center;width:100%;padding:clamp(.05rem,.35vw,.2rem);transition:transform .26s cubic-bezier(.22,1,.36,1),filter .26s cubic-bezier(.22,1,.36,1);display:flex}.projects-module__GWCWbq__card:hover .projects-module__GWCWbq__logoTile{filter:drop-shadow(0 5px 7px color-mix(in oklch, var(--card-accent) 42%, transparent));transform:translateY(-3px)scale(1.03)}.projects-module__GWCWbq__logoImg{object-fit:contain;width:100%;height:100%;filter:drop-shadow(0 4px 5px color-mix(in oklch, var(--card-accent) 26%, transparent));transition:filter .26s ease-out}.projects-module__GWCWbq__card:hover .projects-module__GWCWbq__logoImg{filter:drop-shadow(0 5px 7px color-mix(in oklch, var(--card-accent) 58%, transparent))}[data-theme=light] .projects-module__GWCWbq__logoImg{filter:drop-shadow(0 3px 4px color-mix(in oklch, var(--card-accent) 20%, transparent))}[data-theme=light] .projects-module__GWCWbq__card:hover .projects-module__GWCWbq__logoImg{filter:drop-shadow(0 4px 6px color-mix(in oklch, var(--card-accent) 42%, transparent))}.projects-module__GWCWbq__body{flex-direction:column;flex:auto;gap:clamp(.28rem,1.1vw,.42rem);min-width:0;display:flex}.projects-module__GWCWbq__name{font-family:var(--font-serif,Georgia, serif);letter-spacing:-.015em;color:var(--color-ink);text-wrap:balance;margin:0;font-size:clamp(1.08rem,4.6vw,1.3rem);font-weight:600;line-height:1.14}.projects-module__GWCWbq__desc{font-family:var(--font-sans);color:var(--color-muted);text-wrap:pretty;max-width:62ch;margin:0;font-size:clamp(.78rem,3vw,.87rem);line-height:1.42}.projects-module__GWCWbq__tags{flex-wrap:wrap;gap:clamp(.3rem,1.3vw,.42rem);margin:clamp(.15rem,.7vh,.3rem) 0 0;padding:0;list-style:none;display:flex}.projects-module__GWCWbq__tag{border-radius:var(--radius-full);font-family:var(--font-sans);letter-spacing:.01em;color:var(--color-ink);background:color-mix(in oklch, var(--tag-accent,var(--color-primary)) 15%, transparent);border:1px solid color-mix(in oklch, var(--tag-accent,var(--color-primary)) 30%, transparent);align-items:center;padding:.2rem .5rem;font-size:clamp(.6rem,2.3vw,.68rem);font-weight:500;display:inline-flex}.projects-module__GWCWbq__meta{font-family:var(--font-sans);color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:clamp(.5rem,2.2vw,.75rem);margin-top:clamp(.15rem,.7vh,.32rem);font-size:clamp(.66rem,2.5vw,.74rem);font-weight:500;display:flex}.projects-module__GWCWbq__stat{align-items:center;gap:.28rem;display:inline-flex}.projects-module__GWCWbq__stat svg{color:color-mix(in oklch, var(--color-primary) 85%, var(--color-muted))}.projects-module__GWCWbq__metaDate{align-items:center;gap:.28rem;padding-left:clamp(.5rem,2.2vw,.75rem);display:inline-flex;position:relative}.projects-module__GWCWbq__metaDate svg{color:color-mix(in oklch, var(--color-primary) 70%, var(--color-muted))}.projects-module__GWCWbq__metaDate:before{content:"";background:color-mix(in oklch, var(--color-muted) 60%, transparent);border-radius:50%;width:3px;height:3px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.projects-module__GWCWbq__entry{min-height:44px;color:var(--color-primary);font-family:var(--font-sans);font-size:var(--text-sm);grid-column:1/-1;justify-content:flex-end;align-items:center;gap:.65rem;font-weight:650;display:flex}.projects-module__GWCWbq__entryLabel{line-height:1.2}.projects-module__GWCWbq__arrow{border-radius:var(--radius-full);border:1px solid color-mix(in oklch, var(--card-accent) 42%, var(--color-border));background:color-mix(in oklch, var(--card-accent) 10%, transparent);width:44px;height:44px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;transition:border-color .2s ease-out,background .2s ease-out,transform .2s ease-out;display:inline-flex}.projects-module__GWCWbq__card:hover .projects-module__GWCWbq__arrow{border-color:var(--card-accent);background:color-mix(in oklch, var(--card-accent) 18%, transparent);transform:translate(2px,-2px)}.projects-module__GWCWbq__cta{border-radius:var(--radius-lg);color:var(--color-ink);background:radial-gradient(120% 130% at 92% -20%, color-mix(in oklch, var(--color-primary) 32%, transparent) 0%, transparent 60%), radial-gradient(80% 80% at 4% 120%, color-mix(in oklch, var(--color-primary) 16%, transparent) 0%, transparent 68%), linear-gradient(150deg, color-mix(in oklch, var(--color-primary) 22%, var(--color-surface)) 0%, var(--color-surface) 64%);border:1px solid color-mix(in oklch, var(--color-primary) 36%, var(--color-border));align-items:center;gap:clamp(.8rem,3vw,1.2rem);margin-top:0;padding:clamp(1rem,3.6vw,1.35rem) clamp(1.1rem,4vw,1.5rem);text-decoration:none;transition:border-color .2s ease-out,transform .2s ease-out;display:flex}[data-theme=light] .projects-module__GWCWbq__cta{background:radial-gradient(120% 130% at 92% -20%, color-mix(in oklch, var(--color-primary) 17%, transparent) 0%, transparent 60%), radial-gradient(70% 70% at 4% 120%, color-mix(in oklch, var(--color-primary) 8%, transparent) 0%, transparent 68%), linear-gradient(150deg, color-mix(in oklch, var(--color-primary) 12%, white) 0%, color-mix(in oklch, var(--color-primary) 3%, white) 72%);border:1px solid color-mix(in oklch, var(--color-primary) 24%, var(--color-border))}.projects-module__GWCWbq__cta:hover{border-color:color-mix(in oklch, var(--color-primary) 60%, var(--color-border))}.projects-module__GWCWbq__cta:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.projects-module__GWCWbq__ctaBody{flex-direction:column;flex:auto;gap:.25rem;min-width:0;display:flex}.projects-module__GWCWbq__ctaMark{aspect-ratio:1;width:clamp(3.4rem,13vw,4.2rem);color:var(--color-primary);flex:none;justify-content:center;align-items:center;display:inline-flex}.projects-module__GWCWbq__ctaTitle{font-family:var(--font-serif,Georgia, serif);letter-spacing:-.015em;color:var(--color-ink);text-wrap:balance;margin:0;font-size:clamp(1.05rem,4.4vw,1.3rem);font-weight:600;line-height:1.15}.projects-module__GWCWbq__ctaSub{font-family:var(--font-sans);color:var(--color-muted);max-width:48ch;margin:0;font-size:clamp(.76rem,3vw,.86rem);line-height:1.4}.projects-module__GWCWbq__ctaHandle{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-primary);font-weight:650}.projects-module__GWCWbq__ctaArrow{border-radius:var(--radius-full);border:1px solid color-mix(in oklch, var(--color-primary) 40%, var(--color-border));background:color-mix(in oklch, var(--color-primary) 16%, transparent);width:clamp(2.1rem,8vw,2.5rem);height:clamp(2.1rem,8vw,2.5rem);color:var(--color-primary);flex:none;justify-content:center;align-items:center;transition:transform .2s ease-out,background .2s ease-out,border-color .2s ease-out;display:inline-flex}.projects-module__GWCWbq__cta:hover .projects-module__GWCWbq__ctaArrow{background:color-mix(in oklch, var(--color-primary) 26%, transparent);border-color:var(--color-primary);transform:translate(2px,-2px)}@media (min-width:1024px){.projects-module__GWCWbq__main{max-width:min(1140px,92vw)}.projects-module__GWCWbq__stickyHead{justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.projects-module__GWCWbq__hero{margin-bottom:0}.projects-module__GWCWbq__sortShell{flex:none;margin-bottom:.4rem}.projects-module__GWCWbq__subtitle{font-size:1.02rem}.projects-module__GWCWbq__list{gap:clamp(.9rem,1.5vw,1.2rem)}.projects-module__GWCWbq__cardInner{grid-template-columns:clamp(7.4rem,10vw,8.8rem) minmax(0,1fr) auto;gap:clamp(1.4rem,2.5vw,2.2rem);padding:clamp(1.35rem,2vw,1.75rem)}.projects-module__GWCWbq__entry{grid-column:auto;min-width:10.5rem}.projects-module__GWCWbq__name{font-size:clamp(1.45rem,2vw,1.8rem)}.projects-module__GWCWbq__desc{font-size:.96rem}.projects-module__GWCWbq__cta{padding:clamp(1.2rem,1.8vw,1.5rem) clamp(1.4rem,2.2vw,1.8rem)}.projects-module__GWCWbq__ctaTitle{font-size:1.34rem}.projects-module__GWCWbq__ctaSub{max-width:62ch;font-size:.92rem}}@media (prefers-reduced-motion:reduce){.projects-module__GWCWbq__card,.projects-module__GWCWbq__logoTile,.projects-module__GWCWbq__logoImg,.projects-module__GWCWbq__arrow,.projects-module__GWCWbq__cta,.projects-module__GWCWbq__ctaArrow{transition:none}.projects-module__GWCWbq__card:hover .projects-module__GWCWbq__logoTile,.projects-module__GWCWbq__card:hover .projects-module__GWCWbq__arrow,.projects-module__GWCWbq__cta:hover .projects-module__GWCWbq__ctaArrow{transform:none}}
