:root{--bg:#07070b;--panel:rgba(255,255,255,.04);--line:rgba(255,255,255,.09);--vio:#8b5cf6;--cy:#22d3ee;--pink:#f472b6;--acid:#d4ff3a}
html,body{background:var(--bg);color:#e8e8f0;font-family:'JetBrains Mono',monospace;margin:0}
body{background:
 radial-gradient(900px 500px at 10% -10%,rgba(139,92,246,.18),transparent 60%),
 radial-gradient(700px 500px at 110% 10%,rgba(34,211,238,.12),transparent 60%),
 repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 4px),var(--bg);min-height:100vh}
.disp{font-family:'Syne',sans-serif}
.logo{background:linear-gradient(90deg,var(--vio),var(--cy),var(--acid),var(--vio));background-size:300% 100%;-webkit-background-clip:text;color:transparent;animation:flow 8s linear infinite}
@keyframes flow{to{background-position:300% 0}}
.glass{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(12px);border-radius:18px}
.chip{border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:11px;transition:.2s;cursor:pointer;white-space:nowrap}
.chip:hover{border-color:var(--cy);color:var(--cy)}
.mode{transition:.25s;cursor:pointer}
.mode:hover{transform:translateY(-3px)}
.omni-on{position:relative}
.omni-on::before{content:"";position:absolute;inset:-1px;border-radius:18px;padding:1px;background:conic-gradient(from var(--a,0deg),#8b5cf6,#22d3ee,#d4ff3a,#f472b6,#8b5cf6);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin 4s linear infinite}
@property --a{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes spin{to{--a:360deg}}
.gen-btn{background:linear-gradient(100deg,var(--vio),var(--cy));color:#05050a;font-family:'Syne';font-weight:800;letter-spacing:.04em}
.gen-btn:disabled{background:#222;color:#666}
.float{animation:floatup 1.2s ease-out forwards;position:absolute;right:10px;top:-6px;color:var(--pink);font-weight:700}
@keyframes floatup{to{transform:translateY(-30px);opacity:0}}
.rise{animation:rise .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}
.pulse{animation:pl 1.2s ease-in-out infinite}
@keyframes pl{50%{opacity:.4}}
textarea,input,select{background:rgba(0,0,0,.4);border:1px solid var(--line);border-radius:12px;color:#fff;outline:none}
textarea:focus,input:focus,select:focus{border-color:var(--vio)}
input[type=range]{accent-color:var(--cy);border:none;background:none}