/* ===== Fantasy Roleplay - Design system ===== */
:root{
  --primary:#0b69e3;
  --primary-2:#034180;
  --bg:#1d1d1f;
  --bg-2:#161618;
  --card:rgba(255,255,255,.045);
  --border:rgba(255,255,255,.08);
  --text:#e8e8ea;
  --muted:#8a8a90;
  --glow:0 0 24px rgba(11,105,227,.45);
  --radius:16px;
}
*{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  overflow-x:hidden;line-height:1.6;
}
a{color:inherit;text-decoration:none}
img{max-width:100%}

/* Animated background */
.bg-fx{position:fixed;inset:0;z-index:-2;overflow:hidden;background:
  radial-gradient(1200px 600px at 15% -10%,rgba(11,105,227,.18),transparent 60%),
  radial-gradient(900px 500px at 100% 10%,rgba(3,65,128,.20),transparent 55%),
  var(--bg);}
.bg-fx::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);}
.orb{position:fixed;border-radius:50%;filter:blur(80px);opacity:.35;z-index:-1;animation:float 14s ease-in-out infinite}
.orb.a{width:340px;height:340px;background:var(--primary);top:-80px;left:-60px}
.orb.b{width:280px;height:280px;background:var(--primary-2);bottom:-60px;right:-40px;animation-delay:-6s}
@keyframes float{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,40px)}}

/* Glass utility */
.glass{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}

/* Navbar */
.nav-fx{position:sticky;top:0;z-index:100;backdrop-filter:blur(16px);
  background:rgba(22,22,24,.72);border-bottom:1px solid var(--border);}
.nav-fx .brand{font-weight:800;letter-spacing:1px;color:#fff}
.nav-fx .brand span{color:var(--primary)}
.nav-fx a.navlink{color:var(--muted);padding:.5rem .9rem;border-radius:10px;transition:.2s;font-weight:500}
.nav-fx a.navlink:hover{color:#fff;background:rgba(11,105,227,.12)}

/* Buttons */
.btn-neon{background:var(--primary);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:12px;
  font-weight:600;transition:.25s;box-shadow:var(--glow)}
.btn-neon:hover{background:var(--primary-2);transform:translateY(-2px);box-shadow:0 0 34px rgba(11,105,227,.6);color:#fff}
.btn-ghost{background:transparent;color:#fff;border:1px solid var(--border);padding:.75rem 1.5rem;border-radius:12px;
  font-weight:600;transition:.25s}
.btn-ghost:hover{border-color:var(--primary);background:rgba(11,105,227,.1);transform:translateY(-2px)}

/* Hero */
.hero{position:relative;padding:6rem 0 5rem;text-align:center}
.hero h1{font-size:clamp(2.2rem,6vw,4rem);font-weight:800;line-height:1.05;margin-bottom:1rem}
.hero h1 .grad{background:linear-gradient(90deg,#0b69e3,#4ba7ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{color:var(--muted);font-size:1.15rem;max-width:640px;margin:0 auto 2rem}
.hero-logo{width:120px;height:120px;object-fit:contain;margin-bottom:1.2rem;
  filter:drop-shadow(0 0 22px rgba(11,105,227,.5));animation:pulse 3s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}

/* Stat cards */
.stat{padding:1.4rem;text-align:center;transition:.25s}
.stat:hover{transform:translateY(-4px);border-color:rgba(11,105,227,.4)}
.stat .num{font-size:2rem;font-weight:800;color:#fff}
.stat .lbl{color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:1px}
.stat i{color:var(--primary);font-size:1.4rem;margin-bottom:.5rem}
.pill-live{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;color:#0be3a4}
.pill-live .dot{width:8px;height:8px;border-radius:50%;background:#0be3a4;box-shadow:0 0 10px #0be3a4;animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.35}}

/* Section */
.section{padding:4rem 0}
.section-title{font-size:1.8rem;font-weight:800;margin-bottom:.4rem}
.section-sub{color:var(--muted);margin-bottom:2.2rem}

/* Feature / news / staff cards */
.card-fx{padding:1.6rem;height:100%;transition:.25s}
.card-fx:hover{transform:translateY(-5px);border-color:rgba(11,105,227,.4);box-shadow:0 10px 40px rgba(0,0,0,.35)}
.card-fx .ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;
  background:rgba(11,105,227,.15);color:var(--primary);font-size:1.3rem;margin-bottom:1rem}
.news-card img{width:100%;height:180px;object-fit:cover;border-radius:12px;margin-bottom:1rem}
.badge-cat{background:rgba(11,105,227,.15);color:#4ba7ff;padding:.25rem .7rem;border-radius:20px;font-size:.75rem;font-weight:600}
.staff-card{text-align:center;padding:1.6rem}
.staff-card img{width:88px;height:88px;border-radius:50%;object-fit:cover;margin-bottom:1rem;
  border:2px solid rgba(11,105,227,.5);box-shadow:var(--glow)}
.staff-rank{color:var(--primary);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:1px}

/* FAQ */
.faq-item{padding:1.1rem 1.4rem;margin-bottom:.8rem;cursor:pointer}
.faq-item .q{font-weight:600;display:flex;justify-content:space-between;align-items:center}
.faq-item .a{color:var(--muted);max-height:0;overflow:hidden;transition:.3s;margin-top:0}
.faq-item.open .a{max-height:300px;margin-top:.8rem}
.faq-item.open .q i{transform:rotate(180deg)}
.faq-item .q i{transition:.3s;color:var(--primary)}

/* Footer */
.footer{border-top:1px solid var(--border);padding:3rem 0 2rem;margin-top:4rem;color:var(--muted)}
.footer a:hover{color:var(--primary)}
.social a{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;
  background:var(--card);border:1px solid var(--border);transition:.25s}
.social a:hover{background:var(--primary);color:#fff;transform:translateY(-3px)}

/* Forms (public) */
.form-glass .form-control,.form-glass .form-select{background:rgba(0,0,0,.3);border:1px solid var(--border);color:#fff}
.form-glass .form-control:focus,.form-glass .form-select:focus{border-color:var(--primary);
  box-shadow:0 0 0 .2rem rgba(11,105,227,.22);background:rgba(0,0,0,.4);color:#fff}
.form-glass label{color:var(--muted);font-size:.85rem;margin-bottom:.3rem}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(24px);transition:.6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* Alerts */
.alert-glass{border-radius:12px;border:1px solid var(--border);background:var(--card)}
