/* Built by tools/build_tebex_template.py. Edit the sources, not this file. */

/* ---- css/main.css ---- */
/*
 * SiegeLands — one stylesheet for every page (main site, ranked, bans, staff).
 *
 * The look borrows from the in-game GUI and the server's own menu style:
 * square panels with a black outline and a light/dark bevel, chunky buttons
 * that press in, yellow for headings, green for good, red for bad.
 */

@font-face {
  font-family: "MinecraftBold";
  src: url("data:font/otf;base64,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") format("opentype");
  font-display: swap;
}

:root {
  --bg: #0d0e0d;
  --panel: #1a1b1a;
  --panel-2: #222422;
  --inset: #101110;
  --line: #2c2f2c;
  --outline: #000;
  --edge-hi: rgba(255, 255, 255, 0.08);
  --edge-lo: rgba(0, 0, 0, 0.55);

  --text: #f2f2f2;
  --text-dim: #b4b8b4;
  --muted: #7c7c7c;

  --yellow: #ffd23f;
  --green: #9be35a;
  --red: #ff5c5c;
  --aqua: #55ffff;
  --gold: #ffaa00;
  --silver: #c6c6c6;
  --bronze: #d38a4f;

  --font-head: "MinecraftBold", system-ui, sans-serif;
  --font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --wrap: 1180px;
  --gutter: 16px;
  --header-h: 64px;

  /* Older names still used by the bans and staff sections. */
  --primary: var(--green);
  --primary-light: #c9f59e;
  --primary-dark: #4f8a24;
  --background: var(--bg);
  --card-bg: var(--panel);
  --card-hover: var(--panel-2);
  --border: var(--line);
  --text-gray: var(--text-dim);
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  color: var(--text);
  background: var(--bg);
}

/* Pre-blurred and pre-darkened, so nothing is filtered live while scrolling. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(13, 14, 13, 0.35) 0%, rgba(13, 14, 13, 0.85) 70%, var(--bg) 100%),
    url("bg-blur.webp") center top / cover no-repeat;
}

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

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

button,
input {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
}

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

h1,
h2,
h3,
h4 {
  font-family: var(--font-head);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.01em;
}

::selection {
  background: var(--yellow);
  color: #000;
}

/* ------------------------------------------------------------------ */
/* Building blocks                                                     */
/* ------------------------------------------------------------------ */

.panel,
.bordered-box {
  background: var(--panel);
  border: 2px solid var(--outline);
  box-shadow: inset 2px 2px 0 var(--edge-hi), inset -2px -2px 0 var(--edge-lo);
}

.panel-pad {
  padding: 20px;
}

/* Minecraft text drops a shadow at a quarter of its own brightness. */
.mc-shadow,
.section-title,
.page-head h1,
.page-hero h1,
.hero-title {
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.section-title,
.page-hero h2,
.wiki-info-block h2,
.faq-wrap h2 {
  font-size: 1.25rem;
  color: var(--yellow);
  text-transform: uppercase;
  margin-bottom: 14px;
}

.kicker {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

.dim {
  color: var(--text-dim);
}

/* Buttons. They press in on click, like the ones in game. */
.btn,
.chunky-btn {
  --btn-bg: #3a3b3a;
  --btn-hi: rgba(255, 255, 255, 0.22);
  --btn-lo: rgba(0, 0, 0, 0.45);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 18px;
  font-family: var(--font-head);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #fff;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.5);
  background: var(--btn-bg);
  border: 2px solid var(--outline);
  box-shadow: inset 2px 2px 0 var(--btn-hi), inset -2px -4px 0 var(--btn-lo);
  user-select: none;
}

.btn:hover,
.chunky-btn:hover {
  outline: 2px solid #fff;
  outline-offset: -4px;
}

.btn:active,
.chunky-btn:active {
  box-shadow: inset 2px 4px 0 var(--btn-lo), inset -2px -2px 0 var(--btn-hi);
  padding-top: 3px;
}

.btn:disabled,
.chunky-btn:disabled {
  opacity: 0.55;
  cursor: progress;
  outline: none;
}

.btn-green,
.join-cta {
  --btn-bg: #4f8a24;
  --btn-hi: rgba(210, 255, 170, 0.35);
}

.btn-yellow {
  --btn-bg: #b88a00;
  --btn-hi: rgba(255, 240, 170, 0.4);
}

.btn-blurple {
  --btn-bg: #4752c4;
  --btn-hi: rgba(200, 205, 255, 0.35);
}

.btn-red {
  --btn-bg: #a52a2a;
  --btn-hi: rgba(255, 190, 190, 0.3);
}

.btn-sm {
  min-height: 36px;
  padding: 0 12px;
  font-size: 0.78rem;
}

.btn-block {
  width: 100%;
}

.btn svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* Status pill: a coloured square and a label. */
.status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-dim);
}

.status::before {
  content: "";
  width: 8px;
  height: 8px;
  background: var(--muted);
  box-shadow: 0 0 0 2px #000;
  flex-shrink: 0;
}

.status.is-online { color: var(--green); }
.status.is-online::before { background: var(--green); }
.status.is-offline { color: var(--red); }
.status.is-offline::before { background: var(--red); }

/* Search: an inset field with a button glued on. */
.search {
  display: flex;
  gap: 0;
  margin-bottom: 20px;
}

.search-field,
.search input {
  flex: 1;
  min-width: 0;
  height: 48px;
  padding: 0 14px;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--text);
  background: var(--inset);
  border: 2px solid var(--outline);
  border-right: 0;
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.6);
  outline: none;
}

.search input::placeholder {
  color: var(--muted);
}

.search input:focus {
  border-color: var(--yellow);
}

.search .btn {
  min-height: 48px;
}

/* Tabs. Shared by events, leaderboards and anywhere else that switches panels. */
.tabs,
.events-tabs {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  margin-bottom: 16px;
}

.tabs::-webkit-scrollbar,
.events-tabs::-webkit-scrollbar {
  display: none;
}

.tab-btn,
.event-tab-btn {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0 16px;
  font-family: var(--font-head);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  background: var(--inset);
  border: 2px solid var(--outline);
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.5);
}

.tab-btn:hover,
.event-tab-btn:hover {
  color: #fff;
}

.tab-btn.active,
.event-tab-btn.active {
  color: var(--yellow);
  background: var(--panel-2);
  box-shadow: inset 2px 2px 0 var(--edge-hi), inset -2px -2px 0 var(--edge-lo);
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.tab-panel,
.event-tab-panel {
  display: none;
}

.tab-panel.active,
.event-tab-panel.active {
  display: block;
}

/* Data rows. */
.rows {
  display: flex;
  flex-direction: column;
}

.row-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-top: 2px solid var(--line);
}

.row-line:first-child {
  border-top: 0;
}

.empty,
.lb-empty,
.leaderboard-empty,
.recent-matches-empty {
  padding: 32px 16px;
  text-align: center;
  color: var(--text-dim);
}

.is-error,
.leaderboard-empty.error,
.error-msg {
  color: var(--red);
}

/* Loading shimmer. Opacity only, so it costs nothing to animate. */
@keyframes skel {
  50% { opacity: 0.45; }
}

.skel {
  display: block;
  background: var(--panel-2);
  animation: skel 1.1s steps(2, end) infinite;
}

/* Kept as a no-op so markup that still carries it does not hide anything. */
.reveal {
  opacity: 1;
}

/* ------------------------------------------------------------------ */
/* Header                                                              */
/* ------------------------------------------------------------------ */

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  min-height: var(--header-h);
  background: #121312;
  border-bottom: 2px solid var(--outline);
  box-shadow: inset 0 -2px 0 rgba(255, 255, 255, 0.05), 0 6px 18px rgba(0, 0, 0, 0.35);
}

.header-inner {
  width: min(var(--wrap), 100% - 2 * var(--gutter));
  min-height: var(--header-h);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 20px;
}

.nav-logo-link {
  flex-shrink: 0;
}

.nav-logo {
  width: 160px;
  height: auto;
  image-rendering: pixelated;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.site-nav a {
  position: relative;
  padding: 8px 10px;
  font-family: var(--font-head);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  white-space: nowrap;
}

.site-nav a:hover {
  color: #fff;
}

.site-nav a[aria-current="page"] {
  color: var(--yellow);
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.site-nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 0;
  height: 2px;
  background: var(--yellow);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.ip-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  padding: 0 12px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  color: #fff;
  background: var(--inset);
  border: 2px solid var(--outline);
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.ip-chip:hover {
  border-color: var(--yellow);
}

.ip-chip .status {
  font-size: 0.72rem;
}

.ip-chip-ip {
  text-transform: uppercase;
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 40px;
  align-items: center;
  justify-content: center;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.menu-toggle span,
.menu-toggle span::before,
.menu-toggle span::after {
  display: block;
  width: 18px;
  height: 2px;
  background: #fff;
  position: relative;
}

.menu-toggle span::before,
.menu-toggle span::after {
  content: "";
  position: absolute;
  left: 0;
}

.menu-toggle span::before { top: -6px; }
.menu-toggle span::after { top: 6px; }

.site-header.is-open .menu-toggle span { background: transparent; }
.site-header.is-open .menu-toggle span::before { top: 0; transform: rotate(45deg); }
.site-header.is-open .menu-toggle span::after { top: 0; transform: rotate(-45deg); }

/* ------------------------------------------------------------------ */
/* Page layout                                                         */
/* ------------------------------------------------------------------ */

.page,
.page-wrap,
.inner-page-wrap {
  flex: 1;
  width: min(var(--wrap), 100% - 2 * var(--gutter));
  margin: 0 auto;
  padding: 28px 0 48px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.page-head,
.page-hero {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 24px;
}

/* The bans and staff templates wrap their title in a box; render it like
   every other page's title instead. */
.page-hero.bordered-box {
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
}

.page-head h1,
.page-hero h1 {
  font-size: clamp(1.8rem, 5vw, 2.6rem);
  color: #fff;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.page-head p,
.page-hero p {
  color: var(--text-dim);
  max-width: 60ch;
}

.page-head-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.chip {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 6px 10px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  background: var(--inset);
  border: 2px solid var(--outline);
}

.chip b {
  color: #fff;
  font-weight: 400;
}

.grid-2,
.grid-3 {
  display: grid;
  gap: 16px;
}

.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3,
.card-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.card-grid-3 {
  display: grid;
  gap: 16px;
}

/* ------------------------------------------------------------------ */
/* Home                                                                */
/* ------------------------------------------------------------------ */

.hero {
  position: relative;
  overflow: hidden;
  min-height: 420px;
  display: flex;
  align-items: flex-end;
  background: #111 none center 30% / cover no-repeat;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(10, 11, 10, 0.94) 0%, rgba(10, 11, 10, 0.8) 45%, rgba(10, 11, 10, 0.2) 100%);
}

.hero-body {
  position: relative;
  padding: 36px;
  max-width: 620px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.hero-kicker {
  color: var(--green);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.hero-title {
  font-size: clamp(2.6rem, 8vw, 4.4rem);
  line-height: 0.95;
  color: #fff;
  text-shadow: 4px 4px 0 rgba(0, 0, 0, 0.7);
}

.hero-title span {
  color: var(--green);
}

.hero-subtitle {
  color: var(--text-dim);
  font-size: 1.05rem;
  max-width: 44ch;
}

.ip-box {
  display: flex;
  align-items: stretch;
  max-width: 460px;
}

.ip-box-field {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  padding: 8px 14px;
  background: rgba(0, 0, 0, 0.7);
  border: 2px solid var(--outline);
  border-right: 0;
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.ip-box-ip {
  font-family: var(--font-head);
  font-size: 1.2rem;
  color: #fff;
  letter-spacing: 0.04em;
}

.ip-box .btn {
  min-height: 60px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.social-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.social-icon {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-dim);
  background: rgba(0, 0, 0, 0.5);
  border: 2px solid var(--outline);
}

.social-icon:hover {
  color: #fff;
  border-color: var(--yellow);
}

.social-icon svg {
  width: 18px;
  height: 18px;
}

/* Quick links: a row of inventory-ish tiles. */
.quick-links {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.quick-link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px;
  background: var(--panel);
  border: 2px solid var(--outline);
  box-shadow: inset 2px 2px 0 var(--edge-hi), inset -2px -2px 0 var(--edge-lo);
  border-top: 4px solid var(--tone, var(--yellow));
}

.quick-link:hover {
  background: var(--panel-2);
  outline: 2px solid #fff;
  outline-offset: -4px;
}

.quick-link strong {
  font-family: var(--font-head);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--tone, var(--yellow));
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.quick-link span {
  color: var(--text-dim);
  font-size: 0.8rem;
  line-height: 1.35;
}

/* Gamemodes. */
.mode-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.mode-card-img {
  aspect-ratio: 16 / 8;
  border-bottom: 2px solid var(--outline);
  overflow: hidden;
  background: #111;
}

.mode-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mode-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
}

.mode-card h3 {
  font-size: 1.2rem;
  color: var(--yellow);
  text-transform: uppercase;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.mode-card-tag {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.mode-card p {
  color: var(--text-dim);
  font-size: 0.92rem;
  flex: 1;
}

.mode-card .btn {
  margin-top: 6px;
}

/* Lunar partner block. */
.lunar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 24px;
  padding: 20px;
}

.lunar-banner {
  width: 100%;
  height: auto;
  border: 2px solid var(--outline);
}

.lunar-text {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lunar-text h2 {
  font-size: clamp(1.3rem, 3vw, 1.7rem);
  color: #fff;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.lunar-text p {
  color: var(--text-dim);
}

.lunar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.lunar-detail {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  padding: 0 20px 20px;
}

.lunar-detail h3 {
  font-size: 0.95rem;
  color: var(--yellow);
  text-transform: uppercase;
  margin-bottom: 10px;
}

/* "✦ Thing" lists, straight from the in-game lore style. */
.star-list {
  list-style: none;
  display: grid;
  gap: 8px;
}

.star-list li {
  position: relative;
  padding-left: 20px;
  color: var(--text);
  font-size: 0.92rem;
}

.star-list li::before {
  content: "\2726";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--yellow);
}

.star-list em {
  font-style: normal;
  color: var(--muted);
  font-size: 0.78rem;
  text-transform: uppercase;
}

.step-list {
  list-style: none;
  counter-reset: step;
  display: grid;
  gap: 10px;
}

.step-list li {
  counter-increment: step;
  position: relative;
  min-height: 26px;
  padding: 2px 0 0 36px;
  color: var(--text-dim);
  font-size: 0.92rem;
}

.step-list li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0;
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-head);
  color: #000;
  background: var(--green);
  border: 2px solid var(--outline);
}

/* An actual Minecraft inventory slot, for showing items and capes. */
.mc-slot {
  background: #8b8b8b;
  border: 2px solid;
  border-color: #373737 #fff #fff #373737;
}

.cape-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.cape {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: center;
  font-size: 0.8rem;
  color: var(--text-dim);
}

.cape .mc-slot {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.cape img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cape:hover .mc-slot {
  background: #a0a0a0;
}

.code-btn {
  font-family: var(--font-head);
  color: var(--yellow);
  background: var(--inset);
  border: 2px dashed var(--yellow);
  padding: 4px 10px;
  letter-spacing: 0.08em;
}

.code-btn:hover {
  background: #2a2510;
}

.lunar-code {
  margin-top: 10px;
  font-size: 0.82rem;
  color: var(--text-dim);
}

/* FAQ and rules: native <details>, so opening one is instant and needs no JS. */
.accordion {
  display: grid;
  gap: 6px;
}

.accordion-item {
  background: var(--inset);
  border: 2px solid var(--outline);
}

.accordion-trigger {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-size: 0.92rem;
  color: var(--text);
  cursor: pointer;
  user-select: none;
}

.accordion-trigger::-webkit-details-marker {
  display: none;
}

.accordion-trigger::after {
  content: "+";
  font-size: 1.1rem;
  color: var(--yellow);
  flex-shrink: 0;
}

.accordion-item[open] > .accordion-trigger::after {
  content: "\2212";
}

.accordion-trigger:hover {
  background: var(--panel);
}

.accordion-item[open] > .accordion-trigger {
  color: var(--yellow);
}

.accordion-panel {
  padding: 0 14px 14px;
}

/* "| text" lines, the in-game Information block. */
.accordion-panel p,
.bar-list li {
  border-left: 2px solid var(--yellow);
  padding-left: 10px;
  color: var(--text-dim);
  font-size: 0.92rem;
}

.bar-list,
.accordion-panel ul {
  list-style: none;
  display: grid;
  gap: 6px;
}

.accordion-panel li {
  border-left: 2px solid var(--yellow);
  padding-left: 10px;
  color: var(--text-dim);
  font-size: 0.92rem;
}

.faq-wrap,
.wiki-info-block {
  padding: 20px;
}

.wiki-info-block > ul {
  list-style: none;
  display: grid;
  gap: 6px;
}

.wiki-info-block > ul li {
  border-left: 2px solid var(--yellow);
  padding-left: 10px;
  color: var(--text-dim);
  font-size: 0.92rem;
}

.helpful-links {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 8px;
}

.helpful-link-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 14px;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.helpful-link-card:hover {
  border-color: var(--yellow);
}

.helpful-link-card strong {
  font-family: var(--font-head);
  font-weight: 400;
  color: var(--yellow);
}

.helpful-link-card span {
  color: var(--text-dim);
  font-size: 0.82rem;
}

/* Legal text. */
.text-block {
  padding: 24px;
}

.legal-doc {
  display: grid;
  gap: 12px;
  max-width: 80ch;
}

.legal-doc h2 {
  font-size: 1.05rem;
  color: var(--yellow);
  margin-top: 10px;
}

.legal-doc p,
.legal-doc li {
  color: var(--text-dim);
  font-size: 0.95rem;
}

.legal-doc ul {
  margin-left: 20px;
  display: grid;
  gap: 6px;
}

/* ------------------------------------------------------------------ */
/* Events                                                              */
/* ------------------------------------------------------------------ */

.events-shell {
  padding: 20px;
}

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

.event-state-card {
  padding: 16px;
}

.event-state-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.event-state-head h2 {
  font-size: 1.15rem;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.event-name-koth { color: var(--red); }
.event-name-kotm { color: #ff7ad9; }
.event-name-kotp { color: var(--gold); }

.event-status,
.badge,
.stat-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-dim);
  background: var(--inset);
  border: 2px solid var(--outline);
}

.event-status.active,
.stat-badge.earth,
.stat-badge.spear,
.stat-badge.shop,
.stat-badge.ranked { color: var(--green); }
.event-status.inactive,
.stat-badge.error { color: var(--red); }

.event-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding-top: 10px;
  margin-top: 10px;
  border-top: 2px solid var(--line);
  font-size: 0.92rem;
}

.event-row-label { color: var(--text-dim); }
.event-row-value { font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums; color: #fff; }
.event-row-value.none { color: var(--muted); }

.event-foot {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 16px;
}

.event-updated,
.last-updated,
.lookup-hint {
  font-size: 0.8rem;
  color: var(--muted);
}

#events-countdown {
  color: var(--green);
}

/* ------------------------------------------------------------------ */
/* Leaderboards (survival)                                             */
/* ------------------------------------------------------------------ */

.leaderboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.leaderboard-card {
  min-height: 200px;
  display: flex;
  flex-direction: column;
}

.leaderboard-card-header {
  padding: 14px 16px 10px;
}

.leaderboard-card-title {
  font-family: var(--font-head);
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.leaderboard-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.leaderboard-table th {
  text-align: left;
  font-family: var(--font-body);
  font-weight: 700;
  font-weight: 400;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  padding: 6px 16px;
}

.leaderboard-table th:last-child,
.leaderboard-table td:last-child {
  text-align: right;
}

.leaderboard-table td {
  padding: 7px 16px;
  border-top: 2px solid var(--line);
}

.leaderboard-rank {
  width: 1%;
  white-space: nowrap;
  font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}

.leaderboard-player-wrap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.leaderboard-player-skin {
  width: 20px;
  height: 20px;
  image-rendering: pixelated;
  background: var(--inset);
  flex-shrink: 0;
}

.leaderboard-player-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 14ch;
  display: inline-block;
  vertical-align: middle;
}

.leaderboard-value {
  font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Same colours as the scoreboard in game. */
.title-money, .value-money { color: #55ff55; }
.title-playtime, .value-playtime { color: #ffff55; }
.title-koth, .value-koth,
.title-kills, .value-kills { color: #ff5555; }
.title-kotm, .value-kotm { color: #ff7ad9; }
.title-kotp, .value-kotp { color: var(--gold); }

.rank-1 { color: var(--gold); }
.rank-2 { color: var(--silver); }
.rank-3 { color: var(--bronze); }

/* ------------------------------------------------------------------ */
/* Lookup                                                              */
/* ------------------------------------------------------------------ */

.results-area { display: none; }
.results-area.visible { display: block; }

.results-player-name {
  font-family: var(--font-head);
  font-size: 1.1rem;
  margin-bottom: 14px;
}

.results-player-name span {
  color: var(--yellow);
}

.results-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.stat-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px 8px;
}

.stat-card-title {
  font-family: var(--font-head);
  color: var(--yellow);
  text-transform: uppercase;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.stat-body {
  padding: 0 16px 8px;
}

.stat-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-top: 2px solid var(--line);
  font-size: 0.9rem;
}

.stat-row-label { color: var(--text-dim); }
.stat-row-value { font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums; color: #fff; text-align: right; }
.stat-row-value.none { color: var(--muted); }

/* ------------------------------------------------------------------ */
/* Ranked                                                              */
/* ------------------------------------------------------------------ */

/* Kit picker: an inventory hotbar. The selected kit gets the white frame. */
.hotbar {
  display: flex;
  align-items: stretch;
  gap: 4px;
  margin-bottom: 16px;
}

.kit-tabs-inner {
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.kit-tabs-inner::-webkit-scrollbar {
  display: none;
}

.kit-tabs {
  display: flex;
  width: max-content;
  padding: 4px;
  gap: 4px;
  background: #c6c6c6;
  border: 2px solid var(--outline);
  box-shadow: inset 2px 2px 0 #fff, inset -2px -2px 0 #555;
}

.kit-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 76px;
  height: 72px;
  padding: 6px 4px 4px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.66rem;
  color: #1c1c1c;
  background: #8b8b8b;
  border: 2px solid;
  border-color: #373737 #fff #fff #373737;
  white-space: nowrap;
  overflow: hidden;
}

.kit-tab:hover {
  background: #a0a0a0;
  color: #1f1f1f;
}

.kit-tab.active {
  background: #6f6f6f;
  color: #fff;
  text-shadow: 1px 1px 0 #3f3f3f;
  outline: 3px solid #fff;
  outline-offset: -1px;
  position: relative;
  z-index: 1;
}

.kit-tab-icon img {
  width: 32px;
  height: 32px;
  image-rendering: pixelated;
  object-fit: contain;
}

.kit-scroll-btn {
  flex-shrink: 0;
  width: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--panel);
  border: 2px solid var(--outline);
}

.kit-scroll-btn:disabled {
  display: none;
}

.kit-panel {
  padding: 20px;
}

.lb-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.lb-title {
  font-family: var(--font-head);
  font-size: 1.25rem;
  color: var(--yellow);
  text-transform: uppercase;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.lb-sub {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
}

.lb-table {
  display: flex;
  flex-direction: column;
}

.lb-row {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 80px 96px 64px;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 6px 10px;
  border-top: 2px solid var(--line);
}

a.lb-row:hover {
  background: var(--panel-2);
  box-shadow: inset 3px 0 0 var(--yellow);
}

.lb-row.is-head {
  min-height: 0;
  padding-bottom: 8px;
  border-top: 0;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.7rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.lb-row.is-head > :nth-child(n + 3),
.lb-value {
  text-align: right;
}

.lb-rank {
  font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}

.lb-rank.is-1 { color: var(--gold); }
.lb-rank.is-2 { color: var(--silver); }
.lb-rank.is-3 { color: var(--bronze); }

.lb-player {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.lb-head-img {
  width: 28px;
  height: 28px;
  image-rendering: pixelated;
  background: var(--inset);
  flex-shrink: 0;
  box-shadow: 0 0 0 2px #000;
}

.lb-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lb-value {
  font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-size: 0.9rem;
  color: var(--text-dim);
}

.lb-value.is-elo {
  color: var(--green);
}

/* Player profile. */
.profile-hero {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 20px 24px;
}

.profile-skin {
  width: 110px;
  height: 180px;
  object-fit: contain;
  image-rendering: pixelated;
  flex-shrink: 0;
}

.profile-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.profile-username {
  font-family: var(--font-head);
  font-size: clamp(1.8rem, 5vw, 2.6rem);
  line-height: 1;
  color: #fff;
  text-shadow: 3px 3px 0 rgba(0, 0, 0, 0.6);
  overflow-wrap: anywhere;
}

.profile-stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
}

.profile-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.profile-stat-val {
  font-family: var(--font-head);
  font-size: 1.5rem;
  color: var(--green);
}

.profile-stat-lbl,
.stat-lbl,
.elo-lbl,
.kit-divs-heading {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.div-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  margin-bottom: 12px;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.div-strip-left {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.div-name {
  font-family: var(--font-head);
  font-size: 1.3rem;
  color: var(--yellow);
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

/* XP bar. */
.progress-wrap {
  width: 240px;
  max-width: 100%;
  height: 10px;
  background: #1c1c1c;
  border: 2px solid var(--outline);
}

.progress-fill {
  height: 100%;
  background: #80ff20;
  box-shadow: inset 0 -2px 0 #4c9a14;
}

.progress-label {
  font-size: 0.8rem;
  color: var(--text-dim);
}

.div-strip-right {
  text-align: right;
}

.elo-big {
  font-family: var(--font-head);
  font-size: 2.2rem;
  line-height: 1;
  color: var(--green);
  text-shadow: 3px 3px 0 rgba(0, 0, 0, 0.6);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 8px;
}

.stat-tile {
  padding: 12px 14px;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.stat-val {
  font-family: var(--font-head);
  font-size: 1.3rem;
  color: #fff;
  margin-bottom: 4px;
}

.stat-val.is-rank {
  color: var(--yellow);
}

.global-panel-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 12px;
  align-items: start;
}

.global-panel-right {
  background: var(--inset);
  border: 2px solid var(--outline);
}

.kit-divs-heading {
  padding: 10px 12px;
  border-bottom: 2px solid var(--line);
}

.kit-divs-list {
  max-height: 232px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #444 transparent;
}

.kit-div-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  border-top: 2px solid var(--line);
  font-size: 0.88rem;
}

.kit-div-row:first-child {
  border-top: 0;
}

.kit-div-label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.kit-div-label img {
  width: 16px;
  height: 16px;
  image-rendering: pixelated;
}

.kit-div-name {
  color: var(--text-dim);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kit-div-val {
  font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.kit-div-val small {
  color: var(--muted);
  font-size: 0.8em;
}

.recent-matches-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px 10px;
}

.recent-matches-title {
  font-family: var(--font-head);
  font-size: 1.05rem;
  text-transform: uppercase;
  color: var(--yellow);
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.recent-matches-sub {
  font-size: 0.8rem;
  color: var(--muted);
}

.match-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, 0.7fr) minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 10px 20px;
  border-top: 2px solid var(--line);
}

.match-player {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.match-player.is-right {
  justify-content: flex-end;
  text-align: right;
}

.match-head {
  width: 32px;
  height: 32px;
  image-rendering: pixelated;
  flex-shrink: 0;
  background: var(--inset);
  box-shadow: 0 0 0 2px #000;
}

.match-player-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.match-name {
  font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.match-name a:hover {
  color: var(--yellow);
}

.match-rating,
.match-meta {
  font-size: 0.75rem;
  color: var(--muted);
}

.match-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  text-align: center;
  min-width: 0;
}

.match-kit {
  font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-size: 0.85rem;
}

.match-result {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  padding: 2px 10px;
  background: var(--inset);
  border: 2px solid var(--outline);
  color: var(--text-dim);
}

.match-result.win { color: var(--green); }
.match-result.loss { color: var(--red); }

.match-extra {
  font-family: var(--font-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-size: 0.75rem;
  color: var(--muted);
}

.match-extra.elo-up { color: var(--green); }
.match-extra.elo-down { color: var(--red); }

/* ------------------------------------------------------------------ */
/* Staff cards (used by /staff)                                        */
/* ------------------------------------------------------------------ */

.simple-card {
  padding: 16px;
}

.owner-card {
  display: grid;
  grid-template-columns: 80px 1fr;
  align-items: center;
  gap: 14px;
}

.owner-skin {
  width: 80px;
  height: 120px;
  object-fit: contain;
  image-rendering: pixelated;
}

.owner-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.owner-role {
  color: var(--aqua);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
}

.owner-name {
  font-family: var(--font-head);
  font-size: 1.15rem;
}

.owner-since {
  color: var(--text-dim);
  font-size: 0.8rem;
}

/* ------------------------------------------------------------------ */
/* Footer, toast                                                       */
/* ------------------------------------------------------------------ */

.site-footer {
  background: #0a0b0a;
  border-top: 2px solid var(--outline);
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.04);
  color: var(--text-dim);
  font-size: 0.88rem;
}

.footer-inner {
  width: min(var(--wrap), 100% - 2 * var(--gutter));
  margin: 0 auto;
  padding: 32px 0 20px;
  display: grid;
  grid-template-columns: 1.6fr repeat(3, 1fr);
  gap: 24px;
}

.footer-col h3 {
  font-size: 0.85rem;
  color: var(--yellow);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
}

.footer-col ul {
  list-style: none;
  display: grid;
  gap: 6px;
}

.footer-col a:hover {
  color: #fff;
}

.footer-brand img {
  width: 140px;
  height: auto;
  margin-bottom: 10px;
}

.footer-bottom {
  width: min(var(--wrap), 100% - 2 * var(--gutter));
  margin: 0 auto;
  padding: 14px 0 22px;
  border-top: 2px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 20px;
  font-size: 0.78rem;
  color: var(--muted);
}

.footer-bottom a:hover {
  color: #fff;
}

.copy-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  z-index: 80;
  transform: translateX(-50%);
  padding: 10px 16px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--green);
  background: rgba(0, 0, 0, 0.88);
  border: 2px solid var(--outline);
  box-shadow: inset 0 0 0 2px #2b2b2b;
  pointer-events: none;
}

/* ------------------------------------------------------------------ */
/* Responsive                                                          */
/* ------------------------------------------------------------------ */

@media (max-width: 1100px) {
  .quick-links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lunar-detail {
    grid-template-columns: 1fr 1fr;
  }

  .lunar-detail > :last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 980px) {
  :root {
    --header-h: 58px;
  }

  .menu-toggle {
    display: inline-flex;
  }

  .header-inner {
    flex-wrap: wrap;
    gap: 10px;
  }

  .nav-logo-link {
    margin-right: auto;
  }

  .nav-logo {
    width: 128px;
  }

  .site-nav {
    order: 3;
    flex-basis: 100%;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding-bottom: 12px;
  }

  .site-header.is-open .site-nav {
    display: flex;
  }

  .site-nav a {
    padding: 12px 4px;
    font-size: 0.95rem;
    border-top: 2px solid var(--line);
  }

  .site-nav a[aria-current="page"]::after {
    display: none;
  }

  .grid-3,
  .card-grid-3,
  .lunar {
    grid-template-columns: 1fr;
  }

  .global-panel-layout {
    grid-template-columns: 1fr;
  }

  .footer-inner {
    grid-template-columns: 1fr 1fr;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  :root {
    --gutter: 12px;
  }

  .leaderboard-grid,
  .results-grid {
    grid-template-columns: 1fr;
  }

  .page,
  .page-wrap,
  .inner-page-wrap {
    padding-top: 18px;
    gap: 14px;
  }

  .header-actions .btn {
    display: none;
  }

  .ip-chip .status-label {
    display: none;
  }

  .hero {
    min-height: 0;
  }

  .hero::before {
    background: linear-gradient(180deg, rgba(10, 11, 10, 0.55) 0%, rgba(10, 11, 10, 0.95) 55%);
  }

  .hero-body {
    padding: 120px 16px 20px;
  }

  .hero-actions .btn {
    flex: 1;
  }

  .quick-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lunar,
  .panel-pad,
  .faq-wrap,
  .wiki-info-block,
  .events-shell,
  .kit-panel,
  .text-block {
    padding: 14px;
  }

  .lunar-detail {
    grid-template-columns: 1fr;
    padding: 0 14px 14px;
  }

  .lunar-actions .btn {
    flex: 1;
  }

  .search {
    margin-bottom: 14px;
  }

  .search .btn {
    padding: 0 12px;
  }

  .kit-scroll-btn {
    display: none;
  }

  .kit-tab {
    width: 64px;
    height: 64px;
    font-size: 0.58rem;
  }

  .kit-tab-icon img {
    width: 28px;
    height: 28px;
  }

  .lb-row {
    grid-template-columns: 34px minmax(0, 1fr) 64px;
    gap: 8px;
    padding: 6px 4px;
  }

  .lb-hide-sm {
    display: none;
  }

  .profile-hero {
    flex-direction: column;
    text-align: center;
    padding: 16px;
  }

  .profile-skin {
    width: 80px;
    height: 130px;
  }

  .profile-info {
    align-items: center;
  }

  .profile-stats-row {
    justify-content: center;
  }

  .div-strip-right {
    text-align: left;
  }

  .match-row {
    grid-template-columns: minmax(0, 1fr) 84px minmax(0, 1fr);
    gap: 8px;
    padding: 10px 12px;
  }

  .match-head {
    width: 24px;
    height: 24px;
  }

  .match-name {
    font-size: 0.8rem;
  }

  .recent-matches-head {
    padding: 14px 12px 8px;
  }

  .footer-inner {
    grid-template-columns: 1fr 1fr;
    padding-top: 24px;
  }
}

.stat-row-value a {
  color: var(--yellow);
}

.stat-row-value a:hover {
  text-decoration: underline;
}

.stat-body .error-msg {
  padding: 8px 0 12px;
  font-size: 0.9rem;
}

.stack {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.page-head .kicker:hover {
  color: var(--yellow);
}

/* Homepage: live lists and join cards. */
.panel-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.more-link {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-dim);
  white-space: nowrap;
}

.more-link:hover {
  color: var(--yellow);
}

.live-list {
  display: flex;
  flex-direction: column;
}

.live-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 46px;
  padding: 8px 4px;
  border-top: 2px solid var(--line);
}

.live-row:first-child {
  border-top: 0;
}

a.live-row:hover {
  background: var(--panel-2);
  box-shadow: inset 3px 0 0 var(--yellow);
}

.live-name {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.live-name b {
  font-weight: 700;
  min-width: 36px;
}

.live-name .lb-head-img {
  width: 24px;
  height: 24px;
}

.live-value {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.join-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.join-card h3 {
  font-size: 1.05rem;
  color: var(--yellow);
  text-transform: uppercase;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.join-card .ip-box .btn {
  min-height: 48px;
}

.join-card .ip-box-ip {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1rem;
  overflow-wrap: anywhere;
}

.join-alt {
  font-size: 0.85rem;
  color: var(--text-dim);
}

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

/* Homepage: plain-text overview (also what search engines read). */
.about-lead {
  max-width: 70ch;
  color: var(--text-dim);
  margin-bottom: 16px;
}

.about-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 24px;
}

.about-grid h3 {
  font-size: 1rem;
  color: var(--yellow);
  margin-bottom: 4px;
}

.about-grid p {
  color: var(--text-dim);
  font-size: 0.95rem;
}

@media (max-width: 640px) {
  .about-grid {
    grid-template-columns: 1fr;
  }
}


/* ---- tebex-store/store.css ---- */
/*
 * Store-only styles. Everything shared (panels, buttons, palette, fonts)
 * comes from the main site's /css/main.css.
 */

.pixel {
  image-rendering: pixelated;
}

/* ------------------------------------------------------------ fonts */
/* Two Minecraft fonts, used the way EuropeMC's store uses them: the chunky */
/* bold one for titles, buttons, badges, prices and names; the regular     */
/* pixel one for everything else, including small labels in spaced caps.  */

@font-face {
  font-family: "Minecraftia";
  src: url("data:font/ttf;base64,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") format("truetype");
  font-display: swap;
  /* The font ships with a tall ascender that pushes text high in its box. */
  ascent-override: 80%;
  descent-override: 20%;
  line-gap-override: 0%;
}

body.store {
  --font-head: "MinecraftBold", "Minecraftia", ui-monospace, monospace;
  --font-body: "Minecraftia", ui-monospace, monospace;
  font-family: var(--font-body);
  font-size: 15px;
  /* Neither font has real weights; never fake a bold. */
  font-synthesis: none;
}

body.store b,
body.store strong {
  font-family: var(--font-head);
  font-weight: 400;
}

/* Titles are plain white, like theirs. */
body.store .section-title,
body.store .view-title h1,
body.store .view-title h1 span,
body.store .widget h3,
body.store .footer-col h3 {
  color: #fff;
}

body.store .kicker,
body.store .chip,
body.store .badge,
body.store .status,
body.store .compare tbody th,
body.store .opt-single {
  font-family: var(--font-body);
  font-weight: 400;
}

body.store .tile-text span,
body.store .kicker,
body.store .compare thead th:first-child {
  letter-spacing: 0.06em;
}

body.store .card-price b,
body.store .big-price,
body.store .hero-stat b,
body.store .value-list b,
body.store .cart-sum b,
body.store .account-text b,
body.store .cart-count,
body.store .corner-badge,
body.store .tile-badge,
body.store .link-btn {
  font-family: var(--font-head);
  font-weight: 400;
}

body.store .compare tbody td,
body.store .live-value,
body.store .qty b {
  font-family: var(--font-body);
  font-weight: 400;
}


/* ------------------------------------------------------------ header */

.store-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #121312;
  border-bottom: 2px solid var(--outline);
  box-shadow: inset 0 -2px 0 rgba(255, 255, 255, 0.05), 0 6px 18px rgba(0, 0, 0, 0.35);
}

.store-header-inner {
  width: min(var(--wrap), 100% - 2 * var(--gutter));
  margin: 0 auto;
  min-height: 72px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.store-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-right: auto;
}

.store-logo img {
  width: 170px;
  height: auto;
}

.store-logo span {
  font-family: var(--font-head);
  font-size: 0.85rem;
  color: #000;
  background: var(--yellow);
  padding: 3px 8px;
  border: 2px solid var(--outline);
  text-transform: uppercase;
}

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

.account {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 48px;
  padding: 0 12px 0 6px;
  background: var(--inset);
  border: 2px solid var(--outline);
  text-align: left;
}

.account:hover {
  border-color: var(--yellow);
}

.account-head {
  width: 32px;
  height: 32px;
  image-rendering: pixelated;
  box-shadow: 0 0 0 2px #000;
}

.account-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.account-text small {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.account-text b {
  font-size: 0.95rem;
}

.cart-btn {
  position: relative;
  min-height: 48px;
}

.cart-btn svg {
  width: 18px;
  height: 18px;
}

.cart-count[hidden] {
  display: none;
}

.cart-count {
  position: absolute;
  top: -10px;
  right: -10px;
  min-width: 24px;
  height: 24px;
  padding: 0 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 0.8rem;
  color: #000;
  background: var(--yellow);
  border: 2px solid var(--outline);
  text-shadow: none;
}

.store-nav {
  border-top: 2px solid var(--line);
}

.store-nav-inner {
  width: min(var(--wrap), 100% - 2 * var(--gutter));
  margin: 0 auto;
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
}

.store-nav-inner::-webkit-scrollbar {
  display: none;
}

.store-nav a {
  position: relative;
  flex: 0 0 auto;
  padding: 12px 12px;
  font-family: var(--font-head);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-dim);
}

.store-nav a:hover {
  color: #fff;
}

.store-nav a[aria-current="page"] {
  color: var(--yellow);
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.store-nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 0;
  height: 2px;
  background: var(--yellow);
}

.icon-btn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  line-height: 1;
  color: var(--text-dim);
  background: var(--inset);
  border: 2px solid var(--outline);
}

.icon-btn:hover {
  color: #fff;
  border-color: var(--yellow);
}

.badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.badge-gold {
  color: #000;
  background: var(--yellow);
}

.corner-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  z-index: 1;
  padding: 4px 10px;
  font-family: var(--font-head);
  font-size: 0.72rem;
  text-transform: uppercase;
  color: #000;
  background: var(--yellow);
  border: 2px solid var(--outline);
}

/* ------------------------------------------------------------ home tiles */

.tiles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 170px;
  gap: 12px;
}

.tile {
  --tone: var(--yellow);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  padding: 20px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--tone) 85%, #fff 15%), color-mix(in srgb, var(--tone) 70%, #000 30%));
  border: 2px solid var(--outline);
  box-shadow: inset 3px 3px 0 rgba(255, 255, 255, 0.35), inset -3px -5px 0 rgba(0, 0, 0, 0.3);
}

.tile:nth-child(2),
.tile:nth-child(3),
.tile:nth-child(4) {
  grid-column: span 2;
}

.tile-big {
  grid-column: span 2;
  grid-row: span 2;
}

.tile:hover {
  outline: 3px solid #fff;
  outline-offset: -6px;
}

.tile:active {
  transform: translateY(2px);
}

.tile-text {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 62%;
}

.tile-text b {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  line-height: 1;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 3px 3px 0 rgba(0, 0, 0, 0.55);
}

.tile-big .tile-text b {
  font-size: clamp(2rem, 5vw, 3.4rem);
}

.tile-text span {
  font-weight: 700;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.92);
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);
}

.tile-art {
  position: absolute;
  right: 8px;
  bottom: 0;
  height: 95%;
  max-width: 50%;
  object-fit: contain;
  object-position: bottom right;
  filter: drop-shadow(4px 4px 0 rgba(0, 0, 0, 0.35));
}

.tile-big .tile-art {
  height: 80%;
}



.tile:nth-child(n + 5) .tile-text b {
  font-size: clamp(1.2rem, 2.2vw, 1.7rem);
}

.tile-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  padding: 3px 8px;
  font-family: var(--font-head);
  font-size: 0.7rem;
  text-transform: uppercase;
  color: #000;
  background: #fff;
  border: 2px solid var(--outline);
  transform: rotate(3deg);
}

/* Featured subscription banner. */
.featured {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 20px;
  padding: 20px 24px;
  border-color: var(--yellow);
  box-shadow: inset 2px 2px 0 var(--edge-hi), inset -2px -2px 0 var(--edge-lo), 0 0 0 2px #000, 0 0 24px rgba(255, 210, 63, 0.15);
}

.featured-art {
  width: 110px;
  height: 110px;
  object-fit: contain;
}

.featured-text h2,
.rank-hero-text h2,
.gem-hero-text h2 {
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  text-transform: uppercase;
  color: #fff;
  text-shadow: 3px 3px 0 rgba(0, 0, 0, 0.6);
  margin: 8px 0 6px;
}

.featured-buy {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  text-align: right;
}

.featured-buy small {
  font-size: 0.78rem;
}

/* Widgets. */
.widgets {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.widget {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.widget h3 {
  font-size: 0.95rem;
  color: var(--yellow);
  text-transform: uppercase;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

/* Goal bar as XP-bar segments. */
.goal {
  display: grid;
  grid-template-columns: repeat(20, 1fr);
  gap: 3px;
  padding: 3px;
  background: #000;
}

.goal span {
  height: 14px;
  background: #2a2a2a;
}

.goal span.on {
  background: #80ff20;
  box-shadow: inset 0 -3px 0 #4c9a14;
}

.goal-pct {
  align-self: flex-end;
  font-family: var(--font-head);
  color: var(--green);
}

.heads {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.heads img {
  width: 40px;
  height: 40px;
  image-rendering: pixelated;
  box-shadow: 0 0 0 2px #000;
}

/* ------------------------------------------------------------ category views */

.view-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.view-title {
  display: flex;
  align-items: center;
  gap: 12px;
}

.view-title h1 {
  font-size: clamp(1.8rem, 5vw, 2.8rem);
  text-transform: uppercase;
  color: #fff;
  text-shadow: 3px 3px 0 rgba(0, 0, 0, 0.6);
}

.view-title h1 span {
  color: var(--yellow);
}

.back {
  width: 44px;
  height: 44px;
  font-size: 1.8rem;
}

.view-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.view-tabs .tab-btn {
  display: inline-flex;
  align-items: center;
}

.view-note {
  color: var(--text-dim);
  margin-top: -8px;
}

/* Hero for the top rank. */
.rank-hero {
  display: grid;
  grid-template-columns: 160px 1fr 220px;
  gap: 24px;
  align-items: center;
  padding: 24px;
  border-color: var(--yellow);
  box-shadow: inset 2px 2px 0 var(--edge-hi), inset -2px -2px 0 var(--edge-lo), 0 0 24px rgba(255, 210, 63, 0.12);
}

.rank-hero-art {
  width: 160px;
  height: 160px;
  object-fit: contain;
}

.rank-hero-text .kicker {
  margin: 4px 0 6px;
}

.mc-chat {
  padding: 8px 12px;
  font-family: var(--font-head);
  font-size: 0.85rem;
  background: rgba(0, 0, 0, 0.75);
  border: 2px solid var(--outline);
  overflow-wrap: anywhere;
}

.mc-chat .prefix {
  font-weight: 400;
}

.mc-chat-name {
  color: #fff;
}

.mc-chat-sep {
  color: #aaa;
  margin-right: 4px;
}

.hero-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.hero-stat {
  display: flex;
  flex-direction: column;
  padding: 10px 12px;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.hero-stat b {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 1.3rem;
  color: var(--green);
}

.hero-stat span {
  font-size: 0.78rem;
  color: var(--text-dim);
}

.perk-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.perk-chips span {
  padding: 4px 10px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-dim);
  background: var(--inset);
  border: 2px solid var(--outline);
}

.rank-hero-buy {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  text-align: center;
}

.big-price {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 2.2rem;
  color: #fff;
  text-shadow: 3px 3px 0 rgba(0, 0, 0, 0.6);
}

/* Package cards. */
.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 12px;
}

.card {
  position: relative;
  display: flex;
  flex-direction: column;
}

.card.is-highlight {
  border-color: var(--green);
  box-shadow: inset 2px 2px 0 var(--edge-hi), inset -2px -2px 0 var(--edge-lo), 0 0 18px rgba(155, 227, 90, 0.18);
}

.card-art {
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 60%, #2a2c2a 0%, var(--inset) 70%);
  border-bottom: 2px solid var(--outline);
}

.card-art img {
  max-width: 70%;
  max-height: 130px;
  object-fit: contain;
}

.card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
}

.card-body h3 {
  font-size: 1.05rem;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.card-tag {
  align-self: flex-start;
  padding: 3px 8px;
  font-family: var(--font-head);
  font-size: 0.75rem;
  background: rgba(0, 0, 0, 0.7);
}

.card-tag span {
  color: #fff;
}

.card-perks {
  list-style: none;
  display: grid;
  gap: 2px;
  font-size: 0.85rem;
  color: var(--text-dim);
}

.card-perks li::before {
  content: "+ ";
  color: var(--green);
  font-weight: 700;
}

.opt-toggle {
  display: flex;
  gap: 4px;
  padding: 3px;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.opt-toggle button {
  flex: 1;
  padding: 6px 4px;
  font-family: var(--font-head);
  font-size: 0.75rem;
  color: var(--text-dim);
  background: none;
  border: 0;
}

.opt-toggle button.active {
  color: #000;
  background: var(--yellow);
}

.card-price {
  margin-top: auto;
}

.card-price b {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 1.4rem;
  color: var(--green);
}

.card-price small {
  font-size: 0.8rem;
  color: var(--muted);
}

.card-actions {
  display: flex;
  gap: 6px;
}

.card-actions .btn-green {
  flex: 1;
}

.icon-only {
  width: 44px;
  padding: 0;
  font-size: 1rem;
}

/* Comparison table. */
.compare-wrap {
  padding: 20px;
}

.compare-scroll {
  overflow-x: auto;
}

.compare {
  width: 100%;
  min-width: 640px;
  border-collapse: separate;
  border-spacing: 6px;
}

.compare th,
.compare td {
  text-align: center;
  padding: 10px 8px;
  background: var(--inset);
  border: 2px solid var(--outline);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.compare thead th {
  background: none;
  border: 0;
  padding: 0;
  vertical-align: bottom;
}

.compare thead th:first-child {
  text-align: left;
  font-size: 0.85rem;
  font-weight: 500;
}

.compare thead button {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 6px;
  background: var(--inset);
  border: 2px solid var(--outline);
  font-family: var(--font-head);
  font-size: 0.85rem;
}

.compare thead button:hover {
  border-color: var(--yellow);
}

.compare thead img {
  width: 56px;
  height: 56px;
  object-fit: contain;
}

.compare thead small {
  font-family: var(--font-body);
  font-size: 0.72rem;
  color: var(--muted);
}

.compare tbody th {
  text-align: left;
  color: var(--text-dim);
}

.compare .is-top {
  border-color: var(--yellow);
}

.compare thead .is-top button {
  border-color: var(--yellow);
}

.top-label {
  position: absolute;
  top: -12px;
  padding: 1px 8px;
  font-size: 0.68rem;
  color: #000;
  background: var(--yellow);
  border: 2px solid var(--outline);
}

.yes { color: var(--green); }
.no { color: var(--red); }

/* Gems. */
.gem-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  align-items: center;
  gap: 24px;
  padding: 24px;
  border-color: var(--yellow);
  box-shadow: inset 2px 2px 0 var(--edge-hi), inset -2px -2px 0 var(--edge-lo), 0 0 28px rgba(255, 210, 63, 0.18);
}

.gem-hero .corner-badge {
  left: 16px;
  right: auto;
  top: -14px;
}

.gem-hero-art {
  width: 100%;
  max-height: 260px;
  object-fit: contain;
}

.value-list {
  list-style: none;
  display: grid;
  gap: 6px;
  margin: 6px 0 16px;
  color: var(--text-dim);
}

.value-list b {
  display: inline-block;
  min-width: 84px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 1.15rem;
  color: var(--yellow);
}

.gem-card .card-body {
  align-items: center;
  text-align: center;
}

.per {
  font-size: 0.85rem;
}

.gem-cards {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

/* Keys callout. */
.callout {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
}

.callout > div {
  flex: 1;
}

/* Lunar. */


.code-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 14px 0;
}




/* ------------------------------------------------------------ modals */

.pkg-modal {
  width: min(720px, calc(100% - 24px));
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  margin: auto;
  padding: 20px;
  color: var(--text);
}

.pkg-modal::backdrop {
  background: rgba(0, 0, 0, 0.7);
}

.modal-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 16px;
  align-items: center;
  margin-bottom: 16px;
}

.modal-head img {
  object-fit: contain;
}

.modal-head h2 {
  font-size: 1.4rem;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.modal-perks {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding: 16px;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.modal-perks h3 {
  font-size: 0.9rem;
  color: var(--yellow);
  text-transform: uppercase;
  margin-bottom: 8px;
}

.modal-perks .star-list li {
  font-size: 0.88rem;
}

.modal-buy {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.modal-buy .btn {
  flex: 1;
}

.name-modal {
  width: min(460px, calc(100% - 24px));
}

.name-modal .search {
  margin: 14px 0 0;
}

/* ------------------------------------------------------------ cart drawer */

.cart {
  position: fixed;
  inset: 0;
  z-index: 90;
}

.cart-scrim {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
}

.cart-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 100%);
  display: flex;
  flex-direction: column;
  border-right: 0;
  border-top: 0;
  border-bottom: 0;
  animation: cart-in 120ms ease-out;
}

@keyframes cart-in {
  from { transform: translateX(24px); opacity: 0.6; }
}

body.cart-open {
  overflow: hidden;
}

.cart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 2px solid var(--line);
}

.cart-head h2 {
  font-size: 1.3rem;
  text-transform: uppercase;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.cart-items {
  flex: 1;
  overflow-y: auto;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cart-line {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 10px;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.cart-line img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.cart-line-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.cart-line-text b {
  font-family: var(--font-head);
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cart-line-text .dim {
  font-size: 0.8rem;
}

.cart-line-end {
  display: flex;
  align-items: center;
  gap: 8px;
}

.cart-line-end .icon-btn {
  width: 30px;
  height: 30px;
  font-size: 1.1rem;
}

.qty {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.qty button {
  width: 24px;
  height: 24px;
  font-weight: 700;
  background: var(--panel-2);
  border: 2px solid var(--outline);
}

.qty button:hover {
  border-color: var(--yellow);
}

.cart-empty {
  margin: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  padding: 24px;
}

.cart-empty img {
  object-fit: contain;
}

.cart-upsell {
  padding: 0 12px;
}

.upsell {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
  padding: 14px;
  background: var(--inset);
  border: 2px solid var(--green);
  box-shadow: 0 0 18px rgba(155, 227, 90, 0.12);
}

.upsell-title {
  font-family: var(--font-head);
  font-size: 1rem;
  color: var(--yellow);
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.upsell-sub {
  margin-top: -6px;
  font-size: 0.85rem;
  color: var(--text-dim);
}

.upsell-compare {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
}

.upsell-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 10px 6px;
  text-align: center;
  background: var(--panel);
  border: 2px solid var(--outline);
}

.upsell-card img {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

.upsell-card b {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 1.05rem;
}

.upsell-card span {
  font-size: 0.85rem;
  color: var(--text-dim);
}

.upsell-card small {
  font-size: 0.72rem;
  color: var(--muted);
}

.upsell-card.is-target {
  border-color: var(--green);
}

.upsell-card.is-target small {
  color: var(--green);
}

.upsell-arrow {
  font-size: 1.4rem;
  color: var(--green);
}

.upsell-note {
  padding: 6px 10px;
  font-size: 0.85rem;
  text-align: center;
  color: var(--text-dim);
  background: rgba(155, 227, 90, 0.08);
  border: 2px solid rgba(155, 227, 90, 0.35);
}

.upsell-note b {
  color: var(--green);
}

.upsell-gains {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.upsell-gains li {
  padding: 3px 8px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--green);
  background: rgba(155, 227, 90, 0.08);
  border: 2px solid rgba(155, 227, 90, 0.35);
}

.upsell-solo {
  display: flex;
  align-items: center;
  gap: 12px;
}

.upsell-solo img {
  object-fit: contain;
}

.upsell-solo b {
  flex: 1;
  font-family: var(--font-head);
  font-weight: 400;
}

.cart-foot {
  padding: 14px 18px 18px;
  border-top: 2px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cart-sum {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  color: var(--text-dim);
}

.cart-sum b {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 1.6rem;
  color: #fff;
}

#checkout-btn {
  min-height: 52px;
  font-size: 1rem;
}

#checkout-btn.is-disabled {
  opacity: 0.5;
  pointer-events: none;
}

/* ------------------------------------------------------------ footer */

.store-footer {
  grid-template-columns: 1.6fr 1.2fr 0.8fr;
}

/* ------------------------------------------------------------ responsive */

@media (max-width: 980px) {
  .tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 150px;
  }

  .tile-big,
  .tile:nth-child(2),
  .tile:nth-child(3) {
    grid-column: span 2;
    grid-row: span 1;
  }

  .featured,
  .rank-hero {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .featured-art,
  .rank-hero-art {
    margin: 0 auto;
  }

  .featured .badges,
  .rank-hero .badges {
    justify-content: center;
  }

  .featured-buy {
    text-align: center;
  }

  .gem-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .widgets,
  .gem-hero {
    grid-template-columns: 1fr;
  }

  .modal-perks {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .store-header-inner {
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 0;
  }

  .store-logo img {
    width: 130px;
  }

  .store-ip {
    display: none;
  }

  .account-text small {
    display: none;
  }

  .cart-total {
    display: none;
  }

  .tiles {
    grid-auto-rows: 130px;
  }

  .tile:nth-child(n + 5) {
    grid-column: span 1;
  }

  .tile:nth-child(n + 5) .tile-text {
    max-width: 100%;
  }


  .tile:nth-child(n + 5) .tile-art {
    opacity: 0.45;
  }

  .callout {
    flex-direction: column;
    text-align: center;
  }

  .cards,
  .gem-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .card-art {
    height: 110px;
  }

  .card-body {
    padding: 10px;
  }

  .card-perks {
    display: none;
  }

}

/* ------------------------------------------------------------ home tiles */
/* The category tiles keep the original store's look: bright colours,     */
/* rounded corners and a chunky bottom edge.                              */

/* Home tiles: the original bright, rounded, chunky blocks. */
.store-main .tile {
  border: 0;
  border-radius: 16px;
  background: var(--tone);
  box-shadow: inset 0 -8px 0 rgba(0, 0, 0, 0.18);
  transition: transform 0.18s cubic-bezier(0.2, 0.8, 0.3, 1.3), box-shadow 0.18s;
}

.store-main .tile:hover {
  outline: none;
  transform: translateY(-5px);
  box-shadow: inset 0 -8px 0 rgba(0, 0, 0, 0.18), 0 18px 30px -12px color-mix(in srgb, var(--tone) 70%, transparent);
}

.store-main .tile-text b {
  font-family: var(--font-head);
  font-weight: 900;
  text-shadow: 4px 4px 0 rgba(0, 0, 0, 0.22);
}

.store-main .tile-text span {
  font-family: var(--font-head);
  font-weight: 700;
  text-shadow: none;
}

.store-main .tile-art {
  right: -3%;
  bottom: -12%;
  height: 112%;
  filter: drop-shadow(8px 8px 0 rgba(0, 0, 0, 0.2));
}

.store-main .tile-badge {
  border: 0;
  font-family: var(--font-body);
  font-weight: 700;
  color: #111;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.35);
}


/* ------------------------------------------------------------ rank table */

.compare .corner {
  min-width: 120px;
}

.compare thead th.rank-col {
  position: relative;
  padding: 16px 8px 12px;
  background: var(--inset);
  border: 2px solid var(--outline);
  vertical-align: bottom;
}

.compare thead th.rank-col img {
  display: block;
  width: 72px;
  height: 72px;
  margin: 0 auto 6px;
  object-fit: contain;
}

.rank-col-name {
  font-family: var(--font-head);
  font-size: 0.95rem;
}

.compare .top-label {
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
}

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

.compare .buy-row th {
  background: none;
  border: 0;
}

.compare td.buy-cell {
  vertical-align: top;
  padding: 10px 8px;
}

.buy-cell {
  min-width: 128px;
}

.buy-cell > * + * {
  margin-top: 8px;
}

.buy-cell .card-price {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.1;
}

.buy-cell .card-price small {
  font-size: 0.72rem;
}

.buy-cell .btn {
  min-height: 40px;
  padding: 0 8px;
  font-size: 0.82rem;
}

.opt-single {
  justify-content: center;
  padding: 7px 4px !important;
  font-family: var(--font-head);
  font-size: 0.72rem;
  color: var(--text-dim);
}

.link-btn {
  display: block;
  width: 100%;
  padding: 2px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--yellow);
  background: none;
  border: 0;
}

.link-btn:hover {
  text-decoration: underline;
}

/* The row labels stay visible while the table scrolls sideways on phones. */
.compare tbody th[scope="row"] {
  position: sticky;
  left: 0;
  z-index: 1;
}

@media (max-width: 640px) {
  .compare .corner,
  .compare tbody th[scope="row"] {
    min-width: 0;
    font-size: 0.78rem;
  }

  .buy-cell {
    min-width: 112px;
  }
}

/* ------------------------------------------------------------ Lunar capes */

.cape-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  padding: 28px 24px;
  text-align: center;
  background:
    radial-gradient(ellipse 60% 70% at 50% 45%, rgba(155, 227, 90, 0.14), transparent 70%),
    var(--panel);
}

.cape-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px 56px;
}

.cape-show {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.cape-show img {
  width: auto;
  height: 300px;
  object-fit: contain;
  filter: drop-shadow(0 18px 24px rgba(0, 0, 0, 0.45));
  transition: transform 0.18s;
}

.cape-show:hover img {
  transform: translateY(-6px) rotate(-2deg);
}

.cape-show b {
  font-size: 1.2rem;
  color: #fff;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.6);
}

.cape-show span {
  color: var(--text-dim);
  font-size: 0.85rem;
}

.cape-cta {
  flex-direction: column;
  gap: 2px;
  width: min(560px, 100%);
  min-height: 72px;
  font-size: 1.25rem;
}

.cape-cta small {
  font-family: var(--font-body);
  font-size: 0.75rem;
  text-transform: none;
  letter-spacing: 0;
  opacity: 0.85;
}

.cape-stage .code-row {
  justify-content: center;
  margin: 0;
}

.lunar-dl {
  margin-top: 16px;
}

@media (max-width: 640px) {
  .cape-row {
    gap: 12px 20px;
  }

  .cape-show img {
    height: 190px;
  }

  .cape-cta {
    font-size: 1rem;
  }
}

/* ------------------------------------------------------------ event pass */

.event-hero {
  display: grid;
  grid-template-columns: 150px 1fr 220px;
  gap: 24px;
  align-items: center;
  padding: 24px;
  border-color: var(--yellow);
  box-shadow: inset 2px 2px 0 var(--edge-hi), inset -2px -2px 0 var(--edge-lo), 0 0 24px rgba(255, 210, 63, 0.12);
}

.event-hero-art {
  width: 150px;
  height: 150px;
  object-fit: contain;
  filter: drop-shadow(6px 6px 0 rgba(0, 0, 0, 0.35));
}

.event-hero-text h2 {
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  text-transform: uppercase;
  color: #fff;
  text-shadow: 3px 3px 0 rgba(0, 0, 0, 0.6);
  margin: 8px 0 4px;
}

.event-steps {
  margin-top: 14px;
}

.event-addon > div:nth-child(2) b {
  font-size: 1.15rem;
  color: #fff;
}

.event-addon-buy {
  display: flex;
  align-items: center;
  gap: 14px;
}

.addon-price {
  font-family: var(--font-head);
  font-size: 1.4rem;
  color: var(--green);
}

@media (max-width: 980px) {
  .event-hero {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .event-hero-art {
    margin: 0 auto;
  }

  .event-hero .badges {
    justify-content: center;
  }

  .event-steps {
    text-align: left;
    max-width: 440px;
    margin-inline: auto;
  }
}

@media (max-width: 640px) {
  .event-addon-buy {
    flex-direction: column;
    gap: 6px;
  }
}


/* ---- tebex-template/tebex.css ---- */
/*
 * Rules only the Tebex template needs: pages the preview doesn't have (basket,
 * login, package), Tebex's own messages, and its required legal footer.
 * Built into assets/siegelands.css by tools/build_tebex_template.py.
 */

/* Tebex adds a legal footer under every store page; it has to stay visible,
   but it can wear the store's colours. */
:root {
  --tebex-legal-footer-background-color: #0a0b0a;
  --tebex-legal-footer-text-color: #b4b8b4;
  --tebex-legal-footer-border-color: #2c2f2c;
  --tebex-legal-footer-logo-color: #b4b8b4;
  --tebex-legal-footer-max-width: 1180px;
}

body.store .account {
  color: var(--text);
}

.account-out {
  margin-left: 6px;
  padding: 4px 6px;
  color: var(--muted);
  font-size: 0.85rem;
}

.account-out:hover {
  color: var(--red);
}

/* Tebex's own notices (added to basket, errors...). */
.store-message {
  width: min(var(--wrap), 100% - 2 * var(--gutter));
  margin: 16px auto 0;
  padding: 12px 16px;
  background: var(--inset);
  border: 2px solid var(--outline);
  border-left: 4px solid var(--yellow);
}

.store-message-success {
  border-left-color: var(--green);
}

.store-message-error,
.store-message-danger {
  border-left-color: var(--red);
}

/* Home extras. */
.store-about {
  color: var(--text-dim);
}

.lunar-home {
  display: flex;
  flex-direction: column;
  gap: 20px;
  scroll-margin-top: 140px;
}

.featured.no-art {
  grid-template-columns: 1fr auto;
}

.category-enhanced {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.category-description p + p {
  margin-top: 6px;
}

del.dim {
  margin-right: 6px;
  font-size: 0.85em;
}

/* Package page. */
.package-page {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: 24px;
  padding: 24px;
  align-items: start;
}

.package-page-art {
  display: flex;
  justify-content: center;
  padding: 20px;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.package-page-art img {
  max-height: 260px;
  object-fit: contain;
}

.package-page-text {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
}

.package-description {
  color: var(--text-dim);
}

.package-description ul {
  margin-left: 20px;
}

/* Basket page. */
.basket-page {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 760px;
}

.basket-lines {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: stretch;
}

.basket-lines > .btn {
  align-self: flex-start;
}

.qty-input {
  width: 64px;
  margin-left: 6px;
  padding: 2px 6px;
  font: inherit;
  color: var(--text);
  background: var(--panel);
  border: 2px solid var(--outline);
}

.coupon-form {
  margin: 0;
}

.basket-total b {
  font-size: 1.6rem;
}

.pay-btn {
  min-height: 56px;
  font-size: 1.05rem;
}

/* Login page. */
.login-page {
  max-width: 560px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.login-page .search {
  margin: 0;
}

@media (max-width: 980px) {
  .package-page {
    grid-template-columns: 1fr;
  }
}

/* Subcategory tiles on a server's page: Ranks big on the left like the
   home page's first tile, the rest on the right. */
.tiles.sub-tiles {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 170px;
}

.tiles.sub-tiles .tile {
  grid-column: span 1;
  grid-row: span 1;
}

.tiles.sub-tiles .tile-big {
  grid-column: span 2;
  grid-row: span 2;
}

.tiles.sub-tiles .tile-wide {
  grid-column: span 2;
}

@media (max-width: 980px) {
  .tiles.sub-tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 140px;
  }

  .tiles.sub-tiles .tile-big {
    grid-row: span 1;
  }
}

/* Home widgets: goal, payments, top customer and Discord, as many as are on. */
.widgets {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.top-customer {
  display: flex;
  align-items: center;
  gap: 12px;
}

.top-customer img {
  image-rendering: pixelated;
  box-shadow: 0 0 0 2px #000;
}

.top-customer div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.top-customer b {
  font-family: var(--font-head);
  font-size: 1.1rem;
  color: var(--text);
}

/* Punishments: Unban and Unmute side by side. */
.punish-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.punish-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
}

.punish-head {
  display: flex;
  align-items: center;
  gap: 16px;
}

.punish-head h2 {
  font-family: var(--font-head);
  font-size: 1.6rem;
}

.punish-icon {
  font-size: 48px;
  line-height: 1;
}

.punish-buy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 2px solid var(--outline);
}

.punish-note {
  margin-top: 4px;
}

#basket-upsell:empty {
  display: none;
}

/* Form fields on pages Tebex draws itself (choosing a server, gift cards...). */
.store-main select,
.store-main input[type="text"],
.store-main input[type="number"],
.store-main input[type="email"] {
  min-height: 40px;
  padding: 6px 10px;
  font: inherit;
  color: var(--text);
  background: var(--inset);
  border: 2px solid var(--outline);
  border-radius: 0;
}

.store-main select:focus,
.store-main input:focus {
  outline: 2px solid var(--green);
  outline-offset: 0;
}

@media (max-width: 760px) {
  .punish-grid {
    grid-template-columns: 1fr;
  }
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Tebex's "which server should receive this?" page, rearranged by siegelands.js. */
.options-page {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 860px;
}

.options-panel {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 24px;
}

.options-package {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--outline);
}

.options-package div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.options-package b {
  font-family: var(--font-head);
  font-size: 1.4rem;
}

.options-form,
.options-form form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.options-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.options-form form > div:last-child,
.options-form .actions {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.options-form .btn-green {
  min-width: 200px;
  min-height: 48px;
}

.options-form .btn-green:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.server-pick {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
}

.server-pick .kicker {
  grid-column: 1 / -1;
}

.server-card {
  --tone: var(--yellow);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-height: 130px;
  padding: 16px;
  text-align: left;
  color: #fff;
  font: inherit;
  cursor: pointer;
  background: linear-gradient(135deg, color-mix(in srgb, var(--tone) 85%, #fff 15%), color-mix(in srgb, var(--tone) 70%, #000 30%));
  border: 2px solid var(--outline);
  border-radius: 14px;
  box-shadow: inset 3px 3px 0 rgba(255, 255, 255, 0.35), inset -3px -5px 0 rgba(0, 0, 0, 0.3);
  opacity: 0.75;
}

.server-card b {
  position: relative;
  z-index: 1;
  font-family: var(--font-head);
  font-size: 1.3rem;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.35);
}

.server-card span {
  position: relative;
  z-index: 1;
  max-width: 60%;
  font-size: 0.8rem;
  text-transform: uppercase;
}

.server-card img {
  position: absolute;
  right: -8px;
  bottom: -10px;
  height: 110%;
  pointer-events: none;
}

.server-card:hover {
  opacity: 1;
}

.server-card[aria-checked="true"] {
  opacity: 1;
  outline: 4px solid #fff;
  outline-offset: -8px;
}

.server-card[aria-checked="true"]::after {
  content: "✔ Selected";
  position: absolute;
  right: 10px;
  top: 10px;
  z-index: 2;
  padding: 2px 8px;
  font-size: 0.75rem;
  color: #000;
  background: #fff;
}

/* Gifting: a quiet button next to Add to cart, and its own small window. */
.gift-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 36px;
  padding: 6px 12px;
  font: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
  background: var(--inset);
  border: 2px solid var(--outline);
}

.gift-btn:hover {
  color: #000;
  background: var(--yellow);
}

.gift-btn[hidden] {
  display: none;
}

.gift-block {
  width: 100%;
  min-height: 32px;
  margin-top: 6px;
}

.gem-hero-buy,
.punish-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.pkg-modal:has(.gift-form) {
  width: min(480px, calc(100% - 24px));
}

.gift-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 16px;
}

.gift-form label {
  font-size: 0.85rem;
  text-transform: uppercase;
  color: var(--text-dim);
}

.gift-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.gift-row input {
  flex: 1;
  min-width: 0;
  min-height: 48px;
  padding: 6px 12px;
  font: inherit;
  font-size: 1.1rem;
  color: var(--text);
  background: var(--inset);
  border: 2px solid var(--outline);
  border-radius: 0;
}

.gift-row input:focus {
  outline: 2px solid var(--green);
  outline-offset: 0;
}

.gift-head {
  flex: none;
  box-shadow: 0 0 0 2px #000;
}

.gift-hint {
  font-size: 0.85rem;
}

.gift-hint.gift-error {
  color: var(--red);
}

/* Rank suggestion in the cart. */
.upsell + .upsell {
  margin-top: 12px;
}

.upsell-rank {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.upsell-rank .mc-chat {
  font-size: 0.85rem;
}

.upsell-rank .dim {
  font-size: 0.8rem;
}

/* A server's own icon from its Tebex category: smaller than the character
   renders, sitting in the tile's corner. */
.tile-art.tile-icon {
  right: 20px;
  bottom: 20px;
  height: 58%;
  max-height: 150px;
  max-width: 38%;
}

.tile-big .tile-art.tile-icon {
  max-height: 220px;
}
