:root {
  --bg: #0b0b0f;
  --fg: #ffffff;
  --muted: #b7b7c2;
  --accent: #ff2d55;
  --card: #14141a;
  --ok: #2ecc71;
  --warn: #ffb020;
}
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent
}
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: var(--bg);
  color: var(--fg);
   font-family: 'glo sans';
	font-size: 3vw;
}
body {
  overflow: hidden
}
.loglo{
	
    width: 23vw;
    height: auto;
    margin: 0 auto;
    padding: 0.5em;
    display: block;
}
.app {
  height: calc(100dvh - 3em);
  display: flex;
  flex-direction: column
}
.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: rgba(0, 0, 0, .3);
  backdrop-filter: saturate(140%) blur(8px);
  position: sticky;
  top: 0;
  z-index: 10
}
.brand {
      width: 100%;
}
.logo-text {
  font-size: 1.8em;
    text-align: center;
    width: 100%;
    display: block;
    margin-top: 0.5em;
}
.progress {
      display: flex;
    /* gap: 10px; */
    align-items: center;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
    width: 100%;
    padding: 0.5em;
	margin-bottom: 0.5em;
}
.progress-count {
  font-size: 1.5em;
    color: var(--muted);
    width: 2.1em;
    text-align: center;
    margin-right: 0.5em;
}
.progress-bar {
  width: 19em;
    height: 1em;
    background: #2a2a33;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 0.3em;
}
.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #ff7a00);
  width: 0
}
.main {
  flex: 1;
  min-height: 0
}
.rail {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 1em;
}
.rail::-webkit-scrollbar {
  height: 6px
}
.rail::-webkit-scrollbar-thumb {
  background: #2a2a33;
  border-radius: 999px
}
.card {
      width: 9.2em;
    height: 12em;
    margin: 0.5em;
    
    scroll-snap-align: start;
    background: var(--card);
    border-radius: 0.4em;
    overflow: hidden;
	position: relative;
}
.cover-wrap {
  position: relative;
  aspect-ratio: 9/16;
  background: #0f0f14
}
.cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
	opacity: 0.75;
}
.stamp {
  position: absolute;
   
    margin: 0;
    width: 100%;
    height: 12em;
    opacity: 0;
    top: 0;
    left: 0;
	background-image: url("../assets/check.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 4em auto;
	background-color: rgba(216,102,44,0.8);
	z-index: 200;
}
.card.stamped .stamp {
  opacity: 1;
  
}
.card.stamped.pop .stamp {
  
}
#disclaimer{
	position: fixed;
	width: 100%;
	height: 3em;
	left: 0;
	bottom: 0;
	background-color: #fff;
	background-image: url("../assets/disclaimer.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: auto 2em;
}
@keyframes pop {
  0% {
    transform: scale(.7) rotate(-6deg);
    opacity: .2
  }
  55% {
    transform: scale(1.08) rotate(-6deg);
    opacity: 1
  }
  100% {
    transform: scale(1) rotate(-6deg)
  }
}
.title {
  margin: 0;
    padding: 0.5em;
    line-height: 1.1em;
    width: 13rem;
    height: 2.2em;
    font-size: 1.4em;
    color: #ffffff;
    position: absolute;
    z-index: 100;
    bottom: 0em;
    left: 2.2em;
    transform: rotate(-90deg);
    transform-origin: bottom left;
    text-align: left;
	text-shadow: 0 0 1em #000;
}
.toast {
  position: fixed;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  max-width: 90vw;
  background: #1d1d25;
  color: #fff;
  padding: 10px 14px;
  border-radius: 12px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .4);
  font-size: 14px;
  z-index: 20
}
.reset {
  position: fixed;
  right: 12px;
  bottom: 12px;
  background: #242432;
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 13px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .35)
}
.overlay {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(0, 0, 0, .58);
  backdrop-filter: blur(4px);
  z-index: 5000;
}
.overlay-card {
  width: min(92vw, 480px);
  background: #d8662c;
  border-radius: 1em;
  padding: 2em;
  box-shadow: 0 14px 40px rgba(0, 0, 0, .5);
  text-align: center;
}
.overlay-card h2 {
      margin: 0 0 1em;
    font-size: 3em;
}
.overlay-text {
  margin: 0 0 1em;
  color: #fff;
	font-size: 1.25em;
}
.btn {
  background: var(--bg);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 16px;
  font-weight: 700
}


/* Oculta cualquier elemento con [hidden] siempre, por encima de otras reglas */
[hidden] { display: none !important; }

/* Contenedor principal desplazable verticalmente */
.main { flex: 1; min-height: 0; overflow: auto; }





/* (opcional) Mantén formato póster vertical */
.cover-wrap { aspect-ratio: 9 / 16; }

/* Asegura que el overlay solo se vea cuando NO esté hidden */
.overlay { /* tus estilos existentes (bg, blur, etc.) */ }