:root {
  color-scheme: dark;
  --bg:#09090c;
  --panel:rgba(18,18,22,.94);
  --line:#34343c;
  --text:#f3efe7;
  --muted:#99969e;
  --red:#ff3045;
  --yellow:#ffd34d;
  --green:#5eef8c;
}

* { box-sizing:border-box; }

body {
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 80% 0%,rgba(255,48,69,.11),transparent 34rem),
    #09090c;
  color:var(--text);
  font-family:Inter,Pretendard,"Noto Sans KR",system-ui,sans-serif;
}

.scanlines {
  position:fixed;
  pointer-events:none;
  inset:0;
  z-index:10;
  opacity:.14;
  background:repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(255,255,255,.025) 4px
  );
}

.shell {
  width:min(1220px,calc(100% - 28px));
  margin:auto;
  padding:28px 0 70px;
}

.masthead {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:20px;
  border-bottom:1px solid var(--line);
  padding-bottom:18px;
  margin-bottom:18px;
}

h1,h2,p { margin-top:0; }
h1 {
  margin-bottom:0;
  font-size:clamp(2.6rem,7vw,5.5rem);
  line-height:.84;
  letter-spacing:-.075em;
  transform:skew(-5deg);
  font-weight:950;
}
h1 span { color:var(--red); }

.eyebrow,.tag {
  color:var(--yellow);
  font-size:.7rem;
  font-weight:950;
  letter-spacing:.18em;
}

.status {
  padding:8px 12px;
  border:1px solid var(--line);
  font-size:.73rem;
  font-weight:950;
  letter-spacing:.12em;
}
.status.live {
  color:var(--green);
  border-color:rgba(94,239,140,.35);
}
.status.off { color:var(--red); }

.card {
  background:var(--panel);
  border:1px solid var(--line);
  padding:20px;
}

.hidden { display:none !important; }
.dim { color:var(--muted); }

.offair {
  min-height:62vh;
  display:grid;
  place-content:center;
  text-align:center;
  border:1px solid var(--line);
  background:
    repeating-linear-gradient(
      90deg,
      rgba(255,255,255,.018) 0 1px,
      transparent 1px 4px
    ),
    #0d0d11;
}
.noise-title {
  color:var(--red);
  font-weight:950;
  letter-spacing:.27em;
  margin-bottom:18px;
}

.gate {
  max-width:650px;
  margin:55px auto 0;
}
.question {
  font-size:clamp(1.45rem,4vw,2.1rem);
  font-weight:950;
}
.quiz-options {
  display:grid;
  gap:9px;
}
.quiz-options button,.secondary {
  border:1px solid var(--line);
  background:#101014;
  color:var(--text);
  text-align:left;
}
.quiz-options button:hover {
  border-color:var(--yellow);
}
.message {
  min-height:1.4em;
  color:var(--red);
  font-weight:850;
}

button,input,textarea {
  font:inherit;
}
button {
  border:0;
  background:var(--red);
  color:white;
  padding:11px 14px;
  font-weight:950;
  cursor:pointer;
}
button:disabled {
  opacity:.45;
  cursor:default;
}
input,textarea {
  width:100%;
  color:var(--text);
  background:#0d0d11;
  border:1px solid var(--line);
  outline:none;
  padding:11px 12px;
}
textarea {
  min-height:95px;
  resize:vertical;
}
input:focus,textarea:focus {
  border-color:var(--red);
}

#nicknameForm {
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
}

.live-grid {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr);
  gap:16px;
}
.broadcast-top,.section-head {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}

.screen {
  position:relative;
  aspect-ratio:16/9;
  background:#050507;
  overflow:hidden;
  border:1px solid #292930;
}
.screen img {
  width:100%;
  height:100%;
  object-fit:contain;
  background:#050507;
}
.subtitle-wrap {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:42px 24px 22px;
  background:linear-gradient(transparent,rgba(0,0,0,.88));
}
.speaker {
  color:var(--yellow);
  font-weight:950;
  font-size:.8rem;
  letter-spacing:.12em;
}
.subtitle {
  margin-top:5px;
  font-size:clamp(1rem,2.4vw,1.55rem);
  line-height:1.45;
  font-weight:900;
  text-shadow:0 2px 10px black;
}
.topic-overlay {
  position:absolute;
  top:18px;
  left:18px;
  right:18px;
  background:rgba(10,10,13,.92);
  border-left:5px solid var(--yellow);
  padding:13px 15px;
  font-weight:850;
  animation:slidein .2s ease-out;
}
@keyframes slidein {
  from { transform:translateY(-10px); opacity:0; }
}

.sound {
  width:100%;
  margin-top:8px;
  text-align:center;
}
.now-playing {
  margin-top:12px;
  display:grid;
  grid-template-columns:auto auto 1fr;
  gap:10px;
  align-items:center;
  border-top:1px solid var(--line);
  padding-top:12px;
  font-size:.85rem;
}
.now-playing span {
  color:var(--yellow);
  font-weight:950;
}

.chat {
  min-height:0;
  display:flex;
  flex-direction:column;
}
.chat-log {
  min-height:420px;
  max-height:540px;
  overflow:auto;
  background:#0c0c10;
  border:1px solid #28282e;
  padding:10px;
}
.chat-line {
  padding:5px 2px;
  line-height:1.42;
  overflow-wrap:anywhere;
}
.chat-line strong {
  color:var(--yellow);
}
.chat-form {
  display:grid;
  grid-template-columns:1fr auto;
  gap:7px;
  margin-top:8px;
}

.bottom-grid {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:16px;
  margin-top:16px;
}

.queue-list {
  display:grid;
}
.queue-item {
  display:grid;
  grid-template-columns:48px 120px minmax(0,1fr);
  gap:12px;
  padding:11px 0;
  border-top:1px solid var(--line);
}
.queue-item:first-child { border-top:0; }
.queue-pos {
  color:var(--red);
  font-weight:950;
}
.queue-nick {
  color:var(--yellow);
  font-weight:850;
}
.queue-empty {
  color:var(--muted);
  padding:16px 0;
}
#topicForm {
  display:grid;
  gap:8px;
}
.cooldown {
  margin-top:10px;
  color:var(--green);
  font-weight:850;
}

@media(max-width:880px){
  .masthead{align-items:flex-start;flex-direction:column;}
  .live-grid,.bottom-grid{grid-template-columns:1fr;}
  .chat-log{min-height:250px;max-height:350px;}
  .queue-item{grid-template-columns:42px 100px 1fr;}
}
