:root{--bg:#15110d;--panel:#231a12;--amber:#ffb347;--orange:#ff6b2c;--teal:#3fe0c5;--cream:#f5e6c8;--red:#ff3b3b}
body{background:radial-gradient(ellipse at top,#2b1d10 0%,var(--bg) 60%) fixed;color:var(--cream);font-family:'Fraunces',serif;min-height:100vh;margin:0}
.grain{pointer-events:none;position:fixed;inset:0;z-index:50;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px);mix-blend-mode:multiply}
.logo{font-family:'Bungee Shade',cursive;color:var(--amber);text-shadow:0 0 12px rgba(255,140,40,.7),0 0 40px rgba(255,100,20,.35)}
.disp{font-family:'Bungee',cursive}
.mono{font-family:'DM Mono',monospace}
.panel{background:linear-gradient(160deg,#3a2716,#22170e);border:1px solid #4a321c;border-radius:18px;box-shadow:inset 0 1px 0 rgba(255,220,170,.08),0 10px 30px rgba(0,0,0,.5)}
.wood{background:repeating-linear-gradient(95deg,#5a3418 0 6px,#4b2b13 6px 11px,#63391b 11px 15px);}
.dial{background:linear-gradient(#1b2622,#0e1513);border:2px solid #000;border-radius:10px;box-shadow:inset 0 0 25px rgba(63,224,197,.25)}
.btn{background:linear-gradient(#4a3420,#2c1f13);border:1px solid #6b4a2a;border-radius:12px;box-shadow:0 4px 0 #120c07;transition:.08s;color:var(--cream)}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #120c07}
.btn-live{background:linear-gradient(#ff7a3a,#d14b14);border-color:#ff9a5a;color:#1a0d05;box-shadow:0 5px 0 #6b2205,0 0 25px rgba(255,107,44,.45)}
.inp{background:#120d09;border:1px solid #5a3e24;border-radius:10px;color:var(--cream);padding:.55rem .75rem;outline:none}
.inp:focus{border-color:var(--amber);box-shadow:0 0 0 2px rgba(255,179,71,.2)}
.onair{background:#3a0f0f;color:#7a3a3a;border:1px solid #5a1a1a}
.onair.live{background:var(--red);color:#fff;box-shadow:0 0 18px var(--red);animation:pulse 1.2s infinite}
@keyframes pulse{50%{opacity:.6}}
.bar{background:linear-gradient(to top,var(--orange),var(--amber),var(--teal));border-radius:3px;transition:height .12s}
.speaking{box-shadow:0 0 0 3px var(--amber),0 0 25px rgba(255,179,71,.6)}
.mic{animation:bounce .5s infinite alternate}
@keyframes bounce{to{transform:translateY(-4px)}}
.rise{animation:rise .6s both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}
.typing::after{content:'▍';animation:pulse .8s infinite}
::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#5a3e24;border-radius:4px}
input[type=range]{accent-color:var(--amber)}