// pages/auth.jsx — Login + Register pages.
// Split screen: cinematic dark left (panther eyes, panther silhouette),
// paper card right with form.
const { useState: useSAuth, useEffect: useEAuth } = React;
function AuthPage({ mode = 'login' }){
const [dark, setDark] = useSAuth(false);
return (
);
}
// ──────────────────────────────────────────────────────────────────────
function AuthStage(){
return (
Vol. I · No. 01 · Welcome back
Step back
into the study.
Maia is already there. Amigo is already there. The board is set up
exactly as you left it.
{/* Floating instrument bits to remind you what's behind the door */}
Your room · last visit
11d streak
);
}
// ──────────────────────────────────────────────────────────────────────
function AuthForm({ mode }){
const [tab, setTab] = useSAuth(mode);
const isLogin = tab === 'login';
return (
{['login','signup'].map(t => (
))}
{isLogin
? <>Welcome back.>
: <>Start training.>}
{isLogin
? 'Your training, streak, and Maia rating are saved.'
: 'Free forever. Daily caps, no card needed.'}
{isLogin
? <>No account? { e.preventDefault(); setTab('signup'); }} style={{ color:'var(--gold)', borderBottom:'1px solid var(--gold)' }}>Create one>
: <>Already in? { e.preventDefault(); setTab('login'); }} style={{ color:'var(--gold)', borderBottom:'1px solid var(--gold)' }}>Log in>}
);
}
function Field({ label, type, placeholder }){
return (
);
}
function Goog(){
return (
);
}
Object.assign(window, { AuthPage });