/* Login / access-denied pages. */
body{overflow:auto}
.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom))}
.auth-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:32px 24px;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.auth-card h1{margin:12px 0 0;font-size:1.5rem}
.auth-lead{margin:0;color:var(--mut);overflow-wrap:anywhere}
.auth-message{margin:8px 0 0;min-height:1.4em;color:#ffcf6e;font-size:.9rem}
.auth-message:empty{display:none}
.auth-note{margin:8px 0 0;color:var(--mut);font-size:.8rem}
.auth-btn{margin-top:16px;width:100%;min-height:54px;border-radius:27px;background:var(--acc);color:#151515;font-weight:650;
  display:flex;align-items:center;justify-content:center;text-decoration:none;padding:0 16px}
.auth-btn.secondary{background:var(--surface2);color:var(--text);border:1px solid var(--line)}
.auth-btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
.auth-orb{--c:var(--acc);width:88px;aspect-ratio:1;position:relative;display:grid;place-items:center}
.auth-orb::before{content:"";position:absolute;inset:-12%;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--c) 26%,transparent),transparent 66%)}
.auth-orb span{position:absolute;inset:18%;border-radius:50%;animation:breathe 4s ease-in-out infinite;
  background:radial-gradient(circle at 34% 30%,color-mix(in srgb,var(--c) 35%,#fff) 0%,var(--c) 46%,color-mix(in srgb,var(--c) 55%,#000) 100%)}
.auth-orb.denied{--c:var(--bad)}
@keyframes breathe{0%,100%{transform:scale(.95)}50%{transform:scale(1.02)}}
@media (prefers-reduced-motion:reduce){.auth-orb span{animation:none}}
