:root{--gray:#C4C4C4;--lgray:#dcdcdc;--dgray:#6B6B6B;--red:#E60012;--char:#18171a;--char2:#232226;--ink:#0b0b0c;--gold:#e5bd52;--gold2:#a8791f}
*{box-sizing:border-box}
html,body{margin:0;background:var(--char);color:#ddd;font-family:'Chakra Petch',sans-serif;min-height:100vh}
body{background:
 radial-gradient(ellipse at 50% -10%,#3a2a2c 0%,transparent 55%),
 repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 2px,transparent 2px 6px),var(--char)}
button{font-family:inherit;cursor:pointer}
.top{display:flex;align-items:center;gap:18px;padding:14px 22px;flex-wrap:wrap;border-bottom:3px solid #000;background:linear-gradient(#2a292d,#1c1b1e)}
.logo{position:relative;display:flex;align-items:baseline;gap:8px;font-family:'Press Start 2P';padding:8px 14px 12px;background:var(--gray);color:#111;border-radius:3px;box-shadow:inset 0 -3px 0 #8d8d8d,0 3px 0 #000}
.logo .l1{font-size:18px;letter-spacing:2px}.logo .l2{font-size:12px;color:var(--red)}
.logo .stripes{position:absolute;left:0;right:0;bottom:3px;height:4px;background:linear-gradient(90deg,#111 0 60%,var(--red) 60% 100%)}
.tag{flex:1;margin:0;font-weight:300;font-style:italic;color:#aaa;min-width:200px}
.leds{display:flex;align-items:center;gap:8px;font-family:'Press Start 2P';font-size:8px;color:#888}
.led{width:10px;height:10px;border-radius:50%;background:#400;box-shadow:inset 0 1px 2px #000}
.led.on{background:#ff2a2a;box-shadow:0 0 10px #f00,0 0 2px #fff inset}
.led.blinky{animation:blk .4s steps(2) infinite}
@keyframes blk{50%{background:#400;box-shadow:none}}
#fps{margin-left:8px;color:#6c6;min-width:56px}
.tabs{display:none}
.deck{display:grid;grid-template-columns:270px minmax(0,1fr) 290px;gap:18px;padding:18px;max-width:1400px;margin:0 auto;align-items:start}
.panel{background:linear-gradient(#2c2b30,#211f24);border:2px solid #000;border-radius:8px;padding:14px;box-shadow:inset 0 1px 0 #444,0 6px 0 #000;position:relative}
.panel::before{content:'';position:absolute;left:8px;right:8px;top:4px;height:6px;background:repeating-linear-gradient(90deg,#3b3a40 0 3px,#1a191c 3px 6px);border-radius:3px;opacity:.6}
h2{font-family:'Press Start 2P';font-size:11px;color:var(--gray);margin:10px 0 14px;letter-spacing:1px}
h3{font-family:'Press Start 2P';font-size:9px;color:#999;margin:18px 0 8px}
h3 small{font-family:'Chakra Petch';font-size:11px;color:#666;margin-left:6px}
.lbl{font-family:'Press Start 2P';font-size:8px;color:#aaa;display:flex;justify-content:space-between}
output{color:var(--red)}
input[type=range]{width:100%;accent-color:var(--red)}
.ends{display:flex;justify-content:space-between;font-size:11px;color:#777;margin-top:2px}
.tiltviz{height:96px;display:flex;justify-content:center;align-items:flex-end;position:relative;margin-bottom:10px}
.miniSlot{position:absolute;bottom:0;width:150px;height:22px;background:#111;border-radius:3px;box-shadow:inset 0 4px 8px #000}
.minicart{width:110px;height:86px;background:linear-gradient(#9a9a9a,#7a7a7a);border-radius:4px 4px 0 0;transform-origin:50% 100%;transition:transform .15s;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 3px #6a6a6a;position:relative;bottom:8px}
.minicart span{font-family:'Press Start 2P';font-size:7px;background:#111;color:var(--red);padding:6px}
.dirrow{display:flex;align-items:center;gap:6px;margin:12px 0 4px}
.dirrow .lbl{margin-right:auto}
.seg{background:#333;border:2px solid #000;color:#999;font-family:'Press Start 2P';font-size:8px;padding:6px 8px;border-radius:4px}
.seg.on{background:var(--red);color:#fff}
.hint{font-size:13px;color:#c9a;min-height:34px;margin:8px 0}
.btnrow{display:flex;gap:6px;flex-wrap:wrap}
.pbtn{flex:1;background:linear-gradient(#d4d4d4,#a7a7a7);color:#111;border:2px solid #000;border-radius:5px;font-family:'Press Start 2P';font-size:8px;padding:10px 6px;box-shadow:0 4px 0 #000;transition:transform .05s}
.pbtn:active{transform:translateY(3px);box-shadow:0 1px 0 #000}
.wide{width:100%;display:block}
.seedrow{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:13px}
.seedrow input[type=number]{width:80px;background:#111;color:#e88;border:1px solid #444;padding:4px;font-family:'Press Start 2P';font-size:8px}
.mini{background:#333;color:#ddd;border:1px solid #000;border-radius:4px;padding:3px 8px}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.gallery figure{margin:0;position:relative;border:2px solid #000;cursor:pointer}
.gallery img{width:100%;display:block;image-rendering:pixelated}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;font-size:9px;background:rgba(0,0,0,.7);padding:2px 4px;color:#e99}
.gallery .x{position:absolute;top:0;right:0;background:#000;color:#f55;border:0;font-size:11px;padding:0 5px}
/* TV */
.center{display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0}
.tv{background:linear-gradient(#4a3a2c,#2d2219);padding:18px 18px 8px;border-radius:22px;box-shadow:0 10px 0 #000,inset 0 2px 0 #6a5440;width:100%;max-width:min(100%,var(--tvw,720px))}
.bezel{background:#0d0d0e;padding:16px;border-radius:26px;box-shadow:inset 0 0 20px #000}
.glass{position:relative;border-radius:6px;overflow:hidden;background:#000;line-height:0}
.glass.curve{border-radius:28px/22px;box-shadow:0 0 40px rgba(120,160,255,.15)}
.glass.curve canvas{filter:saturate(1.1) contrast(1.05)}
#canvas{width:100%;height:auto;aspect-ratio:256/240;image-rendering:pixelated;image-rendering:crisp-edges;display:block}
.scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px);mix-blend-mode:multiply}
.glass:not(.scanon) .scan{display:none}
.glass.curve::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,rgba(255,255,255,.07),transparent 60%),radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.55))}
.empty{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:'Press Start 2P';font-size:clamp(10px,2.4vw,18px);color:#fff;text-shadow:3px 3px 0 #000;line-height:1.6;text-align:center;pointer-events:none}
.empty small{font-family:'Chakra Petch';font-size:clamp(11px,1.6vw,15px);background:#000;padding:2px 8px;margin-top:8px}
.blink{position:absolute;inset:0;background:#7a7a7a;display:none;flex-direction:column;justify-content:center;align-items:center;font-family:'Press Start 2P';font-size:12px;color:#222;gap:14px;line-height:1.4}
.blink.on{display:flex}
.blink small{font-family:'Chakra Petch';font-size:13px}
.bled{width:18px;height:18px;border-radius:50%;background:red;animation:blk .5s steps(2) infinite;box-shadow:0 0 14px red}
.tvfoot{display:flex;align-items:center;gap:10px;padding:8px 6px 2px;font-family:'Press Start 2P';font-size:8px;color:#c9a77c}
.tvfoot span{margin-right:auto}.tvfoot i{width:18px;height:18px;border-radius:50%;background:radial-gradient(#777,#222);box-shadow:0 2px 0 #000}
/* Console */
.console{position:relative;width:100%;max-width:560px;background:linear-gradient(var(--lgray),var(--gray) 60%,#a9a9a9);border-radius:6px;border:2px solid #000;box-shadow:0 8px 0 #000;overflow:visible}
.slot{position:relative;height:96px;margin:10px 40px 0;background:linear-gradient(#aaa,#bdbdbd);border-radius:4px;cursor:pointer;display:flex;justify-content:center;align-items:flex-end;overflow:hidden;border:2px solid #888}
.slot.drag{outline:3px dashed var(--red);outline-offset:-6px}
.slotmouth{position:absolute;left:12%;right:12%;bottom:0;height:24px;background:#111;border-radius:3px 3px 0 0;box-shadow:inset 0 6px 10px #000}
.cart{position:relative;width:62%;height:120px;background:linear-gradient(#8f8f8f,#6f6f6f);border-radius:5px 5px 0 0;transform:translateY(110px);transition:transform .7s cubic-bezier(.3,1.4,.5,1);transform-origin:50% 100%;box-shadow:inset 0 0 0 4px #5e5e5e,inset 0 10px 0 #9c9c9c;display:flex;justify-content:center;padding-top:14px}
.cart.in{transform:translateY(42px)}
.cart.down{transform:translateY(58px)}
.cartlabel{width:80%;height:40px;background:#0e0e0e;border-top:5px solid var(--red);color:#fff;font-family:'Press Start 2P';font-size:8px;display:flex;align-items:center;justify-content:center;text-align:center;padding:4px;overflow:hidden;line-height:1.4;word-break:break-all}
.cbtm{display:flex;align-items:center;gap:14px;padding:12px 16px;background:linear-gradient(#3a3a3a,#252525);margin-top:8px;border-radius:0 0 4px 4px}
.cbtns{display:flex;gap:10px}
.cbtn{background:linear-gradient(#e33,#b00);color:#fff;border:2px solid #000;border-radius:3px;font-family:'Press Start 2P';font-size:7px;padding:9px 10px;box-shadow:0 3px 0 #000}
.cbtn:active{transform:translateY(2px);box-shadow:0 1px 0 #000}
.brand{margin-left:auto;font-family:'Press Start 2P';font-size:9px;color:#ccc}.brand b{color:var(--red);margin-left:4px}
.ports{display:flex;gap:6px}.ports i{width:22px;height:12px;background:#111;border:2px solid #555;border-radius:2px}
.dust{position:absolute;left:50%;top:20px;pointer-events:none}
.dust span{position:absolute;width:4px;height:4px;background:#d8c9a3;border-radius:50%;animation:puff 1.1s ease-out forwards}
@keyframes puff{to{transform:translate(var(--dx),var(--dy)) scale(.3);opacity:0}}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;width:100%;max-width:720px}
.toolbar select,.tb{background:#2d2c31;color:#ddd;border:2px solid #000;border-radius:4px;font-family:'Press Start 2P';font-size:8px;padding:8px}
.tb.on{background:var(--red);color:#fff}
#vol{width:90px}
.tg{font-size:12px;color:#aaa;display:flex;gap:3px;align-items:center}
.states{width:100%;max-width:720px}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sslot{background:#222;border:2px solid #000;border-radius:6px;padding:6px;cursor:pointer}
.sslot.sel{border-color:var(--red)}
.sslot .th{aspect-ratio:256/240;background:#111 repeating-linear-gradient(45deg,#1a1a1a 0 4px,#111 4px 8px);display:flex;align-items:center;justify-content:center;font-family:'Press Start 2P';font-size:8px;color:#555;overflow:hidden}
.sslot .th img{width:100%;image-rendering:pixelated}
.sslot .row{display:flex;gap:4px;margin-top:6px}
.sslot .row button{flex:1;font-family:'Press Start 2P';font-size:7px;padding:6px 0;background:#3a3a3e;color:#ddd;border:1px solid #000;border-radius:3px}
/* Genie */
.genie{background:linear-gradient(160deg,#f2d27a,var(--gold) 40%,var(--gold2));color:#2a1a00;box-shadow:inset 0 2px 0 #fff3c4,0 6px 0 #000}
.genie::before{background:repeating-linear-gradient(90deg,#c99a33 0 3px,#f7df95 3px 6px)}
.ggtitle{font-family:'Press Start 2P';margin-top:12px;display:flex;flex-direction:column;align-items:center;text-shadow:2px 2px 0 #fff3c4}
.ggtitle span{font-size:10px;color:#5b0e8c}.ggtitle b{font-size:22px;color:#a00;letter-spacing:3px;-webkit-text-stroke:1px #400}
.ggsub{text-align:center;font-size:12px;margin:6px 0 12px;font-style:italic}
.ggin{width:100%;background:#120a00;color:#ffd75a;border:3px solid #5a3a00;border-radius:4px;font-family:'Press Start 2P';font-size:17px;letter-spacing:5px;text-align:center;padding:12px 4px;text-transform:uppercase}
.ggin.bad{color:#ff6262;border-color:#a00}
.ggdec{font-family:'Press Start 2P';font-size:8px;text-align:center;margin:6px 0 10px;min-height:10px;color:#4a2a00}
.ggkeys{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin-bottom:10px}
.ggkeys button{aspect-ratio:1;background:radial-gradient(circle at 35% 30%,#ffe9a3,#c4912b);border:2px solid #5a3a00;border-radius:50%;font-family:'Press Start 2P';font-size:9px;color:#3a1a00;padding:0;box-shadow:0 2px 0 #5a3a00}
.ggkeys button:active{transform:translateY(2px);box-shadow:none}
.gbtn{flex:1;background:#5a3a00;color:#ffd75a;border:2px solid #2a1a00;border-radius:4px;font-family:'Press Start 2P';font-size:8px;padding:9px 4px}
.gbtn.add{background:#a00;color:#fff}
.gglist{list-style:none;padding:0;margin:12px 0}
.gglist li{display:flex;flex-direction:column;gap:3px;background:rgba(255,245,210,.55);border:2px solid #5a3a00;border-radius:5px;padding:6px;margin-bottom:6px}
.gglist li.bad{border-color:#c00;background:rgba(255,120,120,.4)}
.gglist li.off{opacity:.55}
.gglist .r1{display:flex;align-items:center;gap:6px}
.gglist code{font-family:'Press Start 2P';font-size:10px;letter-spacing:2px;flex:1}
.gglist input[type=text]{width:100%;border:1px solid #8a6a20;background:#fff8e0;font-family:'Chakra Petch';font-size:12px;padding:2px 4px}
.gglist small{font-family:'Press Start 2P';font-size:7px;color:#5a3a00}
.gglist .del{background:none;border:0;color:#900;font-size:14px}
.sw{width:34px;height:18px;border-radius:9px;background:#5a3a00;position:relative;border:0}
.sw::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#bbb;transition:.15s}
.sw.on{background:#1a8a1a}.sw.on::after{left:18px;background:#fff}
.ggimp textarea{width:100%;height:70px;margin:8px 0 4px;font-family:'Press Start 2P';font-size:8px;background:#fff8e0;border:2px solid #5a3a00}
/* pad */
.pad{display:none;width:100%;max-width:520px;background:linear-gradient(#cfcfcf,#a9a9a9);border:2px solid #000;border-radius:10px;padding:14px;align-items:center;justify-content:space-between;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 5px 0 #000}
.pad b{display:block}
.dpad{position:relative;width:120px;height:120px}
.dpad b,.dpad i{position:absolute;background:#151515;width:40px;height:40px}
.dpad .u{left:40px;top:0;border-radius:4px 4px 0 0}.dpad .d{left:40px;top:80px;border-radius:0 0 4px 4px}
.dpad .l{left:0;top:40px;border-radius:4px 0 0 4px}.dpad .r{left:80px;top:40px;border-radius:0 4px 4px 0}
.dpad i{left:40px;top:40px}
.pad b.p{background:#444!important}
.ss{display:flex;gap:8px}
.ss b{font-family:'Press Start 2P';font-size:6px;color:var(--red);background:#222;padding:8px 6px;border-radius:10px}
.ab{display:flex;gap:12px;align-items:flex-end}
.ab b{width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff5a5a,#c00);border:3px solid #222;font-family:'Press Start 2P';font-size:10px;color:#fff;display:flex;align-items:center;justify-content:center}
.ab b:last-child{margin-bottom:22px}
.ab b.p{background:#800!important}
@media (pointer:coarse){.pad{display:flex}}
.dlg{position:fixed;inset:0;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;z-index:50}
.dlg[hidden]{display:none}
.dlgbox{background:#2a292e;border:3px solid #000;border-radius:8px;padding:18px;width:min(92vw,360px)}
.dlgbox p{font-size:13px;color:#aaa}.dlgbox .small{font-size:11px}
#keyList{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
#keyList button{background:#111;color:#ddd;border:1px solid #444;padding:7px;font-family:'Press Start 2P';font-size:7px;text-align:left}
#keyList button.wait{background:var(--red);color:#fff}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(120px);background:#0e0e0e;border:2px solid var(--red);color:#fff;padding:12px 16px;font-family:'Press Start 2P';font-size:9px;line-height:1.5;border-radius:4px;transition:transform .3s;z-index:60;max-width:90vw;text-align:center}
.toast.show{transform:translateX(-50%) translateY(0)}
footer{text-align:center;padding:20px;font-size:13px;color:#777}
footer a{color:var(--red);font-family:'Press Start 2P';font-size:10px}
@media (max-width:1050px){
 .deck{grid-template-columns:1fr;padding:10px}
 .center{order:-1}
 .tabs{display:flex;gap:6px;justify-content:center;padding:0 10px;order:2}
 .tabs button{flex:1;max-width:200px;background:#2a292e;color:#aaa;border:2px solid #000;font-family:'Press Start 2P';font-size:9px;padding:10px;border-radius:5px}
 .tabs button.on{background:var(--red);color:#fff}
 .panel{display:none}.panel.on{display:block}
 body{display:flex;flex-direction:column}
 .top{order:0}.deck{order:1;display:flex;flex-direction:column}
 .deck .center{order:0}.deck .panel{order:2}
 .tag{display:none}
}