/* ===================================================================
   WorldTiers.net — shared styles
   Palette: void #17181a · panel #212226 · panel-2 #2a2c30 (neutral gray)
            blue #3e8ede · blue-deep #2c6bb0 · sky #8fc7f5 (accent)
=================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&family=Inter:wght@400;500;600;700;800&display=swap');
@import url('https://fonts.cdnfonts.com/css/minecraft-4');

:root{
  --void: #17181a;
  --panel: #212226;
  --panel-2: #2a2c30;
  --panel-3: #34373c;
  --border: #3c3f45;
  --border-light: #50545b;
  --orange: #3e8ede;
  --orange-deep: #2c6bb0;
  --orange-dim: #274a6e;
  --orange-shadow: #1a3c63;
  --discord-shadow: #131826;
  --outline-shadow: #0d0e0f;
  --amber: #8fc7f5;
  --text: #eef0f1;
  --text-muted: #a4a8ad;
  --text-dim: #797d82;
  --green: #7ca86b;
  --focus: #8fc7f5;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--void);
  color:var(--text);
  font-family:'Inter', system-ui, sans-serif;
  font-size:16px;
  line-height:1.5;
  min-height:100vh;
}

img{ max-width:100%; display:block; }

a{ color:inherit; text-decoration:none; }

.pixel{
  font-family:'Silkscreen', 'Inter', sans-serif;
  letter-spacing:0.5px;
}

::selection{ background:var(--orange); color:var(--void); }

:focus-visible{
  outline:3px solid var(--focus);
  outline-offset:2px;
}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
}

/* ---------- background: voxel skyline + drifting motes ---------- */
.terrain-bg{
  position:fixed;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(ellipse 70% 50% at 50% -10%, rgba(62,142,222,0.1), transparent 60%),
    linear-gradient(180deg, #17181a 0%, #141517 100%);
  overflow:hidden;
}
.terrain-bg svg, .terrain-bg .stars{ display:none; }

/* blocky, stepped horizon lines — no diagonals, only right-angle steps */
.tb-skyline{
  position:absolute;
  left:0; right:0; bottom:0;
  background-repeat:no-repeat;
  background-size:100% 100%;
}
.tb-skyline-far{
  height:15vh;
  min-height:110px;
  opacity:0.5;
  background-color:#1b2c40;
  clip-path:polygon(
    0% 100%, 0% 55%, 6% 55%, 6% 35%, 13% 35%, 13% 60%, 20% 60%, 20% 25%,
    27% 25%, 27% 48%, 34% 48%, 34% 15%, 41% 15%, 41% 40%, 48% 40%, 48% 60%,
    55% 60%, 55% 30%, 62% 30%, 62% 45%, 69% 45%, 69% 20%, 76% 20%, 76% 50%,
    83% 50%, 83% 32%, 90% 32%, 90% 58%, 96% 58%, 96% 38%, 100% 38%, 100% 100%
  );
}
.tb-skyline-near{
  height:9vh;
  min-height:70px;
  opacity:0.85;
  background-color:#0f1620;
  clip-path:polygon(
    0% 100%, 0% 70%, 9% 70%, 9% 45%, 18% 45%, 18% 75%, 27% 75%, 27% 40%,
    36% 40%, 36% 65%, 45% 65%, 45% 30%, 54% 30%, 54% 55%, 63% 55%, 63% 20%,
    72% 20%, 72% 50%, 81% 50%, 81% 35%, 90% 35%, 90% 68%, 100% 68%, 100% 100%
  );
}

/* drifting pixel motes — tiny squares rising slowly through the scene */
.tb-motes{ position:absolute; inset:0; }
.tb-motes span{
  position:absolute;
  bottom:-5%;
  width:4px; height:4px;
  background:var(--amber);
  opacity:0;
  animation:tb-rise linear infinite;
}
@keyframes tb-rise{
  0%{ transform:translateY(0) scale(1); opacity:0; }
  8%{ opacity:0.55; }
  92%{ opacity:0.35; }
  100%{ transform:translateY(-110vh) scale(0.8); opacity:0; }
}
.tb-motes span:nth-child(1){ left:4%;  width:3px; height:3px; animation-duration:26s; animation-delay:0s; background:var(--orange); }
.tb-motes span:nth-child(2){ left:12%; width:5px; height:5px; animation-duration:34s; animation-delay:4s; }
.tb-motes span:nth-child(3){ left:21%; width:3px; height:3px; animation-duration:22s; animation-delay:9s; background:var(--orange); }
.tb-motes span:nth-child(4){ left:33%; width:4px; height:4px; animation-duration:30s; animation-delay:2s; }
.tb-motes span:nth-child(5){ left:44%; width:3px; height:3px; animation-duration:24s; animation-delay:12s; background:var(--orange); }
.tb-motes span:nth-child(6){ left:52%; width:5px; height:5px; animation-duration:36s; animation-delay:6s; }
.tb-motes span:nth-child(7){ left:61%; width:3px; height:3px; animation-duration:20s; animation-delay:14s; background:var(--orange); }
.tb-motes span:nth-child(8){ left:69%; width:4px; height:4px; animation-duration:32s; animation-delay:1s; }
.tb-motes span:nth-child(9){ left:78%; width:3px; height:3px; animation-duration:23s; animation-delay:10s; background:var(--orange); }
.tb-motes span:nth-child(10){ left:86%; width:5px; height:5px; animation-duration:35s; animation-delay:7s; }
.tb-motes span:nth-child(11){ left:93%; width:3px; height:3px; animation-duration:27s; animation-delay:3s; background:var(--orange); }
.tb-motes span:nth-child(12){ left:98%; width:4px; height:4px; animation-duration:29s; animation-delay:16s; }

@media (prefers-reduced-motion: reduce){
  .tb-motes span{ display:none; }
}

/* ---------- header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:14px 32px;
  background:rgba(23,24,26,0.85);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);
}
.site-header.transparent{
  position:relative;
  background:transparent;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:20px;
  font-weight:700;
  color:var(--text);
}
.brand img{
  width:34px;
  height:34px;
  image-rendering:pixelated;
}
.brand .pixel{ color:var(--amber); }

.main-nav{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.main-nav a{
  padding:9px 16px;
  border-radius:6px;
  font-weight:600;
  font-size:14.5px;
  color:var(--text-muted);
  border:1px solid transparent;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.main-nav a:hover{ color:var(--text); background:rgba(255,255,255,0.04); }
.main-nav a.active{
  color:var(--amber);
  background:var(--panel-2);
  border-color:var(--border-light);
}

.header-actions{ display:flex; align-items:center; gap:10px; }

.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 20px;
  border-radius:8px;
  font-family:'Minecraft', 'Silkscreen', 'Inter', sans-serif;
  font-weight:400;
  font-size:14px;
  letter-spacing:0.5px;
  cursor:pointer;
  border:1px solid transparent;
  overflow:hidden;
  transition:background-color .15s ease, border-color .15s ease, transform .1s ease;
  white-space:nowrap;
}
/* light shine sweep on hover — kept, just no colored glow around it */
.btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.22) 46%, transparent 62%);
  transform:translateX(-140%);
  transition:transform .55s ease;
  pointer-events:none;
}
.btn:hover::before{ transform:translateX(140%); }
@media (prefers-reduced-motion: reduce){ .btn::before{ transition:none; content:none; } }

.btn:hover{ transform:translateY(-1px); }
.btn:active{ transform:translateY(0); transition-duration:.05s; }

.btn-primary{
  background:var(--orange);
  color:#0b1622;
}
.btn-primary:hover{ background:#57a0e8; }
.btn-primary:active{ background:var(--orange-deep); }

.btn-outline{
  background:transparent;
  border-color:var(--border-light);
  color:var(--text);
}
.btn-outline:hover{
  background:var(--panel-2);
  border-color:var(--text-dim);
}
.btn-outline:active{ background:var(--panel-3); }

.btn-discord{
  background:var(--panel-2);
  color:var(--text);
  border-color:var(--border-light);
}
.btn-discord:hover{ background:var(--panel-3); border-color:var(--text-dim); }
.btn-discord:active{ background:var(--panel); }

.btn:disabled, .btn.is-disabled{
  opacity:0.45;
  cursor:not-allowed;
  filter:grayscale(0.3);
}
.btn:disabled:hover, .btn.is-disabled:hover,
.btn:disabled:active, .btn.is-disabled:active{
  transform:none !important;
  box-shadow:none;
}
.btn:disabled::before, .btn.is-disabled::before{ content:none; }

/* ---------- footer ---------- */
.site-footer{
  margin-top:40px;
  padding:16px 32px 20px;
  border-top:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  color:var(--text-dim);
  font-size:12.5px;
}
.site-footer .foot-links{ display:flex; gap:18px; }
.site-footer a:hover{ color:var(--amber); }

/* ---------- generic layout helpers ---------- */
.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
.section{ padding:64px 0; }
.center{ text-align:center; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--amber);
  margin-bottom:14px;
}
.eyebrow::before{
  content:'';
  width:8px; height:8px;
  background:var(--amber);
  display:inline-block;
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
  box-shadow:2px 0 0 var(--orange-deep);
}

h1,h2,h3{ margin:0 0 14px; color:var(--text); }
h1{ font-size:44px; line-height:1.1; font-weight:800; }
h2{ font-size:30px; font-weight:800; }
p{ color:var(--text-muted); margin:0 0 16px; }

/* ---------- hero banner (background photo + overlay) ---------- */
.hero-banner{
  position:relative;
  overflow:hidden;
  background:#0f1011;
}
.hero-banner::before{
  content:'';
  position:absolute;
  inset:0;
  background:url('hero-bg.jpg') center 30%/cover no-repeat;
  z-index:0;
}
.hero-banner::after{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(12,13,14,0.55) 0%, rgba(15,16,17,0.72) 55%, rgba(17,18,20,0.96) 100%);
  z-index:1;
}
.hero-banner > *{ position:relative; z-index:2; }

/* ---------- hero ---------- */
.hero{
  padding:56px 0 40px;
  text-align:center;
}
.hero .logo-plate{
  width:120px; height:120px;
  margin:0 auto 26px;
  image-rendering:pixelated;
  filter:drop-shadow(0 8px 24px rgba(62,142,222,0.35));
}
.hero h1{ font-size:52px; }
.hero h1 .pixel{
  display:block;
  font-family:'Inter', sans-serif;
  font-weight:800;
  font-size:52px;
  letter-spacing:-0.5px;
  color:var(--amber);
  text-shadow:0 0 40px rgba(62,142,222,0.2);
  margin-top:6px;
}
.hero .tagline{
  font-size:18px;
  max-width:560px;
  margin:0 auto 30px;
}

.ip-box{
  display:inline-flex;
  align-items:center;
  gap:14px;
  background:var(--panel);
  border:1px solid var(--border-light);
  border-radius:10px;
  padding:14px 20px;
  margin-bottom:14px;
}
.ip-box .ip-label{ font-size:12px; color:var(--text-dim); text-transform:uppercase; letter-spacing:1px; }
.ip-box .ip-value{
  font-family:'Inter', monospace;
  font-weight:700;
  font-size:19px;
  color:var(--text);
}
.ip-box button{
  background:var(--panel-2);
  border:1px solid var(--border);
  color:var(--amber);
  border-radius:6px;
  padding:8px 10px;
  cursor:pointer;
  font-size:13px;
  font-weight:700;
  box-shadow:0 2px 0 var(--outline-shadow);
  transition:background .15s ease, color .15s ease, transform .1s ease, box-shadow .15s ease;
}
.ip-box button:hover{ background:var(--orange); color:#0b1622; transform:translateY(-1px); box-shadow:0 3px 0 var(--orange-shadow); }
.ip-box button:active{ transform:translateY(2px); box-shadow:none; }
.copy-hint{
  display:block;
  font-size:12.5px;
  color:var(--text-dim);
  margin-bottom:36px;
  min-height:16px;
}

.hero-ctas{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
}
.btn-lg{ padding:14px 26px; font-size:15.5px; }

/* ---------- stat strip ---------- */
.stat-strip{
  display:flex;
  justify-content:center;
  gap:64px;
  flex-wrap:wrap;
  padding:36px 0 8px;
}
.stat{ text-align:center; }
.stat .num{
  font-family:'Inter', sans-serif;
  font-weight:800;
  font-size:28px;
  color:var(--amber);
}
.stat .lbl{
  font-size:12.5px;
  color:var(--text-dim);
  text-transform:uppercase;
  letter-spacing:1.5px;
  margin-top:2px;
}

/* ---------- feature grid ---------- */
.feature-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:22px;
  margin-top:36px;
}
.feature-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:12px;
  padding:26px;
  position:relative;
  overflow:hidden;
}
.feature-card::before{
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background:linear-gradient(90deg, var(--orange), var(--amber));
}
.feature-card .icon{
  width:44px; height:44px;
  border-radius:9px;
  background:var(--panel-2);
  border:1px solid var(--border-light);
  display:flex; align-items:center; justify-content:center;
  font-size:20px;
  margin-bottom:16px;
}
.feature-card h3{ font-size:17px; margin-bottom:8px; }
.feature-card p{ font-size:14.5px; margin:0; }

/* ---------- community section ---------- */
.community-section{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  background:var(--panel-3);
  border:1px solid var(--border-light);
  border-radius:16px;
  padding:44px 48px;
}
.community-text{ flex:1; min-width:0; text-align:left; }
.community-text h2{ margin-bottom:12px; }
.community-lead{ font-weight:600; color:var(--text); margin-bottom:16px; }
.community-list{
  list-style:none;
  margin:0 0 26px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:9px;
}
.community-list li{
  font-size:14.5px;
  color:var(--text-muted);
  display:flex; gap:10px; align-items:flex-start;
}
.community-list li::before{ content:'▸'; color:var(--orange); flex-shrink:0; }
.community-mascot{
  flex-shrink:0;
  width:200px;
  height:auto;
  filter:drop-shadow(0 12px 30px rgba(0,0,0,0.35));
}

/* ---------- shop layout ---------- */
.shop-layout{
  display:grid;
  grid-template-columns:230px 1fr;
  gap:30px;
  align-items:start;
  padding:40px 0 20px;
}
.shop-sidebar{
  position:sticky;
  top:88px;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:12px;
  padding:18px;
}
.shop-sidebar .grp-label{
  font-size:11px;
  color:var(--text-dim);
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-weight:700;
  margin:14px 4px 8px;
}
.shop-sidebar .grp-label:first-child{ margin-top:2px; }

.slot-btn{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  text-align:left;
  padding:11px 12px;
  border-radius:8px;
  border:1px solid transparent;
  background:transparent;
  color:var(--text-muted);
  font-weight:600;
  font-size:14.5px;
  cursor:pointer;
  margin-bottom:4px;
  text-decoration:none;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.shop-sidebar .grp-label.grp-label-info{
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.slot-btn .slot-ico{
  width:28px; height:28px;
  border-radius:6px;
  background:var(--panel-2);
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:14px;
  flex-shrink:0;
}
.slot-btn:hover{ background:var(--panel-2); color:var(--text); }
.slot-btn.active{
  background:var(--panel-3);
  border-color:var(--orange-dim);
  color:var(--amber);
}
.slot-btn.active .slot-ico{ background:var(--orange); border-color:var(--orange-deep); }

/* nick input in sidebar */
.nick-box{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.nick-box label{
  display:block;
  font-size:11.5px;
  color:var(--text-dim);
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:8px;
  font-weight:700;
}
.nick-box input{
  width:100%;
  padding:10px 12px;
  border-radius:7px;
  border:1px solid var(--border-light);
  background:var(--void);
  color:var(--text);
  font-size:14.5px;
  font-family:inherit;
}
.nick-box input:focus{ border-color:var(--amber); }
.nick-hint{ font-size:12px; color:var(--text-dim); margin-top:7px; margin-bottom:0; }
.nick-hint.error{ color:#e2493f; }

/* ---------- shop panels ---------- */
.shop-panel{ display:none; }
.shop-panel.active{ display:block; animation:fadein .25s ease; }
@keyframes fadein{ from{ opacity:0; transform:translateY(4px);} to{ opacity:1; transform:none;} }

.panel-notice{
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:10px;
  padding:14px 16px;
  margin-bottom:26px;
  font-size:14px;
  color:var(--text-muted);
}
.panel-notice .ni{
  width:20px; height:20px;
  border-radius:50%;
  background:var(--panel-2);
  border:1px solid var(--border-light);
  color:var(--amber);
  display:flex; align-items:center; justify-content:center;
  font-size:12px;
  font-weight:800;
  flex-shrink:0;
  margin-top:1px;
}
.panel-notice a{ color:var(--amber); font-weight:600; }
.panel-notice a:hover{ text-decoration:underline; }

.panel-head{ margin-bottom:26px; }
.panel-head h2{ display:flex; align-items:center; gap:10px; }

/* card grid */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:20px;
}

.rank-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:14px;
  padding:24px;
  display:flex;
  flex-direction:column;
  position:relative;
}
.rank-card.featured{ border-color:var(--orange-dim); box-shadow:0 0 0 1px var(--orange-dim) inset; }
.rank-card .badge-tag{
  position:absolute;
  top:-11px; right:18px;
  background:var(--amber);
  color:#0b1622;
  font-size:11px;
  font-weight:800;
  letter-spacing:.5px;
  padding:4px 10px;
  border-radius:5px;
  text-transform:uppercase;
}
.rank-card .badge-tag.badge-discount{ background:var(--green); color:#12210d; }
.rank-card .badge-tag.badge-limited{ background:#c9483f; color:#2a0d0a; }
.rank-icon{
  width:52px; height:52px;
  border-radius:10px;
  background:var(--panel-2);
  border:1px solid var(--border-light);
  display:flex; align-items:center; justify-content:center;
  font-size:24px;
  margin-bottom:16px;
}
.rank-card h3{ font-size:19px; margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.rank-card p{ font-size:14px; flex-grow:1; }

.rank-perks{
  list-style:none;
  padding:0; margin:0 0 18px;
  display:flex; flex-direction:column; gap:7px;
}
.rank-perks li{
  font-size:13.5px;
  color:var(--text-muted);
  display:flex; gap:8px; align-items:flex-start;
}
.rank-perks li::before{ content:'▸'; color:var(--orange); flex-shrink:0; }

.price-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:6px;
}
.price{ font-family:'Inter', sans-serif; font-weight:800; font-size:25px; color:var(--text); }
.price .per{ font-size:12.5px; font-weight:400; color:var(--text-dim); font-family:'Inter',sans-serif; }
.price-alt{ font-size:12.5px; color:var(--text-dim); margin-bottom:16px; }

.currency-toggle{
  display:inline-flex;
  background:var(--panel-2);
  border:1px solid var(--border);
  border-radius:7px;
  padding:3px;
  margin-bottom:16px;
  gap:2px;
}
.currency-toggle button{
  border:none;
  background:transparent;
  color:var(--text-muted);
  font-size:12.5px;
  font-weight:700;
  padding:6px 12px;
  border-radius:5px;
  cursor:pointer;
}
.currency-toggle button.active{ background:var(--orange); color:#0b1622; }

.soon-price{
  font-family:'Inter', sans-serif;
  font-weight:700;
  font-size:16px;
  color:var(--text-dim);
  margin-bottom:16px;
}

/* empty state */
.empty-state{
  text-align:center;
  padding:36px 20px;
  border:1px dashed var(--border-light);
  border-radius:14px;
  background:var(--panel);
}
.empty-state .es-icon{
  width:44px; height:44px;
  margin:0 auto 12px;
  border-radius:10px;
  background:var(--panel-2);
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:20px;
}
.empty-state h3{ font-size:16px; margin-bottom:5px; }
.empty-state p{ font-size:13.5px; margin:0; }

/* toast */
.toast{
  position:fixed;
  bottom:26px; left:50%;
  transform:translate(-50%, 20px);
  background:var(--panel-3);
  border:1px solid var(--border-light);
  color:var(--text);
  padding:12px 20px;
  border-radius:9px;
  font-size:14px;
  font-weight:600;
  box-shadow:0 10px 30px rgba(0,0,0,0.4);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
  z-index:200;
}
.toast.show{ opacity:1; transform:translate(-50%, 0); }

/* ---------- legal / rules pages ---------- */
.legal-page{ padding:56px 0 40px; }
.legal-page h1{ font-size:36px; margin-bottom:10px; }
.legal-page .lead{ max-width:640px; margin-bottom:8px; }
.legal-page .updated{ font-size:12.5px; color:var(--text-dim); margin-bottom:40px; }

.rule-block{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:12px;
  padding:24px 26px;
  margin-bottom:20px;
}
.rule-block h2{
  font-size:18px;
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.rule-block h2 .rn{
  width:30px; height:30px;
  border-radius:8px;
  background:var(--panel-2);
  border:1px solid var(--border-light);
  color:var(--amber);
  font-family:'Inter', sans-serif;
  font-weight:800;
  font-size:13px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.rule-block ul{
  list-style:none;
  margin:0; padding:0;
  display:flex; flex-direction:column; gap:9px;
}
.rule-block li{
  font-size:14.5px;
  color:var(--text-muted);
  display:flex; gap:10px; align-items:flex-start;
}
.rule-block li::before{ content:'▸'; color:var(--orange); flex-shrink:0; }
.discord-mention{
  display:inline-flex;
  align-items:center;
  gap:2px;
  background:rgba(88,101,242,0.16);
  color:#a3b2f7;
  padding:1px 8px 1px 6px;
  border-radius:4px;
  font-weight:600;
  font-size:0.95em;
  text-decoration:none;
  vertical-align:baseline;
}
.discord-mention:hover{ background:rgba(88,101,242,0.28); }
.rule-block a, .legal-section a{ color:var(--amber); font-weight:600; }
.rule-block a:hover, .legal-section a:hover{ text-decoration:underline; }
.rule-block code, .legal-section code{
  background:var(--panel-2);
  border:1px solid var(--border-light);
  border-radius:5px;
  padding:2px 7px;
  font-family:'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  font-size:12.5px;
  color:var(--amber);
  margin-right:2px;
  white-space:nowrap;
}
.wiki-subback{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13.5px;
  font-weight:600;
  color:var(--text-muted);
  text-decoration:none;
  margin-bottom:22px;
}
.wiki-subback:hover{ color:var(--amber); }

.legal-section{ margin-bottom:28px; }
.legal-section h2{ font-size:18px; margin-bottom:10px; color:var(--amber); }
.legal-section p{ font-size:14.5px; max-width:760px; }
.legal-section ul{
  margin:0 0 16px; padding-left:20px;
  color:var(--text-muted); font-size:14.5px;
  display:flex; flex-direction:column; gap:6px;
}

/* ---------- shop gate modal ---------- */
.shop-gate{
  position:fixed; inset:0;
  background:rgba(10,8,6,0.72);
  backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  z-index:500;
  opacity:0; pointer-events:none;
  transition:opacity .18s ease;
}
.shop-gate.open{ opacity:1; pointer-events:auto; }
.shop-gate-panel{
  position:relative;
  width:100%; max-width:380px;
  background:var(--panel);
  border:1px solid var(--border-light);
  border-radius:14px;
  padding:30px 28px 28px;
  text-align:center;
  transform:translateY(10px);
  transition:transform .18s ease;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.shop-gate.open .shop-gate-panel{ transform:translateY(0); }
.shop-gate-close{
  position:absolute; top:12px; right:12px;
  width:28px; height:28px;
  border-radius:7px;
  background:var(--panel-2);
  border:1px solid var(--border);
  color:var(--text-muted);
  cursor:pointer;
  font-size:13px;
  line-height:1;
}
.shop-gate-close:hover{ color:var(--text); border-color:var(--amber); }
.shop-gate-icon{
  width:52px; height:52px;
  margin:0 auto 16px;
  border-radius:12px;
  background:var(--panel-2);
  border:1px solid var(--border-light);
  display:flex; align-items:center; justify-content:center;
  font-size:24px;
}
.shop-gate-panel h3{ font-size:19px; margin-bottom:8px; }
.shop-gate-panel p{ font-size:13.5px; margin-bottom:20px; }
.shop-gate-panel form{ text-align:left; }
.shop-gate-panel label{
  display:block;
  font-size:11.5px;
  color:var(--text-dim);
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:8px;
  font-weight:700;
}
.shop-gate-panel input{
  width:100%;
  padding:11px 13px;
  border-radius:8px;
  border:1px solid var(--border-light);
  background:var(--void);
  color:var(--text);
  font-size:14.5px;
  font-family:inherit;
}
.shop-gate-panel input:focus{ border-color:var(--amber); }

/* ---------- leaderboard page ---------- */
.lb-page{ padding:56px 0 30px; }
.lb-page h1{ font-size:34px; }
.lb-page .lead{ max-width:640px; margin-bottom:8px; }
.lb-page .empty-state{ margin-top:26px; }

/* ---------- wiki page ---------- */
.wiki-page{ padding:50px 0 60px; }
.wiki-page .wiki-title{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
}
.wiki-page .wiki-title .wt-icon{ font-size:34px; }
.wiki-page .wiki-title h1{ margin:0; }
.wiki-page .wiki-lead{ max-width:680px; margin-bottom:36px; }

.wiki-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
}
.wiki-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:12px;
  padding:22px;
  text-decoration:none;
  display:block;
  transition:border-color .15s ease, transform .15s ease;
}
.wiki-card:hover{ border-color:var(--orange-dim); transform:translateY(-2px); }
.wiki-card .wc-icon{
  width:40px; height:40px;
  border-radius:9px;
  background:var(--panel-2);
  border:1px solid var(--border-light);
  display:flex; align-items:center; justify-content:center;
  font-size:19px;
  margin-bottom:14px;
}
.wiki-card h3{ font-size:15.5px; margin-bottom:6px; color:var(--amber); }
.wiki-card p{ font-size:13.5px; color:var(--text-muted); margin:0; }

@media (max-width: 980px){
  .wiki-grid{ grid-template-columns:repeat(2, 1fr); }
}

/* responsive */
@media (max-width: 880px){
  .site-header{ flex-wrap:wrap; padding:12px 18px; }
  .main-nav{ order:3; width:100%; justify-content:center; padding-top:8px; }
  .wrap{ padding:0 18px; }
  .hero h1{ font-size:36px; }
  .hero h1 .pixel{ font-size:38px; }
  .feature-grid{ grid-template-columns:1fr; }
  .shop-layout{ grid-template-columns:1fr; }
  .shop-sidebar{ position:static; }
  .stat-strip{ gap:34px; }
  .wiki-grid{ grid-template-columns:1fr; }
  .community-section{ flex-direction:column; text-align:center; padding:36px 26px; }
  .community-text{ text-align:center; }
  .community-list{ text-align:left; }
  .community-mascot{ width:140px; }
}
