:root{--a1:#8b5cf6;--a2:#ec4899;--a3:#22d3ee;--bg1:#0b0b1a;--bg2:#1a1033;--txt:#ece9ff;--mut:#9a93c0;--glass:rgba(255,255,255,.06);--bd:rgba(255,255,255,.1)}
.light{--bg1:#f6f3ff;--bg2:#ece6ff;--txt:#1d1638;--mut:#6b6390;--glass:rgba(255,255,255,.65);--bd:rgba(80,50,160,.15)}
.acc-cyan{--a1:#06b6d4;--a2:#3b82f6;--a3:#a78bfa}
.acc-sunset{--a1:#f97316;--a2:#e11d48;--a3:#facc15}
body{margin:0;font-family:'Bricolage Grotesque',sans-serif;color:var(--txt);background:linear-gradient(135deg,var(--bg1),var(--bg2));min-height:100vh}
[dir=rtl] body,[dir=rtl] *{font-family:'Vazirmatn',sans-serif}
.mono,.mono *{font-family:'JetBrains Mono',monospace!important}
.blob{position:fixed;border-radius:50%;filter:blur(90px);opacity:.35;z-index:0;pointer-events:none;animation:float 18s ease-in-out infinite}
@keyframes float{50%{transform:translate(40px,-30px) scale(1.1)}}
.glass{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--bd);border-radius:1rem}
.grad-txt{background:linear-gradient(90deg,var(--a1),var(--a2),var(--a3));-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{padding:.45rem .9rem;border-radius:.7rem;border:1px solid var(--bd);background:var(--glass);transition:.2s;font-size:.85rem;white-space:nowrap}
.btn:hover{border-color:var(--a1);box-shadow:0 0 18px -4px var(--a1)}
.btn-p{background:linear-gradient(90deg,var(--a1),var(--a2));color:#fff;border:none}
.mut{color:var(--mut)}
.inp{background:rgba(0,0,0,.2);border:1px solid var(--bd);border-radius:.6rem;padding:.5rem .7rem;color:var(--txt);width:100%;outline:none}
.light .inp{background:rgba(255,255,255,.8)}
.inp:focus{border-color:var(--a1)}
.page{animation:pin .4s ease both}
@keyframes pin{from{opacity:0;transform:translateY(10px)}}
.noanim *{animation:none!important;transition:none!important}
.ed{position:relative;height:420px}
.ed pre,.ed textarea{position:absolute;inset:0;margin:0;padding:12px 12px 12px 48px;white-space:pre-wrap;word-wrap:break-word;overflow:auto;line-height:1.6;font-family:'JetBrains Mono',monospace}
.ed textarea{background:transparent;color:transparent;caret-color:var(--txt);resize:none;border:none;outline:none}
.ed pre{pointer-events:none;color:var(--txt)}
.ln{position:absolute;left:0;top:0;bottom:0;width:38px;padding-top:12px;text-align:right;color:var(--mut);opacity:.5;line-height:1.6;overflow:hidden;font-family:'JetBrains Mono',monospace;border-right:1px solid var(--bd)}
.h-var{color:#f472b6;font-weight:600}.h-head{color:#c084fc;font-weight:700}.h-kw{color:#22d3ee;font-weight:600}.h-neg{color:#fb923c}
.chip{padding:.2rem .6rem;border-radius:999px;font-size:.75rem;border:1px solid var(--bd)}
.chip.on{background:linear-gradient(90deg,var(--a1),var(--a2));color:#fff;border:none}
.card{transition:.25s}.card:hover{transform:translateY(-3px);border-color:var(--a2)}
.confetti{position:fixed;top:-10px;width:8px;height:14px;z-index:99;animation:fall 2.4s linear forwards}
@keyframes fall{to{transform:translateY(105vh) rotate(720deg)}}
.toast{animation:pin .3s both}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--bd);border-radius:8px}