/* ==========================================================================
   BenyaminSRD — گلاب‌درِه Minecraft Server
   Design tokens
   بک‌گراند: نیلی‌شب تیره | متن: آبی سرمه‌ای پررنگ + خاکستری | لهجه: طلایی اکلیلی
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700;800;900&display=swap');

:root{
  --ink-950:#050810;
  --ink-900:#0a1020;
  --ink-800:#0f1830;
  --ink-700:#16224a;
  --panel:#101a33cc;
  --panel-solid:#0e1729;
  --border:#2a3a66;

  --navy-bold:#3856e6;      /* آبی پررنگ مایل به سرمه‌ای */
  --navy-deep:#1c2c73;
  --gray-txt:#a4adc4;       /* خاکستری */
  --gray-dim:#6c7595;

  --gold:#f4c542;           /* زرد اکلیلی */
  --gold-2:#ffdf7e;
  --gold-deep:#b8892c;

  --emerald:#38d68a;
  --danger:#e6534f;

  --radius-lg:26px;
  --radius-md:16px;
  --radius-sm:10px;

  --font-fa:'Vazirmatn','Segoe UI',Tahoma,sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; width:100%; max-width:100%; }

body{
  margin:0;
  min-height:100vh;
  width:100%;
  max-width:100%;
  font-family:var(--font-fa);
  background:
    radial-gradient(ellipse at 15% -10%, #1a2a63 0%, transparent 55%),
    radial-gradient(ellipse at 90% 10%, #142042 0%, transparent 45%),
    linear-gradient(180deg,var(--ink-950) 0%,var(--ink-900) 40%,var(--ink-950) 100%);
  color:var(--gray-txt);
  direction:rtl;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

::selection{ background:var(--gold); color:var(--ink-950); }

::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--ink-950); }
::-webkit-scrollbar-thumb{ background:linear-gradient(var(--navy-bold),var(--gold-deep)); border-radius:10px; }

a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
img{ max-width:100%; display:block; }

h1,h2,h3,h4{
  color:var(--navy-bold);
  font-weight:800;
  margin:0 0 .5em;
  text-shadow:0 0 30px rgba(56,86,230,.35);
}

p{ line-height:2; color:var(--gray-txt); }

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.78rem; letter-spacing:.5px; color:var(--gold);
  font-weight:700; margin-bottom:14px;
}
.eyebrow::before{
  content:''; width:22px; height:2px; background:var(--gold); border-radius:2px;
}

/* ---------- glass panel ---------- */
.glass{
  background:linear-gradient(155deg, rgba(20,30,60,.65), rgba(10,15,30,.55));
  border:1px solid var(--border);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-radius:var(--radius-lg);
  box-shadow:0 20px 60px -20px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.04);
}

/* ---------- gold glitter background (loading screen) ---------- */
.glitter-bg{
  position:fixed; inset:0; z-index:0;
  background:
    radial-gradient(circle at 30% 20%, #ffe9a8 0%, transparent 2%),
    radial-gradient(ellipse at 50% 0%, #c99a22 0%, #7a5a0f 45%, #241a04 100%);
  overflow:hidden;
}

/* ---------- top nav / admin button ---------- */
.topbar{
  position:fixed; top:0; inset-inline:0; z-index:40;
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 26px;
  pointer-events:none;
}
.topbar > *{ pointer-events:auto; }
.brand{
  display:flex; align-items:center; gap:10px;
  font-weight:800; color:var(--gold-2); font-size:1rem;
  padding:8px 16px; border-radius:999px;
}
.brand b{ color:var(--navy-bold); }
.admin-btn{
  display:flex; align-items:center; gap:8px;
  padding:10px 20px; border-radius:999px;
  border:1px solid var(--border);
  color:var(--gold-2); font-weight:700; font-size:.85rem;
  transition:.25s;
}
.admin-btn:hover{ border-color:var(--gold); box-shadow:0 0 24px -6px var(--gold); transform:translateY(-1px); }

.back-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 18px; border-radius:999px; border:1px solid var(--border);
  color:var(--gray-txt); font-weight:700; font-size:.85rem;
}
.back-btn:hover{ color:var(--navy-bold); border-color:var(--navy-bold); }

/* ---------- section shell ---------- */
.section{
  position:relative; z-index:1;
  padding:110px 6vw;
  max-width:1180px; margin:0 auto;
  overflow:hidden;
}

/* ---------- story grid (used by chapter sections) ---------- */
.story-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
  width:100%;
}
.story-grid.reverse .story-text{ order:1; }
.story-grid.reverse .story-visual{ order:2; }

@media (max-width:820px){
  .story-grid{ grid-template-columns:1fr; gap:36px; }
  .story-grid.reverse .story-text,
  .story-grid.reverse .story-visual{ order:initial; }
  .story-grid .story-visual{ order:-1; }
}
.section-title{ font-size:clamp(1.6rem,3vw,2.4rem); }
.section-sub{ max-width:640px; color:var(--gray-dim); }

/* ---------- voxel block (pure CSS isometric minecraft block) ---------- */
.voxel-stage{
  perspective:1200px;
  display:flex; align-items:center; justify-content:center;
}
.voxel{
  --s:120px;
  position:relative; width:var(--s); height:var(--s);
  transform-style:preserve-3d;
  transform:rotateX(-28deg) rotateY(45deg);
}
.voxel .face{ position:absolute; width:var(--s); height:var(--s); }
.voxel .top{ background:linear-gradient(135deg,#5ec96b,#3e9e4c); transform:rotateX(90deg) translateZ(calc(var(--s)/2)); }
.voxel .front{ background:linear-gradient(135deg,#7a4a2a,#5a3319); transform:translateZ(calc(var(--s)/2)); }
.voxel .right{ background:linear-gradient(135deg,#63381c,#452510); transform:rotateY(90deg) translateZ(calc(var(--s)/2)); }
.voxel .top{ box-shadow:inset 0 0 30px rgba(0,0,0,.25); }
.voxel-gold .top{ background:linear-gradient(135deg,var(--gold-2),var(--gold-deep)); }
.voxel-gold .front{ background:linear-gradient(135deg,#8a6a1c,#5c460f); }
.voxel-gold .right{ background:linear-gradient(135deg,#6e5314,#40300b); }
.voxel-navy .top{ background:linear-gradient(135deg,#5b78ff,var(--navy-bold)); }
.voxel-navy .front{ background:linear-gradient(135deg,var(--navy-deep),#101a4a); }
.voxel-navy .right{ background:linear-gradient(135deg,#131c47,#0a1030); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 26px; border-radius:14px; font-weight:800; font-size:.95rem;
  border:1px solid transparent; transition:.25s;
}
.btn-gold{
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));
  color:#241a04;
  box-shadow:0 10px 30px -8px rgba(244,197,66,.5);
}
.btn-gold:hover{ transform:translateY(-2px); box-shadow:0 16px 36px -8px rgba(244,197,66,.65); }
.btn-navy{
  background:linear-gradient(135deg,#4d68f0,var(--navy-deep));
  color:#fff;
  box-shadow:0 10px 30px -8px rgba(56,86,230,.5);
}
.btn-navy:hover{ transform:translateY(-2px); box-shadow:0 16px 36px -8px rgba(56,86,230,.65); }
.btn-outline{
  border-color:var(--border); color:var(--gray-txt); background:transparent;
}
.btn-outline:hover{ border-color:var(--gold); color:var(--gold-2); }
.btn[disabled]{ opacity:.5; cursor:not-allowed; transform:none !important; }

/* ---------- IP copy box ---------- */
.ip-box{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px 22px; border-radius:18px; max-width:420px; margin:0 auto;
  cursor:pointer; user-select:none; transition:.25s;
}
.ip-box:hover{ border-color:var(--gold); box-shadow:0 0 40px -12px var(--gold); }
.ip-box .ip-label{ font-size:.72rem; color:var(--gray-dim); display:block; margin-bottom:4px; }
.ip-box .ip-value{ font-size:1.25rem; font-weight:800; color:var(--gold-2); letter-spacing:.5px; direction:ltr; text-align:right; }
.ip-box .copy-tag{
  font-size:.78rem; font-weight:700; padding:8px 14px; border-radius:10px;
  background:rgba(244,197,66,.12); color:var(--gold-2); border:1px solid var(--gold-deep);
  white-space:nowrap;
}
.ip-box.copied .copy-tag{ background:rgba(56,214,138,.15); color:var(--emerald); border-color:var(--emerald); }

/* ---------- action grid ---------- */
.grid{
  display:grid; gap:22px;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.action-card{
  padding:28px 24px; border-radius:var(--radius-md);
  display:flex; flex-direction:column; gap:14px;
  transition:.3s; position:relative; overflow:hidden;
}
.action-card::after{
  content:''; position:absolute; inset:0; opacity:0; transition:.3s;
  background:radial-gradient(circle at 30% 0%, rgba(244,197,66,.18), transparent 60%);
}
.action-card:hover{ transform:translateY(-6px); border-color:var(--gold-deep); }
.action-card:hover::after{ opacity:1; }
.action-card .icon-mark{
  width:46px; height:46px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--navy-bold),var(--navy-deep));
  color:#fff; font-size:1.3rem; font-weight:900;
}
.action-card h3{ font-size:1.05rem; margin:0; }
.action-card p{ font-size:.88rem; margin:0; flex:1; }
.action-card .go{ font-size:.82rem; font-weight:800; color:var(--gold-2); display:flex; align-items:center; gap:6px; }

/* ---------- search ---------- */
.search-wrap{ position:relative; max-width:520px; margin:0 auto 34px; }
.search-wrap input{
  width:100%; padding:15px 50px 15px 20px; border-radius:14px;
  border:1px solid var(--border); background:rgba(10,15,30,.6);
  color:#fff; font-family:inherit; font-size:.95rem; outline:none;
}
.search-wrap input:focus{ border-color:var(--navy-bold); box-shadow:0 0 0 3px rgba(56,86,230,.2); }
.search-wrap .icon{ position:absolute; inset-inline-end:18px; top:50%; transform:translateY(-50%); color:var(--gray-dim); }

/* ---------- tabs ---------- */
.tabs{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:38px; }
.tab-btn{
  padding:10px 20px; border-radius:999px; border:1px solid var(--border);
  color:var(--gray-txt); font-weight:700; font-size:.85rem; background:transparent; transition:.2s;
}
.tab-btn.active{ background:linear-gradient(135deg,var(--gold-2),var(--gold-deep)); color:#241a04; border-color:transparent; }
.tab-btn:not(.active):hover{ border-color:var(--gold); color:var(--gold-2); }

/* ---------- list items (launcher / plugin cards) ---------- */
.item-card{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:18px 22px; border-radius:var(--radius-md); margin-bottom:14px;
  transition:.25s;
}
.item-card:hover{ border-color:var(--gold-deep); transform:translateX(-3px); }
.item-title{ font-weight:700; color:#e9edf7; font-size:.98rem; }
.item-meta{ font-size:.78rem; color:var(--gray-dim); margin-top:4px; }
.badge{
  font-size:.72rem; font-weight:800; padding:5px 12px; border-radius:999px;
  border:1px solid var(--border);
}
.badge-pc{ color:var(--navy-bold); border-color:var(--navy-bold); background:rgba(56,86,230,.1); }
.badge-mobile{ color:var(--gold-2); border-color:var(--gold-deep); background:rgba(244,197,66,.1); }
.empty-state{
  text-align:center; padding:60px 20px; color:var(--gray-dim);
}

/* ---------- footer ---------- */
.site-footer{
  padding:40px 6vw 60px; text-align:center; color:var(--gray-dim); font-size:.8rem;
  position:relative; z-index:1;
}

/* ---------- loading screen ---------- */
#loading-screen{
  position:fixed; inset:0; z-index:999;
  display:flex; align-items:center; justify-content:center;
  transition:opacity .9s ease, visibility .9s ease;
}
#loading-screen.hide{ opacity:0; visibility:hidden; pointer-events:none; }
#loading-canvas{ position:absolute; inset:0; z-index:0; }
.loading-inner{
  position:relative; z-index:2; text-align:center; padding:0 20px;
}
.loading-inner h1{
  font-size:clamp(1.5rem,4vw,2.6rem); color:var(--navy-deep);
  text-shadow:0 2px 0 rgba(255,255,255,.15), 0 0 40px rgba(28,44,115,.5);
  -webkit-text-stroke:1px rgba(20,20,10,.25);
}
.loading-inner .story{
  color:#3a3212; font-weight:600; max-width:520px; margin:10px auto 26px;
  font-size:.95rem; line-height:2;
}
.loading-bar{
  width:min(360px,70vw); height:10px; margin:0 auto; border-radius:999px;
  background:rgba(20,15,5,.35); overflow:hidden; border:1px solid rgba(20,15,5,.4);
}
.loading-bar-fill{
  height:100%; width:0%; border-radius:999px;
  background:linear-gradient(90deg,var(--navy-deep),var(--navy-bold));
  transition:width .25s ease;
}
.loading-pct{ margin-top:12px; font-weight:800; color:var(--navy-deep); letter-spacing:1px; }

/* ---------- hero ---------- */
#hero-canvas{ position:absolute; inset:0; z-index:0; width:100%; height:100%; display:block; pointer-events:none; }
.hero{
  min-height:100vh; position:relative; display:flex; align-items:center; justify-content:center;
  padding:140px 6vw 100px;
  overflow:hidden;
  width:100%;
}
.hero-inner{ position:relative; z-index:2; text-align:center; max-width:760px; margin:0 auto; }
.logo-ring{
  width:132px; height:132px; margin:0 auto 22px; border-radius:50%;
  padding:5px; background:conic-gradient(from 0deg,var(--gold-2),var(--navy-bold),var(--gold-2));
  box-shadow:0 0 60px -10px rgba(244,197,66,.6);
}
.logo-ring .logo-inner{
  width:100%; height:100%; border-radius:50%; overflow:hidden;
  background:var(--ink-900); display:flex; align-items:center; justify-content:center;
  border:3px solid var(--ink-950);
}
.logo-inner img{ width:100%; height:100%; object-fit:cover; }
.logo-fallback{ font-size:2rem; }

.hero h1{ font-size:clamp(1.9rem,4.6vw,3.1rem); margin-bottom:10px; }
.hero .server-name{ color:var(--gold-2); }
.hero p.lead{ color:var(--gray-txt); max-width:560px; margin:0 auto 30px; }

/* ---------- misc ---------- */
.center{ text-align:center; }
.mt-40{ margin-top:40px; }
.stack-16{ display:flex; flex-direction:column; gap:16px; }
.reveal{ opacity:0; transform:translateY(40px); }

.tutorial-block{ margin-bottom:34px; }
.tutorial-block .step-no{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:10px; font-weight:900;
  background:linear-gradient(135deg,var(--navy-bold),var(--navy-deep)); color:#fff; margin-left:10px;
}
.tutorial-img{
  width:100%; border-radius:16px; border:1px solid var(--border);
  min-height:180px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#101a33,#0a1224); color:var(--gray-dim); font-size:.8rem;
  margin-top:14px;
}

@media (max-width:640px){
  .section{ padding:80px 5vw; }
  .topbar{ padding:12px 16px; }
}
