*{
  box-sizing:border-box
}

html,
body{
  margin:0;
  width:100%;
  min-height:100%;
  background:#09131b;
  color:#edf5f7;
  font-family:
    Trebuchet MS,
    system-ui,
    -apple-system,
    "Segoe UI",
    sans-serif
}

body{
  min-height:100dvh;
  overflow:hidden
}

.game{
  width:100%;
  height:100dvh;
  max-width:1180px;
  margin:0 auto;
  padding:clamp(6px,1.2vw,14px);
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:clamp(6px,1vw,10px)
}


/* ---------------------------------------------------------
   CABECERA
--------------------------------------------------------- */

.topbar{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:5px 12px;
  background:#101d27;
  border:1px solid #304657;
  border-radius:12px
}

.brand{
  font-weight:900;
  letter-spacing:.08em
}

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

.timer-box{
  min-width:86px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:4px 8px;
  background:#0b171f;
  border:1px solid #304657;
  border-radius:8px
}

.timer-box span{
  color:#afbec7;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em
}

.timer{
  font-size:20px;
  font-weight:900;
  line-height:1
}

.question-timer{
  color:#54d7c5
}


/* ---------------------------------------------------------
   DISTRIBUCIÓN
--------------------------------------------------------- */

.layout{
  min-height:0;
  display:grid;
  grid-template-columns:
    minmax(0,1.15fr)
    minmax(360px,.85fr);
  gap:clamp(6px,1vw,10px)
}

.room,
.question-panel{
  min-width:0;
  min-height:0;
  background:#101d27;
  border:1px solid #304657;
  border-radius:12px
}

.room{
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(
      circle at 50% 30%,
      #1d3440 0,
      #0c171f 60%
    )
}

.room-content{
  width:min(250px,82%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px
}

.room-label{
  opacity:.35;
  letter-spacing:.18em;
  font-weight:800
}

.game-timer-box{
  width:100%;
  padding:18px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  background:rgba(11,23,31,.88);
  border:1px solid #304657;
  border-radius:14px;
  box-shadow:0 10px 30px rgba(0,0,0,.22)
}

.game-timer-box span{
  color:#afbec7;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em
}

.game-timer{
  font-size:clamp(34px,4vw,52px);
  font-weight:900;
  line-height:1
}

.question-panel{
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:7px
}


/* ---------------------------------------------------------
   MARCO DEL ACERTIJO
--------------------------------------------------------- */

.question-frame{
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
  border-radius:8px;
  background:#0b171f;
  position:relative;
  transition:opacity .65s ease, transform .65s ease
}

/* ---------------------------------------------------------
   TRANSICIÓN SUAVE ENTRE ACERTIJOS
--------------------------------------------------------- */

.question-transition-overlay{
  position:absolute;
  inset:0;

  z-index:10;

  background:rgba(9,19,27,1);

  opacity:0;
  pointer-events:none;

  transition:opacity 0.625s ease;
}

.question-transition-overlay.show{
  opacity:1;
}

.question-frame.question-fade-out{
  opacity:.05;
  transform:scale(.992)
}

.question-frame.question-fade-in{
  animation:questionFadeIn .65s ease both
}

@keyframes questionFadeIn{
  from{opacity:.15;transform:scale(.992)}
  to{opacity:1;transform:scale(1)}
}

.question-frame iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#0b171f
}

.question-status{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:6px 10px;
  background:#0b171f;
  border:1px solid #304657;
  border-radius:9px
}

.question-status-timer{
  order:2;
  flex:0 0 auto;
  display:flex;
  align-items:baseline;
  gap:7px;
  padding:4px 9px;
  border:1px solid #304657;
  border-radius:8px;
  background:#101d27
}

.question-status-timer span{
  color:#afbec7;
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em
}

.question-timer{
  color:#54d7c5;
  font-size:20px;
  font-weight:900;
  line-height:1
}

.question-progress{
  min-width:0;
  flex:1 1 auto;
  order:1;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px
}

.solved-count{
  flex:0 0 auto;
  min-width:32px;
  color:#edf5f7;
  font-size:12px;
  font-weight:900;
  text-align:left
}

.question-progress-label{
  flex:0 0 auto;
  color:#afbec7;
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em
}

.question-progress-bar{
  width:min(240px,55%);
  height:8px;
  background:#0b171f;
  border:1px solid #304657;
  border-radius:999px;
  overflow:hidden
}

.question-progress-fill{
  height:100%;
  width:0;
  background:#54d7c5;
  border-radius:999px;
  transition:width .35s ease
}

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

.topbar-spacer{
  width:96px;
  height:1px
}


/* ---------------------------------------------------------
   TRANSICIÓN ENTRE ACERTIJOS
--------------------------------------------------------- */

.transition-message{
  position:absolute;
  inset:0;
  z-index:5;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  gap:8px;
  padding:24px;

  background:rgba(
    9,
    19,
    27,
    .94
  );

  text-align:center;

  opacity:0;
  visibility:hidden;
  pointer-events:none;

  transition:
    opacity .65s ease
}

.transition-message.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto
}

.transition-title{
  font-size:
    clamp(
      22px,
      2.8vw,
      34px
    );

  font-weight:900;
  letter-spacing:.02em
}

.transition-progress{
  color:#edf5f7;
  font-size:clamp(13px,1.6vw,18px);
  font-weight:900
  margin-bottom: 35px;
}

.transition-reason{
  color:#54d7c5;
  font-size:
    clamp(
      14px,
      1.8vw,
      20px
    );

  font-weight:800
}




/* Aviso de acierto: no bloquea el nuevo acertijo. */
.transition-message.bonus{
  inset:auto 12px 12px 12px;
  min-height:0;
  padding:10px 14px;
  border:1px solid #304657;
  border-radius:10px;
  background:rgba(11,23,31,.94);
  box-shadow:0 10px 28px rgba(0,0,0,.28);
  pointer-events:none;
  backdrop-filter:blur(3px);
}

.transition-message.bonus .transition-title{
  font-size:18px;
}

.transition-message.bonus .transition-progress{
  font-size:14px;
}

.transition-message.bonus .transition-reason{
  font-size:16px;
}

/* Las capas de transición quedan confinadas al bloque del acertijo. */
.question-panel{
  position:relative;
  isolation:isolate;
}

.question-frame{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}

.room{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}



/* ---------------------------------------------------------
   CAMBIO DE ACERTIJO: motivo arriba y carga debajo
--------------------------------------------------------- */

.transition-message.loading-transition .transition-title{
  color:#54d7c5;
  font-size:
    clamp(
      14px,
      1.8vw,
      20px
    );
  font-weight:800;
}

.transition-message.loading-transition .transition-progress{
  color:#edf5f7;
  font-size:
    clamp(
      22px,
      2.8vw,
      34px
    );
  font-weight:900;
  letter-spacing:.02em;
  
}

.transition-message.loading-transition .transition-reason{
  display:none;
}

@keyframes loadingPulse{
  0%,
  100%{
    opacity:1
  }

  50%{
    opacity:.3
  }
}

/* ---------------------------------------------------------
   BONIFICACIÓN EN LA PARTE INFERIOR DE LA HABITACIÓN
--------------------------------------------------------- */

.bonus-message{
  position:absolute;
  left:50%;
  bottom:12px;
  transform:translate(-50%,12px);

  width:min(320px,88%);

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;

  padding:9px 13px;

  background:rgba(11,23,31,.95);
  border:1px solid #304657;
  border-radius:10px;
  box-shadow:0 10px 28px rgba(0,0,0,.28);

  text-align:center;

  opacity:0;
  visibility:hidden;

  /*
   * Nunca bloquea el juego de la habitación.
   */
  pointer-events:none;

  transition:
    opacity .55s ease,
    transform .55s ease;

  z-index:4
}

.bonus-message.show{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0)
}

.bonus-title{
  font-size:15px;
  font-weight:900
}

.bonus-text{
  color:#54d7c5;
  font-size:13px;
  font-weight:800
}

/* ---------------------------------------------------------
   TABLET / MÓVIL
--------------------------------------------------------- */

@media (max-width:900px){

  body{
    overflow:auto
  }

  .game{
    height:auto;
    min-height:100dvh
  }

  .layout{
    grid-template-columns:1fr;
    min-height:auto
  }

  .room{
    min-height:140px
  }

  .question-frame{
    min-height:0
  }

  .question-frame iframe{
    height:
      clamp(
        420px,
        68dvh,
        620px
      )
  }

}


@media (max-width:560px){

  .game{
    padding:7px
  }

  .brand{
    font-size:13px
  }

  .timers{
    gap:5px
  }

  .timer-box{
    min-width:74px;
    padding:4px 6px;
    gap:4px
  }

  .timer-box span{
    font-size:8px
  }

  .timer{
    font-size:17px
  }

  .topbar{
    min-height:40px;
    padding:0 7px
  }

  .room{
    min-height:100px
  }

  .question-panel{
    padding:6px
  }

  .question-frame iframe{
    height:
      clamp(
        480px,
        74dvh,
        700px
      )
  }

  .question-status{
    min-height:48px;
    gap:8px;
    padding:6px 9px
  }

  .question-status-left{
    gap:7px
  }

  #questionStatus{
    font-size:12px
  }

  .question-status-timer{
    padding:4px 7px
  }

  .question-timer{
    font-size:18px
  }

  .transition-message.bonus{
    inset:auto 8px 8px 8px;
    padding:9px 10px
  }

  .transition-message.bonus .transition-title{
    font-size:16px
  }

  .transition-message.bonus .transition-progress,
  .transition-message.bonus .transition-reason{
    font-size:13px
  }

  .bonus-message{
    bottom:8px;
    width:min(290px,90%);
    padding:8px 10px
  }

  .bonus-title{
    font-size:14px
  }

  .bonus-text{
    font-size:12px
  }

  .progress{
    padding:7px 10px
  }

}

/* La habitación queda fuera de cualquier capa de transición. */
.room{
  position:relative;
  isolation:isolate;
  overflow:hidden
}

.question-panel{
  position:relative;
  isolation:isolate
}


/* Mensaje final: solo ¡Has conseguido escapar! */
.transition-message.victory .transition-title{
  display:none
}

.transition-message.victory .transition-progress{
  display:none
}

.transition-message.victory .transition-reason{
  font-size:
    clamp(
      22px,
      2.8vw,
      34px
    );
  font-weight:900;
  color:#edf5f7
}

/* ---------------------------------------------------------
   PANTALLAS FINALES
--------------------------------------------------------- */

.question-panel .transition-message.end-screen{
  inset:0;
  z-index:20;
  border-radius:8px;
  background:#09131b;
  pointer-events:auto;
  box-shadow:none;
  backdrop-filter:none;
}

.question-panel .transition-message.end-screen .transition-title{
  display:block;
  margin:0;
  text-align:center;
  font-size:clamp(28px,4vw,48px);
  font-weight:900;
  line-height:1.12;
}

.question-panel .transition-message.end-screen .transition-progress{
  display:block;
  margin-top:14px;
  color:#54d7c5;
  font-size:clamp(20px,2.6vw,30px);
  font-weight:900;
  text-align:center;
}

.question-panel .transition-message.end-screen .transition-reason{
  display:block;
  margin-top:4px;
  color:#edf5f7;
  font-size:clamp(22px,3vw,36px);
  font-weight:900;
  line-height:1.12;
  text-align:center;
}

.question-panel .transition-message.end-screen.victory .transition-title{
  color:#edf5f7;
}

.question-panel .transition-message.end-screen.defeat .transition-title{
  color:#54d7c5;
}

.question-panel .transition-message.end-screen.defeat .transition-progress{
  color:#edf5f7;
}

/*
 * El último acertijo queda completamente tapado
 * por la pantalla final.
 */
.question-panel .transition-message.end-screen{
  overflow:hidden;
}

/* ---------------------------------------------------------
   PANTALLA FINAL DE DERROTA
--------------------------------------------------------- */

.question-panel .transition-message.end-screen.defeat{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  text-align:center;

  gap:0;

  padding:
    20px 16px;

  overflow:hidden;
}


/* ---------------------------------------------------------
   TÍTULO
   --------------------------------------------------------- */

.question-panel
.transition-message.end-screen.defeat
.transition-title{

  order:1;

  display:block;

  width:100%;

  margin:0;

  color:#edf5f7;

  font-size:
    clamp(
      22px,
      2.5vw,
      30px
    );

  font-weight:900;

  line-height:1.1;

  text-align:center;

  white-space:nowrap;
}


/* ---------------------------------------------------------
   MENSAJE
   --------------------------------------------------------- */

.question-panel
.transition-message.end-screen.defeat
.transition-reason{

  order:2;

  display:block;

  width:100%;

  margin:12px 0 0;

  color:#edf5f7;

  font-size:
    clamp(
      18px,
      2.1vw,
      25px
    );

  font-weight:800;

  line-height:1.15;

  text-align:center;

  white-space:nowrap;
}


/* ---------------------------------------------------------
   PUNTUACIÓN
   --------------------------------------------------------- */

.question-panel
.transition-message.end-screen.defeat
.transition-progress{


  display:block;

  width:100%;

  margin-top:36px;

  color:#54d7c5;

  font-size:
    clamp(
      17px,
      2vw,
      24px
    );

  font-weight:900;

  line-height:1.1;

  text-align:center;

  white-space:nowrap;
}

/* ---------------------------------------------------------
   BOTÓN DE PANTALLA COMPLETA
--------------------------------------------------------- */

.fullscreen-button{
  position:fixed;
  top:10px;
  right:10px;
  z-index:1000;

  width:36px;
  height:36px;

  display:flex;
  align-items:center;
  justify-content:center;

  padding:0;

  border:1px solid #304657;
  border-radius:8px;

  background:rgba(11,23,31,.9);
  color:#edf5f7;

  font-size:22px;
  line-height:1;

  cursor:pointer;

  transition:
    background .2s ease,
    transform .2s ease;
}

.fullscreen-button:hover{
  background:#162934;
  transform:scale(1.05);
}

.fullscreen-button:active{
  transform:scale(.96);
}

.fullscreen-button:focus-visible{
  outline:2px solid #54d7c5;
  outline-offset:2px;
}


/* ==========================================================
   HABITACIÓN — AJUSTE FINAL
   ========================================================== */

.layout{
  display:grid !important;
  grid-template-columns:minmax(0,2fr) minmax(0,3fr) !important;
  grid-template-areas:"room question" !important;
  gap:10px !important;
  min-width:0 !important;
  min-height:0 !important;
}

.layout > .room{
  grid-area:room !important;
  min-width:0 !important;
}

.layout > .question-panel{
  grid-area:question !important;
  min-width:0 !important;
}

#room.room{
  position:relative !important;
  display:grid !important;

  /*
   * Menos espacio para la cabecera: la imagen empieza
   * ligeramente más arriba.
   */
  grid-template-columns:1fr !important;
  grid-template-rows:42px minmax(0,1fr) 50px !important;

  width:100% !important;
  height:100% !important;

  min-width:0 !important;
  min-height:0 !important;

  box-sizing:border-box !important;
  padding:0 !important;

  overflow:hidden !important;
  isolation:isolate !important;
}

#room .room-header{
  position:relative !important;
  grid-row:1 !important;

  width:100% !important;
  height:42px !important;

  box-sizing:border-box !important;
  z-index:20 !important;
}

/* Título sin cápsula: mismo sitio, más visible. */
#room .room-label{
  position:absolute !important;

  top:125px !important;
  left:50% !important;

  transform:translateX(-50%) !important;

  width:max-content !important;
  max-width:calc(100% - 150px) !important;

  margin:0 !important;
  padding:0 !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;

  color:#f2f7f9 !important;

  font-size:15px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:.055em !important;

  text-align:center !important;
  white-space:nowrap !important;

  text-shadow:
    0 2px 5px rgba(0,0,0,.85) !important;

  pointer-events:none !important;
}

#room #gameTimerBox{
  position:absolute !important;

  top:6px !important;
  left:9px !important;

  right:auto !important;
  bottom:auto !important;

  width:auto !important;
  min-width:108px !important;

  box-sizing:border-box !important;

  margin:0 !important;
  padding:5px 8px !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:2px !important;

  z-index:25 !important;

  background:rgba(11,23,31,.94) !important;
  border:1px solid #304657 !important;
  border-radius:8px !important;

  box-shadow:0 5px 14px rgba(0,0,0,.24) !important;
}

#room #gameTimerBox span{
  font-size:6px !important;
  line-height:1 !important;
}

#room #gameTimerBox .game-timer{
  font-size:22px !important;
  line-height:1 !important;
}

#room .room-stage{
  position:relative !important;

  grid-row:2 !important;

  width:100% !important;
  height:100% !important;

  min-width:0 !important;
  min-height:0 !important;

  box-sizing:border-box !important;
  overflow:hidden !important;

  z-index:1 !important;
}

#roomCanvas{
  position:absolute !important;
  inset:0 !important;

  width:100% !important;
  height:100% !important;

  display:block !important;

  z-index:1 !important;
  pointer-events:none !important;
}

#room .bonus-message{
  position:relative !important;

  grid-row:3 !important;

  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;

  transform:none !important;

  justify-self:center !important;
  align-self:center !important;

  width:min(280px,80%) !important;
  min-height:38px !important;

  box-sizing:border-box !important;

  margin:0 !important;
  padding:6px 10px !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;

  z-index:30 !important;

  background:rgba(11,23,31,.96) !important;
  border:1px solid #405766 !important;
  border-radius:8px !important;

  box-shadow:0 5px 14px rgba(0,0,0,.28) !important;

  text-align:center !important;

  opacity:0 !important;
  visibility:hidden !important;

  pointer-events:none !important;

  transition:opacity .3s ease,visibility .3s ease !important;
}

#room .bonus-message.show{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}

#room .bonus-title{
  font-size:12px !important;
  line-height:1.1 !important;
  font-weight:900 !important;
}

#room .bonus-text{
  margin:0 !important;
  color:#54d7c5 !important;
  font-size:10px !important;
  line-height:1.1 !important;
  font-weight:800 !important;
}

#room .room-content{
  display:none !important;
}

@media (max-width:900px){

  .layout{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "room"
      "question" !important;
  }

  #room.room{
    grid-template-rows:40px minmax(0,1fr) 48px !important;
  }

  #room .room-label{
    top:9px !important;
    font-size:13px !important;
  }

  #room #gameTimerBox{
    top:5px !important;
    left:7px !important;
    min-width:100px !important;
    padding:5px 7px !important;
  }

  #room #gameTimerBox .game-timer{
    font-size:21px !important;
  }
}

.transition-message.defeat .transition-title {
  font-size: 28px;
}

.transition-message.defeat .transition-reason {
  font-size: 18px;
}

.intro-title-divider {

  width: min(
    720px,
    70vw
  );

  height: 1px;

  margin:
    0 0 38px;

  background:
    linear-gradient(
      to right,
      transparent,
      rgba(212,160,87,.75),
      transparent
    );

  position: relative;
}

.intro-title-divider::after {

  content: "◆";

  position: absolute;

  left: 50%;
  top: 50%;

  transform:
    translate(-50%, -50%);

  padding: 0 12px;

  background: #0d1b24;

  color:
    #d4a057;

  font-size: 11px;
}

.intro-story-divider {

  width: 150px;

  height: 1px;

  margin:
    4px auto 26px;

  background:
    linear-gradient(
      to right,
      transparent,
      rgba(212,160,87,.65),
      transparent
    );

  position: relative;
}

.intro-story-divider::after {

  content: "◆";

  position: absolute;

  left: 50%;
  top: 50%;

  transform:
    translate(-50%, -50%);

  padding: 0 8px;

  background: #0d1b24;

  color: #d4a057;

  font-size: 8px;
}

.intro-music-credit {

  position: absolute;

  left: 32px;

  bottom: 24px;

  color:
    rgba(255,255,255,0.78);

  font-family:
    Arial,
    sans-serif;

  font-size: 12px;

  letter-spacing:
    0.04em;

  text-align: left;
}

.intro-fullscreen-button {

  position: absolute;

  top: 24px;

  right: 28px;

  width: 48px;

  height: 48px;

  border:
    1px solid
    rgba(212,160,87,.75);

  border-radius: 2px;

  background:
    rgba(9,19,27,.45);

  color:
    #d4a057;

  font-size: 25px;

  line-height: 1;

  cursor: pointer;

  z-index: 10;

  transition:
    background .3s ease,
    border-color .3s ease,
    box-shadow .3s ease;
}

.intro-fullscreen-button:hover {

  background:
    rgba(212,160,87,.10);

  border-color:
    #d4a057;

  box-shadow:
    0 0 18px
    rgba(212,160,87,.12);
}

/* =====================================================
   ORDEN DEFINITIVO DE LA PANTALLA DE DERROTA
   ===================================================== */

.question-panel
.transition-message.end-screen.defeat
.transition-title {
  order: 1 !important;
}

.question-panel
.transition-message.end-screen.defeat
.transition-reason {
  order: 2 !important;
}

.question-panel
.transition-message.end-screen.defeat
.end-game-button {
  order: 3 !important;
  transform: none !important;
  margin: 28px auto 0 !important;
}

.question-panel
.transition-message.end-screen.defeat
.transition-progress {
  order: 4 !important;
  margin-top: 36px !important;
}

/* =====================================================
   OPCIONES MULTIJUGADOR
   ===================================================== */

.multiplayer-choice-panel {

  display:
    none;

  flex-direction:
    row;

  align-items:
    center;

  justify-content:
    center;

  gap:
    22px;

  margin-top:
    50px;
}


.multiplayer-choice-button {

  width:
    220px;

  min-height:
    48px;

  padding:
    10px 18px;

  border:
    1px solid
    rgba(84,215,197,.65);

  border-radius:
    999px;

  background:
    rgba(84,215,197,.06);

  color:
    #edf5f7;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    14px;

  font-weight:
    400;

  letter-spacing:
    .10em;

  cursor:
    pointer;

  transition:
    background .25s ease,
    border-color .25s ease,
    box-shadow .25s ease,
    transform .25s ease;
}


.multiplayer-choice-button:hover {

  background:
    rgba(84,215,197,.13);

  border-color:
    rgba(84,215,197,.9);

  box-shadow:
    0 0 20px
    rgba(84,215,197,.10);

  transform:
    translateY(-1px);
}


/* =====================================================
   SALA MULTIJUGADOR — ESPACIADO
   ===================================================== */

.multiplayer-room-panel {

  display:
    flex;

  flex-direction:
    column;

  align-items:
    center;

  justify-content:
    center;

  gap:
    12px;

  width:
    min(620px, 90%);

  margin:
    28px auto 0;

  text-align:
    center;
}


.multiplayer-room-title {

  margin-top:
  12px;

  margin-bottom:
    6px;

  font-size:
    20px;

  font-weight:
    700;

  letter-spacing:
    .08em;
}


.multiplayer-room-code {

  margin:
    4px 0 8px;

  font-size:
    28px;

  font-weight:
    900;

  letter-spacing:
    .18em;

  color:
    #54d7c5;
}


.multiplayer-room-info {

  margin:
    0 0 24px;

  font-size:
    16px;

  line-height:
    1.4;
}


.multiplayer-players {

  margin:
    2px 0 4px;

  font-size:
    17px;

  font-weight:
    700;
}


.multiplayer-waiting {

  margin-top:
    6px;

  font-size:
    16px;

  letter-spacing:
    .08em;

  color:
    #54d7c5;
}

.multiplayer-start-button {

  margin-top:
    18px;

  min-width:
    220px;
	
  margin-left: auto;
  margin-right: auto;
}

/* =====================================================
   UNIRSE A UNA SALA
   ===================================================== */

.multiplayer-join-area {

  display:
    flex;

  flex-direction:
    column;

  align-items:
    center;

  gap:
    14px;

  margin-top:
    8px;
}


#multiplayerRoomInput {

  width:
    150px;

  height:
    42px;

  padding:
    8px 14px;

  box-sizing:
    border-box;

  border:
    1px solid
    #304657;

  border-radius:
    8px;

  background:
    #edf5f7;

  color:
    #09131b;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    18px;

  text-align:
    center;

  letter-spacing:
    .16em;

  outline:
    none;
}


#multiplayerRoomInput:focus {

  border-color:
    #54d7c5;

  box-shadow:
    0 0 12px
    rgba(84,215,197,.16);
}


#multiplayerJoinButton {

  margin:
    0;

  min-width:
    120px;

  padding:
    11px 28px;

  font-size:
    15px;
}

/* =====================================================
   PANTALLA UNIRSE A UNA SALA
   ===================================================== */

.multiplayer-join-area {

  display:
    flex;

  flex-direction:
    column;

  align-items:
    center;

  gap:
    12px;

  margin:
    0 0 24px;
}


#multiplayerRoomInput {

  width:
    150px;

  height:
    42px;

  box-sizing:
    border-box;

  text-align:
    center;

  font-size:
    18px;

  letter-spacing:
    .14em;

  border-radius:
    8px;
}


#multiplayerJoinButton {

  margin:
    0;

  min-width:
    170px;
}