:root{--bg:#0d0610;--card:#170b1c;--line:#2e1838;--berry:#ff2e88;--leaf:#b6ff3b;--rose:#ff4d6d;--muted:#8a7593}
body{background:var(--bg);color:#f3e8f7;font-family:'IBM Plex Mono',monospace;
background-image:radial-gradient(circle at 15% -10%,rgba(255,46,136,.18),transparent 40%),radial-gradient(circle at 100% 100%,rgba(182,255,59,.07),transparent 40%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
background-size:auto,auto,28px 28px,28px 28px;min-height:100vh}
.disp{font-family:'Unbounded',sans-serif}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;animation:rise .6s both;transition:transform .2s,border-color .2s}
.card:hover{transform:translateY(-2px);border-color:#4a2659}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1}}
.shimmer{background:linear-gradient(90deg,#f3e8f7 30%,var(--berry) 50%,#f3e8f7 70%);background-size:200% 100%;-webkit-background-clip:text;color:transparent;animation:sh 4s linear infinite}
@keyframes sh{to{background-position:-200% 0}}
.btn{border:1px solid var(--line);border-radius:10px;padding:.5rem .9rem;transition:all .15s}
.btn:hover{border-color:var(--berry)}
.btn-berry{background:var(--berry);color:#0d0610;border-color:var(--berry);font-weight:600}
.btn-berry:hover{filter:brightness(1.1)}
select,input{background:#0d0610;border:1px solid var(--line);border-radius:10px;padding:.5rem;color:inherit;outline:none}
select:focus,input:focus{border-color:var(--berry)}
.up{color:var(--leaf)}.down{color:var(--rose)}.muted{color:var(--muted)}
.flash{animation:fl .5s}
@keyframes fl{from{background:rgba(255,46,136,.25)}}
.toast{animation:rise .3s both}