@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Fira+Code:wght@400;500;600;700&family=Source+Code+Pro:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600;700&family=Roboto+Mono:wght@400;500;600;700&family=Ubuntu+Mono:wght@400;700&family=Inconsolata:wght@400;700&family=Space+Mono:wght@400;700&family=Courier+Prime:wght@400;700&family=Overpass+Mono:wght@400;600;700&family=Anonymous+Pro:wght@400;700&family=DM+Mono:wght@400;500;700&family=Noto+Sans+Mono:wght@400;500;600;700&family=Cascadia+Code&family=Victor+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap";*{margin:0;padding:0;box-sizing:border-box}button>svg,a>svg{vertical-align:-.125em}:root{--font-ui: "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono","Envy Code R", "Consolas", "SF Mono", "Fira Code", monospace;--mono-line-height: 1.5}body{background:#556;color:#e0e0e0;font-family:var(--font-ui);font-size:1em;min-height:100vh;font-variant-ligatures:none}#app{display:flex;justify-content:center;min-height:100vh;padding:20px;gap:15px}.sidebar{display:flex;flex-direction:column;gap:15px;width:277px}#toolbar{position:relative;display:flex;align-items:center;justify-content:space-between}#toolbar h1{margin:0;display:flex;flex-direction:column;align-items:center;line-height:1;width:100%}.logo{position:relative;font-size:1.6rem;font-family:var(--font-ui);font-weight:800;letter-spacing:2px;color:#fff;background:#000;width:100%;text-align:center;padding:3px 0}.logo-num{color:#f6f;text-shadow:0 0 4px #f0f,0 0 8px #f0f,0 0 12px #f0f,0 0 16px #f0f;font-weight:400}.logo-version{font-size:.4em;font-weight:400;color:#aaa;letter-spacing:0;cursor:pointer;vertical-align:super;margin-left:2px;transition:color .15s}.logo-version:hover{color:#fff}.logo-menu{position:absolute;right:6px;top:50%;transform:translateY(-50%);margin:0;padding:2px 4px;border:none;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;opacity:.85}.logo-menu:hover{opacity:1}.logo-stripe{height:2px;width:100%;background:linear-gradient(90deg,#e44,#ea4,#4e4,#4ee);border-radius:1px}.drag-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:9000;pointer-events:none}.drag-overlay-box{border:3px dashed #c0c0ff;border-radius:12px;padding:32px 48px;display:flex;flex-direction:column;align-items:center;gap:12px;background:#1a1a2ee6;color:#c0c0ff;font-family:var(--font-ui)}.drag-overlay-icon{font-size:2.5rem;line-height:1}.drag-overlay-label{font-size:1.2rem;font-weight:600;letter-spacing:.5px}.drag-overlay-hint{font-size:.8rem;color:#88b;letter-spacing:.3px}.section-label{background:#000;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:3px 8px;display:flex;align-items:center;gap:6px;position:relative;overflow:hidden;cursor:grab;user-select:none;transition:margin-bottom .25s ease;z-index:0}.twisty{flex-shrink:0;transition:transform .2s ease}.pane.collapsed .twisty{transform:rotate(-90deg)}.pane.collapsed{padding:0;border-bottom:none}.pane.collapsed>.section-label{margin:0}.pane-content{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease,padding-bottom .25s ease;padding:0 6px 6px;min-height:0;overflow:hidden}.pane.collapsed .pane-content{grid-template-rows:0fr;padding:0 6px;min-height:0}.pane-content-inner{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:4px}.pane.dragging{opacity:.4}.drop-indicator{height:3px;background:#44f;border-radius:2px}body.cpc-mode .pane{border-left-color:#3a454b;border-right-color:#3a454b;border-bottom-color:#3a454b}body.cpc-mode .section-label{background:#3a454b}body.cpc-mode .section-label:after{background:linear-gradient(117deg,transparent 68px,#9c2249 68px,#9c2249 86px,transparent 86px)}body.einstein-mode .section-label:after,body.msx-mode .section-label:after{content:none}.section-label:after{content:"";position:absolute;right:0;top:0;bottom:0;width:125px;opacity:.9;z-index:-1;background:linear-gradient(135deg,#000 13px 20px,red 20px 35px,#ff0 35px 50px,#0f0 50px 65px,#0ff 65px 80px,#000 80px 88px)}.pane{background:#fff;color:#000;border-radius:4px;border-left:2px solid #000;border-right:2px solid #000;border-bottom:2px solid #000;box-shadow:0 5px 6px #00000059}.pane>.section-label{margin-bottom:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid #bbb;border-radius:4px;background:#eee;color:#000;cursor:pointer}.btn:hover:not(:disabled){background:#ddd}.btn:disabled{opacity:.4;cursor:default}.btn.active{background:#ddf;border-color:#66c;color:#00c}.btn.btn-lg{padding:5px 8px;font-size:.85rem}.btn.btn-md{padding:4px 8px;font-size:.8rem}.btn.btn-sm{padding:3px 6px;font-size:.75rem}.pane select,.pane button{padding:5px 8px;border:1px solid #bbb;border-radius:4px;background:#eee;color:#000;font-size:.85rem;cursor:pointer;width:100%}.pane button:hover,.pane select:hover{background:#ddd}.dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.dialog{min-width:280px;max-width:420px;max-height:70vh;display:flex;flex-direction:column}.section-label.dialog-title{cursor:default}.dialog-content{display:flex;flex-direction:column;gap:8px;padding:0 8px 8px;min-height:0;overflow:hidden}.dialog-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;min-height:0}.dialog-item{padding:5px 8px;border-radius:3px;cursor:pointer;color:#000;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dialog-item:hover{background:#eef}.dialog-actions{display:flex;justify-content:flex-end}.dialog-actions .btn{width:auto}.pane label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:#555}.pane .slider-row{color:#333}.pane .slider-row .slider-label,.pane .slider-row .slider-value{color:#555}.pane input[type=range]{background:#ccc}.pane--mono{--mono-line-height: 1.5}.pane--mono pre,.pane--mono .mono-block{font-family:var(--font-mono);line-height:var(--mono-line-height);font-variant-numeric:tabular-nums}#model-row{display:flex;align-items:center;gap:4px}#model-row .ddmenu-btn{flex:1;min-width:0}#model-row #cpu-reset{width:28px;height:28px;padding:0;flex-shrink:0}#locale-row{display:flex;align-items:center;gap:8px;font-size:.8rem}#locale-row .row-label{width:72px;flex-shrink:0;color:#999}#locale-row .ddmenu-btn{flex:1;min-width:0}.rom-status{font-size:.75rem;color:#c66;display:none}input[type=file]{display:none}#snap-row{display:flex;gap:4px}#snap-row button{flex:1}#main{display:flex;flex-direction:column;align-items:center;width:min-content}.toast{position:absolute;bottom:12px;left:50%;transform:translate(-50%);max-width:90%;padding:7px 11px;background:#14161ceb;color:#e9e9ef;font-family:var(--font-ui);font-size:.78rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:5px;border:1px solid rgba(255,255,255,.12);box-shadow:0 3px 12px #00000059;z-index:9000;cursor:pointer;user-select:none;animation:toast-in .2s ease-out;transition:opacity .25s ease,transform .25s ease}.toast-error{background:#7a1a1af0;border-color:#ff787859;color:#ffe7e7}.toast-leaving{opacity:0;transform:translate(-50%) translateY(8px)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}#screen-wrap{position:relative;line-height:0}canvas#screen{box-sizing:content-box;image-rendering:pixelated;image-rendering:crisp-edges;border:2px solid #333;background:#000;transition:opacity .15s}canvas{image-rendering:pixelated;image-rendering:crisp-edges;box-shadow:0 5px 6px #00000059}#transcribe-overlay{display:none;position:absolute;margin:0;overflow:hidden;pointer-events:none;font-family:monospace;font-size:13px;line-height:1.22;white-space:pre;border:none;padding:0;transform-origin:0 0}#transcribe-overlay.active{display:block;pointer-events:auto;cursor:text;user-select:text}#status-bar{margin-top:6px;width:100%}.status-controls{color:#000;width:100%}#status{font-size:.8rem;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top:1px solid #333;margin-top:4px;padding-top:4px}#activity{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;row-gap:4px;width:100%}.led-group{display:flex;gap:12px}.led{font-size:.7rem;color:inherit}.led.on{color:#8f8}.led[data-kind=ear].on{color:#ca6}.led[data-kind=rainbow].on{color:#f8f}.led[data-kind=mouse].on{color:#8cf}.led[data-kind=accel].on{color:#ff8}#keyboard-panel{width:100%;margin-top:8px;background:#141619}#keyboard-panel>.section-label{margin-bottom:0}#keyboard-panel>.pane-content{padding:0}.keyboard-scene-frame{width:100%;container-type:inline-size}.keyboard-scene{position:relative;width:calc(var(--keyboard-scene-px) * var(--keyboard-scene-width));height:calc(var(--keyboard-scene-px) * var(--keyboard-scene-height));margin-inline:auto;flex:none}.keyboard-scene__item{pointer-events:none}.keyboard-scene__key{position:absolute}.kbd-bezel{position:relative;--ku: calc(14px * var(--display-scale, 3));--u1: calc(var(--ku) / 42);background:radial-gradient(ellipse at 50% -10%,#34373c,#202327 45%,#141619);padding:0;border-radius:calc(var(--u1) * 5);border:1px solid #050608;box-shadow:inset 0 1px 2px #ffffff0d,inset 0 0 22px #0000008c,0 2px 6px #0006;overflow:hidden;container-type:inline-size}.kbd-above{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;line-height:1.05;text-align:left;padding-left:calc(var(--u1) * 2);overflow:visible}.kbd-above--letter,.kbd-above--special{min-height:calc(var(--u1) * 11);padding-bottom:calc(var(--u1) * 1)}.kbd-above--num{min-height:calc(var(--u1) * 24);padding-bottom:calc(var(--u1) * 1);gap:calc(var(--u1) * 1)}.kbd-color{font-size:calc(var(--u1) * 7);font-weight:700;letter-spacing:.2px;line-height:1;white-space:nowrap}.kbd-color--black{color:#000;background:#fff;border-radius:0;padding:0 calc(var(--u1) * 3)}.kbd-cmd{font-size:calc(var(--u1) * 7.5);font-weight:700;color:#f3f3f3;letter-spacing:.2px;line-height:1.05;white-space:nowrap}.kbd-green{font-size:calc(var(--u1) * 7.5);font-weight:700;color:#36d152;letter-spacing:.2px;line-height:1;white-space:nowrap}.kbd-below{height:calc(var(--u1) * 12);margin-top:0;text-align:left;padding-left:calc(var(--u1) * 2);font-size:calc(var(--u1) * 7.5);font-weight:700;color:#e5572f;letter-spacing:.2px;line-height:1.4;white-space:nowrap;overflow:visible}.kbd-key{position:relative;height:calc(var(--ku) * 52 / 72);border-radius:calc(var(--u1) * 4);background:linear-gradient(177deg,#3f6167,#2d4e54 40%,#1e3b41);border:1px solid #11191b;color:#f4f4f4;cursor:pointer;user-select:none;touch-action:none;font-family:var(--font-ui);box-shadow:inset 0 1px #ffffff29,inset 0 -3px 4px #00000073,0 1px 2px #0009;transition:background .08s ease,box-shadow .05s ease,transform .05s ease}.kbd-key:hover{background:linear-gradient(177deg,#4a6d74,#385a61 40%,#2a474e)}.kbd-key:active,.kbd-key.pressed{background:linear-gradient(177deg,#244249,#19353b);box-shadow:inset 0 2px 5px #000000b3,0 0 #0000;transform:translateY(1px)}.k-num,.k-letter{position:absolute;top:calc(var(--u1) * 3);left:calc(var(--u1) * 6);font-size:calc(var(--u1) * 13);font-weight:700;line-height:1;color:#fbfbfb}.k-block{position:absolute;top:calc(var(--u1) * 3);right:calc(var(--u1) * 6);width:calc(var(--u1) * 9);height:calc(var(--u1) * 9);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;background:transparent;border:1px solid #cfcfcf}.k-block i{background:transparent}.k-block i.on,.k-block.block-empty{background:#e9e9e9}.k-numsym{position:absolute;top:calc(var(--u1) * 13);right:calc(var(--u1) * 6);width:calc(var(--u1) * 9);text-align:center;font-size:calc(var(--u1) * 9);font-weight:700;line-height:1;color:#e5572f}.k-redtok{position:absolute;top:calc(var(--u1) * 3);left:0;right:0;text-align:right;padding-right:calc(var(--u1) * 6);font-size:calc(var(--u1) * 9);font-weight:700;line-height:calc(var(--u1) * 13);color:#e5572f}.k-redtok--word{font-size:calc(var(--u1) * 8);padding-right:calc(var(--u1) * 3)}.k-redtok--big{font-size:calc(var(--u1) * 13)}.k-word{position:absolute;bottom:calc(var(--u1) * 2);left:0;right:0;text-align:right;padding-right:calc(var(--u1) * 6);font-size:calc(var(--u1) * 8);font-weight:700;line-height:1;letter-spacing:.2px;color:#f4f4f4;white-space:nowrap}.kbd-key--special{background:linear-gradient(177deg,#426a70,#335960 40%,#244349)}.k-special{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;font-size:calc(var(--u1) * 8.5);font-weight:700;letter-spacing:.3px;color:#f4f4f4}.kbd-key--red .k-special{color:#e5572f;font-size:calc(var(--u1) * 8)}.k-special--biglast span:first-child{font-size:calc(var(--u1) * 7.5);font-weight:600;opacity:.95}.k-special--biglast span:last-child{font-size:calc(var(--u1) * 12)}.kbd-plus{display:block;--pu1: var(--keyboard-scene-px);background:linear-gradient(180deg,#26282c,#1b1d20);padding:0;border-radius:calc(var(--pu1) * 4);border:1px solid #050608;box-shadow:inset 0 0 16px #00000073;container-type:inline-size}.kbd-plus:not(.kbd-plus--grey2){background:linear-gradient(to bottom,transparent 0 calc(var(--pu1) * 52),rgba(0,0,0,.45) calc(var(--pu1) * 52) calc(var(--pu1) * 53),rgba(255,255,255,.06) calc(var(--pu1) * 53) calc(var(--pu1) * 54),transparent calc(var(--pu1) * 54) calc(var(--pu1) * 100),rgba(0,0,0,.45) calc(var(--pu1) * 100) calc(var(--pu1) * 101),rgba(255,255,255,.06) calc(var(--pu1) * 101) calc(var(--pu1) * 102),transparent calc(var(--pu1) * 102) calc(var(--pu1) * 148),rgba(0,0,0,.45) calc(var(--pu1) * 148) calc(var(--pu1) * 149),rgba(255,255,255,.06) calc(var(--pu1) * 149) calc(var(--pu1) * 150),transparent calc(var(--pu1) * 150) calc(var(--pu1) * 196),rgba(0,0,0,.45) calc(var(--pu1) * 196) calc(var(--pu1) * 197),rgba(255,255,255,.06) calc(var(--pu1) * 197) calc(var(--pu1) * 198),transparent calc(var(--pu1) * 198)),linear-gradient(180deg,#26282c,#1b1d20)}.pk-key{position:relative;height:calc(var(--pu1) * 46);min-width:0;color:#f4f4f4;font-family:var(--font-ui);cursor:pointer;user-select:none;touch-action:none}.kbd-plus:not(.kbd-plus--grey2) .pk-key{--cap-g0: #474b51;--cap-g1: #383c42;--cap-g2: #2c3035;--cap-stroke: #141619}.kbd-plus:not(.kbd-plus--grey2) .pk-key:hover{--cap-g0: #51565d;--cap-g1: #41454c;--cap-g2: #34383e}.kbd-plus:not(.kbd-plus--grey2) .pk-key.pressed{--cap-g0: #2a2d31;--cap-g1: #25282c;--cap-g2: #212427}.kbd-plus--grey2 .pk-key{--cap-g0: #7e838a;--cap-g1: #6e737a;--cap-g2: #5e6369;--cap-stroke: var(--case-border)}.kbd-plus--grey2 .pk-key:hover{--cap-g0: #888d94;--cap-g1: #787d84;--cap-g2: #686d74}.kbd-plus--grey2 .pk-key.pressed{--cap-g0: #565a60;--cap-g1: #50535a;--cap-g2: #4a4d53}.kbd-plus--amstrad .pk-key{--cap-g0: #2c2f33;--cap-g1: #212427;--cap-g2: #16181b}.kbd-plus--amstrad .pk-key:hover{--cap-g0: #363a3e;--cap-g1: #2a2d31;--cap-g2: #1f2124}.kbd-plus--amstrad .pk-key.pressed{--cap-g0: #131416;--cap-g1: #101113;--cap-g2: #0d0e10}.pk-key--enter,.pk-key--enter:hover,.pk-key--enter.pressed{background:none;border:none;box-shadow:none;overflow:visible}.pk-enter-svg{position:absolute;top:0;right:0;width:calc(var(--pu1) * 82);height:calc(var(--pu1) * 94);overflow:visible;pointer-events:none;filter:drop-shadow(0 calc(var(--pu1) * 1) calc(var(--pu1) * 1) rgba(0,0,0,.5))}.kbd-plus--grey2 .pk-enter-svg{width:calc(var(--pu1) * 82.75);height:calc(var(--pu1) * 96)}.pk-enter-shape{stroke:var(--cap-stroke, #141619);stroke-width:1}.pk-enter-g0,.pk-cap-g0{stop-color:var(--cap-g0)}.pk-enter-g1,.pk-cap-g1{stop-color:var(--cap-g1)}.pk-enter-g2,.pk-cap-g2{stop-color:var(--cap-g2)}.pk-enter-hi,.pk-cap-hi{fill:none;stroke:#ffffff1f;stroke-width:1}.pk-enter-lo,.pk-cap-lo{fill:none;stroke:#0006;stroke-width:2}.pk-cap-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;filter:drop-shadow(0 calc(var(--pu1) * 1) calc(var(--pu1) * 1) rgba(0,0,0,.5))}.pk-cap-rect{stroke:var(--cap-stroke, #141619);stroke-width:1}.pk-enter-label{position:absolute;right:0;top:calc(var(--pu1) * 48);width:calc(var(--pu1) * 82);height:calc(var(--pu1) * 46);display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-size:calc(var(--pu1) * 6);font-weight:700;letter-spacing:.2px;color:#e8e8e8;pointer-events:none}.kbd-plus--grey2 .pk-enter-label{top:calc(var(--pu1) * 50);width:calc(var(--pu1) * 82.75);align-items:flex-end;justify-content:flex-start;padding:0 0 calc(var(--pu1) * 4) calc(var(--pu1) * 6);font-style:italic;font-size:calc(var(--pu1) * 8);color:#f3f3f3}.pk-tl,.pk-tr,.pk-ml,.pk-mr{position:absolute;font-size:calc(var(--pu1) * 6);font-weight:700;line-height:1;white-space:nowrap;overflow:hidden;max-width:calc(100% - var(--pu1) * 6)}.pk-tl{top:calc(var(--pu1) * 3);left:calc(var(--pu1) * 3)}.pk-tr{top:calc(var(--pu1) * 3);right:calc(var(--pu1) * 3)}.pk-ml{top:calc(var(--pu1) * 15);left:calc(var(--pu1) * 3)}.pk-mr{top:calc(var(--pu1) * 15);right:calc(var(--pu1) * 3);font-size:calc(var(--pu1) * 7)}.pk-main{position:absolute;bottom:calc(var(--pu1) * 1);left:0;right:0;text-align:center;font-size:calc(var(--pu1) * 14);font-weight:700;line-height:1;color:#fbfbfb}.pk-green{color:#36d152}.pk-red{color:#e5572f}.pk-white{color:#ededed}.pk-tl--black{color:#efefef;background:#000;border:1px solid #8a8a8a;border-radius:1px;padding:0 calc(var(--pu1) * 1)}.pk-block{position:absolute;top:calc(var(--pu1) * 15);left:calc(var(--pu1) * 3);width:calc(var(--pu1) * 9);height:calc(var(--pu1) * 9);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;background:#e9e9e9;border:1px solid #cfcfcf}.pk-block i{background:transparent}.pk-block i.on{background:#15171a}.pk-numrow{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:calc(var(--pu1) * 2)}.pk-block-inline{width:calc(var(--pu1) * 8);height:calc(var(--pu1) * 8);flex:none;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;background:#e9e9e9;border:1px solid #cfcfcf}.pk-block-inline i{background:transparent}.pk-block-inline i.on{background:#15171a}.pk-block.block-empty,.pk-block-inline.block-empty{background:transparent}.pk-glyph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:calc(var(--pu1) * 14);font-weight:700;color:#fbfbfb}.pk-arrow{font-size:calc(var(--pu1) * 24);font-weight:400}.pk-stack{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--pu1) * 1);line-height:1;padding:calc(var(--pu1) * 1)}.pk-leg{font-size:calc(var(--pu1) * 6);font-weight:700;line-height:1;color:#ededed;white-space:nowrap;overflow:hidden;max-width:100%}.pk-leg--main{font-size:calc(var(--pu1) * 13);color:#fbfbfb;margin-top:calc(var(--pu1) * 1)}.pk-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(var(--pu1) * 6);font-weight:700;line-height:1.2;letter-spacing:.2px;text-align:center;color:#e8e8e8}.pk-key--red .pk-label{color:#e5572f}.kbd-plus:not(.kbd-plus--grey2) .pk-key--red .pk-label{color:#e8e8e8}.kbd-plus--grey2{--case-top: #797d81;--case-bottom: #5f6367;--case-border: #2e3033;--groove-d: rgba(0, 0, 0, .4);--groove-l: rgba(255, 255, 255, .12);background:linear-gradient(to bottom,transparent 0 calc(var(--pu1) * 53),var(--groove-d) calc(var(--pu1) * 53) calc(var(--pu1) * 55),var(--groove-l) calc(var(--pu1) * 55) calc(var(--pu1) * 57),transparent calc(var(--pu1) * 57) calc(var(--pu1) * 103),var(--groove-d) calc(var(--pu1) * 103) calc(var(--pu1) * 105),var(--groove-l) calc(var(--pu1) * 105) calc(var(--pu1) * 107),transparent calc(var(--pu1) * 107) calc(var(--pu1) * 153),var(--groove-d) calc(var(--pu1) * 153) calc(var(--pu1) * 155),var(--groove-l) calc(var(--pu1) * 155) calc(var(--pu1) * 157),transparent calc(var(--pu1) * 157) calc(var(--pu1) * 203),var(--groove-d) calc(var(--pu1) * 203) calc(var(--pu1) * 205),var(--groove-l) calc(var(--pu1) * 205) calc(var(--pu1) * 207),transparent calc(var(--pu1) * 207)),linear-gradient(180deg,var(--case-top) 0%,var(--case-bottom) 100%);border-color:var(--case-border)}.kbd-plus--amstrad{--case-top: #232427;--case-bottom: #0c0d0f;--case-border: #050506;--groove-l: rgba(255, 255, 255, .16)}.kbd-plus--grey2 .pk-main,.kbd-plus--grey2 .pk-label,.kbd-plus--grey2 .pk-glyph{font-style:italic;color:#f3f3f3}.kbd-plus--grey2 .pk-label{inset:auto auto calc(var(--pu1) * 4) calc(var(--pu1) * 6);align-items:flex-start;justify-content:flex-end;font-size:calc(var(--pu1) * 8);text-align:left}.kbd-plus--grey2 .pk-key--num .pk-main,.kbd-plus--grey2 .pk-key--letter .pk-main{top:auto;bottom:calc(var(--pu1) * 3);left:calc(var(--pu1) * 6);right:auto;transform:none;text-align:left;font-size:calc(var(--pu1) * 16)}.kbd-plus--grey2 .pk-key--sym .pk-glyph{inset:auto auto calc(var(--pu1) * 3) calc(var(--pu1) * 6);align-items:flex-end;justify-content:flex-start}.kbd-plus--grey2 .pk2-top{position:absolute;top:calc(var(--pu1) * 4);bottom:auto;left:calc(var(--pu1) * 5);right:auto;display:flex;align-items:baseline;justify-content:flex-start;gap:calc(var(--pu1) * 2);line-height:1;pointer-events:none}.kbd-plus--grey2 .pk2-sym{font-size:calc(var(--pu1) * 9.5);font-style:italic;font-weight:700;color:#f1f1f1}.kbd-plus--grey2 .pk2-word{font-size:calc(var(--pu1) * 8);font-style:italic;font-weight:700;color:#f1f1f1}.kbd-plus--grey2 .pk2-chev{display:inline-block;width:calc(var(--pu1) * 6);height:calc(var(--pu1) * 6);border-right:1.5px solid #f1f1f1;border-bottom:1.5px solid #f1f1f1}.kbd-plus--grey2 .pk2-chev--left{transform:translate(calc(var(--pu1) * 1)) rotate(135deg)}.kbd-plus--grey2 .pk2-chev--right{transform:translate(calc(var(--pu1) * -1)) rotate(-45deg)}.kbd-plus--grey2 .pk2-chev--up{transform:translateY(calc(var(--pu1) * 1)) rotate(-135deg)}.kbd-plus--grey2 .pk2-chev--down{transform:translateY(calc(var(--pu1) * -1)) rotate(45deg)}.zxk-bezel{position:relative;--u1: var(--keyboard-scene-px);padding:0;border-radius:calc(var(--u1) * 6);overflow:hidden;container-type:inline-size}.zxk-above,.zxk-below{height:calc(var(--u1) * 8);display:flex;align-items:flex-end;justify-content:flex-start;padding-inline:calc(var(--u1) * 2);text-align:left;font-size:calc(var(--u1) * 7);font-weight:700;line-height:1;letter-spacing:-.2px;white-space:nowrap;overflow:visible}.zxk-below{align-items:flex-start}.zxk-above{justify-content:center;text-align:center;padding-bottom:1px}.zxk-key{position:relative;height:calc(var(--u1) * 40);border-radius:calc(var(--u1) * 4);cursor:pointer;user-select:none;touch-action:none;font-family:var(--font-ui);transition:filter .06s ease,background .06s ease,transform .05s ease}.zxk-key.pressed,.zxk-key:active{transform:translateY(1px)}.zxk-capfn{position:absolute;top:calc(var(--u1) * 3);left:0;right:0;text-align:center;font-size:calc(var(--u1) * 7);font-weight:700;line-height:1;letter-spacing:-.3px;white-space:nowrap;overflow:hidden}.zxk-capfn--arrow{top:calc(var(--u1) * 1);overflow:visible;font-size:calc(var(--u1) * 15);font-weight:400;line-height:1;transform:scaleX(1.7)}.zxk-main{position:absolute;left:calc(var(--u1) * 5);bottom:calc(var(--u1) * 4);font-size:calc(var(--u1) * 18);font-weight:700;line-height:1}.zxk-key--label .zxk-main{left:0;right:0;text-align:center;font-size:calc(var(--u1) * 6.5);letter-spacing:-.2px;white-space:pre-line;line-height:1.1}.zxk-key--mod .zxk-main{font-size:calc(var(--u1) * 9);top:50%;bottom:auto;transform:translateY(-50%)}.zxk-shift{position:absolute;top:calc(var(--u1) * 3);right:calc(var(--u1) * 3.5);max-width:74%;text-align:right;font-size:calc(var(--u1) * 7);font-weight:700;line-height:1;letter-spacing:-.3px;white-space:nowrap;overflow:hidden}.zxk-shift--sym{font-size:calc(var(--u1) * 13);top:calc(var(--u1) * 2)}.zxk-block{position:absolute;right:calc(var(--u1) * 4);bottom:calc(var(--u1) * 4);width:calc(var(--u1) * 12);height:calc(var(--u1) * 12);background:transparent;border:1px solid}.zxk--zx81{background:radial-gradient(ellipse at 50% -20%,#2a2b2d,#161718 55%,#0b0c0d);box-shadow:inset 0 0 26px #0009,0 2px 6px #00000073}.zxk--zx81 .zxk-above,.zxk--zx81 .zxk-below{color:#eaeaea}.zxk--zx81 .zxk-key{background:#d8dada;height:calc(var(--u1) * 30)}.zxk--zx81 .zxk-key:hover{background:#e6e8e8}.zxk--zx81 .zxk-key.pressed{background:#bcbfbf}.zxk--zx81 .zxk-main{color:#17181a}.zxk--zx81 .zxk-capfn,.zxk--zx81 .zxk-shift,.zxk--zx81 .zxk-key--mod .zxk-main{color:#d62828}.zxk--zx81 .zxk-block{border-color:#000}.zxk--zx81 .zxk-block rect{fill:#1b1b1b}.zxk--zx80{background:radial-gradient(ellipse at 50% -20%,#232426,#141516 55%,#090a0b);box-shadow:inset 0 0 26px #0009,0 2px 6px #00000073}.zxk--zx80 .zxk-above,.zxk--zx80 .zxk-below,.zxk--zx80 .zxk-main,.zxk--zx80 .zxk-shift{font-weight:400}.zxk--zx80 .zxk-above,.zxk--zx80 .zxk-below{color:#fff}.zxk--zx80 .zxk-above--break{color:#5b8ee6}.zxk--zx80 .zxk-key{background:#1f3f86}.zxk--zx80 .zxk-key:hover{background:#274c9e}.zxk--zx80 .zxk-key.pressed{background:#16305f}.zxk--zx80 .zxk-main{color:#fff}.zxk--zx80 .zxk-key--num .zxk-main{inset:50% 0 auto;text-align:center;transform:translateY(-50%)}.zxk--zx80 .zxk-shift{color:#f2c53d}.zxk--zx80 .zxk-key--mod .zxk-main{color:#fff}.zxk--zx80 .zxk-block{border-color:#f2c53d;top:calc(var(--u1) * 3);bottom:auto;right:calc(var(--u1) * 3.5)}.zxk--zx80 .zxk-block rect{fill:#f2c53d}.mouse-pane{display:flex;flex-direction:column;gap:6px}.mouse-controls{display:flex;gap:6px}.mouse-capture-btn{padding:3px 10px;font-size:11px;cursor:pointer;background:#333;color:#ccc;border:1px solid #555;border-radius:3px}.mouse-capture-btn:hover{background:#444}.mouse-hint{font-size:10px;color:#888}.mouse-captured{font-size:15px;line-height:1.4;color:#444;text-align:center;padding:4px 0}.mouse-captured b{color:#000}#display-controls{display:flex;flex-direction:row;align-items:center;gap:8px}#display-controls label{flex:1}#display-controls label:last-child{justify-content:flex-end}#display-pane label{flex-direction:row;align-items:center;gap:4px}#display-pane select{width:auto;padding:3px 6px;font-size:.8rem}.slider-row{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#ccc}.slider-row .slider-label{width:72px;flex-shrink:0;color:#999}.slider-row input[type=range]{flex:1;min-width:0}.slider-row select{flex:1;min-width:0;padding:3px 4px;font-size:.8rem}.slider-row .slider-value{min-width:28px;text-align:left;font-size:.75rem;color:#888;flex-shrink:0}.slider-row .slider-end-label{flex-shrink:0;font-size:.7rem;color:#888}input[type=range]{-webkit-appearance:none;appearance:none;height:4px;background:#444;border-radius:2px;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#88f;cursor:pointer}input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#88f;border:none;cursor:pointer}#font-row{display:flex;gap:4px}#font-row button{flex:1}#font-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto;margin-top:4px}#font-list:empty{display:none}.font-entry{display:flex;flex-direction:column;gap:4px;padding:2px 0;cursor:pointer;font-size:.75rem;border-radius:3px;color:#ccc}.font-entry-header{display:flex;align-items:center;gap:4px;min-height:18px}.font-entry-preview{image-rendering:pixelated}.font-entry:hover{background:#ffffff14}.font-entry.active{background:#ffffff26;color:#fff}.font-entry-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.font-entry-addr{flex-shrink:0;font-size:.65rem;color:#888;font-family:var(--font-mono)}.font-entry-actions{display:flex;gap:2px;flex-shrink:0}.font-entry-actions button{width:18px;height:18px;padding:0;background:none;border:none;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:3px;font-size:.7rem}.font-entry-actions button:hover{color:#fff;background:#ffffff26}.pane .font-entry{color:#555}.pane .font-entry:hover{background:#0000000d}.pane .font-entry.active{background:#0000001a;color:#333}.pane .font-entry-addr,.pane .font-entry-actions button{color:#999}.pane .font-entry-actions button:hover{color:#333;background:#0000001a}#joy-columns{display:flex;gap:6px}.joy-column{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.joy-column label{font-size:.75rem;color:#555;display:flex;flex-direction:column;gap:2px;width:100%}.joy-column select{width:100%;padding:3px 4px;font-size:.8rem}.joy-dpad{display:grid;grid-template-columns:28px 28px 28px;grid-template-rows:28px 28px 28px;gap:1px}.joy-btn{border:1px solid #bbb;border-radius:4px;background:#eee;color:#333;font-size:.75rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-align:center;user-select:none;-webkit-user-select:none}.joy-btn:hover{background:#ddd}.joy-btn:active,.joy-btn.pressed{background:#cce;border-color:#66f}.joy-spacer{visibility:hidden}.joy-fire{font-size:.7rem;font-weight:700;color:#000}.joy-deadzone{border-radius:50%;background:#ddd;border:1px solid #bbb;width:20px;height:20px;margin:auto}.joy-config-waiting{animation:joy-wait .8s ease-in-out infinite}@keyframes joy-wait{0%,to{background:#cce5ff;border-color:#4da6ff}50%{background:#9cf;border-color:#39f}}.joy-config-holding{border-color:#39f!important}.hw-options{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px}.rom-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rom-slot-row{display:flex;flex-direction:column;gap:2px;min-width:0}.rom-slot-label{font-size:.7rem;font-weight:600;color:#666}.media-slot{display:flex;align-items:center;gap:4px;padding:4px 6px;background:#fff;border:1px solid #bbb;border-radius:3px;font-size:.75rem;height:24px}.media-slot.clickable{cursor:pointer}.media-slot.clickable:hover{background:#f0f0f8;border-color:#999}.media-slot-text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#222;font-weight:500}.media-slot:not(:has(button.tape-eject)) .media-slot-text{color:#999;font-style:italic;font-weight:400}.multiface-row{display:flex;align-items:center;gap:4px}.mf-check{flex:0 1 auto;display:flex!important;flex-direction:row!important;align-items:center;gap:4px;font-size:.8rem;color:#333;cursor:pointer}.mf-check input[type=checkbox]{width:auto;cursor:pointer}.mf-check.rom-failed{opacity:.4;cursor:not-allowed}.mf-check.rom-failed input[type=checkbox]{cursor:not-allowed}.multiface-row .mf-trigger{flex:0 0 auto;width:13px;height:13px;padding:0;margin-left:6px;border-radius:50%;background:#d22;border:1px solid #911;box-shadow:inset 0 1px 1px #ffffff59;cursor:pointer}.multiface-row .mf-trigger:hover{background:#f33;border-color:#b11}#speed-value{width:12ch;min-width:12ch;display:flex;align-items:baseline;justify-content:flex-end;gap:.35em;white-space:nowrap;font-variant-numeric:tabular-nums}#speed-value .speed-mhz{font-size:.82em}.speed-slider-row{gap:1em}.speed-slider-row .slider-label{width:auto}#regs-output{margin:0;padding:6px;border-radius:4px;font-size:.7rem;white-space:pre;overflow-x:auto}#regs-output .reg-name{color:#999}#sysvar-output{margin:0;padding:6px;font-size:.7rem;white-space:pre}#sysvar-output .reg-name{color:#999}#basic-output{margin:0;padding:6px;font-size:.7rem;white-space:pre;overflow-y:auto;max-height:500px;user-select:text;cursor:text}#basic-output .basic-line-num{color:#888;font-weight:700}#basic-vars-output{margin:0;padding:6px;font-size:.7rem;white-space:pre;overflow-y:auto;max-height:400px}#basic-vars-output .var-name{color:#6cf;font-weight:700}#banks-output{margin:0;padding:6px;font-size:.7rem;white-space:pre}#banks-output .reg-name{color:#999}#disk-info-output{margin:0;padding:6px;font-size:.7rem;white-space:pre}#disk-info-output .reg-name{color:#999}#drive-output{margin:0;padding:6px;font-size:.7rem;white-space:pre}#drive-output .reg-name{color:#999}#trap-log{display:none;margin:0;padding:4px 6px;background:#0a0a18;border:1px solid #333;border-radius:4px;font-size:.65rem;color:#8a8;white-space:pre;max-height:120px;overflow-y:auto;--mono-line-height: 1.4}#trap-log .trap-warn{color:#fa0}#tape-controls{display:flex;gap:2px}#tape-controls button{flex:1}#tape-name{display:flex;align-items:center;gap:4px;padding:4px 6px;background:#fff;border:1px solid #bbb;border-radius:3px;font-size:.75rem;height:24px;flex-shrink:0;margin-bottom:4px}#tape-name.tape-name-clickable{cursor:pointer}#tape-name.tape-name-clickable:hover{background:#f0f0f8;border-color:#999}.tape-name-text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#222;font-weight:500}#tape-name:not(:has(button.tape-eject)) .tape-name-text{color:#999;font-style:italic;font-weight:400}.tape-eject{flex:0 0 18px;width:18px;height:18px;min-width:18px;min-height:18px;max-height:18px;margin-left:auto;background:none!important;border:none!important;border-radius:0!important;padding:0!important;appearance:none;-webkit-appearance:none;line-height:1;cursor:pointer;color:#888;display:flex;align-items:center;justify-content:center}.tape-eject:hover{color:#c00;background:none!important}#drive-panel .pane-content-inner{gap:8px}.disk-section{margin-bottom:0}.drive-header{display:flex;align-items:center;gap:5px;margin-bottom:4px;font-size:.7rem}.disk-label{flex:0 0 auto;font-weight:700;color:#666}.drive-track-info{flex:1 1 0;color:#ccc;white-space:nowrap;text-align:center}.drive-track-info .reg-name{color:#888}.drive-header>.ddmenu-btn,.drive-header>button.ddmenu-btn{flex:0 0 auto;width:22px;height:18px;padding:0}.drive-header>button.ddmenu-btn:disabled{opacity:.35;cursor:default}.drive-header>button.btn-dirty{color:#d22;border-color:#d22}.disk-slot{margin-bottom:2px}.disk-name{display:flex;align-items:center;gap:4px;padding:4px 6px;background:#fff;border:1px solid #bbb;border-radius:3px;font-size:.75rem;height:24px;margin-bottom:0}.drive-led{flex:0 0 auto;position:relative;top:1px;width:18px;height:7px;border-radius:1px;border:1px solid rgba(0,0,0,.3)}.disk-name-clickable{cursor:pointer}.disk-name-clickable:hover{background:#f0f0f8;border-color:#999}.disk-name-text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#222;font-weight:500}.disk-section:not(:has(button.tape-eject)) .disk-name-text{color:#999;font-style:italic;font-weight:400}.disk-info-output{padding:0 4px;margin:0;font-size:.7rem;line-height:1.5;white-space:pre}.disk-info-output .reg-name{color:#999}#tape-blocks{max-height:400px;overflow-y:auto;font-size:.7rem}#tape-blocks,.microdrive-blocks,.library-list{scrollbar-width:none}#tape-blocks::-webkit-scrollbar,.microdrive-blocks::-webkit-scrollbar,.library-list::-webkit-scrollbar{width:0;height:0}.microdrive-blocks{margin-top:4px;max-height:240px;overflow-y:auto;font-size:.7rem}.tape-block{padding:4px 6px;cursor:pointer;border-left:3px solid transparent;color:#000}.tape-block:hover{background:#eef}.tape-block.played{color:#aaa}.tape-block.control{color:#888;font-style:italic}.tape-block.control.played{color:#bbb}.tape-block.control.current{color:#88a}.tape-block.current{background:#f0f0fe;border-left-color:#44e;color:#22c}.tb-detail{font-size:.7rem;color:#999;padding-left:20px}.tape-block.current .tb-detail{color:#88c}.tape-empty{padding:8px;color:#999;font-size:.7rem;font-style:italic}.library-search{display:flex;align-items:center;gap:2px;padding:0 3px 6px}.library-search-field{position:relative;flex:1;min-width:0;display:flex}.library-search-input{flex:1;min-width:0;box-sizing:border-box;padding:3px 20px 3px 6px;font:inherit;font-size:.75rem;border:1px solid #aab;border-radius:3px;background:#fff}.library-search-input::-webkit-search-cancel-button{display:none}.library-search .library-search-clear{position:absolute;top:0;bottom:0;right:5px;display:flex;align-items:center;justify-content:center;width:14px;padding:0 0 1px;border:none;background:none;color:#99a;font-size:.95rem;line-height:1;cursor:pointer}.library-search .library-search-clear:hover{color:#223;background:none}.library-search-menu{display:flex;align-items:center;flex:none}.library-search-menu.active .ddmenu-btn{background:#ddf;border-color:#66c;color:#00c}.ddmenu-sub:not(:has(.ddmenu-parent)){max-height:60vh;overflow-y:auto}.library-status{padding:6px;color:#888;font-size:.75rem}.library-error{color:#c22}.library-list{max-height:320px;overflow-y:auto;font-size:.72rem}.library-row{display:flex;align-items:center;gap:6px;padding:3px 6px;cursor:pointer;border-left:3px solid transparent;color:#000}.library-row:hover{background:#eef}.library-row.selected,.library-row.loading{background:#f0f0fe;border-left-color:#44e;color:#22c}.library-row.mounted{background:#eaf6ea;border-left-color:#2a2;color:#161}.library-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-play{flex:0 0 auto;display:inline-flex;align-items:center;color:#3a3;font-size:.9rem}.library-play:hover{color:#1a1}.library-spinner{width:12px;height:12px;border:2px solid #bbd;border-top-color:#44e;border-radius:50%;animation:library-spin .7s linear infinite}@keyframes library-spin{to{transform:rotate(360deg)}}.library-detail{display:flex;flex-direction:column;gap:6px;padding:6px 0 8px;background:#f0f0fe;border-left:3px solid #44e}.library-shot{position:relative;width:100%;aspect-ratio:256 / 192;background:#000;border:1px solid #bbb}.library-shot-canvas{width:100%;height:100%;display:block;object-fit:contain;image-rendering:pixelated}.library-shot-canvas.hidden{display:none}.library-shot-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#888;font-size:.65rem}.library-detail-pub{display:flex;align-items:baseline;gap:8px;padding:0 8px;font-size:.72rem}.library-detail-pubname{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.library-detail-genre{flex:0 0 auto;color:#667;font-style:italic;white-space:nowrap}.library-info{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:transparent;border:1px solid #26c;color:#26c;font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700;font-size:.62rem;line-height:1;text-decoration:none}.library-info:hover{background:#2666cc1f}.library-info-i{display:block;transform:translate(-1px,1px)}#diag{align-self:stretch;margin-top:6px;position:relative}#diag-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}#diag-header button{padding:3px 8px;border:1px solid #555;border-radius:4px;background:#2a2a3e;color:#e0e0e0;font-size:.75rem;cursor:pointer}#diag-header button:hover{background:#3a3a5e}#diag-header button.active{background:#2a3e2a;border-color:#5a5;color:#8f8}.zx-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#222;color:#eee;font-family:var(--font-ui);font-size:.72rem;padding:4px 8px;border-radius:4px;white-space:nowrap;box-shadow:0 2px 8px #00000080;opacity:0;transition:opacity .12s}.zx-tooltip.visible{opacity:1}.dev-controls{display:flex;align-items:center;gap:8px}.dev-stats{font-family:var(--font-mono);font-size:.7rem;color:#666}.dev-log{font-family:var(--font-mono);margin-top:4px;max-height:200px;overflow-y:auto;font-size:.7rem;line-height:1.5;white-space:pre;background:#fff;color:#000;padding:6px;border-radius:4px}.disasm-toolbar{display:flex;gap:2px;margin-bottom:4px}.disasm-toolbar button{flex:1}.ddmenu-btn{flex:1;display:flex;align-items:center;justify-content:center}.ddmenu-btn-labeled{justify-content:space-between;width:100%}.ddmenu-btn-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ddmenu-btn-caret{margin-left:6px;color:#888;flex-shrink:0}.ddmenu{position:fixed;width:max-content;min-width:200px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 3px 10px #0003;z-index:10000;font-family:var(--font-ui);font-size:.8rem;font-weight:400;letter-spacing:normal;color:#000;padding:4px 0}.ddmenu-item{display:flex;align-items:center;padding:6px 20px 6px 10px;cursor:pointer;white-space:nowrap;user-select:none}.ddmenu-item:hover{background:#eef}.ddmenu-item-flags{padding-right:8px}.ddmenu-item-flags .ddmenu-label{flex:1}.ddmenu-flags{display:flex;gap:1px;margin-left:1em;flex-shrink:0}.ddmenu-flag{cursor:pointer;padding:0 2px;opacity:.7}.ddmenu-flag:hover{opacity:1}.ddmenu-separator{height:1px;background:#ccc;margin:4px 0}.ddmenu-heading{padding:3px 12px 2px 6px;font-size:.65rem;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:#889;user-select:none}.ddmenu-check{width:20px;text-align:center;flex-shrink:0}.ddmenu-parent{position:relative}.ddmenu-arrow{margin-left:auto;padding-left:12px;font-size:1em;line-height:1;color:#888}.ddmenu-sub{display:none;position:absolute;top:-4px;left:100%;max-height:calc(100vh - 16px);overflow-y:auto}.ddmenu-parent:hover>.ddmenu-sub{display:block}.disasm-output{font-family:var(--font-mono);font-size:.7rem;line-height:1.5;height:400px;overflow-y:auto;white-space:pre}.d-line{padding:2px 6px;border-left:3px solid transparent;white-space:pre}.d-line.d-cur{background:#f0f0fe;border-left-color:#44e}.d-line.d-bp{border-left-color:#c22;background:#fef0f0}.d-line.d-bp.d-cur{border-left-color:#c22;background:#f0e0fe}.d-off{color:#999}.d-hex{color:#aaa}.d-val{color:#22c}.d-adr{color:#808}.d-port{color:#c22}.disasm-ctx-menu{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:2px 2px 6px #0003;z-index:100;font-family:var(--font-ui);font-size:.75rem}.disasm-ctx-item{padding:4px 12px;cursor:pointer;white-space:nowrap}.disasm-ctx-item:hover{background:#eef}.mem-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:4px;margin-bottom:4px}.mem-controls select{min-width:0;padding:3px 4px;border:1px solid #bbb;border-radius:4px;background:#eee;color:#000;font-size:.75rem;cursor:pointer}.mem-controls select:hover{background:#ddd}.mem-go-drop{display:flex;gap:4px;margin-bottom:4px}.mem-go-input{flex:1;min-width:0;padding:3px 6px;border:1px solid #bbb;border-radius:4px;background:#fff;color:#000;font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase}.mem-go-confirm{flex:1}.mem-scroll{height:280px;overflow-y:scroll;overflow-x:hidden;border:1px solid #ddd;border-radius:4px;background:#fff}.mem-scroll pre{font-family:var(--font-mono);font-size:.7rem;line-height:15px;color:#000;margin:0;padding:0 2px;white-space:pre}.save-menu{position:fixed;background:#fff;border:1px solid #ccc;box-shadow:2px 2px 6px #0003;z-index:1000;font-family:var(--font-ui);font-size:.75rem;min-width:160px}.save-menu-item{padding:6px 12px;cursor:pointer;white-space:nowrap}.save-menu-item:hover{background:#eef}.section-label button,.section-label select{position:relative;z-index:1}.changelog-backdrop{position:fixed;inset:0;z-index:999}.changelog-overlay{position:absolute;top:100%;left:0;right:0;max-height:70vh;background:#1a1a1a;border:1px solid #444;border-radius:0 0 6px 6px;box-shadow:0 8px 32px #0009;z-index:1000;overflow-y:auto;padding:8px 12px}.changelog-version{font-weight:700;font-size:.8rem;margin-bottom:4px}.changelog-list{margin:0 0 8px 16px;padding:0;font-size:.75rem;line-height:1.6}.cpc464-keyboard{--cpc-u: var(--keyboard-scene-px);overflow:hidden;border:1px solid #111419;border-radius:calc(var(--cpc-u) * 5);background:linear-gradient(180deg,rgba(255,255,255,.055),transparent 18%),radial-gradient(ellipse at 48% -20%,#414850,#2d333a 52%,#20252b);box-shadow:inset 0 calc(var(--cpc-u) * 2) calc(var(--cpc-u) * 5) #ffffff0d,inset 0 calc(var(--cpc-u) * -8) calc(var(--cpc-u) * 18) #00000061,0 2px 5px #00000073;font-family:var(--font-ui)}.cpc464-brand{display:flex;align-items:center;color:#d5d8d8;font-size:calc(var(--cpc-u) * 17);font-weight:900;font-style:italic;letter-spacing:calc(var(--cpc-u) * -1);text-shadow:0 1px #090b0d,1px 0 rgba(255,255,255,.18)}.cpc464-model{display:flex;align-items:center;justify-content:flex-end;gap:calc(var(--cpc-u) * 7);color:#cbd0d4;font-size:calc(var(--cpc-u) * 16);font-weight:700;letter-spacing:calc(var(--cpc-u) * 1);text-shadow:0 1px #121519}.cpc464-model small{align-self:flex-end;margin-bottom:calc(var(--cpc-u) * 2);font-size:calc(var(--cpc-u) * 6);letter-spacing:0}.cpc464-colour-bars{width:calc(var(--cpc-u) * 46);height:calc(var(--cpc-u) * 12);border:1px solid rgba(230,230,230,.65);background:linear-gradient(90deg,#e63d3d 0 25%,#51bd58 25% 50%,#4d72df 50% 75%,#e7e7e7 75% 100%);box-shadow:0 1px 1px #0009}.cpc464-key{--cpc-cap-top: #3f454c;--cpc-cap-mid: #282d33;--cpc-cap-bottom: #171b20;position:absolute;overflow:hidden;border:1px solid #111419;border-radius:calc(var(--cpc-u) * 2);background:linear-gradient(135deg,rgba(255,255,255,.12),transparent 22%),linear-gradient(180deg,var(--cpc-cap-top) 0%,var(--cpc-cap-mid) 53%,var(--cpc-cap-bottom) 100%);box-shadow:inset calc(var(--cpc-u) * 1) calc(var(--cpc-u) * 1) 0 #ffffff1a,inset calc(var(--cpc-u) * -2) calc(var(--cpc-u) * -3) calc(var(--cpc-u) * 4) #0000006b,0 calc(var(--cpc-u) * 2) calc(var(--cpc-u) * 2) #000000ad;color:#f1f3f2;cursor:pointer;user-select:none;touch-action:none;transition:filter .06s ease,transform .05s ease}.cpc464-key:hover{filter:brightness(1.13)}.cpc464-key.pressed{filter:brightness(.78);transform:translateY(calc(var(--cpc-u) * 1.5))}.cpc464-key--green{--cpc-cap-top: #6fd66f;--cpc-cap-mid: #4db753;--cpc-cap-bottom: #318e3c}.cpc464-key--red{--cpc-cap-top: #ef6257;--cpc-cap-mid: #d94037;--cpc-cap-bottom: #a82d2a}.cpc464-key--blue{--cpc-cap-top: #7893f0;--cpc-cap-mid: #5b72d3;--cpc-cap-bottom: #3d50a6}.cpc464-key__main{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:calc(var(--cpc-u) * 4);font-size:calc(var(--cpc-u) * 17);font-weight:700;line-height:.92;text-shadow:0 1px rgba(0,0,0,.65);pointer-events:none}.cpc464-key__shift,.cpc464-key__fn{position:absolute;top:calc(var(--cpc-u) * 3);left:calc(var(--cpc-u) * 5);z-index:1;font-size:calc(var(--cpc-u) * 9);font-weight:700;line-height:1;color:#f4f5f3;text-shadow:0 1px rgba(0,0,0,.65);pointer-events:none}.cpc464-key__fn{font-size:calc(var(--cpc-u) * 7);color:#cfd4d7}.cpc464-key--word .cpc464-key__main,.cpc464-key--numpad.cpc464-key--word .cpc464-key__main{justify-content:center;padding:calc(var(--cpc-u) * 2);font-size:calc(var(--cpc-u) * 8);line-height:1.05;text-align:center}.cpc464-key--tall .cpc464-key__main{justify-content:center;padding:0;font-size:calc(var(--cpc-u) * 9)}.cpc464-key--cursor .cpc464-key__main{justify-content:center;padding:0;font-size:calc(var(--cpc-u) * 18);font-weight:500}.cpc464-key--cursor.cpc464-key--green .cpc464-key__main{font-size:calc(var(--cpc-u) * 7);font-weight:700}.cpc464-key--numpad .cpc464-key__main{padding-bottom:calc(var(--cpc-u) * 3);font-size:calc(var(--cpc-u) * 15)}.cpc664-keyboard{border-color:#23282c;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 20%),radial-gradient(ellipse at 48% -18%,#596066,#3e454a,#2a3035)}.cpc664-keyboard .cpc464-brand{color:#e3e0d5}.cpc664-tagline{display:flex;align-items:center;color:#c7cac8;font-size:calc(var(--cpc-u) * 7);font-weight:600;letter-spacing:calc(var(--cpc-u) * .45);text-shadow:0 1px #20252a}.cpc664-keyboard .cpc464-model{color:#cdd2d4}.cpc664-leds{display:flex;align-items:center;justify-content:space-between}.cpc664-leds i{width:calc(var(--cpc-u) * 5);height:calc(var(--cpc-u) * 5);border:1px solid #361519;border-radius:50%;background:#ef4b58;box-shadow:0 0 calc(var(--cpc-u) * 4) #ef4b58bf}.cpc664-key{--cpc-cap-top: #fbfaf0;--cpc-cap-mid: #dedfd8;--cpc-cap-bottom: #aeb3b1;border-color:#686f71;color:#20272d;box-shadow:inset calc(var(--cpc-u) * 1) calc(var(--cpc-u) * 1) 0 #ffffffc7,inset calc(var(--cpc-u) * -2) calc(var(--cpc-u) * -3) calc(var(--cpc-u) * 4) #343c3f40,0 calc(var(--cpc-u) * 2) calc(var(--cpc-u) * 2) #0000008c}.cpc664-key--blue{--cpc-cap-top: #b8d4fa;--cpc-cap-mid: #8fb5ec;--cpc-cap-bottom: #648dd1;border-color:#4c6085}.cpc664-key .cpc464-key__main,.cpc664-key .cpc464-key__shift,.cpc664-key .cpc464-key__fn{color:#20272d;text-shadow:0 1px rgba(255,255,255,.72)}.cpc664-key--cursor-up,.cpc664-key--cursor-left,.cpc664-key--cursor-right,.cpc664-key--cursor-down{z-index:1;border-radius:calc(var(--cpc-u) * 2)}.cpc664-key--copy{z-index:3;--cpc-cap-top: #fffef6;--cpc-cap-mid: #e6e6de;--cpc-cap-bottom: #b8bcba;border-color:#656c70}.cpc6128-keyboard{border-color:#171b1f;background:repeating-linear-gradient(90deg,#080a0cb3 0 calc(var(--cpc-u) * 4),#555b5e6b calc(var(--cpc-u) * 4) calc(var(--cpc-u) * 6)) top / 100% calc(var(--cpc-u) * 5) no-repeat,linear-gradient(180deg,rgba(255,255,255,.05),transparent 19%),radial-gradient(ellipse at 47% -20%,#53595e,#3a4045 54%,#272d31)}.cpc6128-keyboard .cpc464-brand{color:#deddd5;font-size:calc(var(--cpc-u) * 16)}.cpc6128-tagline{display:flex;align-items:center;color:#c8cac8;font-size:calc(var(--cpc-u) * 8);font-weight:650;letter-spacing:calc(var(--cpc-u) * .35);text-shadow:0 1px #202428}.cpc6128-key{--cpc-cap-top: #fbfaf1;--cpc-cap-mid: #deddd4;--cpc-cap-bottom: #a9aba7;border-color:#6b7070;border-radius:calc(var(--cpc-u) * 1.5);color:#262b2e;box-shadow:inset calc(var(--cpc-u) * 1) calc(var(--cpc-u) * 1) 0 #ffffffd1,inset calc(var(--cpc-u) * -2) calc(var(--cpc-u) * -3) calc(var(--cpc-u) * 4) #32373840,0 calc(var(--cpc-u) * 2) calc(var(--cpc-u) * 2) #00000094}.cpc6128-key .cpc464-key__main,.cpc6128-key .cpc464-key__shift{color:#252a2d;text-shadow:0 1px rgba(255,255,255,.76)}.cpc6128-key .cpc464-key__main{justify-content:center;padding:0;font-size:calc(var(--cpc-u) * 15)}.cpc6128-key:has(.cpc464-key__shift) .cpc464-key__main{justify-content:flex-end;padding-bottom:calc(var(--cpc-u) * 3)}.cpc6128-key .cpc464-key__fn{display:none}.cpc6128-key.cpc464-key--word .cpc464-key__main,.cpc6128-key.cpc464-key--numpad .cpc464-key__main{justify-content:center;padding:calc(var(--cpc-u) * 2);font-size:calc(var(--cpc-u) * 8)}.cpc6128-key--return .cpc464-key__main{inset:47.37% 0 0 15.15%}.cpc6128-key.cpc464-key--cursor .cpc464-key__main{font-size:calc(var(--cpc-u) * 17);font-weight:600}.cpc6128-key--copy.cpc464-key--cursor .cpc464-key__main{font-size:calc(var(--cpc-u) * 6.5)}.hx10-keyboard{--hx-u: var(--keyboard-scene-px);overflow:hidden;border:1px solid #151719;border-radius:calc(var(--hx-u) * 5);background:linear-gradient(180deg,rgba(255,255,255,.07),transparent 16%),linear-gradient(180deg,#3d4041,#303335 72%,#242729);box-shadow:inset 0 calc(var(--hx-u) * 3) calc(var(--hx-u) * 6) #ffffff0f,inset 0 calc(var(--hx-u) * -10) calc(var(--hx-u) * 18) #00000061,0 2px 5px #00000080;color:#e8e9e4;font-family:Arial,Helvetica,sans-serif}.hx10-deck{z-index:0;border:1px solid #747777;background:linear-gradient(155deg,rgba(255,255,255,.18),transparent 28%),linear-gradient(180deg,#c4c5c0,#aeb0ad 58%,#c9c9c4);box-shadow:inset 0 calc(var(--hx-u) * 2) calc(var(--hx-u) * 4) #ffffff8c,inset 0 calc(var(--hx-u) * -4) calc(var(--hx-u) * 8) #2e313233}.hx10-brand{display:flex;align-items:baseline;gap:calc(var(--hx-u) * 15);color:#e5e5df;font-size:calc(var(--hx-u) * 12);letter-spacing:calc(var(--hx-u) * .3);text-shadow:0 1px #17191a}.hx10-brand strong{font-size:calc(var(--hx-u) * 19);font-weight:900}.hx10-brand span{font-weight:700}.hx10-brand em{font-size:calc(var(--hx-u) * 23);font-weight:300;font-style:italic;-webkit-text-stroke:calc(var(--hx-u) * .8) #e5e5df;color:transparent}.hx10-vents{border-radius:calc(var(--hx-u) * 2);background:repeating-linear-gradient(90deg,#151819 0 calc(var(--hx-u) * 4),#4b4e4f calc(var(--hx-u) * 4) calc(var(--hx-u) * 9));box-shadow:inset 0 calc(var(--hx-u) * 4) calc(var(--hx-u) * 8) #0000008c,0 1px #ffffff14}.hx10-vents i{position:absolute;inset:calc(var(--hx-u) * 7);border-top:1px solid rgba(0,0,0,.5);border-bottom:1px solid rgba(255,255,255,.06)}.hx10-cartridge{display:flex;align-items:center;border:1px solid #292c2d;background:linear-gradient(180deg,#353839,#292c2d);box-shadow:inset 0 calc(var(--hx-u) * 3) calc(var(--hx-u) * 6) #00000080,0 1px #ffffff14}.hx10-cartridge i{width:calc(var(--hx-u) * 220);height:calc(var(--hx-u) * 46);margin-left:calc(var(--hx-u) * 18);border:calc(var(--hx-u) * 6) solid #16191a;background:linear-gradient(90deg,transparent 48%,rgba(0,0,0,.45) 49% 51%,transparent 52%),#292c2e;box-shadow:inset 0 calc(var(--hx-u) * 2) calc(var(--hx-u) * 5) #000000b3}.hx10-cartridge span{margin-left:calc(var(--hx-u) * 7);color:#242728;font-size:calc(var(--hx-u) * 7);font-weight:700;line-height:1.05}.hx10-power,.hx10-caps-led,.hx10-cursor-dimple{z-index:1;display:flex;align-items:center;justify-content:center}.hx10-power span{position:absolute;top:0;color:#888b88;font-size:calc(var(--hx-u) * 6);font-weight:700}.hx10-power i,.hx10-caps-led i{width:calc(var(--hx-u) * 9);height:calc(var(--hx-u) * 9);margin-top:calc(var(--hx-u) * 11);border:1px solid #606262;border-radius:50%;background:#6e141b;box-shadow:inset 0 1px #fff6,0 0 calc(var(--hx-u) * 3) #690f1880}.hx10-caps-led i{margin:0;background:#337c60;box-shadow:inset 0 1px #ffffff6b,0 0 calc(var(--hx-u) * 3) #266b4e73}.hx10-cursor-dimple i{width:calc(var(--hx-u) * 15);height:calc(var(--hx-u) * 15);border:1px solid #858886;border-radius:50%;background:#b6b7b3;box-shadow:inset 0 calc(var(--hx-u) * 2) calc(var(--hx-u) * 3) #0003}.hx10-msx-badge{display:flex;align-items:center;justify-content:center;gap:calc(var(--hx-u) * 5);color:#292c2d}.hx10-msx-badge strong{padding:0 calc(var(--hx-u) * 8);background:#e6e7e2;font-size:calc(var(--hx-u) * 21);font-style:italic;line-height:1;letter-spacing:calc(var(--hx-u) * -1.8)}.hx10-msx-badge i{width:calc(var(--hx-u) * 34);height:calc(var(--hx-u) * 15);background:repeating-linear-gradient(180deg,#d8d9d4 0 calc(var(--hx-u) * 1),transparent calc(var(--hx-u) * 1) calc(var(--hx-u) * 3))}.hx10-key{z-index:2;--hx-cap-top: #f6f5ec;--hx-cap-mid: #deded5;--hx-cap-bottom: #aaaead;overflow:hidden;border:1px solid #676c6d;border-radius:calc(var(--hx-u) * 2);background:linear-gradient(135deg,rgba(255,255,255,.48),transparent 24%),linear-gradient(180deg,var(--hx-cap-top) 0%,var(--hx-cap-mid) 53%,var(--hx-cap-bottom) 100%);box-shadow:inset calc(var(--hx-u) * 2) calc(var(--hx-u) * 2) 0 #ffffff80,inset calc(var(--hx-u) * -3) calc(var(--hx-u) * -4) calc(var(--hx-u) * 5) #2d313247,0 calc(var(--hx-u) * 3) calc(var(--hx-u) * 2) #00000094;color:#303538;cursor:pointer;user-select:none;touch-action:none;transition:filter .06s ease,transform .05s ease}.hx10-key:hover{filter:brightness(1.1)}.hx10-key.pressed{filter:brightness(.76);transform:translateY(calc(var(--hx-u) * 1.5))}.hx10-key--dark{--hx-cap-top: #555a5c;--hx-cap-mid: #3d4244;--hx-cap-bottom: #252a2c;border-color:#202426;color:#f2f1ea}.hx10-key--red{--hx-cap-top: #e75b4f;--hx-cap-mid: #c73d35;--hx-cap-bottom: #932923;border-color:#67251f;color:#fff8ef}.hx10-key--green{--hx-cap-top: #61ad70;--hx-cap-mid: #398650;--hx-cap-bottom: #24623b;border-color:#245137;color:#fffdf3}.hx10-key--blue{--hx-cap-top: #5d7fd0;--hx-cap-mid: #385eae;--hx-cap-bottom: #29457e;border-color:#243b69;color:#fff}.hx10-key__main,.hx10-key__shift,.hx10-key__aux{position:absolute;pointer-events:none;text-shadow:0 1px rgba(255,255,255,.65)}.hx10-key--dark .hx10-key__main,.hx10-key--dark .hx10-key__shift,.hx10-key--dark .hx10-key__aux,.hx10-key--red .hx10-key__main,.hx10-key--green .hx10-key__main,.hx10-key--blue .hx10-key__main{text-shadow:0 1px rgba(0,0,0,.6)}.hx10-key__main{inset:0;display:flex;align-items:center;justify-content:center;font-size:calc(var(--hx-u) * 15);font-weight:500}.hx10-key--shifted .hx10-key__main{align-items:flex-end;padding-bottom:calc(var(--hx-u) * 4);font-size:calc(var(--hx-u) * 12)}.hx10-key__shift{top:calc(var(--hx-u) * 3);left:0;right:0;text-align:center;font-size:calc(var(--hx-u) * 11);font-weight:500}.hx10-key--word .hx10-key__main{font-size:calc(var(--hx-u) * 9);font-weight:700}.hx10-key--dual-function .hx10-key__main{inset:auto auto calc(var(--hx-u) * 7) calc(var(--hx-u) * 16);font-size:calc(var(--hx-u) * 11)}.hx10-key__aux{top:calc(var(--hx-u) * 5);right:calc(var(--hx-u) * 14);font-size:calc(var(--hx-u) * 12);font-weight:700}.hx10-key--edit .hx10-key__main{font-size:calc(var(--hx-u) * 7)}.hx10-key--cursor .hx10-key__main{font-size:calc(var(--hx-u) * 24);font-weight:700}.hx10-key--return .hx10-key__main{inset:0 0 auto;height:calc(var(--hx-u) * 36);font-size:calc(var(--hx-u) * 9)}.hx10-key--space .hx10-key__main{display:none}
