.project-modal-backdrop{z-index:200;background:var(--theme-overlay-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:center;align-items:center;padding:1.5rem;animation:.35s modalBackdropIn;display:flex;position:fixed;inset:0}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}.project-modal{background:var(--theme-surface);width:100%;max-width:640px;max-height:90vh;color:var(--theme-text-secondary);border:1px solid var(--theme-border-strong);box-shadow:0 32px 80px var(--theme-shadow);border-radius:0;animation:.45s cubic-bezier(.22,1,.36,1) modalScaleIn;position:relative;overflow-y:auto}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.94)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.project-modal-close{z-index:2;border:1px solid var(--theme-border-strong);background:var(--theme-overlay-soft);width:40px;height:40px;color:var(--theme-accent);cursor:pointer;border-radius:0;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;transition:background .3s,color .3s;display:flex;position:absolute;top:.75rem;right:.75rem}.project-modal-close:hover{background:var(--theme-accent);color:var(--theme-text-on-accent)}.project-modal-gallery{position:relative}.project-modal-hero{aspect-ratio:16/9;background:var(--theme-surface-alt);width:100%;position:relative}.project-modal-image{object-fit:cover}.project-modal-nav{z-index:2;border:1px solid var(--theme-border-strong);background:var(--theme-overlay-soft);width:36px;height:36px;color:var(--theme-accent);cursor:pointer;border-radius:0;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.project-modal-nav:hover{background:var(--theme-accent);color:var(--theme-text-on-accent)}.project-modal-nav--prev{left:.75rem}.project-modal-nav--next{right:.75rem}.project-modal-dots{z-index:2;gap:.4rem;display:flex;position:absolute;bottom:.75rem;left:50%;transform:translate(-50%)}.project-modal-dot{background:var(--theme-overlay-soft);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0}.project-modal-dot.active{background:var(--theme-accent)}.project-modal-content{padding:2rem 2rem 2.5rem}.project-modal-title{font-family:var(--font-heading), var(--font-heading-fallback);color:var(--theme-accent);letter-spacing:.02em;margin:0 0 1.5rem;font-size:1.75rem;font-weight:500}.project-modal-details{gap:1.25rem;margin:0;display:grid}.project-modal-details div{text-align:left;border-bottom:1px solid var(--theme-border);gap:.25rem;padding-bottom:1rem;display:grid}.project-modal-details div:last-child{border-bottom:none;padding-bottom:0}.project-modal-details dt{font-family:var(--font-body), var(--font-body-fallback);letter-spacing:.14em;text-transform:uppercase;color:var(--theme-muted);font-size:.7rem;font-weight:600}.project-modal-details dd{font-family:var(--font-body), var(--font-body-fallback);color:var(--theme-text-secondary);margin:0;font-size:1.05rem;line-height:1.5}.project-modal-details .status-completed{color:var(--theme-status-green)}.project-modal-details .status-ongoing{color:var(--theme-accent)}.project-modal-details .status-upcoming{color:var(--theme-muted)}@media (prefers-reduced-motion:reduce){.project-modal-backdrop,.project-modal{animation:none}}
