/* Bubbles and Bets — web oficial. Paleta tomada del juego (assets/PALETA.md). */
:root{
  --negro:#0b0a0d; --noche:#14121a; --panel:#1c1920; --linea:#2e2a33;
  --texto:#ece6da; --suave:#a9a2a8; --crema:#f3e9d2;
  --rojo:#c22a35; --coral:#e8604c; --oro:#c2a060; --mostaza:#f2b33d; --turquesa:#2e7f7a;
  --display:"Lilita One",Impact,"Arial Black",sans-serif;
  --cuerpo:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --ancho:min(1240px,92vw); --radio:14px;
}
@font-face{font-family:"Lilita One";src:url(../fonts/LilitaOne-Regular.ttf) format("truetype");font-display:swap}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--negro);color:var(--texto);font:400 1.0625rem/1.65 var(--cuerpo);-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:var(--mostaza)} a:hover{color:var(--crema)}
:focus-visible{outline:3px solid var(--mostaza);outline-offset:3px;border-radius:4px}
.salto{position:absolute;left:-999px;top:8px;background:var(--mostaza);color:#000;padding:.6em 1em;z-index:100}
.salto:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.contenedor{width:var(--ancho);margin-inline:auto}

/* Cabecera */
.cabecera{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,backdrop-filter .3s}
.cabecera.solida{background:rgba(11,10,13,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--linea)}
.cabecera .contenedor{display:flex;align-items:center;gap:1.5rem;height:72px}
.marca{font-family:var(--display);font-size:1.5rem;color:var(--crema);text-decoration:none;letter-spacing:.5px;white-space:nowrap}
.marca span{color:var(--coral)}
.menu{display:flex;gap:1.4rem;margin-left:auto;list-style:none;padding:0}
.menu a{color:var(--texto);text-decoration:none;font-weight:600;font-size:.95rem;padding:.5em 0;position:relative}
.menu a::after{content:"";position:absolute;left:0;right:100%;bottom:.2em;height:2px;background:var(--coral);transition:right .25s}
.menu a:hover::after,.menu a:focus-visible::after{right:0}
.hamburguesa{display:none;margin-left:auto;background:none;border:1px solid var(--linea);color:var(--texto);width:48px;height:48px;border-radius:10px;font-size:1.4rem;cursor:pointer}
.redes{display:flex;gap:.5rem;list-style:none;padding:0;margin:0;flex-wrap:wrap}
.redes a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--linea);color:var(--texto);transition:.2s}
.redes a:hover{border-color:var(--coral);color:var(--coral);transform:translateY(-2px)}
.redes svg{width:20px;height:20px;fill:currentColor}

/* Botones */
.btn{display:inline-flex;align-items:center;gap:.6em;min-height:52px;padding:.8em 1.6em;border-radius:999px;font:700 1rem var(--cuerpo);text-decoration:none;cursor:pointer;border:2px solid transparent;transition:transform .2s,background .2s,box-shadow .2s,color .2s}
.btn-primario{background:var(--coral);color:#1a0b08;box-shadow:0 8px 30px rgba(232,96,76,.35)}
.btn-primario:hover{background:#ff7a64;color:#1a0b08;transform:translateY(-2px)}
.btn-secundario{border-color:rgba(243,233,210,.5);color:var(--crema);background:rgba(0,0,0,.25)}
.btn-secundario:hover{border-color:var(--crema);background:rgba(243,233,210,.1);color:var(--crema)}
.btn[aria-disabled="true"],.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn.cargando{pointer-events:none;opacity:.7}
.btn.cargando::after{content:"";width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:gira .7s linear infinite}
@keyframes gira{to{transform:rotate(1turn)}}
.etiqueta{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.35em .9em;border-radius:999px;border:1px solid var(--oro);color:var(--oro)}
.pendiente{border-color:var(--suave);color:var(--suave)}

/* Portada */
.portada{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden;isolation:isolate}
.portada video,.portada .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.portada::after{content:"";position:absolute;inset:0;z-index:-1;background:
  linear-gradient(180deg,rgba(11,10,13,.55) 0%,rgba(11,10,13,0) 30%,rgba(11,10,13,.35) 60%,var(--negro) 100%),
  radial-gradient(ellipse at 20% 80%,rgba(194,42,53,.35),transparent 60%)}
.portada .contenedor{padding-bottom:clamp(4rem,12vh,9rem)}
.logo-juego{font-family:var(--display);font-size:clamp(3.2rem,10vw,9rem);line-height:.9;margin:.3em 0 .15em;color:var(--crema);text-shadow:0 6px 0 var(--rojo),0 20px 60px rgba(0,0,0,.6);letter-spacing:1px}
.logo-juego em{font-style:normal;color:var(--coral);text-shadow:0 6px 0 #5a0e13,0 20px 60px rgba(0,0,0,.6)}
.eslogan{font-size:clamp(1.15rem,2.2vw,1.6rem);max-width:36ch;margin:0 0 2rem;color:var(--crema)}
.acciones{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.estado{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:2.2rem;font-size:.92rem;color:var(--suave)}
.estado b{color:var(--texto);font-weight:600}
.control-video{position:absolute;right:4vw;bottom:2rem;background:rgba(0,0,0,.5);border:1px solid var(--linea);color:var(--texto);border-radius:999px;min-height:44px;padding:.5em 1em;cursor:pointer;font:600 .85rem var(--cuerpo)}
.flecha{position:absolute;left:50%;bottom:1.2rem;transform:translateX(-50%);color:var(--suave);font-size:1.6rem;animation:bota 2s infinite;text-decoration:none}
@keyframes bota{50%{transform:translate(-50%,8px)}}

/* Secciones */
section{padding:clamp(4.5rem,10vw,8rem) 0}
.titulo-seccion{font-family:var(--display);font-size:clamp(2.2rem,5vw,3.8rem);line-height:1;margin:.4rem 0 1.4rem;color:var(--crema)}
.intro{max-width:62ch;color:var(--suave);font-size:1.1rem}
.dos-col{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.marco{border-radius:var(--radio);overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.6);border:1px solid var(--linea);aspect-ratio:16/9;background:var(--panel)}
.marco img{width:100%;height:100%;object-fit:cover}
.datos{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:2rem 0 0;padding:0}
.datos div{background:var(--panel);border:1px solid var(--linea);border-radius:10px;padding:1rem}
.datos dt{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--oro)}
.datos dd{margin:.2rem 0 0;font-weight:600}

.franja{position:relative;height:clamp(240px,45vw,520px);background:center/cover fixed;display:grid;place-items:center;text-align:center}
.franja::before{content:"";position:absolute;inset:0;background:linear-gradient(var(--negro),rgba(11,10,13,.25) 30%,rgba(11,10,13,.25) 70%,var(--negro))}
.franja p{position:relative;font-family:var(--display);font-size:clamp(1.8rem,4.5vw,3.4rem);color:var(--crema);max-width:20ch;margin:0;text-shadow:0 4px 30px #000}

.tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.4rem;margin-top:2.5rem}
.tarjeta{background:var(--panel);border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden;transition:transform .3s,border-color .3s}
.tarjeta:hover{transform:translateY(-6px);border-color:var(--coral)}
.tarjeta img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;transition:transform .6s}
.tarjeta:hover img{transform:scale(1.05)}
.tarjeta div{padding:1.2rem 1.3rem 1.5rem}
.tarjeta h3{margin:0 0 .4rem;font-size:1.2rem;color:var(--crema)}
.tarjeta p{margin:0;color:var(--suave);font-size:.98rem}
.aviso{margin-top:1.8rem;font-size:.9rem;color:var(--suave)}

/* Galería */
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem;margin-top:2.5rem;list-style:none;padding:0}
.galeria button{all:unset;display:block;cursor:zoom-in;border-radius:10px;overflow:hidden;aspect-ratio:16/9;background:var(--panel);position:relative}
.galeria button:focus-visible{outline:3px solid var(--mostaza);outline-offset:3px}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform .5s,filter .5s;filter:saturate(.9)}
.galeria button:hover img{transform:scale(1.06);filter:saturate(1.1)}
.visor{position:fixed;inset:0;z-index:90;background:rgba(5,5,7,.95);display:none;align-items:center;justify-content:center;padding:4vh 4vw}
.visor.abierto{display:flex}
.visor figure{margin:0;max-width:100%;max-height:100%;text-align:center}
.visor img{max-height:82vh;width:auto;margin:auto;border-radius:8px}
.visor figcaption{margin-top:.8rem;color:var(--suave)}
.visor .ctl{position:absolute;background:rgba(255,255,255,.08);border:1px solid var(--linea);color:#fff;width:52px;height:52px;border-radius:50%;font-size:1.4rem;cursor:pointer}
.visor .ctl:hover{background:var(--coral);color:#000}
.visor .cerrar{top:2vh;right:2vw}.visor .ant{left:2vw;top:50%}.visor .sig{right:2vw;top:50%}

/* Vídeos */
.reproductor{position:relative;border-radius:var(--radio);overflow:hidden;border:1px solid var(--linea);background:#000;aspect-ratio:16/9}
.reproductor video{width:100%;height:100%;object-fit:contain}
.lista-videos{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.5rem;list-style:none;padding:0}
.lista-videos li{border:1px dashed var(--linea);border-radius:10px;padding:1rem;color:var(--suave);font-size:.95rem}
.lista-videos b{display:block;color:var(--texto)}

/* Noticias */
.noticias{display:grid;gap:1.2rem;margin-top:2rem}
.noticia{background:var(--panel);border:1px solid var(--linea);border-left:4px solid var(--coral);border-radius:10px;padding:1.4rem}
.noticia time{color:var(--oro);font-size:.85rem}
.noticia h3{margin:.3rem 0 .5rem;color:var(--crema)}
.vacio{border:1px dashed var(--linea);border-radius:10px;padding:2rem;text-align:center;color:var(--suave)}

/* Comunidad */
.cta-final{text-align:center;background:radial-gradient(ellipse at center,rgba(194,42,53,.25),transparent 70%)}
.cta-final .redes{justify-content:center;margin:2rem 0}

/* Pie */
.pie{border-top:1px solid var(--linea);background:var(--noche);padding:3.5rem 0 2rem;font-size:.92rem;color:var(--suave)}
.pie-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.pie h2{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--oro);margin:0 0 .8rem}
.pie ul{list-style:none;padding:0;margin:0;display:grid;gap:.25rem}
.pie ul a{color:var(--suave);text-decoration:none;display:inline-block;padding:.3em 0}
.pie ul a:hover{color:var(--crema)}
.pie-base{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--linea);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.82rem}

/* Páginas legales */
.legal{padding:8rem 0 4rem}
.legal article{max-width:78ch}
.legal h1{font-family:var(--display);color:var(--crema);font-size:clamp(2rem,4vw,3rem);line-height:1.1}
.legal h2{color:var(--crema);margin-top:2.2rem;font-size:1.3rem}
.legal table{border-collapse:collapse;width:100%;font-size:.92rem;margin:1rem 0}
.legal th,.legal td{border:1px solid var(--linea);padding:.6rem;text-align:left;vertical-align:top}
.legal th{background:var(--panel)}
.falta{background:rgba(242,179,61,.12);border:1px dashed var(--mostaza);color:var(--mostaza);padding:0 .35em;border-radius:4px;font-size:.92em}
.nota-juridica{border:1px solid var(--oro);background:rgba(194,160,96,.08);padding:1rem 1.2rem;border-radius:10px;font-size:.92rem}

/* Animación al desplazar */
.js .revela{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}
.js .revela.visible{opacity:1;transform:none}

@media (max-width:900px){
  .menu{position:fixed;inset:72px 0 auto;flex-direction:column;gap:0;background:rgba(11,10,13,.97);padding:1rem 6vw 2rem;border-bottom:1px solid var(--linea);display:none}
  .menu.abierto{display:flex}.menu a{display:block;padding:.9em 0;font-size:1.1rem}
  .hamburguesa{display:block}
  .cabecera .redes{display:none}
  .dos-col,.pie-grid{grid-template-columns:1fr}
  .franja{background-attachment:scroll}
  .datos{grid-template-columns:1fr 1fr}
}
@media (min-width:2200px){:root{--ancho:min(1700px,88vw)}body{font-size:1.2rem}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .revela{opacity:1;transform:none}
  .franja{background-attachment:scroll}
}
