.project-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:2000;font-family:Poppins,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans',sans-serif}.project-modal.is-open{display:flex}.project-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.6)}.project-modal__dialog{position:relative;background:#fff;border-radius:16px;max-width:960px;width:100%;max-height:90vh;overflow-y:auto;padding:24px 28px 24px;box-shadow:0 24px 70px rgba(15,23,42,.35)}.project-modal__close{position:absolute;top:12px;right:16px;background:0 0;border:none;font-size:24px;line-height:1;cursor:pointer;color:#4b5563}.project-modal__close:hover{color:#111827}.project-modal__header{margin-bottom:16px}.project-modal__header h2{margin:0 0 4px;font-size:1.6rem;font-weight:700;color:#111827}.project-modal__meta{margin:0;font-size:.9rem;color:#6b7280}.project-modal__body{margin-top:8px}.project-modal__overview{font-size:1rem;line-height:1.6;color:#374151;margin:0 0 16px}.project-modal__extras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 16px}.project-modal__extra{background:#f9fafb;border-radius:12px;padding:12px;border:1px solid rgba(15,23,42,.06)}.project-modal__extra-label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px}.project-modal__extra-value{font-size:.95rem;color:#111827;line-height:1.4}.project-modal__badges{display:flex;flex-wrap:wrap;gap:8px}.project-modal__badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:rgba(255,59,48,.08);border:1px solid rgba(255,59,48,.2);color:#111827;font-size:.8rem;line-height:1}.project-modal__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:8px}.project-modal__feature{background:#f9fafb;border-radius:12px;padding:14px;border-left:4px solid #ff3b30}.project-modal__feature h3{margin:0 0 8px;font-size:1rem;font-weight:600;color:#111827}.project-modal__feature p{margin:0;font-size:.9rem;color:#6b7280;line-height:1.5}.project-modal__gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:18px}.project-modal__gallery-item{height:160px;border-radius:10px;background-size:cover;background-position:center;box-shadow:0 4px 12px rgba(0,0,0,.12)}.project-modal__gallery-item:hover{transform:scale(1.05);box-shadow:0 4px 20px rgba(0,0,0,.2)}.project-modal__footer{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:flex-start;margin-top:20px}.project-modal__footer .btn{margin:0}.project-modal__footer .btn-secondary{background:#f3f4f6;color:#374151;border-color:#d1d5db}.project-modal__footer .btn-secondary:hover{background:#e5e7eb;color:#111827}.project-modal__loading{display:flex;align-items:center;gap:12px;font-size:1.1rem;color:#333;margin-bottom:8px}.project-modal__loading-text{color:#666;font-size:.9rem;font-style:italic}.project-modal__loading-gallery{display:flex;justify-content:center;align-items:center;min-height:120px;color:#666;font-size:.9rem}.project-modal__spinner{width:24px;height:24px;border:3px solid #f3f3f3;border-top:3px solid #007bff;border-radius:50%;animation:project-modal-spin 1s linear infinite}@keyframes project-modal-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@media (max-width:768px){.project-modal{align-items:flex-start;justify-content:center}.project-modal__dialog{max-width:100%;height:100vh;border-radius:0;padding:18px 16px}.project-modal__grid{grid-template-columns:1fr}.project-modal__gallery-item{height:140px}.project-modal__footer{flex-direction:column;align-items:stretch}.project-modal__footer .btn,.project-modal__footer .btn-secondary{width:100%;text-align:center}}@media (max-width:768px){.project-modal__extras{grid-template-columns:1fr}.project-modal__extra{padding:10px}.project-modal__badges{gap:6px}.project-modal__badge{padding:4px 8px;font-size:.7rem}}@media (max-width:480px){.project-modal__dialog{padding:14px 12px 18px}.project-modal__header h2{font-size:1.1rem!important}.project-modal__overview{font-size:.9rem}.project-modal__feature h3{font-size:.95rem!important}.project-modal__feature p{font-size:.85rem!important}.project-modal__gallery-item{height:120px}.project-modal__loading{font-size:.95rem;gap:10px}.project-modal__spinner{width:18px;height:18px;border-width:2px}}.no-scroll{overflow:hidden}.no-scroll body{overflow:hidden}@media (max-width:768px){.project-modal{align-items:flex-start;justify-content:center}.project-modal__dialog{max-width:100%;width:100%;height:100vh;max-height:100vh;border-radius:0;padding:16px 16px 20px}.project-modal__extras{grid-template-columns:1fr}.project-modal__header h2{font-size:1.25rem!important}.project-modal__overview{font-size:.95rem}.project-modal__feature h3{font-size:1rem!important}.project-modal__feature p{font-size:.9rem!important}.project-modal__grid{grid-template-columns:1fr;gap:12px}.project-modal__gallery-item{height:140px}.project-modal__loading{font-size:1rem}.project-modal__spinner{width:20px;height:20px}.project-modal__footer{flex-direction:column;align-items:stretch}.project-modal__footer .btn,.project-modal__footer .btn-secondary{width:100%;text-align:center;justify-content:center}}@media (max-width:480px){.project-modal__dialog{padding:14px 12px 18px}.project-modal__header h2{font-size:1.1rem!important}.project-modal__overview{font-size:.9rem}.project-modal__feature h3{font-size:.95rem!important}.project-modal__feature p{font-size:.85rem!important}.project-modal__gallery-item{height:120px}.project-modal__loading{font-size:.95rem;gap:10px}.project-modal__spinner{width:18px;height:18px;border-width:2px}}.no-scroll{overflow:hidden}.project-modal__dialog{-webkit-overflow-scrolling:touch}@supports (height:100dvh){@media (max-width:768px){.project-modal__dialog{height:100dvh;max-height:100dvh}}}@media (max-width:768px){.project-modal__dialog{padding-bottom:env(safe-area-inset-bottom)}.project-modal__close{top:calc(12px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));width:44px;height:44px;font-size:28px;display:flex;align-items:center;justify-content:center}}