:root{--screen-aspect:1.3214;--screen-width:min(96vw, calc(72vh * var(--screen-aspect)));--accent:#7c70da}html,body{color:#888;background:#111;height:100%;margin:0;font-family:system-ui,sans-serif}main{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:100%;padding:1rem 0;display:flex}.screen-frame{justify-content:center;align-items:center;display:flex;position:relative}#screen{width:var(--screen-width);aspect-ratio:var(--screen-aspect);image-rendering:pixelated;outline:none;display:block}.screen-frame:fullscreen{background:#000}.screen-frame:fullscreen #screen{width:min(100vw, calc(100vh * var(--screen-aspect)))}.paused-label{color:#fff;letter-spacing:.1em;pointer-events:none;background:#000000b3;border-radius:6px;margin:0;padding:.4rem 1rem;font-size:1.2rem;display:none;position:absolute}.screen-frame.paused .paused-label{display:block}#status{margin:0;font-size:.85rem}.site-links{gap:1.25rem;font-size:.85rem;display:flex}.site-links a{color:#a9a2ee;text-decoration:none}.site-links a:hover,.site-links a:focus-visible,.emulator-links a:hover,.emulator-links a:focus-visible{text-decoration:underline}.emulator-links{flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;font-size:.85rem;display:flex}.emulator-links a{color:#a9a2ee;text-decoration:none}.emulator-links strong{color:#ddd;font-weight:600}.toolbar{width:var(--screen-width);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1rem;display:flex}.toolbar-group{flex-wrap:wrap;align-items:center;gap:.4rem;display:inline-flex}.toolbar button,.toolbar select{color:#eee;font:inherit;cursor:pointer;background:#2a2a2a;border:1px solid #555;border-radius:6px;padding:.35rem .75rem;font-size:.85rem}.toolbar select{max-width:16rem;padding:.35rem .4rem}.toolbar button:hover,.toolbar button:focus-visible{border-color:var(--accent);outline:none}.toolbar button:disabled,.toolbar select:disabled{opacity:.45;cursor:default}.toolbar-message{color:#9ad284;font-size:.85rem}.toolbar-message.error{color:#ff8a80}.controls{width:var(--screen-width);box-sizing:border-box;color:#bbb;font-size:.9rem}.controls-row{flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;display:flex}.controls label,.joystick-port{align-items:center;gap:.4rem;display:inline-flex}.controls-row+.controls-row{margin-top:.6rem}.joysticks{align-items:center}.joystick-port strong{color:#ddd;font-weight:600}.controls select,.controls button{color:#eee;font:inherit;background:#2a2a2a;border:1px solid #555;border-radius:5px;padding:.2rem .4rem}.controls input[type=range]{width:6rem;accent-color:var(--accent)}.sound-hint{color:#c9a227}.gamepad-status{color:#9ad284;text-align:center;margin:.5rem 0 0;font-size:.8rem}.controls-hint{color:#777;text-align:center;margin:.5rem 0 0;font-size:.8rem}.disk-panel{width:var(--screen-width);box-sizing:border-box;color:#ccc;text-align:center;background:#1a1a1a;border:2px dashed #555;border-radius:10px;padding:1rem 1.25rem;transition:border-color .15s,background-color .15s}.disk-panel p{margin:0}.disk-empty,.disk-loaded{flex-direction:column;align-items:center;gap:.6rem;display:none}.disk-panel[data-state=empty] .disk-empty,.disk-panel[data-state=loaded] .disk-loaded{display:flex}.disk-panel[data-state=loaded]{border-style:solid;border-color:#3d3d3d}.disk-title{color:#eee;font-size:1.05rem}.disk-file{color:#888}.autostart{align-items:center;gap:.5rem;display:inline-flex}.disk-hint{color:#999}.disk-hint code{color:#fff;background:#2a2a2a;border-radius:4px;padding:.05rem .35rem}.disk-tip{color:#999;font-size:.8rem}.disk-actions{gap:.5rem;display:flex}.disk-panel button{color:#eee;font:inherit;cursor:pointer;background:#2a2a2a;border:1px solid #555;border-radius:6px;padding:.45rem 1rem;font-size:.9rem}.disk-panel button:hover,.disk-panel button:focus-visible{border-color:var(--accent);outline:none}.disk-drop-hint{color:#fff;font-size:1.05rem;display:none}.disk-panel.drag-over{border-style:solid;border-color:var(--accent);background:#24213d}.disk-panel.drag-over .disk-empty,.disk-panel.drag-over .disk-loaded{display:none}.disk-panel.drag-over .disk-drop-hint{display:block}.disk-drive{color:#aaa;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1.25rem;margin-top:.75rem;font-size:.85rem;display:flex}.disk-drive label{align-items:center;gap:.4rem;display:inline-flex}.disk-drive select{color:#eee;font:inherit;background:#2a2a2a;border:1px solid #555;border-radius:5px;padding:.2rem .4rem}.disk-saved{color:#9ad284;background:#2b3d24;border-radius:4px;margin-left:.4rem;padding:.05rem .4rem;font-size:.8rem}.save-disks{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.save-disk-list:not([hidden]){gap:.4rem;display:inline-flex}.save-disks select,.bundled-games select{color:#eee;font:inherit;background:#2a2a2a;border:1px solid #555;border-radius:6px;padding:.35rem .4rem;font-size:.85rem}.save-hint{color:#c9a227;font-size:.8rem;display:none;margin-top:.5rem!important}.disk-panel[data-drive-mode=fast] .save-hint{display:block}.disk-panel.drag-over .save-disks,.disk-panel.drag-over .save-hint{display:none}.zip-files:not([hidden]),.bundled-games-row{color:#aaa;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;font-size:.85rem;display:flex;margin-top:.75rem!important}.game-info{color:#999;font-size:.8rem;margin-top:.35rem!important}.game-info a{color:#a9a2ee}.zip-buttons{flex-wrap:wrap;gap:.4rem;display:inline-flex}.zip-buttons button.current{border-color:var(--accent)}.disk-panel.drag-over .zip-files,.disk-panel.drag-over .bundled-games{display:none}.cart-slot{color:#eee;justify-content:center;align-items:center;gap:.6rem;display:flex}.disk-panel .cart-slot:not([hidden]){margin-top:.75rem}.cart-slot[hidden],.disk-panel.drag-over .cart-slot{display:none}.cart-name{color:#9ad284}.drive-led{background:#3a1010;border-radius:50%;width:.7rem;height:.7rem;box-shadow:inset 0 0 2px #000}.drive-led.on{background:#ff3b30;box-shadow:0 0 6px #ff3b30}.disk-panel.drag-over .disk-drive,.disk-panel[data-drive-mode=accurate] .disk-tip{display:none}.disk-message:not(:empty){color:#ff8a80;margin-top:.6rem;font-size:.9rem}.disk-note:not(:empty){color:#c9a227;margin-top:.6rem;font-size:.85rem}
