.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:transparent;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,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:0.9rem;font-style:italic}.project-modal__loading-gallery{display:flex;justify-content:center;align-items:center;min-height:120px;color:#666;font-size:0.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(0deg)}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:0.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:0.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}
 }
