@font-face{font-family:Pixel;src:url('/runtime/JetBrainsMono-ExtraBold.ttf') format('truetype');font-weight:800;font-display:swap}:root{color-scheme:dark;--black:#000;--white:#f5f5f5;--muted:#898989;--purple:#50006d;--green:#009b00;--red:#ef1515}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#000;color:var(--white);font-family:Pixel,'Courier New',monospace;font-weight:800}body{min-height:100vh;background-image:linear-gradient(to right,transparent 0 31px,var(--purple) 32px 34px,transparent 35px),linear-gradient(to bottom,transparent 0 62px,var(--purple) 63px 65px,transparent 66px);background-size:123px 123px;background-position:0 0;image-rendering:pixelated}.layout{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;padding:24px 28px 18px}.sidebar{display:flex;flex-direction:column;min-height:calc(100vh - 42px);gap:14px}.uploads{display:grid;gap:10px;margin-bottom:30px}.button{height:43px;padding:0 18px;border:3px solid var(--white);border-radius:0;background:#000;color:var(--white);font:800 15px Pixel,'Courier New',monospace;cursor:pointer;box-shadow:none}.button:hover:not(:disabled){background:#141414;transform:translateY(-1px)}.button:disabled{opacity:.36;cursor:not-allowed}.upload{height:62px;border-color:var(--green);font-size:17px}.upload:hover:not(:disabled){border-color:#2cff2c;color:#fff}.side-section{display:grid;gap:8px}.section-toggle{height:62px;border:3px solid var(--white);background:#000;color:var(--white);text-align:left;padding:0 15px;font:800 20px Pixel,'Courier New',monospace;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.section-toggle span{font-size:18px}.side-list{display:grid;gap:5px}.side-list.collapsed{display:none}.library-item,.save-row{border:1px solid #444;background:#050505;color:#ddd;padding:9px 10px;font:800 11px Pixel,'Courier New',monospace;text-align:left;overflow-wrap:anywhere}.library-item{cursor:pointer}.library-item:hover,.library-item.active{border-color:var(--green);color:#fff}.library-item small{display:block;color:var(--muted);font:9px Pixel,'Courier New',monospace;margin-top:5px}.save-row{display:flex;align-items:center;gap:5px}.save-name{min-width:0;flex:1;overflow-wrap:anywhere}.save-row button{border:0;background:none;color:#ddd;font:9px Pixel,'Courier New',monospace;cursor:pointer;padding:3px}.save-row button:hover{color:var(--green)}.empty{padding:8px 2px;color:var(--muted);font:10px Pixel,'Courier New',monospace;line-height:1.8}.debug{margin-top:auto;border:3px solid var(--white);padding:12px 14px}.debug summary{font-size:15px;cursor:pointer}.debug pre{max-height:190px;overflow:auto;white-space:pre-wrap;color:#aaa;font:9px/1.7 Pixel,'Courier New',monospace}.sidebar-foot{color:#777;font-size:8px;letter-spacing:.08em}.workspace{min-width:0;display:flex;flex-direction:column}.toolbar{display:flex;align-items:end;gap:12px;min-height:145px;padding:0 0 18px}.toolbar .button{min-width:153px}.toolbar-spacer{flex:1}.toolbar .stop{border-color:var(--red);min-width:153px}.toolbar .stop:hover:not(:disabled){background:#240000}.play-row{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:16px;align-items:start}.game-frame{position:relative;aspect-ratio:16/8.45;width:100%;min-height:310px;border:5px solid var(--green);background:#000;display:grid;place-items:center;overflow:hidden}.game-frame:fullscreen{width:100vw;height:100vh;max-height:none;aspect-ratio:auto;border:0}.game-frame:fullscreen canvas{width:100%;height:100%;max-height:none}.game-frame:fullscreen .overlay{inset:0}.game-frame:fullscreen canvas{object-fit:contain}canvas{width:100%;height:100%;display:block;background:#000;outline:0;image-rendering:pixelated;object-fit:contain}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;text-align:center;padding:18px;pointer-events:none}.overlay strong{font-size:18px}.overlay span{color:#777;font-size:12px}.game-info{padding-top:5px;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.fps{font-size:13px;margin:0 0 28px}.info-title{font-size:12px;margin-bottom:12px;color:#ddd}.game-info dl{margin:0}.game-info dt{font-size:9px;color:#777;text-transform:uppercase;letter-spacing:.06em;margin-top:12px}.game-info dd{font-size:11px;margin:2px 0 0}.lower{display:flex;justify-content:space-between;gap:12px;margin-top:12px;color:#aaa;font-size:10px}.key-hint{color:#666;text-align:right}.button:focus-visible,.section-toggle:focus-visible,.library-item:focus-visible{outline:2px solid var(--green);outline-offset:3px}@media(max-width:900px){.layout{grid-template-columns:220px minmax(0,1fr);gap:19px;padding:16px}.play-row{grid-template-columns:minmax(0,1fr) 190px}.toolbar{min-height:118px}.toolbar .button{min-width:auto}.button{padding:0 12px;font-size:12px}.upload{font-size:15px}.section-toggle{font-size:17px}}@media(max-width:650px){body{background-size:82px 82px}.layout{display:flex;flex-direction:column;padding:12px;gap:18px}.sidebar{min-height:0;display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:8px}.uploads{grid-column:1/-1;grid-template-columns:1fr 1fr;margin:0 0 4px}.upload{height:48px;font-size:12px}.side-section{gap:5px}.section-toggle{height:46px;padding:0 9px;font-size:13px}.debug{grid-column:1/-1;margin-top:2px;padding:8px 10px}.sidebar-foot{display:none}.workspace{width:100%}.toolbar{min-height:0;padding:0 0 9px;gap:7px}.toolbar .button{height:38px;flex:1;padding:0 5px;font-size:10px}.toolbar .stop{flex:1.2}.play-row{grid-template-columns:1fr}.game-frame{min-height:220px;border-width:4px}.game-info{display:grid;grid-template-columns:100px 1fr;gap:2px 12px;padding:6px 3px}.fps{grid-row:1/3;margin:3px 0}.info-title{margin:3px 0}.game-info dl{grid-column:1/-1;display:grid;grid-template-columns:75px 1fr;gap:4px 8px}.game-info dt{margin:4px 0 0}.game-info dd{margin:4px 0 0}.lower{font-size:8px}.overlay strong{font-size:12px}.overlay span{font-size:9px}}

/* Keep the renderer flush with its frame and open debug output sideways. */
.game-frame{overflow:hidden;isolation:isolate}
.game-frame canvas{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
.overlay.hidden{display:none}
.debug{position:fixed;z-index:20;left:28px;bottom:18px;width:260px;margin:0;background:#000;border:3px solid var(--white);box-shadow:0 0 0 1px #000}
.debug[open]{width:min(460px,calc(100vw - 40px));max-height:min(62vh,520px);overflow:auto}
.debug summary{list-style:none}.debug summary::-webkit-details-marker{display:none}.debug summary:before{content:'› ';display:inline-block;transition:transform .12s}.debug[open] summary:before{transform:rotate(90deg)}
@media(max-width:650px){.debug{left:12px;bottom:12px;width:min(260px,calc(100vw - 24px))}.debug[open]{width:min(460px,calc(100vw - 24px));max-height:55vh}}


.debug[open] pre{max-height:min(48vh,430px)}@media(max-width:650px){.debug[open] pre{max-height:40vh}}

.storage-box{border:1px solid #333;background:#050505;padding:10px}.storage-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.05em}.storage-refresh{border:0;background:none;color:#aaa;font:16px Pixel,'Courier New',monospace;cursor:pointer;padding:0 3px}.storage-refresh:hover{color:#fff}#storage-meter{display:block;width:100%;height:8px;margin:8px 0 5px;appearance:none;background:#222;border:0}#storage-meter::-webkit-progress-bar{background:#222}#storage-meter::-webkit-progress-value{background:var(--green)}#storage-meter::-moz-progress-bar{background:var(--green)}#storage-meter.near-full::-webkit-progress-value,#storage-meter.near-full::-moz-progress-bar{background:var(--red)}.storage-text{font-size:8px;color:#999;line-height:1.7}.clear-button{width:100%;height:34px;margin-top:8px;padding:0 5px;border-color:#803030;font-size:9px}.clear-button:hover:not(:disabled){border-color:var(--red);color:#ff7b7b}
@media(max-width:650px){.storage-box{grid-column:1/-1}.storage-text{font-size:9px}}
