/* Contact modal */
    .modal-backdrop {
      position: fixed; inset: 0;
      background: rgba(26,26,26,0.55);
      backdrop-filter: blur(4px);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 200;
      padding: 1.5rem;
    }
    .modal-backdrop.open { display: flex; }
    .modal {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: 18px;
      padding: 2.25rem 2rem 1.75rem;
      width: 100%;
      max-width: 480px;
      box-shadow: 0 30px 80px rgba(0,0,0,0.25);
      animation: modalIn .2s ease;
    }
    @keyframes modalIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
    .modal h3 {
      font-family: var(--serif);
      font-size: 1.7rem;
      font-weight: 500;
      letter-spacing: -0.02em;
      margin-bottom: 0.4rem;
    }
    .modal p {
      font-family: var(--sans);
      font-size: 0.95rem;
      color: var(--text-secondary);
      margin-bottom: 1.5rem;
    }
    .modal label {
      display: block;
      font-family: var(--sans);
      font-size: 0.78rem;
      font-weight: 500;
      color: var(--text-secondary);
      letter-spacing: 0.02em;
      margin: 0.9rem 0 0.35rem;
    }
    .modal input, .modal textarea {
      width: 100%;
      font-family: var(--sans);
      font-size: 0.95rem;
      padding: 0.65rem 0.8rem;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: var(--bg);
      color: var(--text);
      transition: border-color .15s ease;
    }
    .modal input:focus, .modal textarea:focus {
      outline: none;
      border-color: #b5453a;
    }
    .modal textarea { resize: vertical; min-height: 90px; }
    .modal-actions { display: flex; justify-content: flex-end; gap: 0.6rem; margin-top: 1.25rem; }
    .modal-btn {
      font-family: var(--sans);
      font-size: 0.9rem;
      font-weight: 500;
      padding: 0.65rem 1.2rem;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: transparent;
      color: var(--text);
      cursor: pointer;
      transition: all .15s ease;
    }
    .modal-btn:hover { border-color: var(--border-hover); }
    .modal-btn.primary {
      background: #b5453a;
      border-color: #b5453a;
      color: #fff;
    }
    .modal-btn.primary:hover { background: #9a3c33; border-color: #9a3c33; }
    .modal-close {
      float: right;
      background: none;
      border: none;
      font-size: 1.4rem;
      line-height: 1;
      color: var(--text-tertiary);
      cursor: pointer;
      padding: 0;
      margin: -0.5rem -0.25rem 0 0;
    }
    .modal-close:hover { color: var(--text); }
