:root { --honey:#F6B40E; --amber:#D98E04; --steel:#b9b9b9; --chrome:linear-gradient(180deg,#f4f4f4,#9a9a9a 45%,#e6e6e6 55%,#6e6e6e); }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { font-family:"Trebuchet MS", Arial, sans-serif; margin:0; min-height:100vh; display:flex; flex-direction:column; align-items:center; background:#0b0b0b; color:#eee; }
header { width:100%; background:#000; border-bottom:3px solid transparent; border-image:var(--chrome) 1; padding:8px 0; }
header h1 { margin:0 auto; width:fit-content; background:#111; color:var(--honey); padding:6px 22px; border-radius:30px; font-size:1.6em; letter-spacing:1px; display:flex; align-items:center; gap:10px; border:2px solid var(--steel); }
header h1 img { width:44px; height:44px; border-radius:50%; border:2px solid var(--honey); object-fit:cover; }
header h1 img.mark { width:30px; height:30px; border:none; border-radius:0; }
.sub { font-size:13px; color:#bdbdbd; margin:8px 0 0; }
.wrap { display:flex; gap:18px; align-items:flex-start; justify-content:center; width:100%; }
.hero { width:216px; flex:none; margin-top:10px; text-align:center; }
.hero img { width:216px; height:288px; object-fit:cover; border-radius:14px; border:2px solid var(--steel); box-shadow:0 4px 0 var(--amber); display:block; }
.hname { color:var(--honey); font-weight:bold; margin:10px 0 2px; font-size:16px; } .hrole { color:#bdbdbd; font-size:12px; margin:0; line-height:1.4; }
@media (max-width: 900px) {
  .wrap { flex-direction:column; align-items:center; gap:0; }
  .hero { width:min(720px, 96vw); margin-top:8px; display:grid; grid-template-columns:60px 1fr; grid-template-rows:auto auto; column-gap:12px; align-content:center; text-align:left; }
  .hero img { grid-row:1 / span 2; width:60px; height:80px; border-radius:10px; box-shadow:0 3px 0 var(--amber); }
  .hname { margin:0; font-size:15px; align-self:end; } .hrole { align-self:start; margin-top:2px; }
  #log { min-height:220px; max-height:calc(100svh - 330px); }
}
main { width:min(720px, 96vw); display:flex; flex-direction:column; flex:1; padding:10px 0 16px; }
#log { min-height:340px; max-height:62vh; overflow-y:auto; background:#141414; border:2px solid var(--steel); border-radius:16px; padding:12px; box-shadow:0 4px 0 var(--amber); margin-bottom:10px; }
.row { display:flex; gap:8px; align-items:flex-end; margin:7px 0; }
.row .av { width:36px; height:36px; border-radius:50%; border:2px solid var(--honey); flex:none; object-fit:cover; }
.msg { max-width:86%; padding:9px 13px; border-radius:16px; white-space:pre-wrap; line-height:1.38; font-size:15px; }
.you { margin:7px 0 7px auto; background:var(--honey); color:#111; border-bottom-right-radius:4px; }
.queeny { background:#1d1d1d; color:#f2f2f2; border:1px solid var(--steel); border-left:4px solid var(--honey); border-bottom-left-radius:4px; }
.queeny::before { content:"Queeny Bee"; display:block; font-size:11px; font-weight:bold; color:var(--honey); margin-bottom:3px; }
.wait { font-style:italic; color:#bbb; }
form { display:flex; gap:8px; flex-wrap:wrap; align-items:center; } #gate p { width:100%; }
input { flex:1; padding:12px 16px; border-radius:24px; font-size:15px; background:#111; color:#eee; border:2px solid var(--steel); }
button { padding:10px 18px; border-radius:22px; border:2px solid #000; background:var(--honey); color:#111; font-weight:bold; font-size:14px; cursor:pointer; }
button.cancel { background:#2a2a2a; color:#eee; border-color:var(--steel); }
button:disabled { opacity:.45; cursor:default; }
button:focus-visible, input:focus-visible { outline:3px solid #fff; outline-offset:2px; }
.controls { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; align-items:center; margin-top:12px; }
#count, .note { font-size:12px; color:#a8a8a8; } .note { text-align:center; margin-top:12px; } #gerr { color:#ffb3a7; min-height:1em; }
