// auth.jsx — Login / Sign-up (glass, centered) const { useState: useStateA } = React; function Field({ label, type = "text", placeholder, value, onChange, icon }) { const [f, setF] = useStateA(false); return ( ); } function Auth({ mode, onNav }) { const [tab, setTab] = useStateA(mode === "login" ? "login" : "signup"); const [view, setView] = useStateA("auth"); // "auth" | "forgot" | "sent" const [email, setEmail] = useStateA(""); const [pw, setPw] = useStateA(""); const [name, setName] = useStateA(""); const [resetEmail, setResetEmail] = useStateA(""); const isLogin = tab === "login"; const backToLogin = () => { setView("auth"); setTab("login"); }; return (
{/* Left brand panel */}
onNav("landing")} />

Welcome to
KVB 2.0

The fastest viewer engine on the market. Be live with real viewers in under a minute.

5,000+ concurrent
AES-256
0% CPU
© 2026 KVB · All rights reserved
{/* Right form */}
{view === "auth" && (
{[["Create account", "signup"], ["Log in", "login"]].map(([l, v]) => ( ))}
{!isLogin && }
{isLogin &&
{ e.preventDefault(); setResetEmail(email); setView("forgot"); }} className="cap" style={{ color: "var(--accent-soft)", cursor: "pointer" }}>Forgot password?
}

or continue with
{["Discord", "Google"].map(p => ( ))}

Secured with AES-256 encryption. By continuing you agree to our Terms & Privacy Policy.

)} {view === "forgot" && (

Reset your password

Enter the email on your account and we’ll send you a secure link to set a new password.

Remembered it? { e.preventDefault(); backToLogin(); }} style={{ color: "var(--accent-soft)" }}>Log in instead

)} {view === "sent" && (

Check your inbox

If an account exists for

{resetEmail}

we’ve sent a link to reset your password. It expires in 30 minutes.

Didn’t get it? Check spam, or { e.preventDefault(); setView("forgot"); }} style={{ color: "var(--accent-soft)" }}>try another email.

)}
); } Object.assign(window, { Auth });