/* Auth pages v2 (login / signup / verify / forgot / reset). All classes are au-* to stay clear of app styles. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');

.au-body { --au-bg:#0b0d17; --au-ink:#eef0ff; --au-mute:#9ea3c4; --au-dim:#6f7499; --au-line:rgba(255,255,255,.09); --au-a:#8b7bff; --au-b:#3fd0c9; --au-c:#ff8a5c; --au-err:#ff8095; --au-ok:#5ee6b8;
  background:var(--au-bg)!important; color:var(--au-ink); font-family:Inter,system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
.au-body .aurora { display:none; }
.au-body .bare-main { display:block; padding:0; min-height:100vh; max-width:none; width:100%; }

/* background */
.au-bg { position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.au-blob { position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; animation:au-float 18s ease-in-out infinite alternate; }
.au-blob.b1 { width:46vmax; height:46vmax; left:-12vmax; top:-14vmax; background:radial-gradient(circle,#5b4bd6,transparent 65%); }
.au-blob.b2 { width:38vmax; height:38vmax; right:-10vmax; top:10vh; background:radial-gradient(circle,#127a77,transparent 65%); animation-duration:22s; }
.au-blob.b3 { width:34vmax; height:34vmax; left:30vw; bottom:-18vmax; background:radial-gradient(circle,#a24a2c,transparent 65%); opacity:.35; animation-duration:26s; }
.au-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:56px 56px; mask-image:radial-gradient(ellipse at 30% 40%,#000 0%,transparent 70%); -webkit-mask-image:radial-gradient(ellipse at 30% 40%,#000 0%,transparent 70%); }
@keyframes au-float { to { transform:translate3d(4vmax,3vmax,0) scale(1.08); } }

.au-shell { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) minmax(400px,470px); gap:clamp(32px,6vw,96px); align-items:center; max-width:1240px; min-height:100vh; margin:0 auto; padding:0 40px; }

/* left showcase */
.au-side { position:relative; display:flex; flex-direction:column; justify-content:center; min-height:100vh; padding:40px 0; }
.au-logo { display:inline-flex; align-items:center; gap:11px; font:700 22px Fraunces,Georgia,serif; letter-spacing:-.02em; color:var(--au-ink); }
.au-logo i { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; font:700 17px Inter,sans-serif; font-style:normal; color:#0b0d17; background:linear-gradient(135deg,var(--au-a),var(--au-b)); box-shadow:0 8px 24px -8px rgba(139,123,255,.8); }
.au-logo b { background:linear-gradient(100deg,var(--au-b),#9ff0ea); -webkit-background-clip:text; background-clip:text; color:transparent; }
.au-logo-m { display:none; }

.au-orbit { position:relative; width:300px; height:300px; margin:34px 0 26px; }
.au-core { position:absolute; inset:50% auto auto 50%; width:84px; height:84px; transform:translate(-50%,-50%); border-radius:26px; display:grid; place-items:center; background:linear-gradient(135deg,var(--au-a),var(--au-b)); box-shadow:0 0 0 10px rgba(139,123,255,.08),0 0 70px rgba(139,123,255,.55); animation:au-core 4s ease-in-out infinite; }
.au-core span { font:700 40px Fraunces,serif; color:#0b0d17; }
@keyframes au-core { 50% { box-shadow:0 0 0 16px rgba(139,123,255,.05),0 0 90px rgba(63,208,201,.55); } }
.au-ring { position:absolute; inset:50% auto auto 50%; border-radius:50%; border:1px dashed rgba(255,255,255,.12); transform:translate(-50%,-50%); animation:au-spin 30s linear infinite; }
.au-ring.r1 { width:190px; height:190px; }
.au-ring.r2 { width:296px; height:296px; animation-duration:46s; animation-direction:reverse; }
.au-planet { position:absolute; inset:50% auto auto 50%; width:0; height:0; transform:rotate(calc(360deg / var(--n) * var(--i))) translateX(var(--r)); }
.r1 .au-planet { --r:95px; } .r2 .au-planet { --r:148px; }
.au-planet b { position:absolute; left:-23px; top:-23px; width:46px; height:46px; border-radius:14px; display:grid; place-items:center; color:#d6d1ff; background:rgba(22,25,48,.9); border:1px solid rgba(139,123,255,.35); box-shadow:0 10px 30px -10px rgba(0,0,0,.7); transform:rotate(calc(-360deg / var(--n) * var(--i))); animation:au-counter 30s linear infinite; }
.r2 .au-planet b { animation-duration:46s; animation-direction:reverse; border-color:rgba(63,208,201,.35); color:#bff6f2; }
.r2 .au-planet:nth-child(2) b { border-color:rgba(255,138,92,.4); color:#ffd2bf; }
@keyframes au-spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes au-counter { to { rotate:-360deg; } }

.au-pitch { max-width:520px; }
.au-kicker { display:inline-flex; align-items:center; gap:9px; padding:6px 13px; border-radius:999px; border:1px solid var(--au-line); background:rgba(255,255,255,.04); font-size:13px; font-weight:500; color:var(--au-mute); }
.au-pulse { width:7px; height:7px; border-radius:50%; background:var(--au-b); box-shadow:0 0 0 0 rgba(63,208,201,.7); animation:au-pulse 2s infinite; }
@keyframes au-pulse { 70% { box-shadow:0 0 0 8px rgba(63,208,201,0); } 100% { box-shadow:0 0 0 0 rgba(63,208,201,0); } }
.au-headline { margin:18px 0 22px; font:700 clamp(34px,3.6vw,52px)/1.05 Fraunces,Georgia,serif; letter-spacing:-.035em; color:#fff; }
.au-headline em { font-style:normal; background:linear-gradient(100deg,var(--au-a),var(--au-b) 55%,var(--au-c)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.au-points { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.au-points li { display:flex; gap:12px; color:var(--au-mute); font-size:15px; line-height:1.5; }
.au-points li span { color:var(--au-b); }
.au-chips { padding-top:34px; display:flex; flex-wrap:wrap; gap:8px; }
.au-chips span { display:inline-flex; align-items:center; gap:7px; padding:7px 12px; border-radius:10px; border:1px solid var(--au-line); background:rgba(255,255,255,.03); font-size:13px; color:var(--au-mute); }
.au-chips svg { width:15px; height:15px; color:#c9c1ff; }

/* right form */
.au-main { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:48px 0 28px; }
.au-card { position:relative; width:100%; max-width:440px; padding:38px 36px 34px; border-radius:28px; background:linear-gradient(180deg,rgba(24,27,52,.82),rgba(16,18,36,.82)); border:1px solid rgba(255,255,255,.1); box-shadow:0 40px 100px -30px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.06); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); animation:au-in .7s cubic-bezier(.2,.7,.2,1) both; }
.au-card::before { content:""; position:absolute; inset:-1px; border-radius:inherit; padding:1px; background:linear-gradient(140deg,rgba(139,123,255,.6),transparent 35%,transparent 65%,rgba(63,208,201,.5)); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
@keyframes au-in { from { opacity:0; transform:translateY(16px) scale(.985); } }
.au-step { display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--au-b); }
.au-title { margin:10px 0 6px; font:700 30px/1.15 Fraunces,Georgia,serif; letter-spacing:-.025em; color:#fff; }
.au-sub { margin:0 0 24px; color:var(--au-mute); font-size:15px; line-height:1.55; }
.au-sub b { color:var(--au-ink); font-weight:600; }

.au-form { display:grid; gap:16px; }
.au-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.au-label { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:7px; font-size:13px; font-weight:600; color:#d4d7f0; }
.au-label a { font-weight:500; color:var(--au-b); }
.au-label a:hover { text-decoration:underline; }
.au-control { position:relative; }
.au-body .au-ic { z-index:1; position:absolute; left:15px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--au-dim); pointer-events:none; transition:color .2s; }
.au-body .au-input { -webkit-appearance:none; appearance:none; width:100%; height:50px; padding:0 15px 0 45px; border-radius:14px; border:1px solid rgba(255,255,255,.1); background:rgba(7,8,18,.55); color:var(--au-ink); font:500 15px Inter,sans-serif; outline:none; transition:border-color .2s,box-shadow .2s,background .2s; }
.au-body .au-input::placeholder { color:#5d6288; }
.au-body .au-input:hover { border-color:rgba(255,255,255,.18); }
.au-body .au-input:focus { border-color:rgba(139,123,255,.75); background:rgba(7,8,18,.75); box-shadow:0 0 0 4px rgba(139,123,255,.18); }
.au-control:focus-within .au-ic { color:#c3baff; }
.au-body .au-input.has-action { padding-right:48px; }
.au-body .au-input.mono { font-family:"JetBrains Mono",ui-monospace,monospace; letter-spacing:.2em; text-transform:uppercase; }
.au-eye { position:absolute; right:8px; top:50%; transform:translateY(-50%); width:36px; height:36px; display:grid; place-items:center; border-radius:10px; color:var(--au-dim); background:none; border:0; cursor:pointer; }
.au-eye:hover { color:var(--au-ink); background:rgba(255,255,255,.06); }
.au-status { position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:12px; font-weight:600; }
.au-status.ok { color:var(--au-ok); } .au-status.bad { color:var(--au-err); } .au-status.wait { color:var(--au-dim); }
.au-body .au-field.has-error .au-input { border-color:rgba(255,128,149,.7); box-shadow:0 0 0 4px rgba(255,128,149,.12); }
.au-err { margin:7px 2px 0; font-size:13px; color:var(--au-err); }
.au-hint { margin:7px 2px 0; font-size:12.5px; color:var(--au-dim); }
.au-meter { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:10px; }
.au-meter span { height:4px; border-radius:4px; background:rgba(255,255,255,.08); transition:background .3s; }
.au-meter[data-s="1"] span:nth-child(-n+1) { background:#ff8095; }
.au-meter[data-s="2"] span:nth-child(-n+2) { background:#ffb36b; }
.au-meter[data-s="3"] span:nth-child(-n+3) { background:#7fd6ff; }
.au-meter[data-s="4"] span { background:linear-gradient(90deg,var(--au-b),var(--au-ok)); }

.au-check { display:flex; align-items:center; gap:10px; font-size:14px; color:var(--au-mute); cursor:pointer; user-select:none; }
.au-body .au-check input { flex-shrink:0; width:18px; height:18px; border-radius:6px; border:1px solid rgba(255,255,255,.2); background:rgba(7,8,18,.6); color:var(--au-a); }

.au-btn { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; height:52px; border:0; border-radius:14px; cursor:pointer; font:600 16px Inter,sans-serif; color:#fff; background:linear-gradient(135deg,#8b7bff,#5b8cff); box-shadow:0 14px 34px -12px rgba(124,108,255,.9),inset 0 1px 0 rgba(255,255,255,.25); transition:transform .15s,box-shadow .2s,filter .2s; overflow:hidden; }
.au-btn:hover { transform:translateY(-1px); box-shadow:0 18px 42px -12px rgba(124,108,255,1),inset 0 1px 0 rgba(255,255,255,.25); filter:brightness(1.06); }
.au-btn:active { transform:translateY(0); }
.au-btn::after { content:""; position:absolute; inset:0; background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%); transform:translateX(-100%); transition:transform .7s; }
.au-btn:hover::after { transform:translateX(100%); }
.au-btn.is-loading { pointer-events:none; color:transparent; }
.au-btn.is-loading::before { content:""; position:absolute; width:22px; height:22px; border-radius:50%; border:2.5px solid rgba(255,255,255,.35); border-top-color:#fff; animation:au-rot .7s linear infinite; }
@keyframes au-rot { to { transform:rotate(360deg); } }
.au-btn-ghost { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); box-shadow:none; color:var(--au-ink); }
.au-btn-ghost:hover { background:rgba(255,255,255,.09); box-shadow:none; }
.au-linkbtn { background:none; border:0; padding:0; cursor:pointer; font:600 14px Inter,sans-serif; color:var(--au-b); }
.au-linkbtn:hover { text-decoration:underline; }
.au-linkbtn:disabled { color:var(--au-dim); cursor:default; text-decoration:none; }

.au-sep { display:flex; align-items:center; gap:14px; margin:24px 0 18px; font-size:13px; color:var(--au-dim); }
.au-sep::before, .au-sep::after { content:""; flex:1; height:1px; background:var(--au-line); }

.au-alert { display:flex; gap:11px; align-items:flex-start; padding:13px 15px; margin-bottom:18px; border-radius:14px; font-size:14px; line-height:1.5; animation:au-shake .4s; }
.au-alert-error { background:rgba(255,128,149,.1); border:1px solid rgba(255,128,149,.35); color:#ffc2cc; }
.au-alert-ok { background:rgba(94,230,184,.09); border:1px solid rgba(94,230,184,.3); color:#b5f5de; animation:none; }
.au-alert-info { background:rgba(63,208,201,.08); border:1px solid rgba(63,208,201,.3); color:#bff6f2; animation:none; }
@keyframes au-shake { 20%,60% { transform:translateX(-5px); } 40%,80% { transform:translateX(5px); } }

.au-inviter { display:flex; align-items:center; gap:12px; padding:12px 14px; margin-bottom:20px; border-radius:16px; background:linear-gradient(135deg,rgba(139,123,255,.16),rgba(63,208,201,.1)); border:1px solid rgba(139,123,255,.35); }
.au-inviter .av { width:38px; height:38px; border-radius:12px; display:grid; place-items:center; font-weight:700; color:#0b0d17; background:linear-gradient(135deg,var(--au-c),#ffd166); flex-shrink:0; }
.au-inviter small { display:block; font-size:12px; color:var(--au-mute); }
.au-inviter strong { font-size:15px; color:#fff; }

/* OTP */
.au-otp { display:flex; align-items:center; justify-content:center; gap:9px; margin:6px 0 4px; }
.au-body .au-otp-box { -webkit-appearance:none; appearance:none; padding:0; width:52px; height:62px; border-radius:15px; text-align:center; font:700 26px "JetBrains Mono",ui-monospace,monospace; color:#fff; caret-color:var(--au-b); border:1px solid rgba(255,255,255,.12); background:rgba(7,8,18,.6); outline:none; transition:border-color .2s,box-shadow .2s,transform .15s; }
.au-body .au-otp-box:focus { border-color:rgba(63,208,201,.8); box-shadow:0 0 0 4px rgba(63,208,201,.18); transform:translateY(-2px); }
.au-body .au-otp-box.filled { border-color:rgba(139,123,255,.55); background:rgba(139,123,255,.1); }
.au-otp-dash { width:12px; height:2px; border-radius:2px; background:rgba(255,255,255,.2); }
.au-body .au-otp.bad .au-otp-box { border-color:rgba(255,128,149,.7); animation:au-shake .4s; }
.au-mail { width:66px; height:66px; margin:0 auto 16px; border-radius:20px; display:grid; place-items:center; font-size:30px; background:linear-gradient(135deg,rgba(139,123,255,.25),rgba(63,208,201,.2)); border:1px solid rgba(139,123,255,.4); animation:au-bob 3s ease-in-out infinite; }
@keyframes au-bob { 50% { transform:translateY(-6px) rotate(-4deg); } }
.au-center { text-align:center; }
.au-resend { margin-top:4px; text-align:center; font-size:14px; color:var(--au-dim); }

.au-foot { margin-top:22px; font-size:14.5px; color:var(--au-mute); text-align:center; }
.au-foot a { color:var(--au-ink); font-weight:600; border-bottom:1px solid rgba(139,123,255,.6); }
.au-foot a:hover { color:#c9c1ff; }
.au-legal { margin-top:28px; font-size:12.5px; color:var(--au-dim); }
.au-legal a:hover { color:var(--au-ink); }

@media (max-width:1020px) {
  .au-shell { grid-template-columns:1fr; padding:0 20px; }
  .au-side { display:none; }
  .au-logo-m { display:inline-flex; margin-bottom:26px; }
  .au-main { justify-content:flex-start; padding-top:34px; }
}
@media (max-width:480px) {
  .au-card { padding:28px 20px 26px; border-radius:22px; }
  .au-row { grid-template-columns:1fr; }
  .au-otp { gap:6px; } .au-otp-box { width:42px; height:54px; font-size:22px; border-radius:12px; }
  .au-title { font-size:26px; }
}
@media (prefers-reduced-motion:reduce) { .au-body *, .au-body *::before, .au-body *::after { animation:none!important; transition:none!important; } }

.au-planet svg { width:20px; height:20px; }
.au-body .au-check input:checked { background-color:var(--au-a); border-color:var(--au-a); }
.au-body .au-check input:focus { box-shadow:0 0 0 3px rgba(139,123,255,.3); outline:none; }
.au-body .au-ic svg, .au-body svg.au-ic { width:18px; height:18px; }
