:root{--text:#5f6470;--text-h:#151821;--bg:#eef1f3;--panel:#fff;--border:#d9dde4;--accent:#2f5f46;--button-muted:#f2f4f6;--focus:#2f5f4642;--warning-bg:#fff7ed;--warning-border:#fed7aa;--warning-text:#9a3412;--console:#303640;--screen-frame:#20242c;--shadow:#0f172a1f 0 18px 34px -18px, #0f172a14 0 10px 22px -16px;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font:16px/1.5 var(--sans);letter-spacing:0;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}button,input{font:inherit}#root{min-height:100svh}h1,h2,p{margin:0}h1,h2{color:var(--text-h);letter-spacing:0;font-weight:820}h1{font-size:clamp(2.6rem,7vw,5.1rem);line-height:.92}h2{font-size:1.08rem;line-height:1.2}@media (prefers-color-scheme:dark){:root{--text:#aeb6c2;--text-h:#f5f7fb;--bg:#111418;--panel:#181d24;--border:#2b333e;--accent:#74c69d;--button-muted:#222a34;--focus:#74c69d47;--warning-bg:#3c2616;--warning-border:#7c4a1f;--warning-text:#fdba74;--console:#262d36;--screen-frame:#101317;--shadow:#00000057 0 18px 34px -18px, #00000047 0 10px 22px -16px}}.emulator-shell{width:min(1180px,100% - 28px);margin:0 auto;padding:26px 0 42px}.emulator-topbar{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.disclaimer-banner{border:1px solid var(--warning-border);background:var(--warning-bg);color:var(--warning-text);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;padding:16px;display:flex}.disclaimer-copy{gap:8px;min-width:0;max-width:920px;display:grid}.disclaimer-copy strong{color:var(--text-h);letter-spacing:0;text-transform:uppercase;font-size:.92rem;font-weight:800}.disclaimer-copy p{margin:0}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:.8rem;font-weight:800}.actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}button,.file-button,.system-picker select{background:var(--accent);color:#fff;min-height:42px;font:800 .92rem/1 var(--sans);cursor:pointer;border:0;border-radius:7px;justify-content:center;align-items:center;padding:0 16px;transition:transform .16s,box-shadow .16s;display:inline-flex}button:hover,.file-button:hover,.system-picker select:hover{box-shadow:var(--shadow);transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.55}button:disabled:hover{box-shadow:none;transform:none}button:focus-visible,.file-button:focus-within,.system-picker select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button.secondary{background:var(--button-muted);color:var(--text-h);border:1px solid var(--border)}.file-button input{clip:rect(0, 0, 0, 0);clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.system-picker{color:var(--text);gap:5px;font-size:.76rem;font-weight:800;display:grid}.system-picker select{appearance:none;border:1px solid var(--border);background:linear-gradient(45deg, transparent 50%, currentColor 50%) right 17px center / 6px 6px no-repeat, var(--button-muted);max-width:250px;color:var(--text-h);padding-right:34px}.status-strip{border:1px solid var(--border);background:var(--border);border-radius:8px;grid-template-columns:minmax(220px,1.6fr) minmax(160px,1fr) 90px minmax(180px,1.1fr);gap:1px;margin-top:20px;display:grid;overflow:hidden}.status-strip span{background:var(--panel);min-height:52px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;padding:14px;overflow:hidden}.support-alert{border:1px solid var(--warning-border);background:var(--warning-bg);color:var(--warning-text);text-align:left;border-radius:8px;margin:18px 0 0;padding:12px 14px}.console-layout{grid-template-columns:minmax(320px,1fr) minmax(320px,.55fr);align-items:start;gap:18px;margin-top:20px;display:grid}.console-layout-maximized{grid-template-columns:1fr}.screen-bezel{box-sizing:border-box;border:1px solid var(--border);background:linear-gradient(145deg, #ffffff14, transparent 34%), var(--console);height:clamp(360px,58svh,620px);min-height:0;box-shadow:var(--shadow);border-radius:8px;place-items:center;padding:34px;display:grid;position:relative}.screen-bezel-maximized{height:calc(100svh - 190px);padding:18px}.screen-bezel:fullscreen{border:0;border-radius:0;width:100vw;height:100vh;padding:24px}.emulator-player{min-height:0;overflow:hidden}.emulator-player:empty:before{content:"Load a ROM to start";aspect-ratio:4/3;border:10px solid var(--screen-frame);color:#dbe4ef;background:#141820;border-radius:6px;place-items:center;width:min(100%,720px);font-weight:800;display:grid}.emulator-player .ejs_game,.emulator-player .ejs_canvas_parent,.emulator-player .ejs_canvas{min-height:0;width:100%!important;height:100%!important}.emulator-player .ejs_canvas{display:block}:is(.screen-bezel:fullscreen .ejs_parent,.screen-bezel:fullscreen .ejs_game){width:100vw!important;height:100vh!important}.side-panel{gap:14px;display:grid}.side-panel-hidden{display:none}.panel{border:1px solid var(--border);background:var(--panel);border-radius:8px;min-width:0;padding:20px}.panel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.panel-heading h2{margin:0}.panel-heading span{color:var(--text);font-size:.84rem;font-weight:800}.cartridge-list{gap:12px;margin:0;display:grid}.cartridge-list div{border-bottom:1px solid var(--border);gap:4px;padding-bottom:10px;display:grid}.cartridge-list div:last-child{border-bottom:0;padding-bottom:0}.cartridge-list dt{color:var(--text);font-size:.8rem;font-weight:800}.cartridge-list dd{color:var(--text-h);overflow-wrap:anywhere;margin:0}.controller-list{gap:10px;display:grid}.controller-list div{border:1px solid var(--border);background:var(--button-muted);border-radius:8px;gap:5px;min-height:58px;padding:12px;display:grid}.controller-list strong{color:var(--text-h)}.controller-list span,.runtime-copy{color:var(--text);overflow-wrap:anywhere}.runtime-copy{margin:0}@media (width<=880px){.emulator-topbar,.console-layout{grid-template-columns:1fr}.emulator-topbar{flex-direction:column;align-items:stretch}.disclaimer-banner{flex-direction:column}.actions{justify-content:stretch}.actions button,.file-button,.system-picker,.system-picker select{flex:1;max-width:none}.status-strip{grid-template-columns:1fr}.screen-bezel{height:clamp(260px,56svh,460px);padding:18px}.screen-bezel-maximized{height:calc(100svh - 170px)}}@media (width<=520px){.emulator-shell{width:min(100% - 18px,1180px);padding-top:16px}.emulator-topbar h1{font-size:2.1rem}.actions,.controller-list{grid-template-columns:1fr;display:grid}}
