
  .contact-hero {
    min-height: 40vh; display: flex; flex-direction: column; justify-content: center;
    align-items: center; text-align: center; padding: 100px 24px 40px;
    position: relative; overflow: hidden;
  }
  #particlesBg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; }
  .contact-hero > * { position: relative; z-index: 1; }
  .contact-hero h1 { font-size: clamp(2.2rem, 5vw, 3.5rem); font-weight: 800; line-height: 1.1; margin-bottom: 16px; letter-spacing: -0.03em; }
  .contact-hero p { color: var(--text-secondary, #a1a1aa); font-size: 1.15rem; max-width: 560px; line-height: 1.6; }
  .contact-section { padding: 32px 24px 60px; max-width: 640px; margin: 0 auto; }
  .contact-form { display: flex; flex-direction: column; gap: 24px; }
  .form-group { display: flex; flex-direction: column; gap: 8px; }
  .form-group label { font-size: 0.9rem; font-weight: 500; color: var(--text-primary, #fafafa); }
  .form-group input, .form-group textarea, .form-group select {
    background: var(--card-bg, rgba(255,255,255,0.04)); border: 1px solid var(--border, rgba(255,255,255,0.1));
    border-radius: 12px; padding: 14px 16px; font-size: 1rem; color: var(--text-primary, #fafafa);
    font-family: inherit; transition: border-color 0.3s, box-shadow 0.3s; outline: none;
    width: 100%; box-sizing: border-box;
  }
  .form-group input:focus, .form-group textarea:focus {
    border-color: var(--accent, #6366f1); box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
  }
  .form-group textarea { min-height: 160px; resize: vertical; }
  .form-group input::placeholder, .form-group textarea::placeholder { color: var(--text-tertiary, #52525b); }
  .file-upload {
    position: relative; border: 2px dashed var(--border, rgba(255,255,255,0.1));
    border-radius: 12px; padding: 24px 16px; text-align: center;
    transition: border-color 0.3s, background 0.3s; cursor: pointer;
  }
  .file-upload:hover { border-color: var(--accent, #6366f1); background: rgba(99, 102, 241, 0.03); }
  .file-upload.dragover { border-color: var(--accent, #6366f1); background: rgba(99, 102, 241, 0.06); }
  .file-upload input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
  .file-upload-text { color: var(--text-secondary, #a1a1aa); font-size: 0.9rem; pointer-events: none; }
  .file-upload-text strong { color: var(--accent, #6366f1); display: block; margin-bottom: 4px; font-size: 1rem; }
  .file-name { margin-top: 8px; font-size: 0.85rem; color: var(--accent, #6366f1); display: none; }
  .submit-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: linear-gradient(135deg, var(--accent, #6366f1), #a855f7);
    color: white; border: none; padding: 16px 32px; border-radius: 12px;
    font-size: 1rem; font-weight: 600; cursor: pointer;
    transition: opacity 0.3s, transform 0.3s; font-family: inherit; width: 100%;
  }
  .submit-btn:hover { opacity: 0.9; transform: translateY(-2px); }
  .submit-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
  .form-message { padding: 16px; border-radius: 12px; font-size: 0.95rem; display: none; text-align: center; }
  .form-message.success { display: block; background: rgba(34, 197, 94, 0.1); border: 1px solid rgba(34, 197, 94, 0.2); color: #22c55e; }
  .form-message.error { display: block; background: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.2); color: #ef4444; }
  .form-group.error input, .form-group.error textarea { border-color: #ef4444; }
  .field-error { color: #ef4444; font-size: 0.8rem; margin-top: 4px; }
  .contact-alt { text-align: center; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--border, rgba(255,255,255,0.06)); }
  .contact-alt p { color: var(--text-secondary, #a1a1aa); margin-bottom: 16px; font-size: 0.95rem; }
  .contact-links { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; }
  .contact-links a { color: var(--accent, #6366f1); font-weight: 500; text-decoration: none; transition: opacity 0.3s; }
  .contact-links a:hover { opacity: 0.8; }
  .section-illust { display: flex; justify-content: center; margin-bottom: 12px; opacity: 0.45; }
