/* ============================================================
   Aeterna — Access Gate skin (server-rendered gate page)
   Styles the standalone sign-in / register screen rendered by
   aeterna-gate.php. Lifted from the visual reference; values are
   the source of truth.
   ============================================================ */

:root{
  --bg:#ECEBF3; --bg-2:#E3E2EE; --paper:#FFFFFF;
  --primary:#5656CE; --primary-2:#4444B0; --primary-soft:rgba(86,86,206,.08);
  --ink:#16162A; --ink-2:#3A3A52; --ink-3:#6A6A82; --ink-4:#9494A8;
  --line:#D9D8E6; --line-2:#CAC9DA; --ok:#1F8A5B; --err:#C23A3A;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --display:"Fraunces",Georgia,serif;
}

*{box-sizing:border-box}
html,body{margin:0}
body.ae-gate-page{
  min-height:100vh;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.55;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
.ae-gate-page a{color:inherit;text-decoration:none}
.ae-gate-page button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.ae-gate-page svg{display:block}
.ae-gate-page h2{margin:0;font-family:var(--display);font-weight:300;font-optical-sizing:auto;letter-spacing:-.025em;color:var(--ink)}

/* ---- full-viewport backdrop: radial purple wash over the light page ---- */
.gate{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  padding:32px;overflow-y:auto;
  background:radial-gradient(120% 120% at 70% 10%,rgba(86,86,206,.16),rgba(236,235,243,.62) 60%);
  animation:gateFade .5s ease both;
}
@keyframes gateFade{from{opacity:0}to{opacity:1}}

/* ---- the card ---- */
.deco{position:absolute;pointer-events:none;z-index:0}
.gate-card{
  position:relative;margin:auto;width:100%;max-width:680px;
  background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--line);border-radius:20px;padding:44px 44px 36px;
  box-shadow:0 50px 100px -40px rgba(22,22,42,.55);overflow:hidden;
  animation:gateRise .55s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes gateRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.gate-card .deco-gate{top:-70px;right:-90px;width:300px;height:280px;opacity:.5;z-index:0}
.gate-card > :not(.deco){position:relative;z-index:2}

.brand{display:flex;align-items:center;gap:11px;font-weight:500;font-size:23px;letter-spacing:-.025em;color:var(--ink);font-family:var(--sans)}
.brand .mark{width:31px;height:31px;border-radius:7px;background:var(--primary);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:400;font-size:20px;line-height:1;padding-top:1px}

/* ---- notice banner ---- */
.ae-notice{margin-top:22px;padding:12px 15px;border-radius:10px;font-size:13px;line-height:1.5;border:1px solid}
.ae-notice-ok{background:rgba(31,138,91,.08);border-color:rgba(31,138,91,.3);color:#186c47}
.ae-notice-err{background:rgba(194,58,58,.07);border-color:rgba(194,58,58,.3);color:var(--err)}

/* ---- view toggle (driven by body.ae-view-*) ---- */
#view-signin,#view-register{display:none}
body.ae-view-signin #view-signin{display:block}
body.ae-view-register #view-register{display:block}

.pill{display:inline-flex;align-items:center;gap:8px;margin-top:26px;font-family:var(--mono);font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);background:var(--bg);border:1px solid var(--line);
  border-radius:999px;padding:6px 12px 6px 10px}
.pill .pip{width:6px;height:6px;border-radius:50%;background:var(--ok)}
.gate-steps{display:inline-flex;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--primary)}
#view-register .gate-steps .s2{display:none}
#view-register[data-step="2"] .gate-steps .s1{display:none}
#view-register[data-step="2"] .gate-steps .s2{display:inline}

.gate-card h2{font-size:38px;line-height:1.02;margin-top:18px}
.lede{margin-top:12px;font-size:14.5px;color:var(--ink-3);line-height:1.55}

/* ---- forms ---- */
.gate-form{margin-top:26px;display:flex;flex-direction:column;gap:14px}
#reg-step-2{display:none}
#view-register[data-step="2"] #reg-step-1{display:none}
#view-register[data-step="2"] #reg-step-2{display:block}
.gate-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gate-field label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:7px}
.gate-field input,.gate-field select{
  width:100%;padding:13px 15px;border:1px solid var(--line-2);border-radius:10px;background:#fff;
  font:inherit;font-size:14.5px;color:var(--ink);transition:.15s;line-height:1.2;
}
.gate-field input::placeholder{color:var(--ink-4)}
.gate-field input:focus,.gate-field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.gate-field select{-webkit-appearance:none;appearance:none;padding-right:42px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239494A8' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center}
.gate-field select:invalid{color:var(--ink-4)}

/* honeypot — visually and semantically removed for humans, present for bots */
.ae-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---- buttons ---- */
.btn{padding:14px 24px;border-radius:9px;font-size:15px;font-weight:500;display:inline-flex;align-items:center;
  justify-content:center;gap:9px;transition:.15s;border:1px solid transparent;cursor:pointer;font-family:var(--sans)}
.btn svg{flex:0 0 auto}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-2)}
.btn-ghost{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink-3)}
.gate-form > .btn{margin-top:8px}
.reg-actions{display:flex;gap:12px;margin-top:8px}
.reg-actions .btn-primary{flex:1}
.reg-actions .btn-ghost{flex:0 0 auto}

/* ---- keep-signed-in row / forgot ---- */
.gate-row{display:flex;align-items:center;justify-content:space-between;margin-top:2px}
.gate-row label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);cursor:pointer}
.gate-row input{accent-color:var(--primary);width:15px;height:15px}
.gate-row a{font-size:13px;color:var(--primary)}
.gate-row a:hover{text-decoration:underline}

/* ---- consent ---- */
.gate-consent{display:flex;gap:11px;align-items:flex-start;margin-top:6px;max-height:132px;overflow-y:auto;
  padding:13px 15px;border:1px solid var(--line-2);border-radius:10px;background:var(--bg);
  font-size:11.5px;line-height:1.5;color:var(--ink-3);cursor:pointer}
.gate-consent input{accent-color:var(--primary);width:15px;height:15px;flex:0 0 auto;margin-top:2px;position:sticky;top:0}

/* ---- footers ---- */
.gate-sep{margin:24px 0 0;padding-top:22px;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-3);text-align:center}
.gate-sep a{color:var(--primary);font-weight:500}
.gate-sep a:hover{text-decoration:underline}
.gate-ruo{margin-top:22px;font-size:11px;line-height:1.5;color:var(--ink-4)}

@media (max-width:520px){
  .gate-card{padding:32px 26px 28px}
  .gate-card h2{font-size:32px}
  .gate-grid{grid-template-columns:1fr}
}
