*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}html{background:#0a0912}body{color:#fff;background:0 0;min-height:100vh;font-family:Inter,system-ui,sans-serif;position:relative;overflow-x:hidden}.app{--pad-x:28px;--pad-y:24px;min-height:100dvh;padding:calc(var(--pad-y) + env(safe-area-inset-top)) calc(var(--pad-x) + env(safe-area-inset-right)) calc(var(--pad-y) + env(safe-area-inset-bottom)) calc(var(--pad-x) + env(safe-area-inset-left));grid-template-rows:auto 1fr auto;gap:18px;display:grid;position:relative}header.top{flex-direction:column;align-items:stretch;gap:10px;display:flex}.header-row{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.header-row .np-strip{flex:auto;min-width:0}#rom-input{display:none}.ctrl-strip{background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 18px;padding:12px 20px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.ctrl-label{text-transform:uppercase;letter-spacing:2px;color:#ffffff73;margin-right:4px;font-size:10px}.ctrl-group{align-items:center;gap:6px;display:inline-flex}.ctrl-sep{background:#ffffff2e;width:1px;height:18px;display:inline-block}.ctrl-group .key{color:#fff;background:#ffffff14;border:1px solid #ffffff24;border-radius:5px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;font-weight:600;display:inline-grid;box-shadow:inset 0 -1px #00000040}.ctrl-lab{color:#ffffffa6}.np-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;margin-left:auto;display:flex}.icon-btn{all:unset;cursor:pointer;color:#ffffffd9;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:9px;place-items:center;width:36px;height:36px;transition:background .2s,color .2s,border-color .2s,transform .12s;display:grid}.icon-btn:hover{color:#fff;background:#ffffff24;transform:translateY(-1px)}.icon-btn:active{transform:translateY(1px)}.icon-btn:disabled{cursor:not-allowed;opacity:.35}.icon-btn:disabled:hover{color:#ffffffbf;background:#ffffff0f;transform:none}.icon-btn.primary{color:#fff;background:linear-gradient(#ffffff3d,#ffffff1a);border-color:#ffffff4d}.icon-btn.primary:hover{background:linear-gradient(#ffffff57,#ffffff29)}.np-strip{color:#ffffffb3;letter-spacing:.3px;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:14px;padding:2px 4px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex;overflow:clip visible}.np-label{text-transform:uppercase;letter-spacing:2px;color:#ffffff73;font-size:10px}.np-title{color:#fff;letter-spacing:1px;text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;margin-right:4px;font-family:VT323,monospace;font-size:22px;line-height:1;overflow:hidden}.np-g{flex-shrink:0;align-items:center;gap:14px;display:inline-flex}.np-sep{background:#ffffff26;width:1px;height:16px;display:inline-block}.np-meta{color:#ffffffbf;font-weight:500}.np-meta b{color:#fff;font-weight:600}.np-dot{align-items:center;display:inline-flex}.led-s{vertical-align:1px;background:#3ad07a;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block;box-shadow:0 0 6px #3ad07a}.np-info-wrap{align-items:center;display:inline-flex;position:relative}.np-info-btn{all:unset;cursor:pointer;color:#ffffff8c;border-radius:50%;place-items:center;width:18px;height:18px;margin-left:4px;transition:color .15s,background .15s;display:grid}.np-info-btn:hover{color:#fff;background:#ffffff1a}.np-info-btn[hidden]{display:none}#np-speed{color:#ffe2a0;text-shadow:0 0 6px #ffb46473;font-family:JetBrains Mono,monospace;font-weight:700;display:none}.theme-menu{position:relative}@keyframes popIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.theme-opts{gap:6px;display:inline-flex}.theme-opt{all:unset;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;transition:background .2s,border-color .2s,transform .12s;display:grid}.theme-opt:hover{background:#ffffff1a;transform:translateY(-1px)}.theme-opt.active{border-color:#ffffffb3;box-shadow:0 0 0 2px #fff3}.theme-opt .sw{border-radius:50%;width:18px;height:18px;box-shadow:inset 0 0 0 1px #00000040}.theme-opt[data-t=aurora-band] .sw{background:conic-gradient(#21d4a6,#6a3df2,#ff4d97,#21d4a6)}.theme-opt[data-t=light-caustics] .sw{background:radial-gradient(circle at 30% 30%,#fff,#1f5fb8 70%)}.theme-opt[data-t=starfield] .sw{background:radial-gradient(circle at 30% 30%,#fff 8%,#0000 10%),radial-gradient(circle at 70% 60%,#fff 6%,#0000 8%),#1a0b3d}@media (width<=1100px){.rig{grid-template-columns:1fr;align-self:start;max-width:600px}.np-g-time,.np-g-speed{display:none}}@media (width<=900px){.np-g-fps{display:none}}@media (width<=720px){.icon-btn{border-radius:8px;width:32px;height:32px}.icon-btn svg{width:16px;height:16px}.np-title{font-size:20px}.app{--pad-x:16px;--pad-y:16px;gap:14px}}@media (width<=640px){.np-g-status,.np-label{display:none}.np-strip{gap:10px}}@media (width<=560px){.icon-btn{width:30px;height:30px}.canvas-frame{padding:8px}.ctrl-strip{gap:8px 12px;padding:10px 14px;font-size:10px}.ctrl-strip .key{min-width:20px;height:20px;padding:0 5px;font-size:10px}.ctrl-label{display:none}}@media (width<=420px){.app{--pad-x:10px;--pad-y:10px;gap:10px}.icon-btn{border-radius:7px;width:28px;height:28px}.np-title{font-size:18px}.canvas-frame{border-radius:10px;padding:6px}.ctrl-strip{display:none}}body:not(.is-touch) .ctrl-group[data-hk-action]{display:none}.ctrl-shortcut-hint{all:unset;cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:2px 4px;transition:background .12s;display:inline-flex}.ctrl-shortcut-hint:hover{background:#ffffff14}body.is-touch .ctrl-strip{display:flex}body.is-touch .ctrl-strip>:not([data-hk-action]),body.is-touch .ctrl-group[data-hk-action=rewind],body.is-touch .ctrl-group[data-hk-action=turbo]{display:none}body.is-touch .ctrl-group[data-hk-action]{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;padding:2px 4px;transition:background .12s}body.is-touch .ctrl-group[data-hk-action]:active{background:#ffffff1a}body.is-touch #fullscreen-btn{display:none}#toast{color:#fff;letter-spacing:.3px;opacity:0;pointer-events:none;z-index:200;background:#14121eeb;border:1px solid #ffffff24;border-radius:10px;padding:10px 16px;font-family:JetBrains Mono,monospace;font-size:12px;transition:opacity .18s,transform .18s;position:fixed;bottom:24px;right:24px;transform:translateY(6px);box-shadow:0 8px 20px #0006}#toast.active{opacity:1;transform:translateY(0)}.theme-bg{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.theme-bg>*{position:absolute;inset:0}body[data-theme=aurora-band] .theme-bg{background:#1a0b3d}body[data-theme=aurora-band] .t-conic{filter:blur(80px);mix-blend-mode:screen;background:conic-gradient(#21d4a659,#6a3df273,#ff4d9766,#21d4a659);animation:60s linear infinite rotate;inset:-20%}body[data-theme=aurora-band] .t-vignette{background:radial-gradient(circle,#0000 50%,#0a0912b3 100%)}body[data-theme=light-caustics] .theme-bg{background:linear-gradient(#0d1b4c 0%,#1f5fb8 45%,#2b83b8 75%,#3fa5c5 100%)}body[data-theme=light-caustics] .t-caustic1{filter:blur(40px);mix-blend-mode:screen;background:radial-gradient(40% 25% at 30% 30%,#ffffff59,#0000 60%),radial-gradient(35% 20% at 70% 60%,#ffffff40,#0000 60%),radial-gradient(30% 18% at 50% 85%,#fff3,#0000 60%);animation:18s ease-in-out infinite causticFloat;inset:-20%}body[data-theme=light-caustics] .t-caustic2{filter:blur(50px);mix-blend-mode:screen;background:radial-gradient(30% 20% at 60% 20%,#aae6ff40,#0000 60%),radial-gradient(25% 18% at 20% 70%,#aae6ff33,#0000 60%);animation:22s ease-in-out infinite causticFloat2;inset:-20%}body[data-theme=starfield] .theme-bg{background:#1a0b3d}body[data-theme=starfield] .t-blob{filter:blur(60px);mix-blend-mode:screen;opacity:.9;border-radius:50%}body[data-theme=starfield] .t-b1{aspect-ratio:1;top:55vh;left:-15vw;background:radial-gradient(circle,#21d4a6,#0000 70%);width:50vw;animation:24s ease-in-out infinite driftA;inset:auto}body[data-theme=starfield] .t-b2{aspect-ratio:1;top:-20vh;right:-15vw;background:radial-gradient(circle,#ff4d97,#0000 70%);width:45vw;animation:28s ease-in-out infinite driftB;inset:auto}body[data-theme=starfield] .t-b3{aspect-ratio:1;top:15vh;left:30vw;background:radial-gradient(circle,#6a3df2,#0000 70%);width:40vw;animation:32s ease-in-out infinite driftC;inset:auto}body[data-theme=starfield] .t-stars1,body[data-theme=starfield] .t-stars2{opacity:.85;background-image:radial-gradient(1.2px 1.2px at 12% 20%,#fff,#0000),radial-gradient(1.2px 1.2px at 34% 60%,#fff,#0000),radial-gradient(1.2px 1.2px at 58% 10%,#fff,#0000),radial-gradient(1.5px 1.5px at 72% 82%,#fff,#0000),radial-gradient(1.2px 1.2px at 88% 40%,#fff,#0000),radial-gradient(1.2px 1.2px at 5% 88%,#fff,#0000),radial-gradient(1.4px 1.4px at 46% 30%,#fff,#0000),radial-gradient(1px 1px at 25% 45%,#fff,#0000),radial-gradient(1px 1px at 65% 72%,#fff,#0000),radial-gradient(1px 1px at 80% 15%,#fff,#0000);background-repeat:no-repeat;background-size:200% 200%;animation:3s ease-in-out infinite twinkle,80s linear infinite drift1}body[data-theme=starfield] .t-stars2{opacity:.65;background-image:radial-gradient(1px 1px at 22% 70%,#b6d0ff,#0000),radial-gradient(1px 1px at 78%,#ffb6e6,#0000),radial-gradient(1px 1px at 62% 20%,#fff,#0000),radial-gradient(1px 1px at 10% 40%,#fff,#0000),radial-gradient(1px 1px at 40% 85%,#ffe0b6,#0000),radial-gradient(1px 1px at 90% 85%,#fff,#0000);animation:4s ease-in-out .5s infinite twinkle,120s linear infinite drift2}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes causticFloat{0%,to{opacity:.85;transform:translate(0)scale(1)}50%{opacity:1;transform:translate(3%,-2%)scale(1.04)}}@keyframes causticFloat2{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-4%,3%)scale(1.06)}}@keyframes driftA{0%,to{transform:translate(0)scale(1)}50%{transform:translate(8%,-6%)scale(1.08)}}@keyframes driftB{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-7%,8%)scale(1.06)}}@keyframes driftC{0%,to{transform:translate(0)scale(1)}50%{transform:translate(6%,10%)scale(.93)}}@keyframes twinkle{0%,to{opacity:.45}50%{opacity:.9}}@keyframes drift1{to{background-position:100% 0}}@keyframes drift2{to{background-position:-100%}}@media (prefers-reduced-motion:reduce){.theme-bg *,.theme-bg{animation:none!important}}.rig{grid-template-columns:1fr;align-self:center;place-items:stretch center;gap:24px;width:100%;max-width:1280px;margin:0 auto;display:grid}.console{flex-direction:column;align-items:center;gap:20px;width:100%;max-width:520px;display:flex}.canvas-wrap{aspect-ratio:10/9;width:100%;position:relative}.canvas-wrap:before{content:"";background:var(--glow,radial-gradient(closest-side, #6a3df280, transparent 70%));filter:blur(20px);z-index:-1;border-radius:24px;transition:background .4s;position:absolute;inset:-20px}body[data-theme=aurora-band]{--glow:radial-gradient(closest-side, #ff4d9773 0%, #6a3df259 60%, transparent 75%)}body[data-theme=light-caustics]{--glow:radial-gradient(closest-side, #aae6ff73, transparent 70%)}body[data-theme=starfield]{--glow:radial-gradient(closest-side, #21d4a673 0%, #6a3df259 60%, transparent 75%)}.canvas-placeholder{all:unset;cursor:pointer;z-index:3;color:#ffffffbf;text-align:center;background:#0c0e16d1;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-family:VT323,monospace;transition:background .15s,color .15s;display:flex;position:absolute;inset:12px}.canvas-placeholder[hidden]{display:none}.canvas-placeholder:hover{color:#fff;background:#0c0e16e6}.canvas-placeholder:focus-visible{outline-offset:-4px;outline:2px solid #9ef0d0b3}.canvas-placeholder-icon{color:#ffffffd9}.canvas-placeholder-label{letter-spacing:3px;text-transform:uppercase;font-size:24px}.canvas-placeholder-hint{letter-spacing:1px;color:#ffffff73;font-family:JetBrains Mono,monospace;font-size:10px}.canvas-frame{-webkit-backdrop-filter:blur(12px);background:#00000073;border:1px solid #ffffff26;border-radius:14px;justify-content:center;align-items:center;padding:12px;display:flex;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff1a,inset 0 0 0 1px #0009,0 40px 80px #00000080}#screen{image-rendering:pixelated;image-rendering:crisp-edges;aspect-ratio:10/9;background:#000;border:4px solid #ffffffd9;border-radius:4px;outline:2px solid #00000080;width:100%;max-height:100%;display:block}#screen:fullscreen{border:0;border-radius:0;outline:0;width:min(100vw,111.111vh);height:min(100vh,90vw)}.overlay{pointer-events:none;letter-spacing:3px;text-shadow:0 0 12px #000000b3;color:#fff;z-index:2;border-radius:8px;justify-content:center;align-items:center;font-family:VT323,monospace;font-size:44px;display:none;position:absolute;inset:12px}.overlay.active{display:flex}.overlay-rewind{background:linear-gradient(#0a0a1e00,#0a0a1e73)}.overlay-rewind:after{content:"REWIND";animation:.8s ease-in-out infinite rewindPulse}@keyframes rewindPulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.overlay-flash{background:#fff;animation:.12s ease-out forwards flashFade}@keyframes flashFade{0%{opacity:.9}to{opacity:0}}.rec-badge{color:#fff;letter-spacing:.1em;z-index:3;pointer-events:none;background:#0a0a14b3;border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 8px;font:600 12px/1 system-ui,sans-serif;display:none;position:absolute;top:16px;right:16px}.rec-badge:before{content:"";background:#ff3b30;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite recPulse}.rec-badge--on{display:inline-flex}@keyframes recPulse{0%,to{opacity:1}50%{opacity:.35}}.gb-touch{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;padding:8px 0 0;display:none}.gb-touch>*{touch-action:none}.gb-touch--on{grid-template-columns:1fr 1fr;align-items:center;gap:14px 20px;display:grid}.gb-dpad{aspect-ratio:1;background:radial-gradient(circle at 50% 42%,#ffffff1f,#ffffff05 55%,#0000 72%),#0000008c;border:1px solid #ffffff29;border-radius:50%;grid-area:1/1;justify-self:center;width:clamp(130px,36vw,170px);position:relative;box-shadow:inset 0 2px #ffffff1a,inset 0 -2px 14px #00000059,0 8px 20px #00000073}.gb-dpad:before,.gb-dpad:after{content:"";pointer-events:none;background:#ffffff14;border-radius:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gb-dpad:before{width:30%;height:82%}.gb-dpad:after{width:82%;height:30%}.gb-dpad-hint{pointer-events:none;opacity:.72;width:0;height:0;transition:opacity .12s,border-color .12s;position:absolute;top:50%;left:50%}.gb-dpad-hint.gb-dpad-up{border-bottom:9px solid #ffffffbf;border-left:7px solid #0000;border-right:7px solid #0000;transform:translate(-50%,-80%)}.gb-dpad-hint.gb-dpad-down{border-top:9px solid #ffffffbf;border-left:7px solid #0000;border-right:7px solid #0000;transform:translate(-50%,-20%)}.gb-dpad-hint.gb-dpad-left{border-top:7px solid #0000;border-bottom:7px solid #0000;border-right:9px solid #ffffffbf;transform:translate(-80%,-50%)}.gb-dpad-hint.gb-dpad-right{border-top:7px solid #0000;border-bottom:7px solid #0000;border-left:9px solid #ffffffbf;transform:translate(-20%,-50%)}.gb-dpad.is-pressed-up .gb-dpad-up{opacity:1;border-bottom-color:#9ef0d0}.gb-dpad.is-pressed-down .gb-dpad-down{opacity:1;border-top-color:#9ef0d0}.gb-dpad.is-pressed-left .gb-dpad-left{opacity:1;border-right-color:#9ef0d0}.gb-dpad.is-pressed-right .gb-dpad-right{opacity:1;border-left-color:#9ef0d0}.gb-ab{flex-direction:row;grid-area:1/2;justify-self:center;align-items:center;gap:20px;height:clamp(130px,36vw,170px);display:flex}.gb-btn{all:unset;cursor:pointer;color:#fff;text-align:center;-webkit-user-select:none;user-select:none;place-items:center;font-family:JetBrains Mono,monospace;font-weight:700;transition:transform 80ms,box-shadow .12s,background .12s;display:grid}.gb-btn-a,.gb-btn-b{letter-spacing:1px;border:1px solid #ffffff38;border-radius:50%;width:68px;height:68px;font-size:18px;box-shadow:inset 0 2px #fff3,inset 0 -3px 8px #00000059,0 6px 14px #00000059}.gb-btn-a{background:linear-gradient(#e35d8a,#8d2954);align-self:flex-start}.gb-btn-b{background:linear-gradient(#5078df,#26408e);align-self:flex-end}.gb-btn-a.is-pressed,.gb-btn-a:active{background:linear-gradient(#f97fa5,#8d2954);transform:translateY(2px)scale(.96);box-shadow:inset 0 4px 8px #0006}.gb-btn-b.is-pressed,.gb-btn-b:active{background:linear-gradient(#73a0ff,#26408e);transform:translateY(2px)scale(.96);box-shadow:inset 0 4px 8px #0006}.gb-sys{grid-area:2/1/auto/-1;justify-content:center;gap:28px;padding-top:2px;display:flex}.gb-btn-start,.gb-btn-select{letter-spacing:1.6px;color:#ffffffe6;background:linear-gradient(#ffffff29,#ffffff0a);border:1px solid #fff3;border-radius:999px;min-width:88px;height:26px;padding:0 18px;font-size:10px;transform:rotate(-12deg);box-shadow:inset 0 1px #ffffff26,0 4px 10px #0000004d}.gb-btn-start.is-pressed,.gb-btn-start:active,.gb-btn-select.is-pressed,.gb-btn-select:active{background:linear-gradient(#ffffff47,#ffffff1a);transform:rotate(-12deg)translateY(2px)scale(.97)}.popover-backdrop{z-index:49;opacity:0;pointer-events:none;background:#0009;transition:opacity .14s;position:fixed;inset:0}@keyframes modalIn{0%{opacity:0}to{opacity:1}}.shortcut-hint{z-index:100;-webkit-backdrop-filter:blur(6px);background:#080a12b3;justify-content:center;align-items:center;padding:24px;animation:.12s ease-out modalIn;display:flex;position:fixed;inset:0}.shortcut-hint[hidden]{display:none}.shortcut-hint-panel{color:#ffffffe6;background:#14141cf0;border:1px solid #ffffff1f;border-radius:14px;width:min(92vw,640px);max-height:86vh;padding:20px 24px;overflow-y:auto;box-shadow:0 20px 60px #0000008c,inset 0 1px #ffffff14}.shortcut-hint-panel h2{letter-spacing:2px;color:#fff;margin:0 0 4px;font-family:VT323,monospace;font-size:24px}.shortcut-hint-panel section{margin-top:16px}.shortcut-hint-panel h3{text-transform:uppercase;letter-spacing:2px;color:#ffffff73;margin:0 0 8px;font-family:JetBrains Mono,monospace;font-size:10px}.shortcut-hint-panel dl{grid-template-columns:1fr auto;align-items:center;gap:4px 16px;margin:0;display:grid}.shortcut-hint-panel dt{color:#ffffffd9;font-family:JetBrains Mono,monospace;font-size:12px}.shortcut-hint-panel dd{color:#fff;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff24;border-radius:5px;justify-self:end;margin:0;padding:2px 10px;font-family:JetBrains Mono,monospace;font-size:11px}.shortcut-hint-dismiss{text-align:center;color:#ffffff73;letter-spacing:1px;margin:20px 0 0;font-family:JetBrains Mono,monospace;font-size:10px}.slots-pop{-webkit-backdrop-filter:blur(18px)saturate(140%);z-index:50;background:#14141ceb;border:1px solid #ffffff1f;border-radius:12px;flex-direction:column;gap:10px;width:680px;max-width:92vw;max-height:86vh;padding:14px;display:none;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 10px 30px #0006,inset 0 1px #ffffff0f}.slots-pop.open{animation:.14s ease-out popIn;display:flex}.slots-empty-msg{text-align:center;color:#ffffff80;padding:12px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.slots-toolbar{justify-content:flex-end;margin-bottom:8px;display:flex}.slots-import{all:unset;cursor:pointer;color:#ffffffb3;background:#ffffff0a;border:1px solid #ffffff24;border-radius:6px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:10px}.slots-import:hover{color:#fff;background:#ffffff1a}.slots-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.slot-card{all:unset;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:4px;padding:4px;transition:background .12s,border-color .12s,transform .12s;display:flex;position:relative}.slot-card:hover{background:#ffffff1a;border-color:#ffffff4d;transform:translateY(-1px)}.slot-card.empty{opacity:.5;cursor:default}.slot-card.empty:hover{background:#ffffff0f;transform:none}.slot-thumb{aspect-ratio:10/9;width:100%;image-rendering:pixelated;color:#ffffff59;background:#000 50%/cover;border-radius:4px;place-items:center;font-family:VT323,monospace;font-size:22px;display:grid}.slot-meta{letter-spacing:.3px;color:#ffffffb3;justify-content:space-between;align-items:center;padding:0 2px;font-family:JetBrains Mono,monospace;font-size:9px;display:flex}.slot-meta .slot-num{color:#fff;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.slot-meta .slot-num.labeled{letter-spacing:.2px;color:#ffd866;font-family:VT323,monospace;font-size:12px}.slot-meta .slot-time{color:#ffffff73;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;margin-left:6px;overflow:hidden}.slot-actions{opacity:0;pointer-events:none;gap:4px;transition:opacity .12s;display:flex;position:absolute;top:4px;right:4px}.slot-card:hover .slot-actions{opacity:1;pointer-events:auto}.slot-action{all:unset;cursor:pointer;color:#fff;background:#0009;border:1px solid #fff3;border-radius:50%;place-items:center;width:20px;height:20px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;line-height:1;display:grid}.slot-action:hover{background:#000000d9;transform:scale(1.08)}.slot-action.clear:hover{background:#ff4d618c;border-color:#ff4d61e6}.settings-pop{-webkit-backdrop-filter:blur(18px)saturate(140%);z-index:50;background:#14141ceb;border:1px solid #ffffff1f;border-radius:12px;flex-direction:column;gap:14px;width:380px;max-width:92vw;max-height:86vh;padding:14px 14px 16px;display:none;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 10px 30px #0006,inset 0 1px #ffffff0f}.settings-pop.open{animation:.14s ease-out popIn;display:flex}.settings-section{flex-direction:column;gap:8px;display:flex}.settings-section h4{text-transform:uppercase;letter-spacing:2px;color:#ffffff8c;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin:0;padding:2px 0;font-family:JetBrains Mono,monospace;font-size:10px;transition:color .12s;display:flex}.settings-section h4:hover{color:#ffffffd9}.settings-section h4:before{content:"";border-top:5px solid;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;transition:transform .14s}.settings-section.collapsed h4:before{transform:rotate(-90deg)}.settings-section.collapsed>:not(h4){display:none!important}.settings-row{color:#ffffffd9;justify-content:space-between;align-items:center;gap:12px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.settings-row input[type=range]{accent-color:#9ef0d0;flex:1}.settings-row input[type=checkbox]{accent-color:#9ef0d0;width:14px;height:14px}.settings-row.is-disabled{opacity:.5;pointer-events:none}.settings-row.link-cable-sub{color:#ffffffa6;padding-left:16px;font-size:10px}.settings-row input[type=text],.settings-row input[type=url]{color:#fff;background:#0006;border:1px solid #ffffff2e;border-radius:6px;width:52%;min-width:0;padding:3px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.settings-row select{color:#fff;background:#0006;border:1px solid #ffffff2e;border-radius:6px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:11px}.palette-note{color:#ffffff73;padding:6px 0;font-size:10px}.palette-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.palette-card{all:unset;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:4px;padding:6px;transition:background .12s,border-color .12s;display:flex}.palette-card:hover{background:#ffffff14}.palette-card.active{border-color:#ffffffb3;box-shadow:0 0 0 2px #fff3}.palette-swatches{border-radius:3px;grid-template-columns:repeat(4,1fr);gap:2px;height:20px;display:grid;overflow:hidden}.palette-swatches span{height:100%;display:block}.palette-name{letter-spacing:.4px;color:#ffffffbf;text-align:center;white-space:nowrap;text-overflow:ellipsis;font-family:JetBrains Mono,monospace;font-size:9px;overflow:hidden}.settings-hint{color:#ffe2a0;text-transform:none;letter-spacing:.3px;margin-left:8px;font-family:JetBrains Mono,monospace;font-size:9px}.bindings-group{flex-direction:column;gap:6px;display:flex}.bindings-group+.bindings-group{margin-top:8px}.bindings-sub{text-transform:uppercase;letter-spacing:2px;color:#ffffff73;justify-content:space-between;align-items:center;font-family:JetBrains Mono,monospace;font-size:9px;display:flex}.grade-reset-row{justify-content:flex-start}.grade-reset{all:unset;cursor:pointer;color:#ffffffb3;background:#ffffff0a;border:1px solid #ffffff24;border-radius:6px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:10px}.grade-reset:hover{color:#fff;background:#ffffff1f}.bindings-grid{grid-template-columns:1fr 1fr;gap:4px 8px;display:grid}.binding-row{color:#ffffffd9;justify-content:space-between;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.binding-row .lbl{color:#ffffffa6}.binding-chip{all:unset;cursor:pointer;text-align:center;color:#fff;background:#ffffff14;border:1px solid #ffffff24;border-radius:5px;min-width:56px;padding:3px 8px;font-size:11px;font-weight:600;transition:background .12s,border-color .12s}.binding-chip:hover{background:#ffffff29}.binding-chip.listening{color:#ffe2a0;background:#ffe2a02e;border-color:#ffe2a08c}.bindings-reset{all:unset;cursor:pointer;color:#ffffffb3;background:#ffffff0a;border:1px solid #ffffff24;border-radius:6px;align-self:flex-start;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:10px}.bindings-reset:hover{color:#fff;background:#ffffff1a}.settings-io-buttons{gap:6px;display:inline-flex}.settings-io-btn{all:unset;cursor:pointer;color:#ffffffd9;background:#ffffff0a;border:1px solid #ffffff24;border-radius:6px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:10px}.settings-io-btn:hover{color:#fff;background:#ffffff1a}.mute-toggles{gap:4px;display:flex}.mute-btn{all:unset;cursor:pointer;text-align:center;color:#ffffffd9;background:#ffffff0f;border:1px solid #ffffff24;border-radius:6px;min-width:28px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;transition:background .12s,color .12s}.mute-btn.muted{color:#ff8d99;background:#ff4d6138;border-color:#ff4d6180;text-decoration:line-through}.cart-info-pop{-webkit-backdrop-filter:blur(18px)saturate(140%);z-index:50;background:#14141ceb;border:1px solid #ffffff1f;border-radius:12px;flex-direction:column;gap:6px;width:320px;max-width:92vw;max-height:80vh;padding:14px;font-family:JetBrains Mono,monospace;font-size:11px;display:none;position:absolute;top:calc(100% + 10px);left:0;overflow-y:auto;box-shadow:0 10px 30px #0006,inset 0 1px #ffffff0f}.cart-info-pop.open{animation:.14s ease-out popIn;display:flex}.cart-info-pop .cart-info-title{color:#fff;letter-spacing:1px;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #ffffff1a;margin-bottom:6px;padding:2px 0 8px;font-family:VT323,monospace;font-size:22px;overflow:hidden}.cart-info-pop .cart-info-row{color:#ffffffa6;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.cart-info-pop .cart-info-row b{color:#fff;white-space:nowrap;font-weight:600}.cart-info-pop .cart-info-empty{text-align:center;color:#ffffff80;padding:14px 6px}.cart-info-pop .cart-info-heading{text-transform:uppercase;letter-spacing:.08em;color:#ffffff80;border-top:1px solid #ffffff1a;margin-top:10px;padding-top:8px;font-size:10px}.cart-info-pop .cart-info-override select{color:#fff;background:#ffffff0f;border:1px solid #ffffff26;border-radius:4px;max-width:60%;padding:2px 4px;font-family:JetBrains Mono,monospace;font-size:11px}.cart-info-pop .cart-info-override select option{background:#1a0b3d}.cheats-pop{-webkit-backdrop-filter:blur(18px)saturate(140%);z-index:50;background:#14141ceb;border:1px solid #ffffff1f;border-radius:12px;flex-direction:column;gap:10px;width:500px;max-width:92vw;max-height:86vh;padding:12px;display:none;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 10px 30px #0006,inset 0 1px #ffffff0f}.cheats-pop.open{animation:.14s ease-out popIn;display:flex}.cheats-empty{text-align:center;color:#ffffff80;padding:14px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.cheats-list{flex-direction:column;gap:4px;max-height:280px;display:flex;overflow-y:auto}.cheat-row{background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;grid-template-columns:20px 1fr 24px;align-items:center;gap:10px;padding:6px 8px;display:grid}.cheat-row input[type=checkbox]{accent-color:#9ef0d0;cursor:pointer;width:14px;height:14px}.cheat-info{min-width:0}.cheat-name{letter-spacing:.5px;color:#fff;white-space:nowrap;text-overflow:ellipsis;font-family:VT323,monospace;font-size:17px;overflow:hidden}.cheat-code{color:#ffffff8c;letter-spacing:.4px;font-family:JetBrains Mono,monospace;font-size:10px}.cheat-code .cheat-format{color:#9ef0d0;letter-spacing:.6px;background:#9ef0d024;border-radius:3px;margin-left:6px;padding:0 4px;font-weight:600;display:inline-block}.cheat-code .cheat-format.gs{color:#ffce8c;background:#ffb4642e}.cheat-delete{all:unset;cursor:pointer;color:#ffffff8c;border:1px solid #ffffff1f;border-radius:50%;place-items:center;width:22px;height:22px;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1;transition:background .12s,color .12s,border-color .12s;display:grid}.cheat-delete:hover{color:#ff8d99;background:#ff4d6138;border-color:#ff4d6180}.cheats-add{border-top:1px solid #ffffff14;grid-template-columns:1fr 1fr auto;gap:6px;padding-top:8px;display:grid}.cheats-add input{all:unset;color:#fff;background:#0006;border:1px solid #ffffff24;border-radius:6px;padding:6px 8px;font-family:JetBrains Mono,monospace;font-size:11px}.cheats-add input::placeholder{color:#ffffff59}.cheats-add input:focus{background:#0009;border-color:#9ef0d099}body.is-touch .cheats-add{grid-template-columns:1fr 1fr}body.is-touch .cheats-add button[type=submit]{text-align:center;grid-column:1/-1;justify-self:stretch}.cheats-add button{all:unset;cursor:pointer;color:#9ef0d0;letter-spacing:.5px;text-transform:uppercase;background:linear-gradient(#9ef0d038,#9ef0d014);border:1px solid #9ef0d066;border-radius:6px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;transition:background .12s}.cheats-add button:hover{background:linear-gradient(#9ef0d052,#9ef0d024)}.cheats-import-row{align-items:center;gap:10px;padding-top:2px;display:flex}.cheats-import{all:unset;cursor:pointer;color:#ffffffe6;background:#ffffff0a;border:1px solid #ffffff24;border-radius:6px;padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:11px}.cheats-import:hover{background:#ffffff1a}.cheats-hint{color:#9ef0d0b3;font-family:JetBrains Mono,monospace;font-size:10px;text-decoration:none}.cheats-hint:hover{color:#9ef0d0;text-decoration:underline}.cheats-search{flex-direction:column;gap:6px;padding-top:4px;display:flex}.cheats-search[hidden]{display:none}.cheats-search-input{color:#fff;background:#0006;border:1px solid #ffffff24;border-radius:6px;padding:6px 10px;font-family:JetBrains Mono,monospace;font-size:12px}.cheats-search-input:focus{background:#0009;border-color:#9ef0d099;outline:none}.cheats-search-status{color:#ffffff73;font-family:JetBrains Mono,monospace;font-size:10px}.cheats-search-results{flex-direction:column;gap:2px;max-height:240px;padding-right:2px;display:flex;overflow-y:auto}.cheats-search-result{all:unset;cursor:pointer;color:#ffffffe6;border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-family:JetBrains Mono,monospace;font-size:11px;transition:background .12s,border-color .12s;display:flex}.cheats-search-result:hover{background:#ffffff14;border-color:#ffffff29}.cheats-search-result .r-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.cheats-search-result .r-plat{color:#ffffffb3;letter-spacing:.5px;background:#ffffff14;border-radius:4px;flex:none;padding:1px 6px;font-size:9px}.cheats-search-result:disabled{opacity:.6;cursor:default}.cheats-scanner{border-top:1px solid #ffffff1a;flex-direction:column;gap:6px;margin-top:14px;padding-top:10px;display:flex}.cheats-scanner-heading{text-transform:uppercase;letter-spacing:.08em;color:#ffffff80;font-family:JetBrains Mono,monospace;font-size:10px}.cheats-scanner-row,.cheats-scanner-filters{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cheats-scanner-label{color:#fffc;font-family:JetBrains Mono,monospace;font-size:11px}.cheats-scanner-value{color:#fff;background:#0006;border:1px solid #ffffff2e;border-radius:6px;width:72px;padding:3px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.cheats-scanner-btn,.cheats-scanner-reset{all:unset;cursor:pointer;color:#ffffffe6;background:#ffffff0d;border:1px solid #ffffff2e;border-radius:6px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:11px}.cheats-scanner-btn:hover,.cheats-scanner-reset:hover{background:#ffffff1f}.cheats-scanner-btn-alt{color:#ffffffb3;font-style:italic}.cheats-scanner-reset{color:#ffffffb3;align-self:flex-start;font-size:10px}.cheats-scanner-status{color:#9ef0d0;font-family:JetBrains Mono,monospace;font-size:11px}.cheats-scanner-hint,.cheats-scanner-empty{color:#ffffff8c;font-family:JetBrains Mono,monospace;font-size:10px;font-style:italic}.cheats-scanner-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px;max-height:200px;padding-right:2px;display:grid;overflow-y:auto}.cheats-scanner-list-row{background:#ffffff0a;border-radius:4px;justify-content:space-between;align-items:center;gap:6px;padding:3px 6px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.cheats-scanner-addr{color:#fff;font-weight:600}.cheats-scanner-val{color:#ffffffa6}.cheats-scanner-target{color:#fff;text-align:right;-moz-appearance:textfield;background:#0006;border:1px solid #ffffff2e;border-radius:4px;width:54px;padding:2px 4px;font-family:JetBrains Mono,monospace;font-size:10px}.cheats-scanner-target::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cheats-scanner-target::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cheats-scanner-add,.cheats-scanner-set{all:unset;cursor:pointer;border-radius:4px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:10px}.cheats-scanner-add{color:#9ef0d0;background:#9ef0d01f;border:1px solid #9ef0d066}.cheats-scanner-add:hover{background:#9ef0d038}.cheats-scanner-set{color:#ffffffd9;background:#ffffff0d;border:1px solid #ffffff2e}.cheats-scanner-set:hover{background:#ffffff1f}.recents-pop{-webkit-backdrop-filter:blur(18px)saturate(140%);z-index:50;background:#14141ceb;border:1px solid #ffffff1f;border-radius:12px;flex-direction:column;gap:10px;width:680px;max-width:92vw;max-height:86vh;padding:14px;display:none;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 10px 30px #0006,inset 0 1px #ffffff0f}.recents-pop.open{animation:.14s ease-out popIn;display:flex}.library-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}.library-stat{background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;min-width:0;padding:8px 10px}.library-stat-label{letter-spacing:1.5px;text-transform:uppercase;color:#ffffff73;margin-bottom:2px;font-family:JetBrains Mono,monospace;font-size:9px}.library-stat-value{color:#fff;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.5px;font-family:VT323,monospace;font-size:18px;overflow:hidden}@media (width<=560px){.library-stats{grid-template-columns:1fr 1fr}.library-stats .library-stat:nth-child(3){grid-column:1/-1}}.library-toolbar{z-index:1;background:#14141ceb;align-items:center;gap:8px;margin-top:-12px;margin-bottom:8px;padding:12px 0 8px;display:flex;position:sticky;top:-12px}.library-search{all:unset;color:#fff;background:#0006;border:1px solid #ffffff24;border-radius:6px;flex:auto;min-width:0;padding:6px 10px;font-family:JetBrains Mono,monospace;font-size:11px}.library-search::placeholder{color:#ffffff59}.library-search:focus{background:#0009;border-color:#9ef0d099}.library-sort{color:#fff;background:#0006;border:1px solid #ffffff24;border-radius:6px;flex-shrink:0;padding:6px 8px;font-family:JetBrains Mono,monospace;font-size:11px}.library-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.library-card{all:unset;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:4px;padding:4px;transition:background .12s,border-color .12s,transform .12s;display:flex;position:relative}.library-card:hover{background:#ffffff1a;border-color:#ffffff4d;transform:translateY(-1px)}.library-thumb{aspect-ratio:10/9;width:100%;image-rendering:pixelated;color:#ffffff4d;background:#000 50%/cover no-repeat;border-radius:4px;place-items:center;font-family:VT323,monospace;font-size:22px;display:grid;position:relative}.library-meta{flex-direction:column;gap:1px;padding:0 2px 1px;display:flex;overflow:hidden}.library-title{letter-spacing:.6px;color:#fff;white-space:nowrap;text-overflow:ellipsis;font-family:VT323,monospace;font-size:14px;line-height:1.05;overflow:hidden}.library-patch{color:#ffd866;text-transform:uppercase;letter-spacing:.05em;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;background:#1e1400bf;border:1px solid #ffd8668c;border-radius:3px;max-width:calc(100% - 8px);padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:8px;font-weight:600;line-height:12px;position:absolute;top:4px;left:4px;overflow:hidden}.library-time{color:#ffffff73;font-family:JetBrains Mono,monospace;font-size:9px}.library-action{all:unset;cursor:pointer;color:#fff;opacity:0;background:#000000a6;border:1px solid #fff3;border-radius:50%;place-items:center;width:20px;height:20px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;line-height:1;transition:opacity .12s,background .12s;display:grid;position:absolute;top:6px;right:6px}.library-card:hover .library-action{opacity:1}.library-action.clear:hover{background:#ff4d618c;border-color:#ff4d61e6}.library-empty{text-align:center;color:#ffffff80;padding:24px 12px;font-family:JetBrains Mono,monospace;font-size:11px}@media (width<=520px){.library-grid,.slots-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=1100px){body:has(.recents-pop.open,.slots-pop.open,.cheats-pop.open,.settings-pop.open,.cart-info-pop.open) .popover-backdrop{opacity:1;pointer-events:auto}.recents-pop,.slots-pop,.cheats-pop,.settings-pop,.cart-info-pop{width:min(94vw,480px);max-width:none;height:max-content;max-height:86vh;margin:auto;position:fixed;inset:0;overflow-y:auto}.cheats-pop{overflow:hidden}.recents-pop.open,.slots-pop.open,.cheats-pop.open,.settings-pop.open,.cart-info-pop.open{animation:.16s ease-out modalIn}}
