.projects{padding:4rem 1rem;text-align:center}.project-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:2rem}.project-card{padding:1.5rem;border-radius:12px}.project-card img{width:100%;height:auto;border-radius:8px;margin-bottom:1rem}.project-card h2{font-size:1.25rem;margin-bottom:.5rem}.project-card p{margin-bottom:1rem;line-height:1.6}.project-card .btn{display:inline-block;margin-right:.5rem;margin-top:.5rem}.project-card,.mini-card{background:#12141e8c;border:1px solid rgba(255,255,255,.08);border-radius:14px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .18s ease,border-color .18s ease,background-color .18s ease;cursor:pointer;overflow:hidden}.project-card:hover,.mini-card:hover{transform:translateY(-4px);border-color:#b4a0ff47;background:#12141e9e;box-shadow:0 6px 20px #0000001a}.project-card:focus-visible,.mini-card:focus-visible{outline:2px solid rgba(180,160,255,.6);outline-offset:4px;transform:translateY(-4px)}body.light .project-card,body.light .mini-card{background:#f8faffb8;border:1px solid rgba(0,0,0,.08)}body.light .project-card:hover,body.light .mini-card:hover{border-color:#785fd23d;background:#f8faffcc}.mini-projects{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;width:min(100%,1100px);margin:3rem auto 0;align-items:stretch}.mini-card{padding:1rem;min-height:150px;display:flex;flex-direction:column;justify-content:flex-start;text-align:left}.mini-card h3{font-size:1.1rem;margin-bottom:.5rem}.mini-card p{font-size:.95rem;line-height:1.5}@media(max-width:1100px){.mini-projects{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.mini-projects{grid-template-columns:1fr}}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600;margin-bottom:.75rem;width:fit-content;align-self:flex-start}.project-modal-content .status-badge{align-self:center;margin-bottom:0}.status-badge-active{background:#2ecc7126;border:1px solid rgba(46,204,113,.35);color:#66ffa6}.status-badge-maintained{background:#6495ed26;border:1px solid rgba(100,149,237,.35);color:#97bbff}.status-badge-archived{background:#9ca3af26;border:1px solid rgba(156,163,175,.35);color:#d1d5db}body.light .status-badge-active{color:#166534}body.light .status-badge-maintained{color:#1e40af}body.light .status-badge-archived{color:#4b5563}.modal-overlay{position:fixed;inset:0;z-index:999;display:flex;justify-content:center;align-items:center;padding:1rem;background:#0a0c12ad;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}body.light .modal-overlay{background:#0a0c1259}.modal{position:fixed;inset:0;z-index:999;display:flex;justify-content:center;align-items:center}.modal.hidden{display:none}.modal-backdrop{position:absolute;inset:0;background:#0a0c12ad;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}body.light .modal-backdrop{background:#0a0c1259}.modal-content{position:relative;background:#0a141eb8;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:2rem;max-width:600px;width:90%;max-height:min(90vh,800px);overflow-y:auto;border-radius:12px;z-index:2;box-shadow:0 12px 40px #0003;animation:fadeInUp .3s ease}.project-modal-content{display:flex;flex-direction:column;gap:1.5rem}.project-modal-description{line-height:1.7;margin:0}.project-modal-section h3{margin-bottom:.75rem}.project-modal-tech-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0}.project-modal-tech-list li{padding:.35rem .75rem;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.08);font-size:.9rem}body.light .project-modal-tech-list li{background:#0000000a;border:1px solid rgba(0,0,0,.08)}.project-modal-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:.5rem}.project-modal-link{display:inline-flex;align-items:center;justify-content:center;min-width:140px;padding:.85rem 1.25rem;border-radius:999px;border:1px solid rgba(180,160,255,.35);background:#b4a0ff24;color:inherit;font-weight:700;text-decoration:none;transition:transform .18s ease,background-color .18s ease,border-color .18s ease}.project-modal-link:hover,.project-modal-link:focus-visible{transform:translateY(-2px);border-color:#b4a0ff8c;background:#b4a0ff38}.project-modal-link-secondary{background:#ffffff0f;border-color:#ffffff24}.project-modal-link-secondary:hover,.project-modal-link-secondary:focus-visible{background:#ffffff1a;border-color:#ffffff3d}body.light .project-modal-link{background:#6366f11a;border-color:#6366f13d;color:#312e81}body.light .project-modal-link:hover,body.light .project-modal-link:focus-visible{background:#6366f129;border-color:#6366f15c}body.light .project-modal-link-secondary{background:#0000000a;border-color:#0000001a;color:#1f2937}body.light .project-modal-link-secondary:hover,body.light .project-modal-link-secondary:focus-visible{background:#00000012;border-color:#0000002e}.modal-content h2,.modal-content h3,.modal-content .modal-links{text-align:center}body.light .modal-content{background:#f8faffe0;border:1px solid rgba(0,0,0,.8)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{width:40px;height:40px;border-radius:999px;display:grid;place-items:center;background:transparent;border:none;color:inherit;cursor:pointer}.modal-close:hover{background:#ffffff14}body.light .modal-close:hover{background:#0000000f}.modal-links{margin-top:1.5rem;display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.modal-content h3{margin-top:1rem;margin-bottom:.5rem}#modal-techstack{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;padding:0}#modal-techstack li{padding:.35rem .6rem;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.08);font-size:.9rem}body.light #modal-techstack li{background:#0000000a;border:1px solid rgba(0,0,0,.08)}
