/* ============================================================
   입장 게이트 스타일 (하우스 다크 팔레트)
   슬라이드는 라이트 테마지만, 게이트는 페이지 위에 덮이는
   모달이므로 랜딩과 같은 다크로 통일한다.
   ============================================================ */

#cbnu-gate {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: radial-gradient(130% 90% at 80% 5%, #132039 0%, #0E1729 46%, #0B1120 100%);
  font-family: "Noto Sans KR", system-ui, -apple-system, "Malgun Gothic", sans-serif;
  color: #EEF3FB;
  overflow-y: auto;
  word-break: keep-all;
}

.cbnu-gate-card {
  width: min(30rem, 100%);
  background: rgba(23, 36, 64, .72);
  border: 1px solid rgba(120, 150, 210, .26);
  border-radius: 1.25rem;
  padding: 2.4rem 2rem 1.9rem;
  backdrop-filter: blur(12px);
  box-shadow: 0 30px 70px rgba(3, 7, 18, .6);
}

.cbnu-gate-kicker {
  margin: 0 0 1rem;
  font-family: "JetBrains Mono", ui-monospace, Consolas, monospace;
  font-size: .68rem;
  letter-spacing: .22em;
  color: #8A9BBD;
}

#cbnu-gate h2 {
  margin: 0 0 .5rem;
  font-family: "Noto Serif KR", serif;
  font-weight: 900;
  font-size: 1.75rem;
  line-height: 1.3;
  letter-spacing: -.01em;
}

.cbnu-gate-sub {
  margin: 0 0 1.6rem;
  color: #F5B301;
  font-weight: 700;
  font-size: 1rem;
}

#cbnu-gate label {
  display: block;
  margin: 0 0 .4rem;
  font-size: .84rem;
  font-weight: 700;
  color: #C7D3E8;
}

#cbnu-gate input {
  width: 100%;
  margin: 0 0 1.1rem;
  padding: .85rem 1rem;
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(120, 150, 210, .26);
  border-radius: .7rem;
  color: #EEF3FB;
  font: inherit;
  font-size: 1.05rem;
  transition: border-color .15s;
}

#cbnu-gate input::placeholder { color: #6E7F9E; }

#cbnu-gate input:focus {
  outline: 3px solid #F5B301;
  outline-offset: 2px;
  border-color: #F5B301;
}

.cbnu-gate-err {
  min-height: 1.2em;
  margin: -.4rem 0 .6rem;
  color: #FF8A8A;
  font-size: .85rem;
  font-weight: 700;
}

#cbnu-gate-btn {
  width: 100%;
  padding: .95rem 1rem;
  border: none;
  border-radius: .7rem;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
  font-size: 1.05rem;
  color: #1a1204;
  background: linear-gradient(135deg, #FFD24A, #F5B301 60%, #C8890A);
  transition: transform .15s, filter .15s;
}
#cbnu-gate-btn:hover:not(:disabled) { transform: translateY(-2px); filter: brightness(1.05); }
#cbnu-gate-btn:disabled { opacity: .6; cursor: default; transform: none; }
#cbnu-gate-btn:focus-visible { outline: 3px solid #2DD4BF; outline-offset: 2px; }

.cbnu-gate-foot {
  margin: 1.4rem 0 0;
  font-size: .76rem;
  line-height: 1.7;
  color: #8A9BBD;
}
.cbnu-gate-foot b { color: #C7D3E8; }

/* ── 입장자 표시 (우하단) ───────────────────────────── */
#cbnu-who {
  position: fixed;
  right: .9rem;
  bottom: .9rem;
  z-index: 900;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .45rem .6rem .45rem .85rem;
  background: rgba(11, 17, 32, .88);
  border: 1px solid rgba(120, 150, 210, .3);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  font-family: "Noto Sans KR", system-ui, sans-serif;
  font-size: .78rem;
  color: #C7D3E8;
  box-shadow: 0 8px 24px rgba(3, 7, 18, .45);
}
#cbnu-who b { color: #EEF3FB; }

#cbnu-out {
  padding: .3rem .7rem;
  border: 1px solid rgba(120, 150, 210, .35);
  border-radius: 999px;
  background: transparent;
  color: #8A9BBD;
  font: inherit;
  font-size: .74rem;
  cursor: pointer;
}
#cbnu-out:hover { color: #FF8A8A; border-color: #FF8A8A; }
#cbnu-out:focus-visible { outline: 2px solid #F5B301; outline-offset: 2px; }

/* 슬라이드 전체화면(F)에서는 방해되지 않게 숨긴다 */
:fullscreen #cbnu-who { display: none; }

@media print { #cbnu-who, #cbnu-gate { display: none !important; } }

@media (max-width: 480px) {
  .cbnu-gate-card { padding: 1.9rem 1.4rem 1.5rem; }
  #cbnu-gate h2 { font-size: 1.45rem; }
}
