*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html,body{ height:100%; }
body{
  font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:#000;
  color:#fff;
}

.auth-stage{
  position:relative; width:100%; min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; background:#000;
}
.auth-canvas{ position:absolute; inset:0; z-index:0; }
.auth-vignette{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(circle at center, rgba(0,0,0,.75) 0%, rgba(0,0,0,0) 100%);
}

.auth-back{
  position:absolute; top:24px; left:24px; z-index:3;
  display:inline-flex; align-items:center; gap:8px;
  color:#aaa; font-size:13.5px; font-weight:500; text-decoration:none;
  transition:color .2s;
}
.auth-back:hover{ color:#fff; }
.auth-back svg{ width:16px; height:16px; }

.auth-card{
  position:relative; z-index:2;
  background:#121212; border:1px solid #222; border-radius:14px;
  padding:2.25rem 2rem; width:100%; max-width:400px; margin:24px;
  box-shadow:0 10px 40px rgba(0,0,0,.8);
}
.auth-panel{
  width:100%; display:flex; flex-direction:column; align-items:center; text-align:center;
}
.auth-panel[hidden]{ display:none; }

.auth-logo{
  font-family:"Fraunces", "Cormorant Garamond", serif; font-weight:600;
  font-size:19px; letter-spacing:.06em; color:#f2efe9; margin-bottom:1.15rem;
}
.auth-logo span{ color:#d4a190; font-weight:500; }

.auth-panel h1{ font-size:1.35rem; font-weight:600; letter-spacing:-0.02em; margin-bottom:.25rem; }
.auth-panel p{ font-size:.85rem; color:#8a8a8a; margin-bottom:1.35rem; line-height:1.5; max-width:300px; }

.auth-form{ width:100%; display:flex; flex-direction:column; gap:.65rem; }
.auth-input{
  width:100%; padding:.7rem .9rem; border-radius:8px;
  border:1px solid #2b2b2b; background:#000; color:#fff; font-size:.875rem;
  outline:none; transition:border-color .2s;
  font-family:inherit;
}
.auth-input::placeholder{ color:#666; }
.auth-input:focus{ border-color:#d4a190; }

.auth-submit{
  width:100%; padding:.7rem; border-radius:8px; border:none;
  background:#ededed; color:#000; font-weight:600; font-size:.875rem;
  cursor:pointer; transition:background .2s, transform .2s;
  font-family:inherit;
}
.auth-submit:hover{ background:#fff; }
.auth-submit:active{ transform:scale(.98); }

.auth-divider{ height:1px; background:#222; width:100%; margin:1rem 0; }

.auth-social{
  width:100%; padding:.68rem; border-radius:8px;
  border:1px solid #2b2b2b; background:transparent; color:#fff;
  font-weight:500; font-size:.875rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:.55rem;
  margin-bottom:.5rem; transition:border-color .2s, background .2s;
  font-family:inherit;
}
.auth-social:last-of-type{ margin-bottom:0; }
.auth-social:hover{ border-color:#444; background:rgba(255,255,255,.03); }
.auth-social-icon{ width:16px; height:16px; flex-shrink:0; }

.auth-switch{ margin-top:1.4rem; font-size:.875rem; color:#8a8a8a; }
.auth-switch button{
  color:#f2efe9; font-weight:600; background:none; border:none; padding:0;
  cursor:pointer; font-family:inherit; font-size:inherit; text-decoration:underline;
  text-underline-offset:3px;
}

.auth-footer{
  margin-top:1rem; font-size:.72rem; color:#5c5c5c; line-height:1.6;
}
.auth-footer a{ color:#8a8a8a; text-decoration:underline; text-underline-offset:2px; }
.auth-footer a:hover{ color:#ccc; }

.auth-toast{
  position:fixed; bottom:28px; left:50%; z-index:50;
  background:#f2efe9; color:#111; padding:12px 22px; border-radius:999px;
  font-size:13.5px; font-weight:600; box-shadow:0 12px 30px rgba(0,0,0,.4);
  opacity:0; pointer-events:none; transform:translate(-50%, 12px);
  transition:opacity .3s ease, transform .3s ease;
}
.auth-toast.is-visible{ opacity:1; transform:translate(-50%, 0); }

@media (max-width:480px){
  .auth-card{ padding:1.75rem 1.35rem; }
  .auth-back{ top:16px; left:16px; }
}
