:root{
  --bg:#0d0d12;
  --panel:#15151f;
  --panel2:#1c1c2b;
  --cyan:#28e6ff;
  --magenta:#ff4fd8;
  --ink:#e8e8f0;
  --dim:#8b8ba8;
  --border:#2c2c42;
  --green:#3dff7a;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:
    radial-gradient(circle at 20% 0%, #1a1030 0%, transparent 50%),
    radial-gradient(circle at 80% 100%, #101a30 0%, transparent 55%),
    var(--bg);
  color:var(--ink);
  font-family:'IBM Plex Sans',system-ui,sans-serif;
  min-height:100vh;
  overflow-x:hidden;
}
.scanlines{
  position:fixed;inset:0;pointer-events:none;z-index:9999;
  background:repeating-linear-gradient(to bottom, rgba(0,0,0,0) 0 2px, rgba(0,0,0,.18) 2px 3px);
  mix-blend-mode:multiply;
}

header{
  text-align:center;
  padding:22px 16px 14px;
  border-bottom:1px solid var(--cyan);
  box-shadow:0 8px 30px -10px rgba(40,230,255,.3);
  background:linear-gradient(180deg, rgba(40,230,255,.05), transparent);
}
header h1{
  font-family:'VT323',monospace;
  font-size:clamp(34px,7vw,58px);
  margin:0;
  letter-spacing:3px;
  color:var(--cyan);
  text-shadow:0 0 12px rgba(40,230,255,.6), 3px 3px 0 var(--magenta);
}
.subtitle{margin:4px 0 0;color:var(--dim);font-weight:300;font-size:14px;}

main{max-width:1000px;margin:0 auto;padding:20px 16px 40px;}

/* ROM loader */
.loader-card{margin-bottom:22px;}
.drop-zone{
  border:2px dashed var(--border);
  border-radius:14px;
  padding:22px;
  text-align:center;
  transition:all .2s;
  background:var(--panel);
}
.drop-zone.drag-over{border-color:var(--cyan);background:rgba(40,230,255,.08);box-shadow:0 0 22px -4px rgba(40,230,255,.5);}
.drop-zone.flash{animation:shake .4s;}
@keyframes shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-6px);}75%{transform:translateX(6px);}}
.dz-inner{display:flex;flex-direction:column;align-items:center;gap:10px;}
.dz-icon{font-size:38px;}
.dz-title{font-family:'VT323',monospace;font-size:22px;color:var(--ink);letter-spacing:1px;}
.dz-hint{font-size:12px;color:var(--dim);max-width:420px;}
.dz-hint em{color:var(--magenta);font-style:normal;}
.rom-info{
  margin-top:12px;padding:10px 14px;border-radius:10px;
  background:var(--panel2);border:1px solid var(--border);
  font-family:'VT323',monospace;font-size:17px;color:var(--green);
}

/* Stage layout */
.stage{display:flex;flex-direction:column;gap:20px;}
@media(min-width:880px){
  .stage{flex-direction:row;align-items:flex-start;}
  .screen-wrap{flex:0 0 auto;}
  .debug-card{flex:1 1 auto;}
}

/* Screen */
.screen-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;}
.crt-bezel{
  position:relative;
  padding:16px;
  background:linear-gradient(145deg,#050508,#1a1a22);
  border-radius:16px;
  border:1px solid #000;
  box-shadow:inset 0 0 30px rgba(0,0,0,.9), 0 10px 40px -10px rgba(0,0,0,.8);
}
#screen{
  display:block;
  image-rendering:pixelated;
  image-rendering:crisp-edges;
  background:#000;
  border-radius:4px;
  box-shadow:0 0 20px rgba(40,230,255,.12);
}
.led{
  position:absolute;top:6px;right:10px;
  width:9px;height:9px;border-radius:50%;
  background:#3a1010;box-shadow:0 0 3px #000;
  transition:all .3s;
}
.led.on{background:var(--green);box-shadow:0 0 10px var(--green);}
.no-rom{
  position:absolute;inset:16px;
  display:flex;align-items:center;justify-content:center;
  font-family:'VT323',monospace;font-size:20px;color:var(--dim);
  pointer-events:none;letter-spacing:2px;
}

/* Controls */
.controls{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;
}
.btn{
  font-family:'VT323',monospace;
  font-size:18px;
  background:var(--panel2);
  color:var(--ink);
  border:1px solid var(--border);
  border-radius:8px;
  padding:7px 14px;
  cursor:pointer;
  transition:all .15s;
  letter-spacing:.5px;
}
.btn:hover{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 12px -4px var(--cyan);}
.btn:active{transform:translateY(2px);}
.btn.active{background:var(--cyan);color:#001018;border-color:var(--cyan);}
.btn-neon{background:var(--magenta);color:#12000e;border-color:var(--magenta);font-size:17px;padding:8px 18px;}
.btn-neon:hover{color:#12000e;box-shadow:0 0 18px -2px var(--magenta);}
.scale-group{display:flex;align-items:center;gap:5px;font-family:'VT323',monospace;color:var(--dim);font-size:16px;}
.scale-btn{padding:6px 10px;}

/* Gamepad */
.gamepad{display:flex;gap:40px;align-items:center;justify-content:center;flex-wrap:wrap;}
.dpad{
  display:grid;
  grid-template-columns:repeat(3,46px);
  grid-template-rows:repeat(3,46px);
  gap:3px;
}
.dpad .pad{grid-column:2;}
.dpad [data-btn="up"]{grid-row:1;grid-column:2;}
.dpad [data-btn="left"]{grid-row:2;grid-column:1;}
.dpad .center{grid-row:2;grid-column:2;}
.dpad [data-btn="right"]{grid-row:2;grid-column:3;}
.dpad [data-btn="down"]{grid-row:3;grid-column:2;}
.pad{
  background:var(--panel2);border:1px solid var(--border);border-radius:8px;
  color:var(--dim);font-size:18px;cursor:pointer;user-select:none;
  display:flex;align-items:center;justify-content:center;
}
.pad.center{background:transparent;border:none;color:#333;}
.pad.pressed,.face.pressed{background:var(--cyan);color:#001018;border-color:var(--cyan);box-shadow:0 0 12px -2px var(--cyan);}
.face-btns{display:flex;gap:16px;}
.face{
  width:60px;height:60px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #ff7fe0, var(--magenta));
  border:2px solid #601046;color:#160010;font-weight:700;font-size:22px;
  cursor:pointer;user-select:none;font-family:'VT323',monospace;
  box-shadow:0 4px 0 #400a30;
}
.face:active{transform:translateY(3px);box-shadow:0 1px 0 #400a30;}
.keymap{color:var(--dim);font-size:13px;text-align:center;margin:0;}
.keymap b{color:var(--cyan);}

/* Debug */
.debug-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.debug-toggle{
  width:100%;text-align:left;background:var(--panel2);color:var(--cyan);
  border:none;border-bottom:1px solid var(--border);
  font-family:'VT323',monospace;font-size:19px;padding:10px 14px;cursor:pointer;letter-spacing:1px;
}
.debug-body{padding:14px;}
.debug-body.hidden,.hidden{display:none;}
.mono{
  font-family:'VT323',monospace;font-size:16px;line-height:1.4;
  white-space:pre-wrap;color:var(--ink);margin-bottom:12px;
}
#cpuStats{color:var(--green);}
#vdpStats{color:var(--cyan);}
.vram-label{color:var(--dim);font-size:12px;margin-bottom:4px;text-transform:uppercase;letter-spacing:1px;}
.vram{
  background:#050508;border:1px solid var(--border);border-radius:6px;
  padding:8px;font-size:12px;color:var(--magenta);overflow-x:auto;max-height:220px;
  font-family:'VT323',monospace;
}
.err-box{
  display:none;margin-top:10px;padding:10px;border-radius:6px;
  background:rgba(255,79,79,.12);border:1px solid #ff4f4f;color:#ff9a9a;
  font-family:'VT323',monospace;white-space:pre-wrap;font-size:15px;
}

footer{
  text-align:center;padding:20px;border-top:1px solid var(--border);
  display:flex;flex-direction:column;gap:6px;
}
footer a{color:var(--cyan);text-decoration:none;font-family:'VT323',monospace;font-size:18px;letter-spacing:1px;}
footer a:hover{text-shadow:0 0 10px var(--cyan);}
.credit{color:var(--dim);font-size:12px;font-style:italic;}

@media(max-width:600px){
  .gamepad{gap:24px;}
  .dpad{grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,52px);}
}
</parameter>
</invoke>