*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --bg:#0a0a0f;
  --panel:#12121a;
  --border:rgba(255,255,255,0.07);
  --gold:#c9a84c;
  --gold-light:#e8c97a;
  --text:#f0ede8;
  --muted:#7a7880;
}

body {
  font-family:'DM Sans',sans-serif;
  background:var(--bg);
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  color:var(--text);
}

.bg-layer {
  position:fixed;
  inset:0;
  z-index:0;
  background:radial-gradient(ellipse 80% 60% at 20% 10%,rgba(201,168,76,.08) 0%,transparent 60%),
             radial-gradient(ellipse 60% 80% at 80% 90%,rgba(100,80,180,.07) 0%,transparent 55%),
             var(--bg);
}

.bg-grid {
  position:fixed;
  inset:0;
  z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,black,transparent);
}

.orb {
  position:fixed;
  border-radius:50%;
  filter:blur(90px);
  z-index:0;
  pointer-events:none;
  animation:drift 12s ease-in-out infinite alternate;
}

.orb-1 {
  width:400px;
  height:400px;
  background:rgba(201,168,76,.07);
  top:-100px;
  right:-100px;
}

.orb-2 {
  width:300px;
  height:300px;
  background:rgba(120,80,200,.06);
  bottom:-80px;
  left:-80px;
  animation-delay:-6s;
}

@keyframes drift {
  from {transform:translate(0,0) scale(1)}
  to {transform:translate(30px,20px) scale(1.05)}
}

.card {
  position:relative;
  z-index:10;
  width:420px;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:24px;
  padding:52px 48px;
  box-shadow:0 40px 120px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.03);
  animation:rise .8s cubic-bezier(.22,1,.36,1) both;
}

@keyframes rise {
  from{opacity:0;transform:translateY(32px) scale(.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

.logo-wrap {
  display:flex;
  flex-direction:column;
  align-items:center;
  margin-bottom:36px;
}

.logo-icon {
  width:56px;
  height:56px;
  margin-bottom:18px;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 32px rgba(201,168,76,.25);
}

.logo-name {
  font-family:'Playfair Display',serif;
  font-size:26px;
  font-weight:700;
}

.logo-tagline {
  margin-top:6px;
  font-size:13px;
  color:var(--muted);
}

.divider {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:28px;
}

.divider::before,.divider::after {
  content:'';
  flex:1;
  height:1px;
  background:var(--border);
}

.divider span {
  font-size:11px;
  color:var(--muted);
  text-transform:uppercase;
}

#google-btn-container {
  display:flex;
  justify-content:center;
}

.footer {
  margin-top:28px;
  text-align:center;
  font-size:12px;
  color:var(--muted);
}

.footer a {
  color:var(--gold);
  text-decoration:none;
}

.user-panel {
  display:none;
  flex-direction:column;
  align-items:center;
  gap:16px;
}

.user-avatar {
  width:72px;
  height:72px;
  border-radius:50%;
  border:2px solid var(--gold);
}

.signout-btn {
  padding:10px 28px;
  background:transparent;
  border:1px solid var(--border);
  border-radius:10px;
  cursor:pointer;
  color:var(--muted);
}

.signout-btn:hover {
  border-color:var(--text);
  color:var(--text);
}