
:root{--k:#0a0a0a;--r:#bb1f1f;--g:#0b7a3b;--w:#f6f3ee;--gl:rgba(255,255,255,.07);--bd:rgba(255,255,255,.15)}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{font:15px/1.5 'Bricolage Grotesque',system-ui,sans-serif;color:var(--w);background:#050505;min-height:100vh;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(60vw 40vw at 0 0,rgba(187,31,31,.45),transparent),radial-gradient(60vw 45vw at 100% 100%,rgba(11,122,59,.5),transparent),radial-gradient(40vw 30vw at 80% 0,rgba(255,255,255,.06),transparent)}
.glass{background:var(--gl);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border:1px solid var(--bd);border-radius:18px}
header{margin:12px;padding:10px 16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;position:relative;overflow:hidden}
header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(#0a0a0a 0 33%,var(--r) 33% 66%,var(--g) 66%)}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:26px;letter-spacing:-.5px}.logo small{display:block;font-size:11px;font-weight:400;opacity:.7;letter-spacing:0}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.chip{padding:4px 11px;border-radius:99px;background:rgba(0,0,0,.35);border:1px solid var(--bd);font-size:12.5px}
.app{display:grid;grid-template-columns:150px minmax(0,1fr) 340px;gap:12px;margin:0 12px 90px}
nav{padding:8px;display:flex;flex-direction:column;gap:4px;align-self:start;position:sticky;top:12px}
nav button{all:unset;cursor:pointer;padding:9px 12px;border-radius:11px;font-weight:600;border-left:4px solid transparent}
nav button:hover{background:rgba(255,255,255,.08)}nav button.on{background:rgba(255,255,255,.13);border-left-color:var(--r)}
nav button:nth-child(3n).on{border-left-color:var(--g)}nav button:nth-child(3n+1).on{border-left-color:#fff}
.stage{padding:14px;min-height:60vh;display:flex;flex-direction:column;gap:10px}
.drop{flex:1;min-height:340px;border:2px dashed var(--bd);border-radius:14px;display:grid;place-items:center;text-align:center;padding:20px;cursor:pointer;transition:.2s}
.drop.over,.drop:hover{border-color:var(--g);background:rgba(11,122,59,.12)}
.drop h2{font-size:28px;font-weight:800}.drop p{opacity:.75;max-width:42ch;margin:6px auto 0}
.wrap{position:relative;margin:auto;max-width:100%;line-height:0;border-radius:10px;overflow:hidden;background:conic-gradient(#2a2a2a 25%,#3a3a3a 0 50%,#2a2a2a 0 75%,#3a3a3a 0) 0 0/20px 20px;display:none}
.wrap canvas{max-width:100%;max-height:68vh;width:auto;height:auto}#ly,#ov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;touch-action:none}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.panel{padding:14px;align-self:start;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}
.panel section{display:none;flex-direction:column;gap:9px}.panel section.on{display:flex}
h3{font-size:18px;font-weight:800}label{font-size:12.5px;opacity:.85;display:flex;justify-content:space-between;gap:8px}
.b{cursor:pointer;border:1px solid var(--bd);background:rgba(255,255,255,.09);color:var(--w);padding:8px 12px;border-radius:11px;font:600 14px inherit;font-family:inherit;transition:.15s}
.b:hover{background:rgba(255,255,255,.18)}.b:active{transform:scale(.97)}
.b.g{background:var(--g);border-color:#17a354}.b.r{background:var(--r);border-color:#e04646}.b.k{background:#000}
.row{display:flex;gap:7px;flex-wrap:wrap}.row>*{flex:1 1 auto}
textarea,input,select{width:100%;background:rgba(0,0,0,.4);border:1px solid var(--bd);color:var(--w);border-radius:9px;padding:8px;font:inherit}
input[type=range]{padding:0;accent-color:var(--g)}input[type=color]{padding:2px;height:36px}
.note{font-size:12.5px;opacity:.7}.out{font-size:13px;background:rgba(0,0,0,.35);border-radius:10px;padding:9px;word-break:break-all;white-space:pre-wrap}
.sw{display:flex;gap:6px;flex-wrap:wrap}.sw i{width:38px;height:38px;border-radius:9px;border:1px solid var(--bd);cursor:pointer}
.prog{height:6px;border-radius:9px;background:rgba(255,255,255,.12);overflow:hidden;display:none}.prog b{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--r),var(--g));transition:.2s}
#toasts{position:fixed;top:14px;right:14px;z-index:99;display:flex;flex-direction:column;gap:8px;width:min(340px,calc(100vw - 28px))}
.t{padding:11px 14px;border-radius:13px;display:flex;gap:10px;backdrop-filter:blur(16px);background:rgba(15,15,15,.78);border:1px solid var(--bd);border-left:5px solid;animation:in .25s}
.t.success{border-left-color:#17a354}.t.error{border-left-color:#e04646}.t.warning{border-left-color:#e6b422}.t.info{border-left-color:#fff}
@keyframes in{from{transform:translateX(40px);opacity:0}}
#fab{position:fixed;right:16px;bottom:16px;z-index:50;width:62px;height:62px;border-radius:50%;font-size:26px}
#raia{position:fixed;right:16px;bottom:90px;z-index:50;width:min(380px,calc(100vw - 32px));height:min(520px,66vh);display:none;flex-direction:column;padding:12px;gap:8px}
#raia.on{display:flex}#log{flex:1;overflow:auto;display:flex;flex-direction:column;gap:7px}
.m{padding:8px 11px;border-radius:13px;max-width:88%;font-size:14px;white-space:pre-wrap}.m.ai{background:rgba(11,122,59,.35);align-self:flex-start}.m.me{background:rgba(187,31,31,.4);align-self:flex-end}
footer{text-align:center;opacity:.6;font-size:12.5px;padding:0 12px 20px}
@media(max-width:980px){.app{grid-template-columns:1fr}nav{flex-direction:row;overflow:auto;position:static}nav button{white-space:nowrap;border-left:0;border-bottom:3px solid transparent}.panel{position:static;max-height:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
:focus-visible{outline:2px solid #fff;outline-offset:2px}
#cm{position:fixed;z-index:120;display:none;min-width:210px;padding:6px}#cm button{all:unset;display:flex;gap:9px;align-items:center;width:calc(100% - 20px);padding:8px 10px;border-radius:9px;cursor:pointer;font-size:14px}#cm button:hover{background:rgba(255,255,255,.14)}#cm hr{border:0;border-top:1px solid var(--bd);margin:4px 0}
.ic{width:18px;height:18px;vertical-align:-4px;flex:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.55))}#fab .ic{width:38px;height:38px}.sp{position:absolute;width:0;height:0}footer a{color:inherit}.t .ic{width:22px;height:22px}

