/* ============================================================
   Beyond Kalonline — shared design system
   Used by: register, login (userpanel), forget password,
   recovery, userpanel shell, rankings.
   ============================================================ */
:root{
  --void:#06030f; --void-2:#0b0518; --void-3:#120a26; --abyss:#1a0b2e;
  --surface:#1f1238; --surface-2:#281544;
  --violet:#7c3aed; --violet-light:#a78bfa; --violet-bright:#c4b5fd; --violet-deep:#5b21b6; --violet-dark:#3b1466;
  --crystal:#3b82f6; --crystal-light:#60a5fa;
  --gold:#facc15; --gold-bright:#fde047; --emerald:#10b981; --danger:#f87171;
  --text:#f1f5f9; --text-2:#cbd5e1; --text-3:#94a3b8; --text-mute:#64748b;
  --border:#2d1a4a; --border-bright:#4c2a7c;
  --radius:8px; --radius-lg:14px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{min-height:100%;}
body{
  font-family:'Inter',sans-serif;color:var(--text);
  background:
    radial-gradient(1100px 700px at 18% 0%, rgba(124,58,237,.20), transparent 60%),
    radial-gradient(900px 600px at 85% 100%, rgba(59,130,246,.14), transparent 60%),
    linear-gradient(160deg, var(--void) 0%, var(--void-2) 45%, var(--abyss) 100%);
  background-attachment:fixed;min-height:100vh;position:relative;overflow-x:hidden;
}
a{color:var(--violet-light);text-decoration:none;transition:color .2s;}
a:hover{color:var(--violet-bright);}

/* floating runes */
.rune{position:fixed;font-family:'Noto Serif SC',serif;color:rgba(167,139,250,.10);
  user-select:none;pointer-events:none;z-index:0;animation:bk-drift 18s ease-in-out infinite;}
.rune.r1{top:8%;left:6%;font-size:120px;}
.rune.r2{bottom:10%;right:7%;font-size:160px;animation-delay:-6s;color:rgba(96,165,250,.08);}
.rune.r3{top:55%;left:48%;font-size:90px;animation-delay:-11s;}
@keyframes bk-drift{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-26px) rotate(4deg)}}

/* back to realm link */
.back-home{position:fixed;top:22px;left:24px;z-index:5;display:inline-flex;align-items:center;gap:7px;
  font-family:'Cinzel',serif;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text-3);}
.back-home:hover{color:var(--violet-light);}
.back-home svg{width:15px;height:15px;}

/* page wrapper centers auth cards */
.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:32px 18px;position:relative;z-index:2;}

/* shells */
.auth-shell{width:100%;max-width:940px;display:grid;grid-template-columns:1.05fr .95fr;
  background:linear-gradient(180deg, rgba(31,18,56,.74), rgba(11,5,24,.80));
  border:1px solid var(--border-bright);border-radius:var(--radius-lg);
  box-shadow:0 0 0 1px rgba(124,58,237,.18), 0 30px 80px rgba(0,0,0,.55), 0 0 60px rgba(124,58,237,.14);
  overflow:hidden;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
.auth-shell.rev{grid-template-columns:.95fr 1.05fr;}
.auth-card{width:100%;max-width:460px;padding:44px 40px;
  background:linear-gradient(180deg, rgba(31,18,56,.74), rgba(11,5,24,.80));
  border:1px solid var(--border-bright);border-radius:var(--radius-lg);
  box-shadow:0 0 0 1px rgba(124,58,237,.18), 0 30px 80px rgba(0,0,0,.55), 0 0 60px rgba(124,58,237,.14);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}

/* lore panel */
.auth-lore{position:relative;padding:46px 40px;overflow:hidden;
  background:radial-gradient(circle at 50% 25%, rgba(124,58,237,.30), transparent 62%),
    linear-gradient(165deg, var(--violet-dark) 0%, var(--abyss) 60%, var(--void-2) 100%);
  border-right:1px solid var(--border-bright);display:flex;flex-direction:column;justify-content:space-between;}
.auth-lore::before{content:attr(data-glyph);position:absolute;right:-30px;bottom:-50px;
  font-family:'Noto Serif SC',serif;font-size:300px;font-weight:900;line-height:1;color:rgba(196,181,253,.06);pointer-events:none;}
.lore-eyebrow{font-family:'Cinzel',serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:14px;position:relative;z-index:2;}
.lore-title{font-family:'Cinzel Decorative',serif;font-weight:900;font-size:36px;line-height:1.06;color:#fff;
  text-shadow:0 2px 30px rgba(124,58,237,.5);margin:0 0 16px;position:relative;z-index:2;}
.lore-text{font-size:14px;line-height:1.7;color:var(--text-2);max-width:330px;position:relative;z-index:2;}
.lore-stats{display:flex;gap:26px;position:relative;z-index:2;}
.lore-stat .n{font-family:'Cinzel',serif;font-weight:900;font-size:22px;color:var(--violet-bright);}
.lore-stat .l{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-3);margin-top:2px;}
.lore-perks{list-style:none;display:flex;flex-direction:column;gap:11px;position:relative;z-index:2;}
.lore-perks li{display:flex;align-items:center;gap:11px;font-size:13px;color:var(--text-2);}
.lore-perks svg{width:18px;height:18px;color:var(--violet-light);flex-shrink:0;}

/* brand */
.brand-row{display:flex;align-items:center;gap:13px;position:relative;z-index:2;margin-bottom:26px;}
.brand-icon{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg, rgba(255,255,255,.10), transparent 45%),
    radial-gradient(circle at 50% 30%, var(--violet-light), var(--violet-dark) 72%);
  border:1px solid rgba(196,181,253,.45);border-radius:10px;
  box-shadow:0 0 22px rgba(124,58,237,.5), inset 0 1px 0 rgba(255,255,255,.3);}
.brand-icon b{font-family:'Cinzel Decorative',serif;font-size:28px;letter-spacing:-2px;
  background:linear-gradient(180deg,#fff 0%,#e5edff 46%,#bda7ff 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 10px rgba(124,58,237,.4));}
.brand-name{font-family:'Cinzel',serif;font-weight:800;font-size:16px;letter-spacing:1px;color:#fff;}
.brand-sub{font-size:10.5px;letter-spacing:1.5px;color:var(--violet-bright);text-transform:uppercase;}

/* form panel */
.auth-form{padding:44px 44px;display:flex;flex-direction:column;justify-content:center;}
.form-head{margin-bottom:26px;}
.form-kicker{font-family:'Cinzel',serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--violet-bright);margin-bottom:10px;}
.form-h1{font-family:'Cinzel',serif;font-weight:800;font-size:27px;letter-spacing:1px;color:#fff;margin:0 0 8px;}
.form-h1-sub{font-size:13px;color:var(--text-3);line-height:1.5;}
.form-row{margin-bottom:16px;}
.form-row label{display:block;font-family:'Cinzel',serif;font-size:10px;letter-spacing:2.5px;
  color:var(--violet-bright);text-transform:uppercase;margin-bottom:8px;font-weight:700;}
.input-wrap{position:relative;}
.input-wrap svg.ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--text-mute);pointer-events:none;}
.form-row input[type=text],.form-row input[type=password],.form-row input[type=email]{
  width:100%;height:48px;padding:0 16px 0 42px;background:rgba(6,3,15,.6);border:1px solid var(--border);border-radius:var(--radius);
  color:var(--text);font-family:'Inter',sans-serif;font-size:15px;transition:border-color .2s, box-shadow .2s, background .2s;}
.form-row input::placeholder{color:var(--text-mute);}
.form-row input:focus{outline:none;border-color:var(--violet-light);background:rgba(31,18,56,.6);
  box-shadow:0 0 0 3px rgba(124,58,237,.22), 0 0 22px rgba(124,58,237,.18);}
.input-wrap:focus-within svg.ico{color:var(--violet-light);}
.hint{font-size:11px;color:var(--text-mute);margin-top:6px;}

/* math captcha (security question) */
.captcha-q{display:flex;align-items:center;gap:12px;}
.captcha-q .q{font-family:'Cinzel',serif;font-size:18px;font-weight:700;color:var(--gold);white-space:nowrap;
  text-shadow:0 0 12px rgba(250,204,21,.4);padding:0 4px;}
.captcha-q .input-wrap{flex:1;max-width:120px;}
.captcha-q input{padding-left:16px!important;text-align:center;}

/* checkboxes */
.check{display:flex;align-items:flex-start;gap:9px;margin-bottom:10px;font-size:12.5px;color:var(--text-2);line-height:1.5;cursor:pointer;user-select:none;}
.check input{accent-color:var(--violet);width:15px;height:15px;margin-top:2px;flex-shrink:0;}
.check a{color:var(--violet-light);}

/* button */
.btn-primary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:54px;border:1px solid #c4b5fd;border-radius:var(--radius);cursor:pointer;
  font-family:'Cinzel',serif;font-size:12px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:#fff;
  background:linear-gradient(180deg,#a78bfa 0%,#7c3aed 48%,#5b21b6 100%);
  box-shadow:0 0 0 1px rgba(124,58,237,.4),0 0 28px rgba(124,58,237,.55),0 6px 18px rgba(91,33,182,.5),
    inset 0 1px 0 rgba(255,255,255,.45),inset 0 -8px 14px rgba(45,16,90,.55);
  text-shadow:0 1px 3px rgba(45,16,90,.8);margin-top:6px;
  transition:transform .2s cubic-bezier(.16,1,.3,1), box-shadow .2s, filter .2s;}
.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.08);
  box-shadow:0 0 0 1px rgba(124,58,237,.5),0 0 40px rgba(124,58,237,.7),0 10px 26px rgba(91,33,182,.6),
    inset 0 1px 0 rgba(255,255,255,.5),inset 0 -8px 14px rgba(45,16,90,.55);}
.btn-primary:active{transform:translateY(0);}

/* messages */
.msg{padding:12px 14px;border-radius:var(--radius);font-size:13px;line-height:1.6;margin-bottom:16px;}
.msg-error{background:rgba(248,113,113,.10);border:1px solid rgba(248,113,113,.4);color:#fca5a5;}
.msg-ok{background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.4);color:#6ee7b7;}
.msg-ok strong,.msg-error strong{color:#fff;}

/* dividers + alt cta */
.divider{display:flex;align-items:center;gap:12px;margin:22px 0;color:var(--text-mute);font-size:11px;letter-spacing:2px;text-transform:uppercase;}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border-bright),transparent);}
.alt-cta{text-align:center;font-size:14px;color:var(--text-3);}
.alt-cta a{font-weight:600;}
.row-flex{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:13px;}

/* side notes box (register) */
.notes-box{position:relative;z-index:2;}
.notes-title{font-family:'Cinzel',serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:14px;}
.notes-list{display:flex;flex-direction:column;gap:12px;}
.notes-item{display:flex;gap:10px;font-size:13px;color:var(--text-2);line-height:1.55;}
.notes-item .dot{color:var(--violet-light);flex-shrink:0;}

/* important / download callout (register) */
.callout{margin-top:16px;background:rgba(250,204,21,.07);border:1px solid rgba(250,204,21,.45);border-radius:var(--radius);padding:13px 16px;text-align:center;}
.callout .c-t{font-family:'Cinzel',serif;font-size:12px;color:var(--gold);font-weight:700;letter-spacing:1px;margin-bottom:5px;}
.callout .c-b{font-size:12px;color:var(--text-2);line-height:1.65;}
.callout strong{color:var(--gold-bright);}

@media (max-width:820px){
  .auth-shell,.auth-shell.rev{grid-template-columns:1fr;max-width:460px;}
  .auth-lore{display:none;}
  .auth-form{padding:40px 30px;}
  .back-home{position:static;margin:0 auto 18px;display:flex;justify-content:center;}
}
