*{box-sizing:border-box}
:root{
  color-scheme:dark;
  --bg:#07080d;--panel:#0d0f16;--panel2:#12151f;--line:#252937;
  --text:#f4f5f8;--muted:#858b9b;--violet:#8b5cf6;--violet2:#a78bfa;
  --red:#ef4444;--green:#39e58c;--amber:#f6c344;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;color:var(--text);background:
  radial-gradient(circle at 15% 0%,rgba(124,58,237,.16),transparent 32rem),
  radial-gradient(circle at 90% 35%,rgba(239,68,68,.08),transparent 30rem),
  linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px),
  var(--bg);
  background-size:auto,auto,32px 32px,32px 32px,auto;min-height:100vh
}
button,select,input{font:inherit}
button{cursor:pointer}
.topbar{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1180px)/2));background:rgba(7,8,13,.82);backdrop-filter:blur(18px);position:sticky;top:0;z-index:20}
.logo{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;font-weight:900;letter-spacing:.06em}
.logoMark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--violet),#4f46e5);font-size:.75rem}
.online{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;color:var(--muted);letter-spacing:.08em}
.online i{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 12px var(--green);margin-right:7px}
.iconBtn{border:1px solid var(--line);background:#0e1119;color:var(--muted);padding:8px 10px;border-radius:10px;font-size:.72rem;font-weight:800}
.app{width:min(1180px,calc(100% - 28px));margin:24px auto 50px;display:grid;gap:18px}
.panel{border:1px solid var(--line);background:linear-gradient(180deg,rgba(18,21,31,.95),rgba(10,12,18,.97));border-radius:24px;box-shadow:0 20px 70px rgba(0,0,0,.22)}
.hero{padding:38px 42px;text-align:center;overflow:hidden;position:relative}
.hero:before{content:"";position:absolute;width:460px;height:460px;border-radius:50%;background:rgba(124,58,237,.11);filter:blur(80px);left:50%;top:-300px;transform:translateX(-50%)}
.eyebrow{font:700 .72rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--violet2);letter-spacing:.1em;margin-bottom:26px}
.skyis{font-size:clamp(3rem,7vw,6.7rem);font-weight:1000;letter-spacing:-.075em;line-height:.85;color:#fff}
.cursor{color:var(--violet);animation:blink 1s steps(1) infinite}
.roastStage{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:900px;margin:0 auto}
.roastText{font-size:clamp(1.65rem,4vw,3.7rem);line-height:1.02;font-weight:950;letter-spacing:-.045em;text-transform:uppercase;text-wrap:balance}
.roastMeta{font:700 .72rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);letter-spacing:.13em;margin-top:16px}
.selectors{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;max-width:780px;margin:0 auto 18px;text-align:left}
label{display:block;font:800 .68rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);letter-spacing:.12em;margin:0 0 8px 3px}
.segmented{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:#080a10;border-radius:14px;padding:4px}
.segmented button{border:0;background:transparent;color:var(--muted);padding:12px 7px;border-radius:10px;font-size:.72rem;font-weight:900}
.segmented button.active{background:#202432;color:#fff;box-shadow:inset 0 0 0 1px #353a4d}
.segmented button[data-value="nuclear"].active,.segmented button[data-value="chaos"].active{background:#3a171b;color:#fecaca;box-shadow:inset 0 0 0 1px #7f1d1d}
select,input{width:100%;border:1px solid var(--line);background:#090b11;color:#fff;border-radius:14px;padding:13px 14px;outline:none}
.roastBtn{width:min(520px,100%);margin:3px auto 0;border:1px solid #9b78f6;background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;border-radius:18px;padding:16px 22px;box-shadow:0 14px 38px rgba(124,58,237,.22);display:flex;flex-direction:column;align-items:center}
.roastBtn span{font-weight:1000;font-size:1.15rem;letter-spacing:.05em}
.roastBtn small{font-size:.62rem;opacity:.68;margin-top:2px;letter-spacing:.09em}
.roastBtn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.roastBtn:disabled{opacity:.6;transform:none}
.actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:13px}
.actions button,.panelHead button,.memeControls button,.aiControls button{border:1px solid var(--line);background:#10131b;color:#d7dae3;border-radius:11px;padding:9px 12px;font-size:.72rem;font-weight:850}
.freeTag{color:var(--green);font-size:.6rem}
.status{height:22px;padding-top:8px;color:var(--muted);font-size:.78rem}
.dashboard{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
.monitor,.counterPanel,.terminal,.hall,.memeSection,.aiSection{padding:20px}
.panelHead{display:flex;justify-content:space-between;align-items:center;font:800 .69rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);letter-spacing:.09em;margin-bottom:17px}
.blink{color:var(--green);animation:blink 1.3s steps(1) infinite}
.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.metrics>div{background:#090b11;border:1px solid #1c202c;border-radius:13px;padding:13px 14px;display:flex;justify-content:space-between;gap:8px;align-items:center}
.metrics span{color:#6f7687;font:700 .63rem ui-monospace,SFMono-Regular,Menlo,monospace}
.metrics b{font:800 .76rem ui-monospace,SFMono-Regular,Menlo,monospace;color:#e6e8ee;text-align:right}
.bigCounter{font-size:clamp(3.1rem,7vw,6.5rem);font-weight:1000;letter-spacing:-.07em;line-height:.9;margin-top:24px}
.counterLabel{font:.72rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--violet2);letter-spacing:.12em;margin-top:9px}
.miniStats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:25px}
.miniStats div{background:#090b11;border:1px solid #1c202c;border-radius:12px;padding:10px;text-align:center}
.miniStats b{display:block;font-size:1rem}
.miniStats span{display:block;color:#687081;font-size:.55rem;font-weight:800;margin-top:3px}
.terminal pre{margin:0;background:#07090d;border:1px solid #1b2028;border-radius:14px;padding:18px;white-space:pre-wrap;color:#a7f3d0;font:500 .78rem/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;min-height:180px}
.topRoasts{display:grid;gap:8px}
.topItem{background:#090b11;border:1px solid #1b1f2b;border-radius:13px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}
.topItem p{margin:0;font-weight:750}
.topItem span{font:700 .7rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted)}
.empty{padding:20px;color:var(--muted);text-align:center}
.memeGrid,.aiGrid{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:18px;align-items:start}
#memeCanvas{width:100%;max-width:720px;aspect-ratio:1;border-radius:15px;background:#090b11;border:1px solid #202431}
.memeControls,.aiControls{display:grid;gap:9px;position:sticky;top:90px}
.primarySmall{background:#6d3ce7!important;border-color:#8b5cf6!important;color:#fff!important}
.aiPlaceholder,#aiImage{width:100%;max-width:720px;aspect-ratio:1;object-fit:cover;border-radius:15px;background:#090b11;border:1px solid #202431}
.aiPlaceholder{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;text-align:center;padding:30px;color:#cbd0dc}
.aiPlaceholder span{color:var(--muted);font-size:.82rem}
.aiControls p{font-size:.68rem;line-height:1.5;color:var(--muted)}
.spinner{width:34px;height:34px;border:3px solid #2b3040;border-top-color:var(--violet);border-radius:50%;animation:spin .8s linear infinite}
.hidden{display:none!important}
footer{width:min(1180px,calc(100% - 28px));margin:0 auto 30px;color:#646a78;font-size:.7rem;display:flex;justify-content:center;gap:9px}
footer a{color:#8b92a4;text-decoration:none}
#chaosFlash{pointer-events:none;position:fixed;inset:0;z-index:100;opacity:0;background:rgba(239,68,68,.25)}
body.chaos{animation:shake .12s linear 4}
body.chaos #chaosFlash{animation:flash .12s linear 4}
@keyframes blink{50%{opacity:.25}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shake{25%{transform:translateX(3px)}50%{transform:translateX(-4px)}75%{transform:translateY(2px)}}
@keyframes flash{50%{opacity:1}}
@media(max-width:760px){
  .topbar{padding:0 14px}.online{display:none}.logo{font-size:.82rem}
  .app{width:min(100% - 18px,1180px);margin-top:10px;gap:10px}
  .panel{border-radius:18px}.hero{padding:26px 14px}
  .roastStage{min-height:245px}.selectors{grid-template-columns:1fr;gap:11px}
  .segmented button{padding:11px 2px;font-size:.63rem}
  .dashboard{grid-template-columns:1fr;gap:10px}
  .metrics{grid-template-columns:1fr}
  .monitor,.counterPanel,.terminal,.hall,.memeSection,.aiSection{padding:14px}
  .memeGrid,.aiGrid{grid-template-columns:1fr}.memeControls,.aiControls{position:static}
  .topItem{grid-template-columns:1fr}
  .skyis{margin-top:10px}.actions{gap:6px}.actions button{flex:1 1 45%}
  footer{flex-wrap:wrap;text-align:center}
}

.referenceGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:12px}
.referenceCard{border:1px solid #252a37;background:#090b11;border-radius:14px;padding:8px;cursor:pointer;position:relative}
.referenceCard.selected{border-color:#8b5cf6;box-shadow:0 0 0 2px rgba(139,92,246,.18)}
.referenceCard img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;display:block}
.referenceCard b{display:block;font-size:.76rem;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.referenceCard span{font-size:.62rem;color:var(--muted)}
.referenceCard .primaryBadge{position:absolute;top:14px;left:14px;background:#7c3aed;color:#fff;border-radius:999px;padding:4px 7px;font-size:.55rem;font-weight:900}
.referenceActions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:14px}
.referenceActions>span{margin-right:auto;color:var(--muted);font-size:.78rem}
#photoMemeCanvas{width:100%;max-width:720px;aspect-ratio:1;border-radius:15px;background:#090b11;border:1px solid #202431}
