/* ═══════════════════════════════════════════
   ONYREX 2026 — Design System
   Acid Chartreuse + Off-White on Obsidian
   ═══════════════════════════════════════════ */

:root {
    --bg: #0a0a0f;
    --bg2: #101018;
    --bg3: #16161f;
    --acid: #CCFF00;
    --acid-d: #99cc00;
    --acid-glow: rgba(204,255,0,.08);
    --off: #F0EDE6;
    --off-d: #AAA8A2;
    --off-dd: #555350;
    --dim: #2a2a35;
    --dim2: #1a1a24;
    --red: #E63E21;
    --blue: #5865F2;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body { background: var(--bg); color: var(--off); font-family: 'Archivo', sans-serif; overflow-x: hidden; cursor: none; }
a, button { cursor: none; text-decoration: none; color: inherit; }
::selection { background: rgba(204,255,0,.15); color: #fff; }
::-webkit-scrollbar { width: 2px; }
::-webkit-scrollbar-thumb { background: rgba(204,255,0,.1); border-radius: 9px; }

/* ── Cursor ── */
.cur { position: fixed; width: 10px; height: 10px; border: 1.5px solid var(--acid); border-radius: 50%; pointer-events: none; z-index: 9999; transition: width .3s, height .3s, margin .3s, background .3s, border-color .3s; }
.cur.h { width: 48px; height: 48px; margin: -19px 0 0 -19px; border-color: transparent; background: rgba(204,255,0,.06); }
.trail { position: fixed; width: 4px; height: 4px; border-radius: 50%; background: var(--acid); opacity: .3; pointer-events: none; z-index: 9998; }

/* ── Nav ── */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 500; display: flex; align-items: center; justify-content: space-between; padding: 0 4%; height: 54px; mix-blend-mode: difference; transition: all .4s; }
.nav.s { mix-blend-mode: normal; background: rgba(10,10,15,.85); -webkit-backdrop-filter: blur(30px); backdrop-filter: blur(30px); border-bottom: 1px solid rgba(240,237,230,.04); }
.n-brand { font-family: 'Bebas Neue'; font-size: 22px; letter-spacing: .15em; color: var(--off); }
.n-links { display: flex; align-items: center; gap: 24px; }
.n-link { font-family: 'IBM Plex Mono'; font-size: 10px; color: var(--off-dd); letter-spacing: .08em; transition: color .3s; background: none; border: none; }
.n-link:hover { color: var(--acid); }
.n-user { font-family: 'IBM Plex Mono'; font-size: 10px; color: var(--acid); letter-spacing: .06em; font-weight: 600; }
.n-join { font-family: 'Archivo'; font-weight: 800; font-size: 10px; letter-spacing: .12em; color: var(--bg); background: var(--acid); padding: 7px 18px; border-radius: 4px; transition: all .2s; }
.n-join:hover { background: #fff; transform: translateY(-1px); }

/* ── Footer ── */
.foot { border-top: 1px solid var(--dim2); padding: 24px 5%; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.foot-brand { font-family: 'Bebas Neue'; font-size: 13px; letter-spacing: .15em; color: var(--dim); }
.foot-r { display: flex; gap: 20px; }
.foot-a { font-family: 'IBM Plex Mono'; font-size: 9px; color: var(--off-dd); letter-spacing: .06em; transition: color .2s; }
.foot-a:hover { color: var(--acid); }

/* ── Flash ── */
.flash { position: fixed; top: 64px; left: 50%; transform: translateX(-50%); z-index: 600; font-family: 'IBM Plex Mono'; font-size: 12px; padding: 12px 28px; border-radius: 8px; transition: opacity .4s; }
.flash-success { background: rgba(204,255,0,.08); border: 1px solid rgba(204,255,0,.15); color: var(--acid); }
.flash-error { background: rgba(230,62,33,.08); border: 1px solid rgba(230,62,33,.15); color: var(--red); }

/* ═══════ AUTH PAGES ═══════ */

.auth-page {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr 1fr;
    position: relative;
}

/* Left panel — branding */
.auth-brand {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 6%;
    position: relative;
    overflow: hidden;
}
.auth-brand-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #0c0c14, #0a0a0f);
}
.auth-brand-grid {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(204,255,0,.015) 1px, transparent 1px),
                       linear-gradient(90deg, rgba(204,255,0,.015) 1px, transparent 1px);
    background-size: 60px 60px;
}
.auth-brand-glow {
    position: absolute;
    width: 400px;
    height: 400px;
    bottom: -20%;
    left: -10%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(204,255,0,.05), transparent 60%);
    filter: blur(80px);
}
.auth-brand-content {
    position: relative;
    z-index: 2;
}
.auth-brand h1 {
    font-family: 'Bebas Neue';
    font-size: clamp(60px, 10vw, 120px);
    color: var(--acid);
    letter-spacing: .02em;
    line-height: .85;
    margin-bottom: 16px;
}
.auth-brand-motto {
    font-family: 'Instrument Serif';
    font-style: italic;
    font-size: clamp(16px, 2vw, 22px);
    color: var(--off-d);
    line-height: 1.4;
    max-width: 340px;
}
.auth-brand-tag {
    font-family: 'IBM Plex Mono';
    font-size: 10px;
    color: var(--off-dd);
    letter-spacing: .2em;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.auth-brand-tag-dot {
    width: 5px;
    height: 5px;
    background: var(--acid);
    border-radius: 1px;
}

/* Right panel — form */
.auth-form-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 80px 40px;
    background: var(--bg2);
    border-left: 1px solid var(--dim2);
}

.auth-card {
    width: 100%;
    max-width: 380px;
}

.auth-card-title {
    font-family: 'Archivo';
    font-weight: 900;
    font-size: 28px;
    letter-spacing: -.03em;
    margin-bottom: 6px;
}

.auth-card-sub {
    font-family: 'Archivo';
    font-weight: 400;
    font-size: 14px;
    color: var(--off-dd);
    margin-bottom: 32px;
}

/* OAuth buttons */
.oauth-row {
    display: flex;
    gap: 10px;
    margin-bottom: 28px;
}

.oauth-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 16px;
    border-radius: 10px;
    font-family: 'Archivo';
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .04em;
    transition: all .3s;
    border: 1px solid var(--dim);
    background: var(--bg);
    color: var(--off-d);
}

.oauth-btn:hover {
    border-color: var(--acid);
    color: var(--off);
    transform: translateY(-2px);
}

.oauth-btn svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

/* Divider */
.auth-divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}
.auth-divider-line {
    flex: 1;
    height: 1px;
    background: var(--dim2);
}
.auth-divider-text {
    font-family: 'IBM Plex Mono';
    font-size: 9px;
    color: var(--off-dd);
    letter-spacing: .12em;
}

/* Form fields */
.form-group {
    margin-bottom: 18px;
}

.form-label {
    display: block;
    font-family: 'IBM Plex Mono';
    font-size: 10px;
    font-weight: 600;
    color: var(--off-dd);
    letter-spacing: .1em;
    margin-bottom: 8px;
}

.form-input {
    width: 100%;
    padding: 13px 16px;
    background: var(--bg);
    border: 1px solid var(--dim);
    border-radius: 8px;
    color: var(--off);
    font-family: 'Archivo';
    font-size: 14px;
    transition: all .3s;
    outline: none;
    cursor: none;
}

.form-input::placeholder {
    color: var(--off-dd);
}

.form-input:focus {
    border-color: var(--acid);
    box-shadow: 0 0 0 3px rgba(204,255,0,.06);
}

.form-input.error {
    border-color: var(--red);
    box-shadow: 0 0 0 3px rgba(230,62,33,.06);
}

.form-error {
    font-family: 'IBM Plex Mono';
    font-size: 10px;
    color: var(--red);
    margin-top: 6px;
    letter-spacing: .02em;
}

/* Remember me */
.form-check {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
}

.form-check input[type="checkbox"] {
    appearance: none;
    width: 16px;
    height: 16px;
    border: 1px solid var(--dim);
    border-radius: 3px;
    background: var(--bg);
    cursor: none;
    transition: all .2s;
    position: relative;
}

.form-check input[type="checkbox"]:checked {
    background: var(--acid);
    border-color: var(--acid);
}

.form-check input[type="checkbox"]:checked::after {
    content: '✓';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 10px;
    color: var(--bg);
    font-weight: 900;
}

.form-check label {
    font-family: 'Archivo';
    font-size: 13px;
    color: var(--off-dd);
    cursor: none;
}

/* Submit button */
.btn-submit {
    width: 100%;
    padding: 15px;
    font-family: 'Archivo';
    font-weight: 800;
    font-size: 13px;
    letter-spacing: .1em;
    background: var(--acid);
    color: var(--bg);
    border: none;
    border-radius: 10px;
    transition: all .3s;
    box-shadow: 0 4px 24px rgba(204,255,0,.15);
}

.btn-submit:hover {
    background: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 32px rgba(255,255,255,.1);
}

.auth-switch {
    text-align: center;
    margin-top: 24px;
    font-family: 'Archivo';
    font-size: 13px;
    color: var(--off-dd);
}

.auth-switch a {
    color: var(--acid);
    font-weight: 600;
    transition: color .2s;
}

.auth-switch a:hover {
    color: #fff;
}

/* Responsive */
@media (max-width: 768px) {
    .auth-page { grid-template-columns: 1fr; }
    .auth-brand { display: none; }
    .auth-form-panel { padding: 100px 24px 60px; }
}
