.projects_root__5eL5a{min-height:100vh;padding:var(--space-10,5rem) var(--space-6,2rem);background:var(--color-bg,#0e0e0e)}.projects_header__xBwNG{max-width:960px;margin:0 auto var(--space-9,4rem)}.projects_eyebrow__EtfFo{font-family:DM Mono,monospace;font-size:var(--text-xs,.75rem);letter-spacing:.12em;color:var(--color-accent,#c8b89a);text-transform:uppercase;display:block;margin-bottom:var(--space-3,.75rem)}.projects_title__qiES_{font-family:"DM Serif Display",serif;font-size:var(--text-4xl,2.75rem);font-weight:400;color:var(--color-text,#e8e6e1);line-height:1.1;margin:0 0 var(--space-4,1rem)}.projects_subtitle__CGP6Y{font-family:Epilogue,sans-serif;font-size:var(--text-base,1rem);font-weight:300;color:var(--color-muted,#888);margin:0}.projects_grid__19mxF{max-width:960px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-6,2rem);gap:var(--space-6,2rem)}@media (max-width:860px){.projects_grid__19mxF{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.projects_grid__19mxF{grid-template-columns:1fr}}.projects_card__5V8g8{background:var(--color-surface,#161616);border:1px solid var(--color-border,#2a2a2a);border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .2s ease,transform .2s ease}.projects_card__5V8g8:hover{border-color:var(--color-accent,#c8b89a);transform:translateY(-2px)}.projects_imageWrap__UuNf7{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden}.projects_image__kXXUs{transition:filter .3s ease}.projects_card__5V8g8:hover .projects_image__kXXUs{filter:brightness(.35)}.projects_overlay__zcsM2{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-5,1.5rem);opacity:0;transition:opacity .3s ease;text-align:center}.projects_card__5V8g8:hover .projects_overlay__zcsM2{opacity:1}.projects_overlayText__nJU_2{font-family:Epilogue,sans-serif;font-size:var(--text-sm,.875rem);font-weight:300;color:var(--color-text,#e8e6e1);margin:0 0 var(--space-3,.75rem);line-height:1.5}.projects_overlayCta__RdemC{font-family:DM Mono,monospace;font-size:var(--text-xs,.75rem);letter-spacing:.08em;color:var(--color-accent,#c8b89a);text-transform:uppercase}[data-theme=light] .projects_overlayText__nJU_2{color:#f0ece4}[data-theme=light] .projects_overlayCta__RdemC{color:#c8b89a}.projects_cardBody__hkpop{padding:var(--space-5,1.5rem)}.projects_cardMeta__vXDDr{display:flex;align-items:center;gap:var(--space-3,.75rem);margin-bottom:var(--space-3,.75rem)}.projects_cardTitle__UuxiT{font-family:"DM Serif Display",serif;font-size:var(--text-lg,1.125rem);font-weight:400;color:var(--color-text,#e8e6e1);margin:0 0 var(--space-3,.75rem);line-height:1.3}.projects_tag__9UL3h{font-family:DM Mono,monospace;font-size:var(--text-xs,.75rem);color:var(--color-muted,#888);letter-spacing:.06em}.projects_recentUpdate__j065i{font-family:Epilogue,sans-serif;font-size:var(--text-sm,.875rem);color:var(--color-muted,#888);margin:0 0 var(--space-4,1rem);line-height:1.4}.projects_recentLabel__lXtu0{color:var(--color-accent,#c8b89a);font-weight:500}.projects_stack__Puqzk{display:flex;flex-wrap:wrap;gap:var(--space-2,.5rem)}.projects_stackTag__BzfhT{font-size:var(--text-xs,.75rem);color:var(--color-text,#e8e6e1);background:var(--color-bg,#0e0e0e);border:1px solid var(--color-border,#2a2a2a);letter-spacing:.04em}.projects_stackTag__BzfhT,.projects_statusBadge__3K31Z{font-family:DM Mono,monospace;border-radius:4px;padding:2px 8px}.projects_statusBadge__3K31Z{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid}.projects_statusInProgress__zU3kp{color:#e0a84a;border-color:#e0a84a44;background:#e0a84a11}.projects_statusComplete__u1P9G{color:#6fcf8a;border-color:#6fcf8a44;background:#6fcf8a11}.projects_statusArchived__VIsJs{color:var(--color-muted,#888);border-color:#88888844;background:#88888811}.projects_modalBackdrop__sO6dA{position:fixed;inset:0;background:rgba(0,0,0,.75);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-6,2rem)}.projects_modal__7QMr9{background:var(--color-surface,#161616);border:1px solid var(--color-border,#2a2a2a);border-radius:12px;width:100%;max-width:680px;max-height:90vh;overflow-y:auto;position:relative}.projects_modalClose__qmQiO{position:absolute;top:var(--space-4,1rem);right:var(--space-4,1rem);background:var(--color-bg,#0e0e0e);border:1px solid var(--color-border,#2a2a2a);color:var(--color-muted,#888);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1;font-size:.75rem;transition:color .2s,border-color .2s}.projects_modalClose__qmQiO:hover{color:var(--color-text,#e8e6e1);border-color:var(--color-accent,#c8b89a)}.projects_modalImageWrap__6Md_V{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:12px 12px 0 0}.projects_modalImage__FUE5N{object-fit:cover}.projects_modalContent__mUG_8{padding:var(--space-6,2rem)}.projects_modalMeta__9wUDy{display:flex;align-items:center;gap:var(--space-3,.75rem);margin-bottom:var(--space-4,1rem)}.projects_modalTitle__t_KOa{font-family:"DM Serif Display",serif;font-size:var(--text-2xl,1.75rem);font-weight:400;color:var(--color-text,#e8e6e1);margin:0 0 var(--space-5,1.5rem);line-height:1.2}.projects_modalDescription__3krBf{font-family:Epilogue,sans-serif;font-size:var(--text-base,1rem);font-weight:300;color:var(--color-muted,#888);line-height:1.7;margin:0}.projects_modalSection__dqOnm{margin-top:var(--space-6,2rem);padding-top:var(--space-6,2rem);border-top:1px solid var(--color-border,#2a2a2a)}.projects_modalSectionLabel__3hIun{font-family:DM Mono,monospace;font-size:var(--text-xs,.75rem);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent,#c8b89a);margin:0 0 var(--space-3,.75rem)}.projects_modalUpdate__mJtcW{font-family:Epilogue,sans-serif;font-size:var(--text-sm,.875rem);color:var(--color-muted,#888);margin:0}.projects_imageGallery__YQ8pA{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-3,.75rem);gap:var(--space-3,.75rem)}.projects_galleryImageWrap__DxB__{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:6px}