/* The demo gate's styles, a file of its own so the page needs no inline style (Content-Security-Policy). */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    body {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
      background: #0f0f13;
      color: #e4e4e7;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .gate {
      width: 100%;
      max-width: 440px;
      padding: 2rem;
    }
    .logo {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      margin-bottom: 0.25rem;
    }
    .logo svg { width: 36px; height: 34px; }
    .logo h1 {
      font-size: 1.5rem;
      font-weight: 700;
      color: #fff;
      letter-spacing: -0.02em;
    }
    .subtitle {
      color: #71717a;
      font-size: 0.85rem;
      margin-bottom: 2rem;
    }
    .card {
      background: #18181b;
      border: 1px solid #27272a;
      border-radius: 12px;
      padding: 2rem;
    }
    .card h2 {
      font-size: 1.1rem;
      font-weight: 600;
      color: #fff;
      margin-bottom: 0.35rem;
    }
    .card p {
      color: #a1a1aa;
      font-size: 0.85rem;
      margin-bottom: 1.5rem;
      line-height: 1.5;
    }
    label {
      display: block;
      font-size: 0.8rem;
      font-weight: 500;
      color: #a1a1aa;
      margin-bottom: 0.35rem;
    }
    input {
      width: 100%;
      padding: 0.6rem 0.75rem;
      background: #0f0f13;
      border: 1px solid #3f3f46;
      border-radius: 8px;
      color: #e4e4e7;
      font-size: 0.9rem;
      outline: none;
      transition: border-color 0.15s;
      margin-bottom: 1rem;
    }
    input:focus { border-color: #863bff; }
    input::placeholder { color: #52525b; }
    button {
      width: 100%;
      padding: 0.65rem;
      background: #863bff;
      color: #fff;
      border: none;
      border-radius: 8px;
      font-size: 0.9rem;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.15s;
    }
    button:hover { background: #7529e6; }
    button:disabled { background: #52525b; cursor: not-allowed; }
    .hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; tabindex: -1; }
    .error {
      background: #3b1219;
      border: 1px solid #7f1d1d;
      color: #fca5a5;
      padding: 0.6rem 0.75rem;
      border-radius: 8px;
      font-size: 0.8rem;
      margin-bottom: 1rem;
      display: none;
    }
    .success {
      text-align: center;
      display: none;
    }
    .success .icon {
      width: 48px;
      height: 48px;
      background: #14532d;
      border-radius: 50%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 1rem;
      font-size: 1.5rem;
    }
    .success h3 {
      font-size: 1.1rem;
      font-weight: 600;
      color: #fff;
      margin-bottom: 0.5rem;
    }
    .success p {
      color: #a1a1aa;
      font-size: 0.85rem;
      line-height: 1.5;
    }
    .note {
      color: #52525b;
      font-size: 0.75rem;
      margin-top: 1.5rem;
      text-align: center;
    }
