/* --- style.css (Proyecto G) --- */

html,body{
  height:100%;
  margin:0;
  overscroll-behavior:contain;
  user-select:none;
  -webkit-user-select:none;
}

body{
  display:flex;
  flex-direction:column;
  background:center top / cover no-repeat fixed;
  background-position: center top;
  background-size:100vw auto;
  font-family:Roboto,arial,sans-serif;
  transition: background 0.2s;
  min-height:calc(100vh + 3px);
}

main{
  flex:1;
  position:relative;
  min-height:100vh;
}

/* Envuelve todo el contenido "normal" de la página (todo menos el
   visor de imagen larga y el botón nuevo). Es el elemento al que se
   le aplica la distorsión del glitch — así el visor de imagen y el
   botón, al quedar FUERA de este wrapper, nunca se ven afectados por
   la transformación y no se puede "colar" nada por los bordes.
   Reproduce exactamente el mismo comportamiento flex que tenía body. */
#pageShakeWrap{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:calc(100vh + 3px);
}

/* Pantalla de 1s al cargar la página: TODA ella es un botón. Si se
   toca, arranca el sistema en modo oscuro; si no, en claro. El único
   sitio de todo el proyecto donde el color SÍ depende del modo del
   dispositivo (a propósito, así lo pidió el usuario) — por CSS puro,
   no hace falta JS para decidir este color en concreto. */
#darkModeGate{
  position:fixed;
  inset:0;
  z-index:999900;
  background:#fff;
  -webkit-tap-highlight-color:transparent;
}
@media (prefers-color-scheme: dark){
  #darkModeGate{ background:#1e1e1e; }
}

/* Imagen larga real, en el flujo normal del documento (como
   Netflix/Wikipedia): así hereda el scroll nativo de verdad, en vez
   de un truco de background-image con attachment cambiado por JS */
#tallImageDisplay{
  display:none;
  width:100%;
  height:auto;
}
#tallImageDisplay.show{ display:block; }

body::after{
  content:"";
  display:block;
  height:12000px; /* espacio reservado desde el inicio para poder recorrer la imagen larga sin cambiar el alto de la página en tiempo de ejecución */
  width:100%;
  flex-shrink:0;
}
body.imageActiveMode::after{
  height:0; /* la imagen real ya aporta su propio alto; este espacio de más ya no hace falta */
}

/* fakeBar — SIN CONTORNO ROJO, 100% INVISIBLE Y CLICABLE */
#fakeBar{
  position:absolute;
  left:50%;
  top:calc(25.5% - (48px + 3mm) + 3mm);
  transform:translateX(-50%);
  width:90%;
  max-width:560px;
  height:calc((48px + 3mm) * 2);
  background:none;
  border:none;
  cursor:pointer;
  z-index:200;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  pointer-events:auto !important;
}

/* 🔥 BOTÓN TIMER_REDIRECT — MISMAS PROPORCIONES, SIN CONTORNO */
#timer_redirect{
  position:absolute;
  left:50%;
  top:calc(50% - 48px); /* default */
  transform:translateX(-50%);
  width:90%;
  max-width:560px;
  height:96px;
  background:transparent;
  border:none;
  cursor:pointer;
  z-index:200;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  pointer-events:auto !important;
}
#timer_redirect:focus,
#timer_redirect:active{
  outline:none;
  background:transparent;
}

/* 🔥 ESPAÑOL: 42% para timer, 48% para trigger (justo debajo) */
html[lang="es"] #fakeBar{
  top:calc(25.5% - (48px + 3mm) + 3mm) !important;
}
html[lang="es"] #timer_redirect{
  top:calc(42% - 48px) !important;
}

/* 🔥 INGLÉS: bloque independiente */
html[lang="en"] #fakeBar{
  top:calc(22% - (48px + 3mm) + 3mm) !important;
}
html[lang="en"] #timer_redirect{
  top:calc(30.9% - 48px) !important;
}

/* 🔥 ITALIANO: bloque independiente */
html[lang="it"] #fakeBar{
  top:calc(22% - (48px + 3mm) + 3mm) !important;
}
html[lang="it"] #timer_redirect{
  top:calc(30% - 48px) !important;
}

/* 🔥 FRANCÉS: bloque independiente */
html[lang="fr"] #fakeBar{
  top:calc(22% - (48px + 3mm) + 3mm) !important;
}
html[lang="fr"] #timer_redirect{
  top:calc(30% - 48px) !important;
}

#espacioExtra{
  width:100%;
  height:0;
  background:transparent;
  flex-shrink:0;
}

/* Todo el resto 100% tu código original */
#posterBlanco{position:fixed;inset:0;background:#fff;display:none;z-index:25;cursor:pointer;transition:none!important;}
#lineContainer{position:fixed;top:0;left:-3mm;width:100%;max-width:560px;z-index:30;transform:none;}
#barraReal{width:100%;height:48px;padding:0 46px;font-size:16px;border:none;background:#fff;color:#202124;outline:none;display:none;transition:none!important;-webkit-tap-highlight-color:transparent;text-indent:5mm;}
#separatorLine{position:fixed;top:48px;left:50%;transform:translateX(-50%);width:420px;height:1px;background-color:#707579;z-index:60;display:none;}
#arrowBack{position:fixed;top:10px;left:5mm;width:19px;height:19px;z-index:100;display:none;background-repeat:no-repeat;background-size:contain;background-position:center;}
#invisibleButton{position:fixed;top:-3px;left:0;width:60px;height:60px;display:none;background:transparent;border:none;outline:none;appearance:none;cursor:pointer;z-index:90;-webkit-tap-highlight-color:transparent;}

.trends-container{margin-top:39px;font-size:14px;padding:0 30px;transform:translateY(2mm);}
.trend-item{margin-bottom:27px;font-weight:400;font-size:17px;line-height:24px;display:flex;align-items:center;position:relative;}
.trend-item:first-child{position:relative;top:19px;font-size:14px;letter-spacing:.8px;transform:translateY(-2mm);text-shadow:.1px 0 0 #636363,-.1px 0 0 #636363,0 .1px 0 #636363,0 -.1px 0 #636363;}
.trend-item:not(:first-child){top:2px;left:4px;font-size:16px;transform:translateY(-1mm);}
.trend-icon{width:6mm;height:5.25mm;flex-shrink:0;margin-right:14px;margin-left:-10px;transform:translateX(-1mm);filter:drop-shadow(0 0 0 #9AA0A6) saturate(200%) brightness(.85);}

.camera-img{position:absolute;left:calc(100% - 8mm);top:50%;transform:translateY(-50%);width:5mm;height:5mm;z-index:40;pointer-events:none;display:none;}
.mic-img,.cruz-img{position:absolute;z-index:40;pointer-events:none;display:none;}

#suggestionsContainer{position:fixed;top:48px;left:0;right:0;bottom:0;overflow-y:auto;background:#fff;z-index:45;display:none;}
.suggestion-item{display:flex;align-items:center;gap:10px;padding:12px;font-size:16px;cursor:pointer;transition:background .15s ease;}
.suggestion-item:hover{background:#f1f3f4;}

.icono-lupa,.icono-flecha{width:19px;height:19px;object-fit:contain;opacity:1;flex-shrink:0;}
.icono-lupa{transform:translateX(2mm) translateY(+0.5mm);}
.icono-flecha{margin-left:auto;transform:translateX(-2mm) translateY(+0.5mm);}

.texto strong{font-weight:700;}
.aparecer{animation:fadeIn .15s ease-out;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.texto{display:inline-block;margin-left:3mm;margin-top:.5mm;}

/* OVERLAY CONFIGURACIÓN TIMER */
#timerConfigOverlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.35);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:500;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}

#timerConfigBox{
  background:rgba(255,255,255,0.96);
  padding:12px 14px;
  border-radius:14px;
  width:75%;
  max-width:260px;
  box-shadow:0 10px 30px rgba(0,0,0,0.25);
  font-family:Roboto,arial,sans-serif;
}

#timerConfigBox label{
  display:block;
  margin-bottom:6px;
  font-size:13px;
  font-weight:500;
  color:#111827;
  text-align:center;
}

#timerSecondsInput{
  width:60%;
  margin:0 auto 10px auto;
  padding:4px 6px;
  font-size:14px;
  text-align:center;
  border:1px solid #d0d7de;
  border-radius:999px;
  outline:none;
  display:block;
  color:#111827;
  background:#f5f5f7;
}

#timerSecondsInput:focus{
  border-color:#007aff;
  background:#ffffff;
}

.timer-buttons{
  display:flex;
  justify-content:center;
  margin-top:6px;
}

#timerSaveButton{
  padding:5px 20px;
  font-size:13px;
  border:none;
  border-radius:999px;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  background:#007aff;
  color:#ffffff;
}

/* 🔥 NUEVO BOTÓN INDEPENDIENTE: punto -> 5s -> glitch nuevo -> redirige */
/* El contorno rojo es solo para localizarlo mientras ensayas.
   Cuando lo tengas memorizado, cambia "border" a: border:2px solid transparent; */
#newGlitchBtn{
  position:fixed;
  left:50%;
  top:calc(50% + 1.5cm);
  bottom:0;
  transform:translateX(-50%);
  width:50vw;
  height:auto;
  background:transparent;
  border:0px solid red;
  border-radius:6px;
  cursor:pointer;
  z-index:40000;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  pointer-events:auto !important;
}
#newGlitchBtn:focus,
#newGlitchBtn:active{
  outline:none;
  background:transparent;
}

/* Botón cuadrado, centrado horizontalmente, pegado arriba del todo
   de la pantalla (mismo hueco que tenía el botón de modo claro/
   oscuro). Totalmente transparente — solo se ve el punto cuando
   está activo. */
#imagesModeToggleBtn{
  position:fixed;
  left:50%;
  top:calc(16px - 1.9cm);
  transform:translateX(calc(-50% - 2.55cm - 0.5mm + 2.5mm));
  width:calc(140px - 5mm);
  height:140px;
  background:transparent;
  border:0px solid red;
  border-radius:10px;
  z-index:40500;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  pointer-events:auto !important;
}
.imagesModeWrap{
  position:absolute;
  inset:0;
  display:block;
}
.imagesModeDot{
  position:absolute;
  right:calc(8px + 7mm);
  bottom:calc(8px + 0.5mm);
  width:5px;
  height:5px;
  border-radius:50%;
  background:#686469;
  opacity:0; /* invisible por defecto; la animación lo muestra tras 1s */
}
html.imagesMode .imagesModeDot{
  animation: dotAppear 0.01s 2s forwards;
}
@keyframes dotAppear{
  to{ opacity:1; }
}

html.searchOpen #imagesModeToggleBtn,
html.imageActiveMode #imagesModeToggleBtn{
  pointer-events:none !important;
  opacity:0 !important;
}

/* Menú de selección de imagen — por encima de todo, incluido newGlitchBtn */
/* Popup 1: lista de 5 elementos seleccionables */
#slotSelectMenu{
  position:fixed;
  left:50%;
  top:calc(50% - 3mm);
  transform:translate(-50%, -50%);
  width:220px;
  z-index:41000;
  display:none;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  border-radius:10px;
  box-shadow:0 6px 24px rgba(0,0,0,.25);
}
html.darkMode #slotSelectMenu{ background:#1e1e1e; box-shadow:0 6px 24px rgba(0,0,0,.4); }

#slotSelectMenu.show{ display:flex; }
.slotItem{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:8px 12px;
  font-family:Roboto,arial,sans-serif;
  font-size:14px;
  color:#202124;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  border-bottom:1px solid rgba(0,0,0,.1);
  position:relative;
}
html.darkMode .slotItem{ color:#fff; border-bottom:1px solid rgba(255,255,255,.12); }

.slotItem:last-child{ border-bottom:none; }
.slotItem:active{ background:rgba(0,0,0,.06); }
html.darkMode .slotItem:active{ background:rgba(255,255,255,.08); }

.slotItem.selected{ font-weight:700; }
.slotItem.selected .slotItemName::before{
  content:"✓ ";
}
.slotItemInput{
  width:90%;
  font-family:Roboto,arial,sans-serif;
  font-size:14px;
  text-align:center;
  border:none;
  border-radius:6px;
  padding:4px 6px;
  background:rgba(0,0,0,.06);
  color:inherit;
  outline:none;
}
html.darkMode .slotItemInput{ background:rgba(255,255,255,.12); }


/* Popup 2: subida de la imagen clara/oscura del elemento elegido */
#imgSwapMenu{
  position:fixed;
  left:50%;
  top:calc(50% - 3mm);
  transform:translate(-50%, -50%);
  width:140px;
  height:140px;
  z-index:41000;
  display:none;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  border-radius:10px;
  box-shadow:0 6px 24px rgba(0,0,0,.25);
}
html.darkMode #imgSwapMenu{ background:#1e1e1e; box-shadow:0 6px 24px rgba(0,0,0,.4); }

#imgSwapMenu.show{ display:flex; }
#imgSwapMenu label{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:Roboto,arial,sans-serif;
  font-size:14px;
  color:#202124;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
html.darkMode #imgSwapMenu label{ color:#fff; }

#imgUploadLabelWhite{ border-bottom:1px solid rgba(0,0,0,.1); }
html.darkMode #imgUploadLabelWhite{ border-bottom:1px solid rgba(255,255,255,.12); }

#imgSwapMenu label:active{ background:rgba(0,0,0,.06); }
html.darkMode #imgSwapMenu label:active{ background:rgba(255,255,255,.08); }



/* Visor de la imagen larga — por debajo de newGlitchBtn (para poder
   seguir pulsándolo) pero por encima del resto de la interfaz */
#imgSwapContainer{
  position:fixed;
  inset:0;
  z-index:39500;
  display:none;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  background:#fff;
}
html.darkMode #imgSwapContainer{ background:#1e1e1e; }

#imgSwapContainer.show{ display:block; }
#imgSwapPicture{
  display:block;
  width:100%;
  height:auto;
}

/* PUNTO TIMER */
#timerDot{
  position:absolute;
  transform:translate(-50%, -50%);
  width:0.785mm;
  height:0.785mm;
  border-radius:50%;
  z-index:39700; /* por encima del visor de imagen larga (39500) */
  pointer-events:none;
  display:none;
}

/* VARIABLES POR IDIOMA/TEMA */
/* CLARO */
html[lang="es"] #timerDot{ --dot-top-claro: 47.7%; --dot-left-claro: 96%; }
html[lang="en"] #timerDot{ --dot-top-claro: 38.3%; --dot-left-claro: 95.95%; }
html[lang="it"] #timerDot{ --dot-top-claro: 47.0%; --dot-left-claro: 96%; }
html[lang="fr"] #timerDot{ --dot-top-claro: 47.0%; --dot-left-claro: 96%; }

/* OSCURO */
html.darkMode #timerDot{
    top: var(--dot-top-oscuro, 47.7%);
    left: var(--dot-left-oscuro, 96%);
    background:#ffffff;
  }

html:not(.darkMode) #timerDot{
    top: var(--dot-top-claro, 47.7%);
    left: var(--dot-left-claro, 96%);
    background:#000000;
  }


/* BOTONES ROJOS INFERIORES */
#btnInfIzq, #btnInfDer{
  position:absolute;
  width:20mm;
  height:60mm;
  background:transparent;
  border:0px solid red;
  cursor:pointer;
  z-index:250;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  pointer-events:auto !important;
}
#btnInfIzq{ left:0; bottom:0; transform-origin:left bottom; }
#btnInfDer{ right:0; bottom:0; transform-origin:right bottom; }

/* Tema claro/oscuro */
html.darkMode #btnInfIzq{ left: 0mm; bottom: 12mm; }html.darkMode #btnInfDer{ right: 0mm; bottom: 12mm; }

html:not(.darkMode) #btnInfIzq{ left: 0mm; bottom: 12mm; }html:not(.darkMode) #btnInfDer{ right: 0mm; bottom: 12mm; }


/* POPUP WORD */
#wordPopup{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  z-index:9999;
  pointer-events:none;
}

#wordPopupText{
  padding:1mm;
  font-size:16px;
  line-height:24px;
  font-family:Roboto,arial,sans-serif;
  max-width:80%;
  text-align:center;
  word-break:break-word;
  user-select:none;
  -webkit-user-select:none;
}

html.darkMode #wordPopupText{
    background:#1e1e1e;
    color:#ffffff;
  }

html:not(.darkMode) #wordPopupText{
    background:#ffffff;
    color:#000000;
  }


/* MODO SETTINGS — doble tap en el botón glitch lo activa/desactiva.
   Contorno rojo en TODOS los botones invisibles del sistema. */
html.settingsMode #fakeBar,
html.settingsMode #timer_redirect,
html.settingsMode #invisibleButton,
html.settingsMode #newGlitchBtn,
html.settingsMode #imagesModeToggleBtn,
html.settingsMode #btnInfIzq,
html.settingsMode #btnInfDer{
  border:2px solid red !important;
}

/* Pantalla de transición blanca/oscura, entre pulsar Enter y que
   aparezca la imagen — da sensación de carga real */
#fakeLoadingScreen{
  position:fixed;
  inset:0;
  z-index:97000;
  display:none;
  background:#fff;
}
html.darkMode #fakeLoadingScreen{ background:#212121; }

#fakeLoadingScreen.show{ display:block; }

/* Overlay de bloqueo: mientras cualquiera de los dos popups (lista de
   5 / subida) está abierto, intercepta todo el tacto por encima de
   cualquier botón real del sistema */
#menuBlockOverlay{
  position:fixed;
  inset:0;
  z-index:40800;
  display:none;
}
#menuBlockOverlay.show{ display:block; }

/* Overlay que intercepta todo el tacto en modo settings, para que
   ningún botón ejecute su función real mientras se identifica */
#settingsOverlay{
  position:fixed;
  inset:0;
  z-index:98000;
  display:none;
}
html.settingsMode #settingsOverlay{ display:block; }

/* Tooltip que identifica el botón: aparece mientras mantienes el
   dedo pulsado sobre él, en modo settings */
#settingsTooltip{
  position:fixed;
  z-index:99999;
  display:none;
  width:min(85vw, 380px);
  padding:18px 22px;
  border-radius:14px;
  background:rgba(15,15,15,.95);
  color:#fff;
  font-family:Roboto,arial,sans-serif;
  font-size:19px;
  line-height:1.45;
  text-align:center;
  pointer-events:none;
  transform:translate(-50%, -100%);
  box-shadow:0 8px 30px rgba(0,0,0,.5);
}
#settingsTooltip.show{ display:block; }
#settingsTooltip strong{
  display:block;
  font-size:23px;
  font-weight:700;
  margin-bottom:8px;
}