:root{--bg:#0a0705;--bg2:#140b06;--ember:#ff6a1a;--ember2:#ff2d0e;--gold:#ffb43d;--hot:#ffd166;--char:#1c1410;--ink:#fff6ec;--muted:#b89a82;--line:rgba(255,120,40,.25)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:Outfit,sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden;position:relative;min-height:100vh}.forge{position:fixed;inset:0;z-index:-3;pointer-events:none;background:radial-gradient(120% 90% at 50% 8%,rgba(255,120,30,.28),transparent 55%),radial-gradient(80% 60% at 50% 105%,rgba(255,60,10,.35),transparent 60%),radial-gradient(50% 40% at 15% 90%,rgba(255,90,20,.18),transparent 70%),radial-gradient(50% 40% at 85% 85%,rgba(255,60,20,.16),transparent 70%),linear-gradient(180deg,var(--bg),var(--bg2) 60%,#0a0504);animation:breathe 7s ease-in-out infinite}@keyframes breathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.18)}}.grain{opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.embers,.grain{position:fixed;inset:0;z-index:-2;pointer-events:none}.embers{overflow:hidden}.ember{position:absolute;bottom:-12px;border-radius:50%;background:radial-gradient(circle,var(--hot),var(--ember2));box-shadow:0 0 8px var(--ember);animation:rise linear infinite;opacity:0}@keyframes rise{0%{transform:translateY(0) translateX(0) scale(1);opacity:0}10%{opacity:1}90%{opacity:.7}to{transform:translateY(-105vh) translateX(var(--drift)) scale(.3);opacity:0}}.wrap{position:relative;z-index:2;max-width:780px;margin:0 auto;padding:30px 22px 70px;display:flex;flex-direction:column;align-items:center;text-align:center}.logo{width:min(78vw,430px);filter:drop-shadow(0 12px 40px rgba(255,90,20,.55));animation:float 5s ease-in-out infinite;margin-top:6px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.tag{font-family:JetBrains Mono,monospace;font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-top:14px;opacity:.9}.tag b{color:var(--ember)}h1.sub{font-family:Anton,sans-serif;font-size:clamp(28px,7vw,52px);line-height:.95;margin-top:10px;letter-spacing:.5px;text-transform:uppercase;background:linear-gradient(180deg,#fff,#ffd08a 55%,var(--ember));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 30px rgba(255,120,30,.25);transform:skewX(-6deg)}.console{width:100%;margin-top:30px;background:linear-gradient(180deg,rgba(30,18,12,.92),rgba(14,9,6,.92));border:1px solid var(--line);border-radius:20px;padding:22px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 20px 60px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,170,90,.12)}.label{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);text-align:left;margin-bottom:10px;display:flex;gap:8px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:var(--ember);box-shadow:0 0 10px var(--ember);animation:blink 1.4s infinite}@keyframes blink{50%{opacity:.3}}.tier{margin-bottom:12px}.tier-name{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#7a6354;text-align:left;margin:0 0 6px 2px}.cats{display:flex;flex-wrap:wrap;gap:7px}.pill{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:#0c0805;border:1px solid rgba(255,120,40,.22);padding:8px 12px;border-radius:20px;cursor:pointer;transition:.15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pill:hover{color:var(--hot);border-color:var(--ember)}.pill.on{color:#2a1402;background:linear-gradient(180deg,var(--hot),var(--ember));border-color:transparent;box-shadow:0 4px 14px rgba(255,70,15,.4);font-weight:700}.row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}input.target{flex:1 1;min-width:0;background:#0c0805;border:1px solid rgba(255,120,40,.3);color:var(--ink);font-family:Outfit;font-size:16px;font-weight:600;padding:15px 16px;border-radius:13px;outline:none;transition:.2s}input.target::placeholder{color:#6f5b4b}input.target:focus{border-color:var(--ember);box-shadow:0 0 0 3px rgba(255,90,20,.18),0 0 22px rgba(255,90,20,.25)}button.roast{font-family:Anton,sans-serif;font-size:19px;letter-spacing:1px;text-transform:uppercase;color:#2a1402;cursor:pointer;border:none;padding:0 26px;border-radius:13px;transform:skewX(-7deg);background:linear-gradient(180deg,var(--hot),var(--ember) 55%,var(--ember2));box-shadow:0 8px 22px rgba(255,70,15,.5),inset 0 1px 0 hsla(0,0%,100%,.5);transition:.16s;white-space:nowrap}button.roast span{display:inline-block;transform:skewX(7deg)}button.roast:hover{transform:skewX(-7deg) translateY(-2px) scale(1.02);box-shadow:0 12px 30px rgba(255,70,15,.65)}button.roast:active{transform:skewX(-7deg) translateY(1px) scale(.99)}button.roast:disabled{opacity:.6;cursor:wait}.stage{width:100%;margin-top:18px;min-height:10px}.roastcard{position:relative;background:linear-gradient(180deg,rgba(40,20,10,.6),rgba(18,10,6,.6));border:1px solid var(--line);border-left:4px solid var(--ember);border-radius:16px;padding:22px 20px 18px;text-align:left;animation:pop .5s ease}@keyframes pop{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.who{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ember);margin-bottom:10px}.text{font-size:clamp(19px,3.6vw,25px);font-weight:800;line-height:1.32;color:#fff5e9;min-height:1.3em}.cursor{display:inline-block;width:11px;height:1.05em;vertical-align:-2px;background:var(--ember);margin-left:2px;animation:blink .8s steps(1) infinite}.controls{display:flex;gap:14px;margin-top:16px}.controls,.speak{align-items:center}.speak{display:inline-flex;gap:9px;background:rgba(255,90,20,.12);border:1px solid var(--line);color:var(--hot);font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:10px 14px;border-radius:11px;cursor:pointer;transition:.18s}.speak:hover{background:rgba(255,90,20,.22);color:#fff}.speak svg{width:15px;height:15px;fill:currentColor}.eq{display:flex;align-items:flex-end;gap:3px;height:22px;opacity:.25;transition:opacity .2s}.eq.on{opacity:1}.eq i{width:4px;background:linear-gradient(var(--hot),var(--ember));border-radius:2px;height:6px}.eq.on i{animation:bounce .6s ease-in-out infinite}.eq i:nth-child(2){animation-delay:.1s}.eq i:nth-child(3){animation-delay:.2s}.eq i:nth-child(4){animation-delay:.3s}.eq i:nth-child(5){animation-delay:.15s}.eq i:nth-child(6){animation-delay:.25s}@keyframes bounce{0%,to{height:6px}50%{height:22px}}.err{color:#ff8a5a;font-size:13px;text-align:left;padding:14px 16px;border:1px dashed rgba(255,120,40,.4);border-radius:12px}.err,.foot{font-family:JetBrains Mono,monospace}.foot{margin-top:40px;font-size:11px;letter-spacing:.12em;color:#7a6354;text-align:center;line-height:1.7}.foot b{color:var(--gold)}@media(max-width:520px){button.roast{flex:1 1;padding:14px 0}}