:root{
  --bg:#170b20; --bg2:#24112f; --ink:#f6e6ff; --dim:#a98bb8;
  --berry:#ff2f74; --berry2:#ff9cc2; --leaf:#7ee07a; --gold:#ffc65a;
  --panel:#1f0f2a; --line:#3d2150;
  --mono:'IBM Plex Mono',monospace; --px:'Silkscreen',monospace;
}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);font-family:var(--mono);min-height:100vh;
  background:
    radial-gradient(circle at 15% 10%,#3a1340 0,transparent 40%),
    radial-gradient(circle at 90% 80%,#2a0f3d 0,transparent 45%),
    repeating-linear-gradient(45deg,transparent 0 22px,rgba(255,47,116,.03) 22px 24px),
    var(--bg);}
button,select,input{font-family:inherit}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 22px;flex-wrap:wrap;border-bottom:2px solid var(--line)}
.logo{display:flex;align-items:center;gap:14px}
.logo h1{font-family:var(--px);font-weight:700;font-size:38px;margin:0;letter-spacing:2px;color:var(--berry);text-shadow:3px 3px 0 #5a0f33,6px 6px 0 rgba(0,0,0,.4)}
.logo small{font-family:var(--px);font-size:10px;color:var(--dim);letter-spacing:3px}
.pxberry{width:30px;height:34px;position:relative;animation:bob 1s ease-in-out infinite}
.pxberry i{position:absolute;left:0;top:0;width:3px;height:3px;background:transparent;
  box-shadow:12px 0 #49c45a,15px 0 #49c45a,9px 3px #49c45a,12px 3px #49c45a,15px 3px #49c45a,18px 3px #49c45a,
  6px 6px #ff2f74,9px 6px #ff2f74,12px 6px #ff2f74,15px 6px #ff2f74,18px 6px #ff2f74,21px 6px #ff2f74,
  3px 9px #ff2f74,6px 9px #ffd166,9px 9px #ff2f74,12px 9px #ff2f74,15px 9px #ffd166,18px 9px #ff2f74,21px 9px #ff2f74,24px 9px #ff2f74,
  3px 12px #ff2f74,6px 12px #ff2f74,9px 12px #ff2f74,12px 12px #ffd166,15px 12px #ff2f74,18px 12px #ff2f74,21px 12px #ffd166,24px 12px #ff2f74,
  3px 15px #ff2f74,6px 15px #ffd166,9px 15px #ff2f74,12px 15px #ff2f74,15px 15px #ff2f74,18px 15px #ffd166,21px 15px #ff2f74,24px 15px #ff2f74,
  6px 18px #ff2f74,9px 18px #ff2f74,12px 18px #ffd166,15px 18px #ff2f74,18px 18px #ff2f74,21px 18px #ff2f74,
  9px 21px #ff2f74,12px 21px #ff2f74,15px 21px #ff2f74,18px 21px #ff2f74,12px 24px #c41555,15px 24px #c41555;}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px) rotate(-6deg)}}
.cartzone{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.slot{width:110px;height:34px;border-radius:6px;background:#0b0510;border:2px solid #5a2d6c;overflow:hidden;position:relative;box-shadow:inset 0 6px 10px #000}
.cart{position:absolute;left:8px;right:8px;top:4px;height:28px;background:linear-gradient(#5b5f6e,#3a3d48);border-radius:4px 4px 0 0;
  font-family:var(--px);font-size:8px;color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1}
.cart span{background:var(--berry);padding:3px 4px;border-radius:2px;max-width:86px;overflow:hidden;white-space:nowrap}
.cart.inserting{animation:slotin .7s cubic-bezier(.5,-0.4,.6,1.4)}
@keyframes slotin{0%{transform:translateY(-40px)}60%{transform:translateY(14px)}100%{transform:translateY(0)}}
.btn{background:#2e1640;color:var(--ink);border:1px solid #5a2d6c;padding:7px 11px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:500;transition:.12s}
.btn:hover{border-color:var(--berry2);transform:translateY(-1px)}
.btn.hot{background:var(--berry);border-color:#ff7aa7;color:#fff;font-weight:700}
.btn.on{background:#4a1f5e;border-color:var(--berry2)}
select{background:#2e1640;color:var(--ink);border:1px solid #5a2d6c;border-radius:8px;padding:7px}
.layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:22px;padding:22px;max-width:1500px;margin:0 auto}
@media(max-width:1050px){.layout{grid-template-columns:1fr}}
.shell{background:linear-gradient(160deg,rgba(255,120,170,.55),rgba(220,40,110,.35) 60%,rgba(140,20,80,.5));
  border-radius:34px 34px 46px 46px;padding:16px 18px 20px;border:1px solid rgba(255,190,215,.5);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.4),inset 0 -12px 30px rgba(80,0,40,.5),0 24px 50px rgba(0,0,0,.5);backdrop-filter:blur(4px);position:relative;
  animation:rise .6s ease-out}
@keyframes rise{from{opacity:0;transform:translateY(20px)}}
.shell-top{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-family:var(--px);font-size:10px}
.led{width:11px;height:11px;border-radius:50%;background:#4a1020;box-shadow:inset 0 1px 2px #000}
.led.on{background:#ff4b4b;box-shadow:0 0 10px #ff3030,0 0 20px #ff3030}
.ledlbl{color:#ffe0ec}.tag{margin-left:auto;color:#ffe0ec;opacity:.8;letter-spacing:1px}
.bezel{background:#140812;border-radius:18px;padding:14px;box-shadow:inset 0 0 0 3px #2b0f22,inset 0 8px 20px #000;display:flex;justify-content:center}
.screen-wrap{position:relative;line-height:0;border-radius:6px;overflow:hidden;background:#000}
#canvas{image-rendering:pixelated;image-rendering:crisp-edges;display:block;width:512px;max-width:100%}
.crt{position:absolute;inset:0;pointer-events:none;display:none}
.crt-on .crt{display:block;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.45));box-shadow:inset 0 0 40px rgba(255,60,140,.15)}
.crt-on #canvas{filter:saturate(1.15) contrast(1.05)}
.controls{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;align-items:center}
.speed{font-size:11px;display:flex;gap:6px;align-items:center;color:#ffe0ec}
.speed input{width:90px;accent-color:var(--berry)}
.fps{position:absolute;right:26px;bottom:6px;font-size:10px;color:#ffd6e6;opacity:.7}
.keys{font-size:11px;color:var(--dim);text-align:center}
.pad{display:none;justify-content:space-between;align-items:center;padding:16px 10px;user-select:none;-webkit-user-select:none;touch-action:none}
@media (pointer:coarse),(max-width:700px){.pad{display:flex}}
.pad button{background:#3a1a4c;color:#fff;border:1px solid #6b3a80;border-radius:10px;font-family:var(--px);touch-action:none}
.pad button.down,.pad button:active{background:var(--berry)}
.dpad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px)}
.dpad .u{grid-area:1/2}.dpad .l{grid-area:2/1}.dpad .r{grid-area:2/3}.dpad .d{grid-area:3/2}
.mid{display:flex;gap:6px}.mid button{font-size:9px;padding:6px 8px}
.face{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px)}
.face button{border-radius:50%}
.fx{grid-area:1/2}.fy{grid-area:2/1}.fa{grid-area:2/3}.fb{grid-area:3/2}
.debug{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;min-width:0;animation:rise .8s ease-out}
.tabs{display:flex;flex-wrap:wrap;background:#140818;border-bottom:1px solid var(--line)}
.tabs button{background:none;border:0;color:var(--dim);padding:11px 13px;cursor:pointer;font-family:var(--px);font-size:11px}
.tabs button.on{color:var(--berry);box-shadow:inset 0 -3px 0 var(--berry)}
.panel{display:none;padding:14px;font-size:12px}
.panel.on{display:block}
.regs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
.regs div{background:#140818;border:1px solid var(--line);border-radius:6px;padding:5px 7px}
.regs b{color:var(--berry2);font-weight:500;margin-right:6px}
.flag{display:inline-block;padding:0 5px;margin-right:3px;border-radius:3px;background:#2a1436;color:#6c5078}
.flag.on{background:var(--leaf);color:#0c2a0c}
.disasm{background:#0f0614;border-radius:8px;padding:6px 0;max-height:420px;overflow:auto}
.dl{padding:1px 10px;white-space:pre;cursor:pointer;display:flex;gap:10px}
.dl:hover{background:#26122f}
.dl .a{color:#76598a}.dl .w{color:#5d4570;width:80px}.dl .lb{color:var(--gold)}
.dl.pc{background:linear-gradient(90deg,rgba(255,47,116,.35),transparent);color:#fff}
.dl.bp .a{color:#fff;background:#d01c50;border-radius:3px;padding:0 3px}
.hint{color:var(--dim);font-size:11px}
.row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}
#memAddr{width:70px;background:#140818;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:6px;text-transform:uppercase}
.chip{background:#2a1436;border:1px solid var(--line);color:var(--ink);border-radius:20px;padding:4px 10px;cursor:pointer;font-size:11px}
.hex{background:#0f0614;border-radius:8px;padding:10px;margin:0;line-height:1.55;overflow:auto;color:#d9c5e6}
.vgrid{display:flex;gap:10px;flex-wrap:wrap}
.vgrid div{display:flex;flex-direction:column;gap:4px;font-size:10px;color:var(--dim)}
.vgrid canvas{image-rendering:pixelated;background:#000;border:1px solid var(--line);border-radius:4px}
#tileCv{width:128px;height:256px}#bg0Cv,#bg1Cv{width:200px;height:200px}
h4{font-family:var(--px);font-weight:400;color:var(--berry2);margin:14px 0 6px;font-size:11px}
.cram{display:grid;grid-template-columns:repeat(16,1fr);gap:1px;max-width:400px}
.cram i{aspect-ratio:1;display:block;border-radius:2px}
.oam{max-height:160px;overflow:auto;white-space:pre;color:#cdb6db;font-size:11px}
.palgrid{display:grid;grid-template-columns:repeat(16,1fr);gap:3px}
.palgrid i{aspect-ratio:1;border-radius:4px;display:block;cursor:crosshair;transition:transform .1s}
.palgrid i:hover{transform:scale(1.35);z-index:2;box-shadow:0 0 0 2px #fff}
.palinfo{font-size:14px;padding:10px;margin-bottom:10px;border-radius:8px;background:#140818;border-left:6px solid var(--berry);min-height:44px}
.apugrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.ach{background:#0f0614;border:1px solid var(--line);border-radius:8px;padding:6px;display:grid;grid-template-columns:1fr 10px;gap:6px}
.ach canvas{width:100%;height:46px}
.ach .vu{background:#2a1436;border-radius:3px;position:relative;overflow:hidden}
.ach .vu i{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(var(--berry),var(--gold),var(--leaf))}
.ach .top{grid-column:1/3;display:flex;justify-content:space-between;align-items:center;padding:0;border:0;font-size:10px}
.ach .top button{font-size:10px;padding:2px 6px}
#asm{width:100%;height:380px;background:#0f0614;color:#f3dcff;border:1px solid var(--line);border-radius:8px;padding:10px;font-family:var(--mono);font-size:12px;line-height:1.45;resize:vertical;tab-size:8}
.asmout{color:var(--leaf);white-space:pre-wrap;max-height:120px;overflow:auto}
.asmout.err{color:#ff7a9a}
.file{position:relative;overflow:hidden}.file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ref pre{white-space:pre-wrap;color:#cdb6db;font-size:11px}
.ref summary{cursor:pointer;color:var(--berry2)}
.slots{display:grid;gap:10px}
.slotc{display:flex;align-items:center;gap:10px;background:#140818;border:1px solid var(--line);border-radius:10px;padding:10px}
.slotc span{flex:1;color:var(--dim)}
footer{text-align:center;padding:24px;color:var(--dim);font-size:12px}
footer a{color:var(--berry)}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(80px);background:var(--berry);color:#fff;padding:10px 18px;border-radius:30px;font-weight:700;transition:.3s;pointer-events:none;z-index:9;font-size:13px}
#toast.show{transform:translateX(-50%) translateY(0)}
.screen-wrap.drag{outline:3px dashed var(--gold)}