:root{
  --bg:#0b0f17;
  --card:#0d1118;
  --card-2:#0b0e14;
  --line:#1b2433;
  --text:#e9eef7;
  --muted:#9aa6b2;
  --gold:#ffd973;
  --gold-2:#efc955;
  --gold-3:#d4af37;
  --accent:#3ea6ff;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 110% -10%, rgba(212,175,55,.20) 0%, transparent 60%),
    radial-gradient(1000px 520px at -10% -10%, rgba(62,166,255,.18) 0%, transparent 62%),
    var(--bg);
  min-height:100vh;
}

/* ===== Layout ===== */
.auth-wrap{
  min-height:100vh;
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:28px;
  padding:48px 20px;
  align-items:center;
}
@media (max-width: 980px){
  .auth-wrap{grid-template-columns:1fr; padding:28px 16px}
}

/* ===== Hero kiri ===== */
.auth-hero{
  position:relative;
  padding:10px 6px;
}
.brand{
  display:inline-flex; align-items:center; gap:.6rem;
  font-weight:900; letter-spacing:.2px;
  color:var(--gold-3);
  background:linear-gradient(90deg,var(--gold),var(--gold-3));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  font-size:1.1rem;
}
.hero-title{
  margin-top:14px;
  font-size: clamp(28px, 4vw, 42px);
  font-weight:900; line-height:1.05;
  letter-spacing:.2px;
}
.hero-sub{
  color:var(--muted);
  max-width:640px; line-height:1.65; margin:12px 0 18px;
}
.hero-bullets{display:flex; flex-wrap:wrap; gap:10px}
.chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 12px; border-radius:999px;
  border:1px solid #273141; color:#dfe7f4;
  background:linear-gradient(180deg,#121824,#0d131d);
  box-shadow:0 4px 14px rgba(0,0,0,.25);
  font-size:.92rem;
  animation: slideUp .6s ease both;
}
.chip i{opacity:.9}
.chip:nth-child(2){animation-delay:.05s}
.chip:nth-child(3){animation-delay:.1s}

@keyframes slideUp{
  from{opacity:0; transform:translateY(10px)}
  to{opacity:1; transform:translateY(0)}
}

/* ===== Panel kanan ===== */
.auth-panel{display:flex; justify-content:center}
.card{
  width:min(460px, 100%);
  border-radius:18px;
  padding:22px 20px;
  border:1px solid rgba(212,175,55,.25);
  background:
    linear-gradient(180deg, rgba(14,19,27,.85), rgba(11,15,22,.85)),
    radial-gradient(600px 400px at 90% -20%, rgba(212,175,55,.10) 0%, transparent 60%);
  box-shadow:
    0 20px 60px rgba(0,0,0,.45),
    inset 0 0 0 1px rgba(255,255,255,.02);
  backdrop-filter: blur(6px);
  transform: translateY(6px);
  animation: cardIn .5s ease .08s both;
}
@keyframes cardIn{
  from{opacity:0; transform: translateY(16px)}
  to{opacity:1; transform: translateY(6px)}
}

.card .header{
  display:flex; align-items:center; gap:10px;
  font-weight:800; color:#e6ebf6; opacity:.9;
}
.card .header i{color:var(--gold-2)}
.card .title{
  margin-top:8px; font-size:1.55rem; font-weight:900; letter-spacing:.2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-3));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* ===== Form ===== */
label{font-weight:700; margin-top:10px}
.input{
  display:flex; align-items:center; gap:10px;
  border:1px solid #263041; background:#0f131b; border-radius:12px;
  padding:10px 12px;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.input:focus-within{
  border-color: rgba(62,166,255,.65);
  box-shadow: 0 0 0 3px rgba(62,166,255,.15);
  background:#0d121a;
}
.input input{
  flex:1; background:transparent; border:0; outline:0; color:var(--text);
  font-size:1rem; padding:6px 2px;
}
.input .left{opacity:.85}
.toggle{
  cursor:pointer; display:inline-grid; place-items:center;
  width:34px; height:34px; border-radius:10px;
  color:#dfe7f4; opacity:.85;
}
.toggle:hover{background:#111827}

.btn{
  margin-top:6px;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  width:100%;
  border-radius:12px; padding:12px 14px; cursor:pointer;
  border:1px solid #2a3342; background:linear-gradient(180deg,#151b26,#0e1420);
  color:#e9eef7; text-decoration:none; font-weight:700;
  transition: transform .06s ease, box-shadow .15s ease, border-color .2s ease;
}
.btn:hover{border-color:#334159; box-shadow:0 10px 22px rgba(0,0,0,.35); transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn.gold{
  border:0;
  background:linear-gradient(180deg,var(--gold),var(--gold-2),var(--gold-3));
  color:#161616; font-weight:900;
  box-shadow:0 12px 28px rgba(212,175,55,.25);
}

/* Catatan & pemisah */
.note{
  margin:8px 0 2px; padding:10px 12px; border-radius:10px;
  border:1px solid #51313a; background:#1a0f13; color:#ffccd2; font-weight:600
}
.sep{
  height:1px; margin:16px 0; background:linear-gradient(90deg,transparent,#243047,transparent)
}
.helper{color:var(--muted)}
.helper a{color:#c9e2ff; text-underline-offset:3px}
.helper a:hover{color:#fff}

/* Error “shake” (pakai pada .card saat error muncul) */
.card.error-anim{animation:shake .38s ease}
@keyframes shake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-6px)}
  40%{transform:translateX(6px)}
  60%{transform:translateX(-4px)}
  80%{transform:translateX(4px)}
}

/* Scroll reveal sederhana untuk hero */
.reveal{opacity:0; transform:translateY(12px); transition:opacity .5s ease, transform .5s ease}
.reveal.show{opacity:1; transform:translateY(0)}
