:root{--bg:#010406;--neon:#00ff7f;--neon-2:#00d2ff;--muted:#6b6f6b}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family: 'Share Tech Mono', 'Courier New', monospace;background:var(--bg);color:var(--neon)}
.container{max-width:1100px;margin:28px auto;padding:18px}
.header{display:flex;align-items:center;gap:12px}
.logo{font-size:20px;letter-spacing:2px}
.btn{display:inline-block;padding:8px 14px;border-radius:8px;border:1px solid rgba(0,255,127,0.12);cursor:pointer;background:transparent;color:var(--neon)}
.card{position:relative;background:rgba(0,0,0,0.35);border:1px solid rgba(0,255,127,0.06);padding:18px;border-radius:12px;box-shadow:0 8px 40px rgba(0,0,0,0.7);overflow:hidden}
.hint{color:var(--muted);font-size:13px}


/* matrix canvas sits behind content */
#matrix-canvas{position:fixed;inset:0;z-index:-2}
.bg-fog{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center, rgba(0,255,127,0.02), transparent 25%);opacity:0.06}


/* Board grid */
.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:14px}
.entry{padding:14px;border-radius:10px;border:1px solid rgba(0,255,127,0.06);background:linear-gradient(180deg, rgba(0,0,0,0.25), rgba(0,0,0,0.18));backdrop-filter: blur(6px);position:relative;overflow:hidden;transform-origin:top center}
.entry::before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg, rgba(0,255,127,0.02), rgba(0,210,255,0.02));mix-blend-mode:overlay}
.entry .name{font-weight:800;font-size:16px;letter-spacing:0.6px}
.entry .stream{font-size:13px;color:var(--muted);margin-top:6px}
.entry .ts{font-size:11px;color:#66bb6a;margin-top:8px}


/* neon glow */
.glow{
text-shadow:0 0 6px rgba(0,255,127,0.12), 0 0 18px rgba(0,210,255,0.06);
}


/* entry animations */
@keyframes slideInUp {0%{opacity:0;transform:translateY(18px) scale(0.98);}60%{opacity:1;transform:translateY(-6px) scale(1.02);}100%{transform:translateY(0) scale(1);}}
@keyframes pulse {0%{box-shadow:0 0 0 0 rgba(0,255,127,0.12);}70%{box-shadow:0 0 18px 8px rgba(0,255,127,0.02);}100%{box-shadow:0 0 0 0 rgba(0,255,127,0);}}
.new-entry {animation: slideInUp 650ms cubic-bezier(.16,1,.3,1), pulse 1200ms ease-out;}


/* typing effect container */
.typing-line{display:inline-block;white-space:pre;overflow:hidden;border-right:2px solid rgba(0,255,127,0.25);animation: blink-caret 900ms step-end infinite}
@keyframes blink-caret{50%{border-color:transparent}100%{border-color:rgba(0,255,127,0.25)}}


/* subtle scanline */
.scanline{position:fixed;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent, rgba(0,255,127,0.04),transparent);animation:scan 6s linear infinite;z-index:2}
@keyframes scan{0%{transform:translateY(-5%)}50%{transform:translateY(105%)}100%{transform:translateY(-5%)}}


/* glitch effect on text */
.glitch{position:relative}
.glitch::after,.glitch::before{content:attr(data-text);position:absolute;left:0;top:0;opacity:0.6}
.glitch::before{clip-path:polygon(0 2%,100% 2%,100% 8%,0 8%);left:2px;transform:skewX(-8deg);color:var(--neon-2)}
.glitch::after{clip-path:polygon(0 70%,100% 70%,100% 78%,0 78%);left:-2px;transform:skewX(6deg);color:var(--neon)}


/* responsive tweaks */
@media (max-width:640px){.container{padding:12px;margin:12px}.board{grid-template-columns:1fr}}
