:root {
  --bg: #0e0404;
  --bg-2: #160606;
  --card: #1e0909;
  --card-2: #2a0d0b;
  --line: #4a1712;
  --text: #fff1ea;
  --muted: #d6a99c;
  --fire-1: #c80300;
  --fire-2: #fb7406;
  --fire-3: #ffb347;
  --fire-dark: #6e0200;
  --gold: #ffcf4a;
  --ok: #3ddc84;
  --nav-h: 70px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: "Outfit", system-ui, sans-serif; background: var(--bg); color: var(--text); line-height: 1.6; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { max-width: 100%; display: block; }
.wrap { position: relative; z-index: 1; max-width: 1760px; margin: 0 auto; padding: 0 clamp(16px, 3vw, 56px); }
.pixel { font-family: "Silkscreen", monospace; letter-spacing: 0.03em; }
.oculto { display: none !important; }

#brasas { position: fixed; inset: 0; z-index: 0; pointer-events: none; }
.lava { position: fixed; left: 0; right: 0; bottom: 0; height: 38vh; z-index: 0; pointer-events: none;
  background: radial-gradient(120% 100% at 50% 100%, rgba(251, 116, 6, 0.24), rgba(200, 3, 0, 0.1) 45%, transparent 70%);
  animation: respirar 5s ease-in-out infinite; }

/* ---------- botones ---------- */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 20px;
  font: 700 0.9rem "Silkscreen", monospace; letter-spacing: 0.04em; color: #fff; border: 0; cursor: pointer;
  background: linear-gradient(180deg, var(--fire-2), var(--fire-1));
  box-shadow: inset -4px -4px 0 var(--fire-dark), inset 4px 4px 0 var(--fire-3), 0 0 0 3px #000;
  transition: transform 0.08s, filter 0.15s; text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.45); white-space: nowrap; }
.btn:hover { filter: brightness(1.12); }
.btn:active { transform: translateY(2px); box-shadow: inset 4px 4px 0 var(--fire-dark), inset -4px -4px 0 var(--fire-3), 0 0 0 3px #000; }
.btn.ghost { background: #3a1410; box-shadow: inset -4px -4px 0 #1e0907, inset 4px 4px 0 #64261d, 0 0 0 3px #000; }
.btn.gold { background: var(--gold); color: #3a2000; text-shadow: none; box-shadow: inset -4px -4px 0 #b88a10, inset 4px 4px 0 #fff0b0, 0 0 0 3px #000; }
.btn.sm { padding: 8px 12px; font-size: 0.75rem; }
.btn.full { width: 100%; }

/* ---------- navegación ---------- */
nav { position: sticky; top: 0; z-index: 25; background: rgba(14, 4, 4, 0.9); backdrop-filter: blur(6px); border-bottom: 4px solid #000; }
nav .wrap { display: flex; align-items: center; gap: 22px; height: var(--nav-h); }
.brand { display: flex; align-items: center; gap: 10px; margin-right: auto; font-size: 1.1rem; }
.brand img { width: 40px; height: 40px; image-rendering: pixelated; }
.links { display: flex; gap: 4px; }
.links a { font: 0.78rem "Silkscreen", monospace; color: var(--muted); padding: 8px 10px; border: 2px solid transparent; transition: color 0.15s, border-color 0.15s; }
.links a:hover { color: var(--fire-3); }
.links a.activo { color: #fff; border-color: var(--fire-2); background: rgba(251, 116, 6, 0.12); }
.acciones { display: flex; align-items: center; gap: 10px; }
.usuario { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border: 3px solid #000; background: #2a0d0b; box-shadow: inset 0 0 0 2px var(--line); cursor: pointer; font: 0.72rem "Silkscreen", monospace; color: var(--muted); }
.usuario img { width: 26px; height: 26px; image-rendering: pixelated; }
.carrito-btn { position: relative; }
.carrito-btn .num { position: absolute; top: -9px; right: -9px; min-width: 22px; height: 22px; display: grid; place-items: center; font: 700 0.7rem "Silkscreen", monospace; background: var(--gold); color: #3a2000; border: 2px solid #000; }
.menu-movil { display: none; }

/* ---------- evento ---------- */
.evento { position: relative; z-index: 2; display: flex; justify-content: center; align-items: center; gap: 14px; flex-wrap: wrap; padding: 9px 16px;
  background: repeating-linear-gradient(-45deg, #2a0a05 0 14px, #1c0603 14px 28px); border-bottom: 3px solid #000; font: 700 0.76rem "Silkscreen", monospace; }
.evento svg { width: 24px; height: 24px; }
.evento b { color: var(--fire-2); }
.evento a { color: var(--gold); text-decoration: underline; }

/* ---------- vistas ---------- */
main { position: relative; z-index: 1; min-height: 70vh; }
.vista { animation: aparecer 0.45s ease both; }
.cabecera { padding-top: 60px; padding-bottom: 30px; }
.cabecera .label { font: 0.82rem "Silkscreen", monospace; color: var(--fire-2); margin-bottom: 8px; }
.cabecera h1 { font: 700 clamp(2rem, 4.5vw, 3.2rem) "Silkscreen", monospace; line-height: 1.1; text-shadow: 4px 4px 0 #000; }
.cabecera p { color: var(--muted); max-width: 60ch; margin-top: 12px; font-size: 1.08rem; }
section { position: relative; padding: 60px 0; }
section.alt { background: linear-gradient(180deg, rgba(42, 13, 11, 0.8), rgba(30, 9, 9, 0.55)); border-top: 4px solid #000; border-bottom: 4px solid #000; }
h2 { font: 700 clamp(1.5rem, 3vw, 2.2rem) "Silkscreen", monospace; line-height: 1.15; margin-bottom: 28px; text-shadow: 3px 3px 0 #000; }
.label { font: 0.8rem "Silkscreen", monospace; color: var(--fire-2); margin-bottom: 8px; }

.card { position: relative; background: var(--card); padding: 24px; border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--line), 6px 6px 0 #000; transition: transform 0.18s, box-shadow 0.18s; }
.card.hover:hover { transform: translate(-3px, -3px); box-shadow: inset 0 0 0 2px var(--fire-2), 9px 9px 0 #000; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.icono { display: block; width: 52px; height: 52px; image-rendering: pixelated; margin-bottom: 12px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.chips span { font: 0.68rem "Silkscreen", monospace; padding: 4px 9px; background: #000; color: var(--fire-3); }
.muted { color: var(--muted); }

/* ---------- inicio ---------- */
.hero { padding: 50px 0 80px; text-align: center; }
.logo-wrap { position: relative; width: min(380px, 74vw); margin: 0 auto; }
.logo-wrap::before { content: ""; position: absolute; inset: 8% 10%; border-radius: 50%; background: radial-gradient(circle, rgba(251, 116, 6, 0.65), rgba(200, 3, 0, 0.25) 50%, transparent 70%); filter: blur(10px); animation: respirar 2.6s ease-in-out infinite; }
.logo-wrap img { position: relative; width: 100%; animation: flotar 5s ease-in-out infinite; filter: drop-shadow(0 18px 30px rgba(200, 3, 0, 0.55)); }
.stats { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 14px; }
.stat { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; background: rgba(30, 9, 9, 0.85); border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--line); font: 0.76rem "Silkscreen", monospace; color: var(--muted); }
.stat b { font-size: 1rem; color: var(--fire-3); }
.dot { width: 10px; height: 10px; background: var(--ok); animation: latido 1.6s ease-in-out infinite; }
.hero h1 { font: 700 clamp(2.2rem, 5.4vw, 4rem) "Silkscreen", monospace; line-height: 1.05; margin: 26px 0 12px; text-shadow: 4px 4px 0 #000; }
.fuego { color: var(--fire-3); animation: llama 1.8s ease-in-out infinite; text-shadow: 4px 4px 0 #000, 0 0 18px rgba(251, 116, 6, 0.9), 0 0 42px rgba(200, 3, 0, 0.7); }
.hero p.lead { font-size: 1.15rem; color: var(--muted); max-width: 56ch; margin: 0 auto; }
.ip { margin: 26px auto 0; display: inline-flex; align-items: center; gap: 16px; padding: 12px 14px 12px 18px; background: rgba(30, 9, 9, 0.92); border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--fire-2), 0 0 40px rgba(251, 116, 6, 0.25); text-align: left; }
.ip code { font: 700 1.15rem "Silkscreen", monospace; color: var(--gold); }
.ip small { color: var(--muted); display: block; font-size: 0.75rem; }
.accesos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.acceso { display: flex; flex-direction: column; gap: 6px; }
.acceso h3 { font: 700 1.05rem "Silkscreen", monospace; }
.acceso p { color: var(--muted); font-size: 0.95rem; flex: 1; }
.acceso .ir { font: 0.72rem "Silkscreen", monospace; color: var(--fire-3); }

/* ---------- modalidades ---------- */
.modalidad { display: flex; flex-direction: column; }
.modalidad .emoji { font-size: 2.2rem; line-height: 1; margin-bottom: 10px; }
.modalidad h3 { font: 700 1.3rem "Silkscreen", monospace; margin-bottom: 6px; }
.modalidad p { color: var(--muted); flex: 1; }
.modalidad .meta { display: flex; gap: 16px; margin: 14px 0; font: 0.72rem "Silkscreen", monospace; color: var(--fire-3); }

/* ---------- tienda ---------- */
.tienda { display: grid; grid-template-columns: 300px 1fr; gap: 26px; align-items: start; padding-bottom: 60px; }
.lateral { position: sticky; top: calc(var(--nav-h) + 16px); display: flex; flex-direction: column; gap: 18px; max-height: calc(100vh - var(--nav-h) - 32px); overflow: auto; padding-bottom: 6px; }

.mods { padding: 10px; }
.mods summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 9px 10px; font: 700 0.8rem "Silkscreen", monospace; border: 2px solid transparent; }
.mods summary::-webkit-details-marker { display: none; }
.mods summary::after { content: "+"; margin-left: auto; color: var(--fire-3); }
.mods details[open] summary::after { content: "–"; }
.mods details[open] summary { color: var(--fire-3); }
.mods summary small { color: var(--muted); font-family: "Outfit"; }
.mods a { display: flex; justify-content: space-between; gap: 8px; padding: 6px 10px 6px 22px; font-size: 0.9rem; color: var(--muted); border-left: 2px solid var(--line); margin-left: 10px; }
.mods a:hover { color: var(--text); }
.mods a.activo { color: #fff; border-left-color: var(--fire-2); background: rgba(251, 116, 6, 0.12); }
.mods a small { opacity: 0.7; }
.widget h4 { font: 700 0.8rem "Silkscreen", monospace; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.top-donador { display: flex; align-items: center; gap: 12px; }
.top-donador img { width: 44px; height: 44px; image-rendering: pixelated; border: 2px solid var(--gold); }
.feed { list-style: none; max-height: 230px; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent); mask-image: linear-gradient(180deg, #000 70%, transparent); }
.feed li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 2px dotted var(--line); animation: entrar 0.5s ease both; font-size: 0.86rem; }
.feed img { width: 28px; height: 28px; image-rendering: pixelated; border: 2px solid #000; }
.feed b { display: block; }
.feed span { color: var(--muted); font-size: 0.8rem; }
.en-vivo { font: 0.62rem "Silkscreen", monospace; color: #ff5a5a; display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
.en-vivo::before { content: ""; width: 8px; height: 8px; background: #ff5a5a; animation: latido 1.2s infinite; }
.meta-bar { height: 20px; background: #000; border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--line); margin: 8px 0; position: relative; overflow: hidden; }
.meta-bar i { position: absolute; inset: 0 auto 0 0; width: 0; background: repeating-linear-gradient(90deg, var(--fire-1) 0 10px, var(--fire-2) 10px 20px); transition: width 1.6s ease; }

.cat-movil { display: none; width: 100%; margin-bottom: 14px; background: #000; color: var(--text); border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--fire-2); padding: 12px; font: 0.8rem "Silkscreen", monospace; }
.barra-tienda { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-bottom: 18px; }
.barra-tienda h2 { margin: 0; margin-right: auto; font-size: clamp(1.3rem, 2.6vw, 1.9rem); }
.buscar { display: flex; align-items: center; gap: 8px; background: #000; border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--line); padding: 6px 10px; min-width: 260px; }
.buscar input { background: transparent; border: 0; color: var(--text); font: inherit; outline: none; width: 100%; }
select.orden { background: #000; color: var(--text); border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--line); padding: 8px; font: 0.75rem "Silkscreen", monospace; }
.aviso { padding: 12px 16px; margin-bottom: 18px; background: rgba(255, 207, 74, 0.08); border: 2px dashed var(--gold); color: var(--gold); font-size: 0.92rem; }
.productos { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 18px; }
.producto { display: flex; flex-direction: column; text-align: center; padding: 18px 14px 16px; cursor: pointer; animation: aparecer 0.35s ease both; }
.producto .img { height: 120px; display: grid; place-items: center; margin-bottom: 10px; }
.producto .img img { max-height: 120px; width: auto; filter: drop-shadow(0 10px 14px rgba(0, 0, 0, 0.6)); transition: transform 0.25s; }
.producto:hover .img img { transform: scale(1.08) rotate(-3deg); }
.producto .nombre { font-weight: 600; font-size: 0.95rem; line-height: 1.25; min-height: 2.5em; }
.producto .precio { font: 700 1.35rem "Silkscreen", monospace; color: var(--gold); text-shadow: 3px 3px 0 #000; margin: 8px 0 12px; }
.producto .precio small { font-size: 0.7rem; color: var(--muted); text-shadow: none; }
.producto .antes { display: block; color: var(--muted); text-decoration: line-through; font: 0.8rem "Outfit"; text-shadow: none; }
.producto .off { position: absolute; top: 10px; right: 10px; font: 700 0.66rem "Silkscreen", monospace; background: var(--ok); color: #003a1a; padding: 3px 7px; border: 2px solid #000; }
.producto .btn { margin-top: auto; }
.vacio { padding: 40px; text-align: center; color: var(--muted); }

/* ---------- eventos ---------- */
.evento-card { display: grid; grid-template-columns: 1fr 1.2fr; gap: 26px; align-items: center; }
.evento-card .muestra { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.evento-card .muestra div { background: #000; border: 2px solid var(--line); padding: 10px; text-align: center; font-size: 0.78rem; }
.evento-card .muestra img { height: 64px; width: auto; margin: 0 auto 6px; }
.evento-card h3 { font: 700 1.6rem "Silkscreen", monospace; margin-bottom: 8px; }
.cuenta-grande { display: flex; gap: 10px; margin: 16px 0; }
.cuenta-grande div { background: #000; border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--fire-2); padding: 8px 12px; text-align: center; min-width: 64px; }
.cuenta-grande b { display: block; font: 700 1.5rem "Silkscreen", monospace; color: var(--gold); }
.cuenta-grande small { font: 0.6rem "Silkscreen", monospace; color: var(--muted); }

/* ---------- votar ---------- */
.voto { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; }
.voto .n { font: 700 2rem "Silkscreen", monospace; color: var(--fire-2); width: 52px; text-align: center; }
.voto h3 { font: 700 1.05rem "Silkscreen", monospace; }
.racha { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-top: 12px; }
.racha div { background: #000; border: 2px solid var(--line); padding: 10px 4px; text-align: center; font: 0.66rem "Silkscreen", monospace; color: var(--muted); }
.racha div.hecho { border-color: var(--ok); color: var(--ok); }
.racha div b { display: block; font-size: 1.1rem; color: var(--gold); }
.tabla { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.tabla th { text-align: left; font: 700 0.72rem "Silkscreen", monospace; color: var(--fire-3); padding: 10px 8px; border-bottom: 3px solid #000; background: rgba(0, 0, 0, 0.35); }
.tabla td { padding: 10px 8px; border-bottom: 2px dotted var(--line); }
.tabla tr:hover td { background: rgba(251, 116, 6, 0.06); }
.tabla .rango { font: 700 0.85rem "Silkscreen", monospace; white-space: nowrap; }
.tabla-scroll { overflow-x: auto; }

/* ---------- wiki ---------- */
.wiki { display: grid; grid-template-columns: 230px 1fr; gap: 26px; align-items: start; padding-bottom: 60px; }
.wiki > *, .tienda > * { min-width: 0; }
.wiki-menu { position: sticky; top: calc(var(--nav-h) + 16px); display: flex; flex-direction: column; padding: 10px; }
.wiki-menu a { padding: 9px 12px; font: 0.76rem "Silkscreen", monospace; color: var(--muted); border-left: 3px solid transparent; }
.wiki-menu a.activo, .wiki-menu a:hover { color: #fff; border-left-color: var(--fire-2); background: rgba(251, 116, 6, 0.1); }
.wiki-cuerpo h2 { margin-bottom: 16px; }
.wiki-cuerpo h3 { font: 700 1rem "Silkscreen", monospace; margin: 22px 0 8px; color: var(--fire-3); }
.wiki-cuerpo p, .wiki-cuerpo li { color: var(--muted); }
.wiki-cuerpo ul, .wiki-cuerpo ol { padding-left: 22px; margin-top: 6px; }
.wiki-cuerpo li { margin-bottom: 6px; }
.cmds { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.cmd { display: flex; gap: 12px; align-items: baseline; padding: 10px 12px; background: #000; border: 2px solid var(--line); }
.cmd code { font: 700 0.85rem "Silkscreen", monospace; color: var(--gold); white-space: nowrap; }
.cmd span { color: var(--muted); font-size: 0.9rem; }
.faq details { border-bottom: 2px dotted var(--line); padding: 12px 0; }
.faq summary { cursor: pointer; font-weight: 600; list-style: none; }
.faq summary::before { content: "▸ "; color: var(--fire-2); }
.faq details[open] summary::before { content: "▾ "; }
.faq p { margin-top: 8px; }

/* ---------- comunidad ---------- */
.discord { display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: center; padding: 36px; background: linear-gradient(120deg, #5a0e06, #c80300 55%, #fb7406); border: 3px solid #000; box-shadow: 8px 8px 0 #000; }
.discord .icono { width: 72px; height: 72px; margin: 0; animation: flotar 4s ease-in-out infinite; }
.discord h2 { margin-bottom: 6px; }
.discord p { color: #ffe1d2; }
.staff { text-align: center; }
.staff img { width: 72px; height: 72px; margin: 0 auto 10px; image-rendering: pixelated; border: 3px solid #000; }
.staff b { display: block; font: 700 0.9rem "Silkscreen", monospace; }
.staff span { font: 0.66rem "Silkscreen", monospace; padding: 2px 8px; background: #000; color: var(--fire-3); }

/* ---------- carrito y modales ---------- */
.capa { position: fixed; inset: 0; z-index: 60; background: rgba(0, 0, 0, 0.65); opacity: 0; pointer-events: none; transition: opacity 0.2s; }
.capa.on { opacity: 1; pointer-events: auto; }
.cajon { position: fixed; top: 0; right: 0; bottom: 0; z-index: 61; width: min(400px, 92vw); background: var(--bg-2); border-left: 4px solid #000; box-shadow: -8px 0 0 #000;
  transform: translateX(105%); transition: transform 0.3s cubic-bezier(.2,.9,.3,1); display: flex; flex-direction: column; }
.cajon.on { transform: none; }
.cajon header { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 3px solid #000; font: 700 1rem "Silkscreen", monospace; }
.cerrar { background: none; border: 0; color: var(--muted); font: 700 1.2rem "Silkscreen", monospace; cursor: pointer; }
.cerrar:hover { color: #fff; }
.lineas { flex: 1; overflow: auto; padding: 10px 20px; }
.linea { display: grid; grid-template-columns: 48px 1fr auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 2px dotted var(--line); }
.linea img { width: 48px; height: 48px; object-fit: contain; }
.linea b { font-size: 0.92rem; display: block; line-height: 1.2; }
.linea .cant { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.linea .cant button { width: 24px; height: 24px; background: #000; color: #fff; border: 2px solid var(--line); cursor: pointer; }
.linea .p { font: 700 0.9rem "Silkscreen", monospace; color: var(--gold); text-align: right; }
.cajon footer { padding: 18px 20px; border-top: 3px solid #000; display: grid; gap: 12px; }
.total { display: flex; justify-content: space-between; font: 700 1.1rem "Silkscreen", monospace; }
.total b { color: var(--gold); }
.modal { position: fixed; left: 50%; top: 50%; z-index: 62; width: min(560px, 92vw); max-height: 88vh; overflow: auto; transform: translate(-50%, -46%) scale(0.96); opacity: 0; pointer-events: none;
  transition: transform 0.22s, opacity 0.22s; background: var(--card); border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--fire-2), 10px 10px 0 #000; padding: 26px; }
.modal.on { transform: translate(-50%, -50%) scale(1); opacity: 1; pointer-events: auto; }
.modal .cerrar { position: absolute; top: 12px; right: 14px; }
.modal h3 { font: 700 1.3rem "Silkscreen", monospace; margin-bottom: 12px; padding-right: 30px; }
.modal .img-grande { height: 170px; display: grid; place-items: center; margin-bottom: 12px; }
.modal .img-grande img { max-height: 170px; width: auto; }
.modal ul { padding-left: 20px; color: var(--muted); margin: 10px 0 18px; max-height: 240px; overflow: auto; }
.modal li { margin-bottom: 4px; }
.campo { display: flex; flex-direction: column; gap: 6px; margin: 14px 0; }
.campo input { background: #000; color: var(--text); border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--line); padding: 10px 12px; font: inherit; outline: none; }
.campo input:focus { box-shadow: inset 0 0 0 2px var(--fire-2); }
.edicion { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.edicion button { padding: 10px; background: #000; color: var(--muted); border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--line); cursor: pointer; font: 0.75rem "Silkscreen", monospace; }
.edicion button.on { color: #fff; box-shadow: inset 0 0 0 2px var(--fire-2); background: rgba(251, 116, 6, 0.15); }
.vista-previa { display: flex; align-items: center; gap: 12px; padding: 10px; background: #000; border: 2px solid var(--line); }
.vista-previa img { width: 48px; height: 48px; image-rendering: pixelated; }
.pago { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 14px 0; }
.pago div { padding: 12px 6px; text-align: center; background: #000; border: 2px solid var(--line); font: 0.7rem "Silkscreen", monospace; }

/* ---------- pie, sello y aviso ---------- */
footer.pie { position: relative; z-index: 1; padding: 36px 0 48px; color: var(--muted); font-size: 0.88rem; border-top: 4px solid #000; background: rgba(0, 0, 0, 0.5); }
footer.pie .wrap { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
footer.pie a.port { color: var(--gold); text-decoration: underline; }
.autor { position: fixed; left: 18px; bottom: 18px; z-index: 40; display: flex; align-items: center; gap: 10px; padding: 9px 14px; font: 700 0.72rem "Silkscreen", monospace; color: #fff; background: rgba(0, 0, 0, 0.85); border: 3px solid #000; box-shadow: inset 0 0 0 2px var(--gold); transition: transform 0.15s; }
.autor:hover { transform: translateY(-3px); }
.autor span { color: var(--gold); }
.toast { position: fixed; left: 50%; bottom: 28px; z-index: 70; transform: translate(-50%, 200%); visibility: hidden; font: 700 0.82rem "Silkscreen", monospace; color: #fff; background: #1d1d1d; padding: 12px 18px; border: 3px solid #000; box-shadow: inset 0 0 0 2px #555, 0 0 0 3px var(--fire-2);
  transition: transform 0.25s cubic-bezier(.2,1.4,.4,1), visibility 0s 0.25s; }
.toast.on { transform: translate(-50%, 0); visibility: visible; transition: transform 0.25s cubic-bezier(.2,1.4,.4,1); }
.toast b { color: var(--fire-3); }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.55s, transform 0.55s; }
.reveal.visible { opacity: 1; transform: none; }

@keyframes flotar { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes latido { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
@keyframes respirar { 0%, 100% { opacity: 0.75; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } }
@keyframes entrar { from { opacity: 0; transform: translateX(-12px); } }
@keyframes aparecer { from { opacity: 0; transform: translateY(10px); } }
@keyframes llama {
  0%, 100% { color: #ffb347; text-shadow: 4px 4px 0 #000, 0 0 18px rgba(251, 116, 6, 0.9), 0 0 42px rgba(200, 3, 0, 0.7); }
  35% { color: #ffd27a; text-shadow: 4px 4px 0 #000, 0 0 26px rgba(255, 179, 71, 1), 0 0 60px rgba(251, 116, 6, 0.8); }
  70% { color: #fb7406; text-shadow: 4px 4px 0 #000, 0 0 14px rgba(200, 3, 0, 0.9), 0 0 34px rgba(200, 3, 0, 0.6); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}
@media (max-width: 1100px) {
  .links a { padding: 8px 6px; font-size: 0.7rem; }
  .accesos, .grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 920px) {
  .links { display: none; position: absolute; top: var(--nav-h); left: 0; right: 0; flex-direction: column; background: var(--bg-2); border-bottom: 4px solid #000; padding: 8px; }
  .links.abierto { display: flex; }
  .menu-movil { display: inline-flex; }
  .usuario span { display: none; }
  .tienda, .wiki { grid-template-columns: 1fr; }
  .lateral, .wiki-menu { position: static; max-height: none; }
  .cat-movil { display: block; }
  .lateral { order: 2; }
  .lateral .mods { display: none; }
  .grid-2, .grid-3, .evento-card, .discord { grid-template-columns: 1fr; }
  .cmds { grid-template-columns: 1fr; }
  .wiki-menu { flex-direction: row; flex-wrap: wrap; }
  .ip { display: flex; flex-wrap: wrap; width: 100%; }
  .ip > div, .ip .btn { flex: 1 1 100%; }
  .autor { left: 10px; bottom: 10px; font-size: 0.6rem; padding: 7px 10px; }
  .buscar { min-width: 0; flex: 1 1 100%; }
}
@media (max-width: 560px) {
  .accesos, .grid-4 { grid-template-columns: 1fr; }
  .evento svg { display: none; }
  .productos { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .producto { padding: 14px 8px; }
  .producto .img { height: 90px; } .producto .img img { max-height: 90px; }
  .racha { grid-template-columns: repeat(4, 1fr); }
  .voto { grid-template-columns: auto 1fr; }
  .voto .btn { grid-column: 1 / -1; }
  .brand span { display: none; }
}

/* ---------- barra de scroll temática ---------- */
html { --sb-pos: 0px; }
/* Firefox no admite barras con degradado: color de fuego plano. Chrome usa la barra de abajo. */
@supports (-moz-appearance: none) { html { scrollbar-color: var(--fire-2) #0a0202; } }
::-webkit-scrollbar { width: 14px; height: 14px; }
::-webkit-scrollbar-track { background: #0a0202; border-left: 3px solid #000; box-shadow: inset 2px 0 0 #2a0d0b; }
/* Llamas que suben: el degradado rojo → naranja → amarillo se desplaza hacia arriba dentro de la barra. */
::-webkit-scrollbar-thumb {
  background: repeating-linear-gradient(0deg, #e01a00 0px, #ff5a00 45px, #ff9a00 90px, #ffd23a 135px, #ff9a00 180px, #ff5a00 225px, #e01a00 270px);
  background-size: 100% 270px;
  background-position: 0 var(--sb-pos);
  border: 3px solid #000;
  box-shadow: inset -3px -3px 0 rgba(110, 2, 0, 0.55), inset 3px 3px 0 rgba(255, 240, 180, 0.55);
}
::-webkit-scrollbar-thumb:hover { filter: brightness(1.15); }
::-webkit-scrollbar-thumb:active { box-shadow: inset 3px 3px 0 var(--fire-dark), inset -3px -3px 0 #ffd27a; }
::-webkit-scrollbar-corner { background: #0a0202; }
.lateral::-webkit-scrollbar, .lineas::-webkit-scrollbar, .modal::-webkit-scrollbar, .modal ul::-webkit-scrollbar { width: 10px; }
.lateral::-webkit-scrollbar-thumb, .lineas::-webkit-scrollbar-thumb, .modal::-webkit-scrollbar-thumb, .modal ul::-webkit-scrollbar-thumb { border-width: 2px; box-shadow: inset -2px -2px 0 var(--fire-dark), inset 2px 2px 0 #ffd27a; }

/* ---------- franja de la tienda: donador y meta del mes ---------- */
.franja-tienda { display: grid; grid-template-columns: 1fr 1.3fr; gap: 22px; margin-bottom: 26px; }
.franja-tienda:has(> .donador-mes:only-child) { grid-template-columns: 1fr; }
.meta-mes[hidden] { display: none; }
.donador-mes { display: flex; align-items: center; gap: 20px; background: linear-gradient(120deg, #3a2a08, var(--card) 60%); box-shadow: inset 0 0 0 2px var(--gold), 6px 6px 0 #000; overflow: visible; }
.donador-mes img { width: 72px; height: auto; image-rendering: pixelated; filter: drop-shadow(0 8px 10px rgba(0, 0, 0, 0.6)); animation: flotar 4s ease-in-out infinite; }
.donador-mes h3 { font: 700 1.4rem "Silkscreen", monospace; color: var(--gold); margin: 4px 0; text-shadow: 3px 3px 0 #000; }
.donador-mes p.muted { font-size: 0.9rem; }
.corona-flota { position: absolute; top: -18px; left: 30px; }
.corona-flota svg { width: 40px; height: 40px; animation: flotar 2.6s ease-in-out infinite; filter: drop-shadow(0 0 10px rgba(255, 207, 74, 0.7)); }
.meta-mes { display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.meta-cab { display: flex; justify-content: space-between; align-items: baseline; }
.meta-cab b { font-size: 1.8rem; color: var(--fire-3); text-shadow: 3px 3px 0 #000; }
.meta-bar.grande { height: 30px; margin: 0; }
.meta-bar.grande i { box-shadow: 0 0 18px rgba(251, 116, 6, 0.5); }
.meta-mes p.muted { font-size: 0.92rem; }
.donador-mes > div { min-width: 0; }
@media (max-width: 920px) { .franja-tienda { grid-template-columns: 1fr; gap: 16px; } }
@media (max-width: 560px) {
  .donador-mes { gap: 14px; padding: 16px; }
  .donador-mes img { width: 48px; }
  .donador-mes h3 { font-size: 1.05rem; overflow-wrap: anywhere; }
  .donador-mes p.muted { display: none; }
  .meta-mes { padding: 16px; gap: 8px; }
  .meta-cab b { font-size: 1.3rem; }
  .meta-bar.grande { height: 22px; }
  .meta-mes p.muted { font-size: 0.82rem; }
}
/* La corona va centrada sobre el jugador y corta el borde superior de la caja en ese punto. */
.donador-mes { --hueco: 63px; border-top-color: transparent; background-clip: padding-box;
  box-shadow: inset 2px 0 0 var(--gold), inset -2px 0 0 var(--gold), inset 0 -2px 0 var(--gold), 6px 6px 0 #000; }
.donador-mes::before { content: ""; position: absolute; left: -3px; right: -3px; top: -3px; height: 5px; pointer-events: none;
  background:
    linear-gradient(90deg, #000 0 calc(var(--hueco) - 28px), transparent 0 calc(var(--hueco) + 28px), #000 0) 0 0 / 100% 3px no-repeat,
    linear-gradient(90deg, var(--gold) 0 calc(var(--hueco) - 28px), transparent 0 calc(var(--hueco) + 28px), var(--gold) 0) 0 3px / 100% 2px no-repeat; }
.corona-flota { left: calc(var(--hueco) - 23px); top: -24px; }
@media (max-width: 560px) {
  .donador-mes { --hueco: 43px; }
  .corona-flota { left: calc(var(--hueco) - 19px); top: -20px; }
  .corona-flota svg { width: 32px; height: 32px; }
}

/* ---------- ambientación: Nether al fondo, chispas y calor ---------- */
/* La escena es más alta que la pantalla: el lago de lava y el suelo quedan por debajo y suben al hacer scroll. */
.nether { position: fixed; left: 0; right: 0; bottom: -28vh; height: 86vh; z-index: 0; pointer-events: none; overflow: hidden; will-change: transform; }
.nether .monte { position: absolute; left: -4%; width: 108%; will-change: transform; }
.nether .lejos { bottom: 38%; height: 60%; }
.nether .media, .nether .blazes, .nether .fortaleza { bottom: 34%; height: 48%; }
.nether .cerca { bottom: 0; height: 30%; }
.nether .lago { position: absolute; left: 0; width: 100%; bottom: 12%; height: 24%; image-rendering: pixelated; }
.nether .brillo-lava { position: absolute; left: 0; right: 0; bottom: 33%; height: 22%; background: linear-gradient(0deg, rgba(255, 110, 30, 0.14), transparent); animation: respirar 3.5s ease-in-out infinite; }
.calor { position: fixed; left: 0; top: 0; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%; z-index: 79; pointer-events: none;
  -webkit-mask-image: radial-gradient(circle, #000 50%, transparent 84%); mask-image: radial-gradient(circle, #000 50%, transparent 84%);
  opacity: 0; transition: opacity 0.4s; will-change: transform; }
.calor.on { opacity: 1; backdrop-filter: url(#filtro-calor); }  /* el filtro solo se calcula mientras se ve */
@media (hover: none), (prefers-reduced-motion: reduce) { .calor { display: none; } }
@media (max-width: 920px) { .nether { height: 60vh; bottom: -20vh; } }
.hero h1, .hero p.lead { position: relative; }
.hero p.lead { text-shadow: 0 2px 0 #000, 0 0 12px rgba(0, 0, 0, 0.9); }
