html, body {
  height: 100%;
}

body.bg{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 15% 10%, rgba(124,92,255,.35), transparent 55%),
    radial-gradient(900px 500px at 85% 20%, rgba(107,226,255,.28), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
  overflow-x: hidden;
}

.bg::before,
.bg::after{
  content:"";
  position: fixed;
  inset: -20%;
  pointer-events: none;
  z-index: -1;
}

.bg::before{
  background:
    radial-gradient(closest-side, rgba(88,230,255,.16), transparent 70%) 18% 22%/38% 38% no-repeat,
    radial-gradient(closest-side, rgba(177,108,255,.16), transparent 72%) 78% 28%/42% 42% no-repeat,
    radial-gradient(closest-side, rgba(38,208,123,.09), transparent 70%) 56% 78%/35% 35% no-repeat;
  filter: blur(18px);
  animation: floatOrbs 18s ease-in-out infinite alternate;
}

.bg::after{
  background:
    linear-gradient(120deg, rgba(255,255,255,.035) 10%, transparent 30%, rgba(255,255,255,.03) 60%, transparent 85%);
  mix-blend-mode: screen;
  animation: shimmer 10s linear infinite;
}

@keyframes floatOrbs{
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  100% { transform: translate3d(0, -18px, 0) scale(1.03); }
}

@keyframes shimmer{
  0%   { transform: translateX(-4%); opacity:.5; }
  50%  { opacity:.8; }
  100% { transform: translateX(4%); opacity:.5; }
}

.container{
  max-width: 1100px;
  margin: 0 auto;
  padding: 28px 18px 60px;
}

.topbar{
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(10px);
  background: rgba(10, 16, 50, .55);
  border-bottom: 1px solid rgba(255,255,255,.10);
}

.topbar-inner{
  max-width:1100px;
  margin:0 auto;
  padding: 12px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
}

.brand{
  font-weight: 800;
  letter-spacing: .3px;
}

.nav{
  display:flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content:flex-end;
}

.nav a{
  color: var(--muted);
  text-decoration: none;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid transparent;
}
.nav a:hover{
  color: var(--text);
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.05);
}

.glass{
  background: linear-gradient(180deg, var(--panel), rgba(255,255,255,.03));
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow:
    0 18px 60px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter: blur(14px);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.glass:hover{
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.24);
  box-shadow:
    0 20px 66px rgba(0,0,0,.40),
    0 0 0 1px rgba(88,230,255,.06),
    inset 0 1px 0 rgba(255,255,255,.12);
}

.card{
  padding: 18px;
}

.hero{
  padding: 26px 18px;
}

h1,h2,h3{
  margin: 0 0 10px;
}

p{
  margin: 0 0 12px;
  color: var(--muted);
  line-height: 1.55;
}

.row{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items:center;
}

label{
  display:block;
  margin: 12px 0 6px;
  color: var(--muted);
  font-size: 14px;
}

.input, input.input, textarea.input, select.input{
  width: 100%;
  padding: 11px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(5, 10, 30, .35);
  color: var(--text);
  outline: none;
}

textarea.input{ min-height: 120px; resize: vertical; }

.btn{
  cursor:pointer;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: var(--text);
  padding: 10px 14px;
  border-radius: 12px;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  transition: transform .18s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.btn:hover{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.26);
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(0,0,0,.26);
}

.btn.primary{
  border-color: rgba(107,226,255,.45);
  background: linear-gradient(135deg, rgba(88,230,255,.22), rgba(177,108,255,.20));
  box-shadow: 0 0 0 1px rgba(88,230,255,.10), 0 12px 24px rgba(0,0,0,.25);
}

.btn.danger{
  border-color: rgba(255,92,122,.45);
}

.alert{
  padding: 12px 14px;
  border-radius: 14px;
  margin: 14px 0;
  border: 1px solid rgba(255,255,255,.14);
}
.alert.alert-error{
  border-color: rgba(255,92,122,.45);
  background: rgba(255,92,122,.10);
}
.alert.alert-ok{
  border-color: rgba(56,217,150,.45);
  background: rgba(56,217,150,.10);
}

.muted{
  color: var(--muted);
}

.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 860px){
  .split{ grid-template-columns: 1fr; }
}

.table{
  width:100%;
  border-collapse: collapse;
  overflow:hidden;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
}
.table th, .table td{
  padding: 10px 12px;
  text-align:left;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.table th{
  color: var(--muted);
  font-weight: 600;
}

.tag{
  display:inline-block;
  padding: 4px 9px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .2px;
}

.tag.ok{
  border-color: rgba(38,208,123,.45);
  color: rgba(38,208,123,1);
}
.tag.new{
  border-color: rgba(88,230,255,.45);
  color: rgba(88,230,255,1);
}
.small{
  font-size: 13px;
}

.list{
  display:flex;
  flex-direction: column;
  gap: 10px;
}

.link{
  color: var(--accent);
  text-decoration:none;
  transition: color .2s ease, text-shadow .2s ease;
}
.link:hover{
  text-decoration: underline;
  color: #a6f3ff;
  text-shadow: 0 0 8px rgba(88,230,255,.35);
}

/* --- FOA extended UI --- */

.brand-logo{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  letter-spacing:.4px;
}
.brand-cube{
  width:28px;height:28px;border-radius:8px;
  background:linear-gradient(135deg, rgba(88,230,255,.35), rgba(177,108,255,.35));
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 0 18px rgba(88,230,255,.25);
  display:grid;place-items:center;
  font-size:11px;color:#fff;
}

.nav a.active{
  color:var(--text);
  border-color:rgba(88,230,255,.35);
  background:rgba(88,230,255,.08);
  box-shadow:0 0 12px rgba(88,230,255,.12);
}

.site-footer{
  margin-top:40px;
  padding:18px 0 8px;
  border-top:1px solid rgba(255,255,255,.08);
  color:var(--muted);
  font-size:13px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.hero-large{
  position:relative;
  overflow:hidden;
  padding:30px 22px;
}
.hero-large::after{
  content:"";
  position:absolute; inset:-40%;
  background:radial-gradient(circle at 30% 20%, rgba(88,230,255,.12), transparent 45%),
             radial-gradient(circle at 80% 60%, rgba(177,108,255,.14), transparent 50%);
  pointer-events:none;
}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 12px;border-radius:999px;
  border:1px solid rgba(38,208,123,.4);
  background:rgba(38,208,123,.08);
  color:#9ff3c8;font-size:12px;margin-bottom:12px;
}
.hero-title{
  font-size:clamp(28px, 4vw, 42px);
  line-height:1.1;
  margin:0 0 10px;
  text-shadow:0 0 24px rgba(88,230,255,.18);
}
.hero-sub{
  max-width:720px;
  font-size:15px;
}

.stat-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:12px;
  margin-top:18px;
}
@media (max-width:900px){ .stat-grid{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .stat-grid{ grid-template-columns:1fr;} }

.stat-card{
  padding:14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.18);
}
.stat-label{font-size:12px;color:var(--muted);margin-bottom:6px;}
.stat-value{
  font-size:26px;font-weight:800;line-height:1;
}
.stat-value.cyan{color:var(--accent);}
.stat-value.purple{color:var(--accent2);}
.stat-value.green{color:var(--ok);}

.feature-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:14px;
}
@media (max-width:900px){ .feature-grid{ grid-template-columns:1fr;} }

.feature-card{
  padding:16px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);
  transition:transform .2s ease, border-color .2s ease;
}
.feature-card:hover{
  transform:translateY(-3px);
  border-color:rgba(177,108,255,.35);
}
.feature-icon{
  width:36px;height:36px;border-radius:10px;
  display:grid;place-items:center;
  margin-bottom:10px;
  background:rgba(88,230,255,.12);
  border:1px solid rgba(88,230,255,.25);
}

.steps{
  display:grid; gap:10px; margin-top:8px;
}
.step{
  display:flex; gap:12px; align-items:flex-start;
  padding:12px;border-radius:12px;
  border:1px dashed rgba(255,255,255,.14);
  background:rgba(0,0,0,.12);
}
.step-num{
  min-width:28px;height:28px;border-radius:8px;
  display:grid;place-items:center;
  font-weight:800;font-size:13px;
  background:rgba(177,108,255,.18);
  border:1px solid rgba(177,108,255,.35);
  color:#e5ccff;
}

.progress-block{margin-top:14px;}
.progress-head{
  display:flex;justify-content:space-between;gap:10px;
  font-size:13px;margin-bottom:6px;
}
.progress-track{
  height:8px;border-radius:999px;
  background:rgba(255,255,255,.08);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
}
.progress-fill{
  height:100%;border-radius:999px;
  background:linear-gradient(90deg, rgba(38,208,123,.95), rgba(88,230,255,.85));
  box-shadow:0 0 12px rgba(38,208,123,.35);
  transition:width 1s ease;
}
.progress-fill.premium{
  background:linear-gradient(90deg, rgba(177,108,255,.95), rgba(88,230,255,.8));
  box-shadow:0 0 12px rgba(177,108,255,.35);
}

.faq{
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  padding:12px 14px;
  background:rgba(0,0,0,.14);
}
.faq summary{
  cursor:pointer;
  font-weight:700;
  color:var(--text);
  list-style:none;
}
.faq summary::-webkit-details-marker{display:none;}
.faq[open]{
  border-color:rgba(88,230,255,.28);
  box-shadow:0 0 0 1px rgba(88,230,255,.08);
}
.faq .faq-body{
  margin-top:10px;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}

.auth-wrap{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:16px;
}
@media (max-width:860px){ .auth-wrap{ grid-template-columns:1fr; } }

.panel-tip{
  padding:16px;
  border-radius:16px;
  border:1px solid rgba(177,108,255,.25);
  background:linear-gradient(160deg, rgba(177,108,255,.12), rgba(0,0,0,.12));
}
.panel-tip h3{margin-top:0;}

.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.chip{
  font-size:12px;padding:5px 10px;border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);
}

.btn.copied{
  border-color:rgba(38,208,123,.5);
  color:#b7ffd9;
}

.reveal{
  opacity:0;
  transform:translateY(10px);
}
.reveal--on{
  animation:revealIn .55s ease forwards;
}
@keyframes revealIn{
  to{opacity:1; transform:translateY(0);}
}

.section-title{
  margin:0 0 12px;
  font-size:20px;
  display:flex;align-items:center;gap:10px;
}
.section-title::before{
  content:"";
  width:8px;height:8px;border-radius:2px;
  background:var(--accent);
  box-shadow:0 0 10px var(--accent);
}

.discord-cta{
  text-align:center;
  padding:22px;
}
.discord-cta .btn.primary{
  font-size:15px;
  padding:12px 18px;
}

@media (prefers-reduced-motion: reduce){
  *{
    animation: none !important;
    transition: none !important;
  }
}

