/* Look of the board: panel, screws, drums, lamp, button. Shared by login and chat. */
:root{
  --amber:#ffb02e;
  --flap:#17181b;
  --flap-hi:#232529;
  --ink:#dcd6cb;
  --dim:#7a7468;
  --line:#1e1f23;
  --w:70px; --h:98px; --fs:56px;
}
*{box-sizing:border-box; margin:0; padding:0}
html,body{height:100%}
body{
  background:#050505; color:var(--amber);
  font:600 16px/1.45 ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  -webkit-font-smoothing:antialiased;
}

.panel{
  position:relative;
  background:linear-gradient(180deg,#141416,#0b0b0c 24%,#0a0a0b 76%,#151517);
  border:1px solid #26272b; border-radius:12px;
  box-shadow:0 60px 120px -40px #000, 0 0 0 6px #0d0d0f, 0 0 0 7px #1c1d21,
             inset 0 1px 0 rgba(255,255,255,.05);
}
.panel::before{
  content:""; position:absolute; inset:0; border-radius:12px; pointer-events:none;
  background:repeating-linear-gradient(90deg, rgba(255,255,255,.018) 0 1px, transparent 1px 3px);
  mix-blend-mode:overlay;
}
.screw{position:absolute; width:9px; height:9px; border-radius:50%; z-index:2;
  background:radial-gradient(circle at 35% 30%,#4a4c52,#1a1b1e 70%);
  box-shadow:inset 0 0 0 1px #0a0a0b}
.screw::after{content:""; position:absolute; inset:2px 1px; border-top:1px solid #0c0d0f; transform:rotate(28deg)}
.screw.a{top:10px;left:10px} .screw.b{top:10px;right:10px}
.screw.c{bottom:10px;left:10px} .screw.d{bottom:10px;right:10px}

/* ---------- flap unit ---------- */
.flap{
  position:relative; width:var(--w); height:var(--h);
  perspective:230px; flex:none;
  font-size:var(--fs); font-weight:700;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.6));
}
.flap .half,.flap .leaf{
  position:absolute; left:0; right:0; height:50%; overflow:hidden;
  background:linear-gradient(180deg,var(--flap-hi),var(--flap));
  color:var(--amber);
}
.flap .half.top,.flap .leaf.lf{top:0; border-radius:5px 5px 0 0; transform-origin:50% 100%;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.flap .half.bot,.flap .leaf.lb{bottom:0; border-radius:0 0 5px 5px; transform-origin:50% 0;
  background:linear-gradient(180deg,var(--flap),#121316)}
.flap .leaf{z-index:4; backface-visibility:hidden; display:none}
.flap span{position:absolute; left:0; width:100%; height:var(--h); line-height:var(--h);
  text-align:center; text-shadow:0 0 14px rgba(255,176,46,.35)}
.flap .half.top span,.flap .leaf.lf span{top:0}
.flap .half.bot span,.flap .leaf.lb span{top:calc(var(--h) / -2)}
.flap::after{content:""; position:absolute; top:calc(50% - 1px); left:0; right:0; height:2px;
  background:linear-gradient(180deg,#000,#000 50%,rgba(255,255,255,.06) 50%,rgba(255,255,255,.06));
  z-index:6; pointer-events:none}
.flap::before{content:""; position:absolute; inset:0; border-radius:5px; z-index:7; pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 40%,rgba(0,0,0,.25))}
.mini{--w:23px; --h:32px; --fs:18px}
.mini span{text-shadow:0 0 8px rgba(255,176,46,.3)}

.lamp{width:8px; height:8px; border-radius:50%; flex:none;
  background:var(--amber); box-shadow:0 0 9px var(--amber);
  animation:blink 1.6s steps(1) infinite}
@keyframes blink{50%{opacity:.15; box-shadow:none}}
.lamp.off{animation:none; background:#3a2c14; box-shadow:none}
.lamp.go{animation:none; background:#57e08a; box-shadow:0 0 10px #57e08a}
.lamp.bad{animation:none; background:#ff5a5a; box-shadow:0 0 10px #ff5a5a}

button{
  font:inherit; font-size:13px; letter-spacing:.14em; cursor:pointer;
  color:var(--amber); background:linear-gradient(180deg,#212227,#141517);
  border:1px solid #2e3036; border-radius:6px; padding:11px 16px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 2px 4px rgba(0,0,0,.5);
}
button:hover{background:linear-gradient(180deg,#2a2b31,#1a1b1e)}
button:active{transform:translateY(1px)}
button:disabled{opacity:.3; cursor:default; transform:none}
