.projects_projectsPage__CQIzo{min-height:100vh;background:var(--white);color:var(--black);overflow-x:hidden}.projects_hero__lQGLY{padding:80px 24px 64px;border-bottom:2px solid var(--black);background:var(--off);overflow:hidden}.projects_heroContent__HMSjQ{max-width:1280px;margin:0 auto;text-align:center}.projects_heroTitle__wGoWw{font-size:clamp(2.5rem,7vw,4.5rem);font-weight:800;margin:0 0 20px;color:var(--black);letter-spacing:-.01em;line-height:.95}.projects_heroSubtitle__S4bbb,.projects_heroTitle__wGoWw{font-family:Bricolage Grotesque,sans-serif;text-transform:uppercase}.projects_heroSubtitle__S4bbb{font-size:.8rem;font-weight:700;margin:0 0 18px;color:var(--signal);letter-spacing:.08em}.projects_heroDescription__jrnyr{font-family:Inter,sans-serif;font-size:1.08rem;margin:0 auto;line-height:1.6;color:var(--ink-dim);max-width:56ch}.projects_container__IN86_{max-width:1280px;margin:0 auto;padding:0 24px}.projects_sectionTitle__fGnxC{font-family:Bricolage Grotesque,sans-serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;color:var(--black);letter-spacing:-.01em;text-transform:uppercase;margin:0 0 12px}.projects_sectionHeader__bdUwD{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:32px;flex-wrap:wrap;gap:20px}.projects_filterButtons__PfTxK{display:flex;gap:8px;flex-wrap:wrap}.projects_filterButton__sEg0o{padding:8px 16px;background:var(--white);border:2px solid var(--black);font-family:Inter,sans-serif;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;transition:background .2s ease,color .2s ease;color:var(--black)}.projects_filterButton__sEg0o:hover{background:var(--black);color:var(--white)}.projects_filterButton__sEg0o.projects_active__CT4W_{background:var(--signal);color:var(--white);border-color:var(--signal)}.projects_projectsGrid__dwGgH{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2px;background:var(--black);border:2px solid var(--black);margin-bottom:64px;overflow:hidden}.projects_projectCard__7As1M{padding:24px;background:var(--white);text-align:left;transition:background .25s ease;border:none;border-bottom:2px solid var(--black);cursor:pointer;font-family:inherit;min-width:0}.projects_featuredImage__xa34Q,.projects_modalImage__FUE5N,.projects_projectImage__Hyi9q{position:relative;overflow:hidden;background:var(--off);border:2px solid var(--black)}.projects_featuredImage__xa34Q{height:220px;margin-bottom:20px}.projects_projectImage__Hyi9q{position:relative;height:180px;margin-bottom:18px}.projects_modalImage__FUE5N{height:260px;margin-bottom:20px}.projects_featuredImage__xa34Q img,.projects_modalImage__FUE5N img,.projects_projectImage__Hyi9q img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1),filter .6s ease}.projects_featuredCard__ZU44E:hover .projects_featuredImage__xa34Q img,.projects_projectCard__7As1M:hover .projects_projectImage__Hyi9q img{transform:scale(1.06);filter:saturate(1.12)}.projects_projectCard__7As1M:hover{background:var(--off)}.projects_projectCategory__rwPpM{font-size:.7rem;font-weight:700;color:var(--signal);letter-spacing:.04em;margin-bottom:12px}.projects_projectCategory__rwPpM,.projects_projectTitle__QsUU0{font-family:Bricolage Grotesque,sans-serif;text-transform:uppercase}.projects_projectTitle__QsUU0{font-size:1.15rem;font-weight:800;color:var(--black);margin:0 0 10px;line-height:1.1}.projects_projectDescription__8JXd_{font-family:Inter,sans-serif;color:var(--ink-dim);line-height:1.55;margin:0 0 16px;font-size:.88rem}.projects_projectTech__6uEvB{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.projects_techTag__3F3aT{background:var(--off);color:var(--ink-dim);font-family:Inter,sans-serif;font-size:.7rem;font-weight:600;text-transform:uppercase;padding:3px 8px;border:1px solid var(--line)}.projects_readMoreBtn__M1wqY{display:inline-flex;align-items:center;gap:6px;background:var(--black);color:var(--white);font-family:Inter,sans-serif;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;border:2px solid var(--black);padding:10px 20px;transition:background .25s ease}.projects_readMoreBtn__M1wqY:hover{background:var(--signal);border-color:var(--signal)}.projects_noProjects__G20Ex{grid-column:1/-1;text-align:center;padding:80px 40px;color:var(--ink-dim);font-family:Inter,sans-serif;background:var(--white)}.projects_resetFilter__Xmkv_{background:var(--black);color:var(--white);border:2px solid var(--black);padding:12px 24px;font-family:Inter,sans-serif;font-weight:700;text-transform:uppercase;cursor:pointer;margin-top:20px;transition:background .25s ease}.projects_resetFilter__Xmkv_:hover{background:var(--signal)}.projects_featuredSection__fjIzB{padding:64px 0;background:var(--off);border-bottom:2px solid var(--black)}.projects_featuredGrid__JSJ97{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2px;background:var(--black);border:2px solid var(--black);margin-top:40px;overflow:hidden}.projects_featuredCard__ZU44E{padding:32px 28px;background:var(--white);transition:background .25s ease;min-width:0}.projects_featuredCard__ZU44E:hover{background:var(--off)}.projects_featuredTitle__t_XW3{font-family:Bricolage Grotesque,sans-serif;font-size:1.4rem;font-weight:800;margin:0 0 12px;color:var(--black);text-transform:uppercase}.projects_featuredDescription__CNr73{font-family:Inter,sans-serif;color:var(--ink-dim);line-height:1.6;margin:0 0 20px;font-size:.95rem}.projects_featuredTech__Iwt62{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.projects_featuredLinks__6Q8gX{display:flex;gap:12px;flex-wrap:wrap}.projects_githubLink__pyPng,.projects_liveLink__5Bl5v{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;font-family:Inter,sans-serif;font-weight:700;font-size:.78rem;text-transform:uppercase;text-decoration:none;border:2px solid var(--black);background:transparent;color:var(--black);transition:background .25s ease,color .25s ease}.projects_liveLink__5Bl5v:hover{background:var(--signal);border-color:var(--signal);color:var(--white)}.projects_githubLink__pyPng:hover{background:var(--black);color:var(--white)}.projects_projectsSection__gy_tn{padding:64px 0;background:var(--white);border-bottom:2px solid var(--black)}.projects_ctaSection__GZqO7{position:relative;padding:80px 24px;text-align:center;background:var(--black);color:var(--white)}.projects_ctaContainer__W45wu{position:relative;z-index:1;max-width:700px;margin:0 auto}.projects_ctaTitle__CbPq2{font-family:Bricolage Grotesque,sans-serif;font-size:clamp(1.8rem,5vw,3rem);font-weight:800;margin:0 0 20px;color:var(--white);text-transform:uppercase}.projects_ctaText__xJlwq{font-family:Inter,sans-serif;font-size:1.05rem;margin:0 auto 40px;max-width:52ch;line-height:1.6;color:#adadad}.projects_ctaButton__xp5iG{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;background:var(--signal);color:var(--white);font-family:Inter,sans-serif;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;text-decoration:none;border:2px solid var(--signal);transition:background .25s ease,color .25s ease}.projects_ctaButton__xp5iG:hover{background:var(--white);color:var(--black);border-color:var(--white)}.projects_modal__7QMr9{position:fixed;top:0;left:0;right:0;bottom:0;background:hsla(0,0%,4%,.7);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.projects_modalContent__mUG_8{background:var(--white);max-width:900px;width:100%;max-height:90vh;overflow-y:auto;border:2px solid var(--black)}.projects_modalHeader__6KmKs{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:2px solid var(--black)}.projects_modalTitle__t_KOa{font-family:Bricolage Grotesque,sans-serif;font-size:1.5rem;font-weight:800;color:var(--black);margin:0;text-transform:uppercase}.projects_modalClose__qmQiO{background:var(--off);border:2px solid var(--black);font-size:18px;cursor:pointer;color:var(--ink-dim);padding:8px 12px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease}.projects_modalClose__qmQiO:hover{background:var(--black);color:var(--white)}.projects_modalBody__G6WHH{padding:24px}.projects_modalMeta__9wUDy{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.projects_modalCategory__Rmjcm{background:var(--black);font-family:Bricolage Grotesque,sans-serif;letter-spacing:.04em}.projects_featuredBadge__8ngLH,.projects_modalCategory__Rmjcm{color:var(--white);font-size:.75rem;font-weight:700;text-transform:uppercase;padding:6px 12px}.projects_featuredBadge__8ngLH{background:var(--signal);font-family:Inter,sans-serif}.projects_modalDescription__3krBf{font-family:Inter,sans-serif;font-size:1rem;line-height:1.7;color:var(--black);margin:0 0 20px}.projects_modalTech__iUZ6q h4{font-family:Bricolage Grotesque,sans-serif;font-size:.9rem;font-weight:700;color:var(--black);margin:0 0 12px;text-transform:uppercase}.projects_modalTechTags__g0yAH{display:flex;flex-wrap:wrap;gap:8px}.projects_modalTechTag__iAy7G{background:var(--off);color:var(--ink-dim);font-family:Inter,sans-serif;font-size:.8rem;font-weight:600;text-transform:uppercase;padding:4px 10px;border:1px solid var(--line)}.projects_modalLinks__vjbFk{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}@media (max-width:1024px){.projects_featuredGrid__JSJ97{grid-template-columns:1fr}}@media (max-width:768px){.projects_hero__lQGLY{padding:64px 20px 48px}.projects_container__IN86_{padding:0 20px}.projects_featuredGrid__JSJ97,.projects_projectsGrid__dwGgH{grid-template-columns:1fr}.projects_ctaSection__GZqO7{padding:64px 20px}}@media (max-width:480px){.projects_heroTitle__wGoWw{font-size:clamp(1.8rem,10vw,2.8rem)}.projects_filterButton__sEg0o{padding:6px 12px;font-size:.72rem}}