.emulator-container.svelte-1c3eptb{--gb-border:var(--border-width) solid var(--border,#000);--gb-shadow-widget:4px 4px 0 0 var(--border,#111216),var(--shadow-inset-subtle);--gb-shadow-control:2px 2px 0 0 var(--border,#111216),var(--shadow-inset-subtle);--gb-shadow-control-hover:1px 1px 0 0 var(--border,#111216),var(--shadow-inset-subtle);--gb-shadow-control-active:0 0 0 0 var(--border,#111216),var(--shadow-inset-subtle);--gb-gap-xs:clamp(.375rem,.75vw,.625rem);--gb-border-top-mobile:clamp(2px,.2vw,3px) solid var(--border,#000);--gb-label-tracking:.06em;--gb-screen-width:160;--gb-screen-height:144;--gb-control-ratio:1/1;background:0 0;min-height:100%}body.emulator-fullscreen-overlay{overflow:hidden}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb{padding:0}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .bottom-section:where(.svelte-1c3eptb),.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .desktop-key-mappings:where(.svelte-1c3eptb),.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .site-page-header,.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .emulator-controls-top:where(.svelte-1c3eptb),.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .volume-control:where(.svelte-1c3eptb){display:none}.emulator-container.svelte-1c3eptb .brutal-button:where(.svelte-1c3eptb){color:var(--emulator-button-text,var(--route-text,#111216))}.source-link.svelte-1c3eptb{background:var(--surface-2);color:var(--surface-2-text,var(--route-text,#111216));align-self:center}html.dark .emulator-container.svelte-1c3eptb .source-link:where(.svelte-1c3eptb){color:var(--surface-2-text,var(--route-text,#111216))}.main-content.svelte-1c3eptb{max-width:var(--page-max-width);flex-direction:column;gap:clamp(1rem,2vw,1.5rem);margin:0 auto;display:flex}.emulator-row.svelte-1c3eptb{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(1rem,2vw,1.5rem);display:grid}.emulator-row.svelte-1c3eptb>:where(.svelte-1c3eptb){min-width:0}.emulator-section.svelte-1c3eptb{flex-direction:column;gap:2rem;display:flex}.bottom-section.svelte-1c3eptb{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(1rem,2vw,1.5rem);display:grid}.controls-section.svelte-1c3eptb{flex-direction:column;gap:2rem;display:flex}.desktop-key-mappings.svelte-1c3eptb{display:none}.mobile-controls.svelte-1c3eptb{border-top:var(--gb-border-top-mobile);--mobile-btn-size:min(26vw,18vh);--mobile-control-gap:clamp(.75rem,1.5vw,1.25rem);margin-top:clamp(.5rem,1vw,1rem);padding-top:clamp(.5rem,1vw,1rem);display:none}.mobile-controls.svelte-1c3eptb .controls-grid:where(.svelte-1c3eptb){align-items:center;gap:var(--mobile-control-gap);grid-template-columns:repeat(auto-fit,minmax(min(45vw,60vh),1fr));justify-items:center;display:grid}.mobile-controls.svelte-1c3eptb .control-panel:where(.svelte-1c3eptb){align-items:stretch;gap:var(--mobile-control-gap);flex-direction:column;width:100%;display:flex}.mobile-controls.svelte-1c3eptb .dpad:where(.svelte-1c3eptb){aspect-ratio:var(--gb-control-ratio);align-items:stretch;gap:calc(var(--mobile-control-gap)/2);width:min(calc(var(--mobile-btn-size)*3 + var(--mobile-control-gap)),100%);--control-btn-size:var(--mobile-btn-size);grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);justify-items:stretch;display:grid}.mobile-controls.svelte-1c3eptb .dpad-middle:where(.svelte-1c3eptb){display:contents}.mobile-controls.svelte-1c3eptb .dpad:where(.svelte-1c3eptb) .control-btn:where(.svelte-1c3eptb){border-radius:2.5vmin;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;display:flex}.mobile-controls.svelte-1c3eptb .buttons:where(.svelte-1c3eptb) .control-btn:where(.svelte-1c3eptb),.mobile-controls.svelte-1c3eptb .system-buttons:where(.svelte-1c3eptb) .control-btn:where(.svelte-1c3eptb){aspect-ratio:var(--gb-control-ratio);border-radius:50%;flex:40%;justify-content:center;align-items:center;width:auto;min-width:0;max-width:min(40vw,22vh);height:auto;min-height:0;display:flex}.mobile-controls.svelte-1c3eptb .control-btn.center:where(.svelte-1c3eptb){visibility:hidden;grid-area:2/2}.mobile-controls.svelte-1c3eptb .control-btn.down:where(.svelte-1c3eptb),.mobile-controls.svelte-1c3eptb .control-btn.left:where(.svelte-1c3eptb),.mobile-controls.svelte-1c3eptb .control-btn.right:where(.svelte-1c3eptb),.mobile-controls.svelte-1c3eptb .control-btn.up:where(.svelte-1c3eptb){font-weight:400}.mobile-controls.svelte-1c3eptb .control-btn.up:where(.svelte-1c3eptb){grid-area:1/2}.mobile-controls.svelte-1c3eptb .control-btn.down:where(.svelte-1c3eptb){grid-area:3/2}.mobile-controls.svelte-1c3eptb .control-btn.left:where(.svelte-1c3eptb){grid-area:2/1}.mobile-controls.svelte-1c3eptb .control-btn.right:where(.svelte-1c3eptb){grid-area:2/3}.mobile-controls.svelte-1c3eptb .buttons:where(.svelte-1c3eptb),.mobile-controls.svelte-1c3eptb .system-buttons:where(.svelte-1c3eptb){gap:var(--mobile-control-gap);flex-wrap:wrap;justify-content:center;width:100%;display:flex}.controls-widget.brutal-panel.svelte-1c3eptb,.emulator-widget.brutal-panel.svelte-1c3eptb,.info-widget.brutal-panel.svelte-1c3eptb{--widget-bg:var(--surface-1);--widget-header-bg:var(--surface-2);--widget-header-text:var(--surface-2-text,var(--route-text,#111216));background:var(--widget-bg);box-shadow:var(--gb-shadow-widget);flex-direction:column;transition:transform 80ms,box-shadow 80ms;display:flex;overflow:hidden}.controls-widget.brutal-panel.svelte-1c3eptb,.info-widget.brutal-panel.svelte-1c3eptb{min-height:clamp(20rem,40vw,31.25rem)}.key-mappings-widget.svelte-1c3eptb{flex-direction:column;width:100%;min-width:0;max-width:100%;height:100%;display:flex;overflow:visible!important}.key-mappings-widget.svelte-1c3eptb .widget-content:where(.svelte-1c3eptb){flex-direction:column;flex:1;padding:clamp(1rem,2vw,1.5rem) clamp(1rem,2vw,1.5rem) clamp(.75rem,1.5vw,1rem);display:flex;position:relative;overflow:visible!important}.widget-header.svelte-1c3eptb{background:var(--widget-header-bg);border-bottom:var(--gb-border);--brutal-button-bg:var(--surface-1);--brutal-link-bg:var(--surface-1);justify-content:space-between;align-items:center;gap:.75rem;padding:clamp(.75rem,1vw,1rem) clamp(.9rem,1.2vw,1.25rem);display:flex}.widget-title.svelte-1c3eptb{color:var(--widget-header-text);letter-spacing:var(--gb-label-tracking);text-transform:uppercase;margin:0;font-size:clamp(1rem,2vw,1.25rem);font-weight:700}.widget-content.svelte-1c3eptb{flex-direction:column;flex:1;gap:clamp(.5rem,1vw,1rem);padding:clamp(1rem,2vw,2rem);display:flex}.emulator-widget.svelte-1c3eptb .widget-content:where(.svelte-1c3eptb){--gb-control-gap:clamp(.75rem,1vw,1rem);gap:var(--gb-control-gap);padding:clamp(1rem,2vw,1.5rem)}.emulator-widget.svelte-1c3eptb .widget-content:where(.svelte-1c3eptb) :where(.svelte-1c3eptb){overflow-wrap:anywhere}.emulator-controls-top.svelte-1c3eptb{gap:var(--gb-control-gap);flex-direction:column;display:flex}.emulator-buttons.svelte-1c3eptb{flex-wrap:wrap;align-items:center}.emulator-buttons.svelte-1c3eptb,.save-controls.svelte-1c3eptb{gap:var(--gb-control-gap);display:flex}.save-controls.svelte-1c3eptb{flex-wrap:nowrap;flex:16.25rem;order:2;align-items:stretch;min-width:0}.save-controls.svelte-1c3eptb>:where(.svelte-1c3eptb){flex:7.5rem;min-width:0}.emulator-buttons.svelte-1c3eptb>:where(.svelte-1c3eptb){flex:13.75rem;min-width:0}.rom-dropdown-container.svelte-1c3eptb,.save-controls.svelte-1c3eptb{flex:calc(50% - .5rem);min-width:13.75rem;max-width:calc(50% - .5rem)}.emulator-status-row.svelte-1c3eptb{align-items:center;gap:var(--gb-control-gap);width:100%;min-width:0;display:flex}.volume-control.svelte-1c3eptb{background:var(--surface-2);border:var(--gb-border);box-shadow:var(--gb-shadow-control);color:var(--surface-2-text,var(--route-text,#111216));letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.6875rem;font-weight:700;display:flex}.volume-label.svelte-1c3eptb{flex-shrink:0}.volume-slider-track.svelte-1c3eptb{flex:1}.volume-slider-track.svelte-1c3eptb input[type=range]:where(.svelte-1c3eptb){appearance:none;background:var(--surface-1);background-image:linear-gradient(90deg,var(--primary) var(--volume-percent,100%),transparent var(--volume-percent,100%));border:3px solid var(--border,#000);box-shadow:var(--gb-shadow-control);box-sizing:border-box;border-radius:999px;outline:none;width:100%;height:.875rem;margin:0;padding:0}.volume-slider-track.svelte-1c3eptb input[type=range]:where(.svelte-1c3eptb):focus-visible{outline:2px solid var(--accent,#4ecdc4);outline-offset:1px}.volume-slider-track input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--primary);border:var(--gb-border);box-shadow:var(--gb-shadow-control);border-radius:50%;width:1.125rem;height:1.125rem;transition:transform 80ms,box-shadow 80ms}.volume-slider-track input[type=range]::-webkit-slider-thumb:active{box-shadow:var(--gb-shadow-control-hover);transform:translate(2px,2px)}.volume-slider-track.svelte-1c3eptb input[type=range]:where(.svelte-1c3eptb)::-moz-range-thumb{background:var(--primary);border:var(--gb-border);box-shadow:var(--gb-shadow-control);border-radius:50%;width:1.125rem;height:1.125rem;transition:transform 80ms,box-shadow 80ms}.volume-slider-track.svelte-1c3eptb input[type=range]:where(.svelte-1c3eptb)::-moz-range-thumb:active{box-shadow:var(--gb-shadow-control-hover);transform:translate(2px,2px)}.volume-value.svelte-1c3eptb{letter-spacing:.15em;text-align:right;flex-shrink:0;min-width:2.5rem;font-size:.6875rem}.brutal-dropdown-item.svelte-1c3eptb{box-sizing:border-box;font-family:var(--font-sans);letter-spacing:var(--gb-label-tracking);text-align:left;text-transform:uppercase;width:100%;padding:clamp(.75rem,1vw,1rem) clamp(1rem,1.5vw,1.5rem);font-size:clamp(.875rem,1vw,1rem);font-weight:700;transition:background-color .1s;display:block}.file-input-label.svelte-1c3eptb{flex:10rem;min-width:0;display:flex}.file-input.svelte-1c3eptb{display:none}.rom-dropdown-container.svelte-1c3eptb{flex:2 17.5rem;order:1;min-width:0;position:relative}.rom-dropdown-toggle.svelte-1c3eptb{background:var(--primary);border:var(--gb-border);box-shadow:var(--gb-shadow-control);box-sizing:border-box;color:var(--control-on-primary,var(--on-primary,#111216));font-family:var(--font-sans);letter-spacing:var(--gb-label-tracking);text-align:left;text-transform:uppercase;white-space:nowrap;justify-content:space-between;align-items:center;gap:.5rem;width:100%;padding:.7rem .9rem;font-size:.92rem;font-weight:700;transition:transform 80ms,box-shadow 80ms;display:flex}.rom-dropdown-toggle.svelte-1c3eptb:hover{box-shadow:var(--gb-shadow-control-hover);transform:translate(1px,1px)}.dropdown-text.svelte-1c3eptb{text-overflow:ellipsis;flex:1;overflow:hidden}.dropdown-icon.svelte-1c3eptb{flex-shrink:0;font-size:.75rem;transition:transform .16s;display:inline-block}.dropdown-icon.open.svelte-1c3eptb{transform:rotate(180deg)}.rom-dropdown-menu.svelte-1c3eptb{background:var(--surface-1);border:var(--gb-border);box-shadow:var(--gb-shadow-widget);overscroll-behavior:contain;z-index:4;flex-direction:column;max-height:18.75rem;display:flex;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow-y:auto}.rom-dropdown-item.svelte-1c3eptb{border:none;border-bottom:2px solid var(--border,#000);color:var(--route-text,#111216);background:0 0;text-decoration:none}.rom-dropdown-item.svelte-1c3eptb:last-child{border-bottom:none}.rom-dropdown-item.svelte-1c3eptb:hover{background:var(--surface-2);color:var(--surface-2-text,var(--route-text,#111216))}.rom-dropdown-item.active.svelte-1c3eptb{background:var(--primary);color:var(--control-on-primary,var(--on-primary,#111216))}.file-input-button.svelte-1c3eptb{--emulator-button-text:var(--surface-2-text,var(--route-text,#111216));background:var(--surface-2);color:var(--surface-2-text,var(--route-text,#111216))}.file-input-button.svelte-1c3eptb,.save-load-btn.svelte-1c3eptb{box-sizing:border-box;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;min-height:56px;overflow:hidden}.save-load-btn.svelte-1c3eptb{--emulator-button-text:var(--control-on-accent,var(--on-accent,#111216));background:var(--accent);color:var(--control-on-accent,var(--on-accent,#111216));flex:160px;min-width:0}.status-display.svelte-1c3eptb{background:var(--surface-2);color:var(--surface-2-text,var(--route-text,#111216));flex:220px}.fps-display.svelte-1c3eptb,.status-display.svelte-1c3eptb{border:var(--gb-border);box-shadow:var(--gb-shadow-control);letter-spacing:var(--gb-label-tracking);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;min-width:0;max-width:100%;padding:.75rem 1.5rem;font-weight:700;overflow:hidden}.fps-display.svelte-1c3eptb{background:var(--primary);color:var(--control-on-primary,var(--on-primary,#111216));font-family:var(--font-mono);flex:0 160px}.emulator-wrapper.svelte-1c3eptb,.fps-display.svelte-1c3eptb{justify-content:center;align-items:center;display:flex}.emulator-wrapper.svelte-1c3eptb{background:var(--emulator-screen,var(--border,#000));border:clamp(2px,.25vw,4px) solid var(--border,#000);color-scheme:light;padding:var(--gb-gap-xs);width:100%;position:relative;overflow:hidden;box-shadow:inset clamp(2px,.25vw,4px) clamp(2px,.25vw,4px) #0000004d}.emulator-wrapper:fullscreen{box-shadow:none;background:#000;border:0;width:100vw;height:100vh;padding:0}.canvas-container.svelte-1c3eptb{aspect-ratio:var(--gb-screen-width) /var(--gb-screen-height);justify-content:center;align-items:center;width:100%;max-width:40rem;display:flex}.emulator-wrapper:fullscreen .canvas-container.svelte-1c3eptb{height:min(100vh,calc(100vw*var(--gb-screen-height)/var(--gb-screen-width)));max-width:none;width:min(100vw,calc(100vh*var(--gb-screen-width)/var(--gb-screen-height)))}#canvas.svelte-1c3eptb{height:100%;image-rendering:pixelated;image-rendering:crisp-edges;object-fit:contain;background:#000;border:clamp(1px,.125vw,2px) solid #333;width:100%}.emulator-widget-header.svelte-1c3eptb{justify-content:space-between;align-items:center;gap:1rem;display:flex}.widget-header-actions.svelte-1c3eptb{align-items:center;gap:.5rem;display:flex}.fullscreen-toggle.svelte-1c3eptb{padding:.4rem .75rem;font-size:.75rem}.emulator-widget-header.mobile-fullscreen.svelte-1c3eptb{z-index:2;position:sticky;top:0}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .emulator-widget:where(.svelte-1c3eptb){box-shadow:none;z-index:5;border:0;flex-direction:column;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .emulator-widget:where(.svelte-1c3eptb) .widget-content:where(.svelte-1c3eptb){min-height:0;padding:clamp(.5rem,1vw,.875rem) clamp(.5rem,1vw,.875rem) calc(env(safe-area-inset-bottom) + .75rem);flex:1;overflow:auto}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .emulator-wrapper:where(.svelte-1c3eptb){border-width:0;flex:auto;min-height:0;padding:0}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .canvas-container:where(.svelte-1c3eptb){width:auto;max-width:100%;height:100%;max-height:100%}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .mobile-controls.fullscreen-controls:where(.svelte-1c3eptb){z-index:3;-webkit-overflow-scrolling:touch;backdrop-filter:none;overscroll-behavior:contain;min-height:0;max-height:min(40dvh,22rem);padding-bottom:calc(env(safe-area-inset-bottom) + .5rem);background:0 0;flex:0 auto;margin-top:auto;position:sticky;bottom:0;overflow:auto}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .mobile-controls.fullscreen-controls:where(.svelte-1c3eptb) .control-panel:where(.svelte-1c3eptb),.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .mobile-controls.fullscreen-controls:where(.svelte-1c3eptb) .controls-grid:where(.svelte-1c3eptb){gap:.5rem}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .mobile-controls.fullscreen-controls:where(.svelte-1c3eptb) .control-label:where(.svelte-1c3eptb){font-size:.7rem}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .mobile-controls.fullscreen-controls:where(.svelte-1c3eptb) .dpad:where(.svelte-1c3eptb){--dpad-btn-size:clamp(3rem,9vmin,4.1rem);gap:.25rem}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .mobile-controls.fullscreen-controls:where(.svelte-1c3eptb) .buttons:where(.svelte-1c3eptb){--btn-size:clamp(3.4rem,10vmin,4.35rem);gap:.5rem}.emulator-container.emulator-fullscreen-mobile.svelte-1c3eptb .mobile-controls.fullscreen-controls:where(.svelte-1c3eptb) .system-buttons:where(.svelte-1c3eptb){--system-btn-size:clamp(3rem,9vmin,4.1rem);gap:.5rem}.controls-grid.svelte-1c3eptb,.desktop-grid.svelte-1c3eptb{flex-direction:column;gap:2rem;display:flex}.desktop-grid.svelte-1c3eptb{align-items:center}.button-system-panel.svelte-1c3eptb{flex-direction:column;gap:1rem;display:flex}.button-system-wrapper.svelte-1c3eptb{flex-direction:column;flex:16.25rem;gap:clamp(.5rem,1vw,1rem);min-width:0;display:flex}@media (width>=1121px){.desktop-key-mappings.svelte-1c3eptb{display:flex}.controls-section.svelte-1c3eptb .dpad:where(.svelte-1c3eptb){margin:0 auto}.canvas-container.svelte-1c3eptb{max-width:50rem}.save-controls.svelte-1c3eptb .file-input-button:where(.svelte-1c3eptb),.save-controls.svelte-1c3eptb .save-load-btn:where(.svelte-1c3eptb){text-overflow:ellipsis;white-space:nowrap;width:100%;min-width:0;max-width:100%;font-size:.875rem;overflow:hidden}}@media (width<=1120px){.desktop-key-mappings.svelte-1c3eptb{display:none!important}.bottom-section.svelte-1c3eptb,.emulator-row.svelte-1c3eptb{grid-template-columns:1fr}.desktop-controls.svelte-1c3eptb{display:none}.mobile-controls.svelte-1c3eptb{display:block}.mobile-controls.svelte-1c3eptb .controls-grid:where(.svelte-1c3eptb){align-items:center;gap:var(--mobile-control-gap);grid-template-columns:repeat(2,minmax(16.25rem,1fr));display:grid}.mobile-controls.svelte-1c3eptb .control-panel:where(.svelte-1c3eptb){flex-direction:column;justify-content:center;width:100%;display:flex}.emulator-container.svelte-1c3eptb{padding:clamp(.5rem,1vw,.875rem)}}.control-group.svelte-1c3eptb,.control-panel.svelte-1c3eptb{flex-direction:column;align-items:center;gap:1rem;width:100%;display:flex}.control-label.svelte-1c3eptb{color:inherit;letter-spacing:.05em;text-align:center;text-transform:uppercase;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:0;font-size:clamp(.75rem,1vw,.9rem);font-weight:700}.dpad.svelte-1c3eptb{--dpad-btn-size:clamp(3.75rem,8vmin,5.5rem);--control-btn-size:var(--dpad-btn-size);flex-direction:column;align-items:center;gap:clamp(.25rem,.4vw,.4rem);display:flex}.controls-section.svelte-1c3eptb .dpad:where(.svelte-1c3eptb){width:fit-content;margin:0 auto}.dpad-middle.svelte-1c3eptb{align-items:center;gap:.4rem;display:flex}.controls-section.svelte-1c3eptb .dpad:where(.svelte-1c3eptb) .control-btn:where(.svelte-1c3eptb){height:var(--dpad-btn-size);width:var(--dpad-btn-size);justify-content:center;align-items:center;padding:0;display:inline-flex}.buttons.svelte-1c3eptb{--btn-size:clamp(4.25rem,9vmin,5.75rem);--control-btn-size:var(--btn-size)}.buttons.svelte-1c3eptb,.system-buttons.svelte-1c3eptb{justify-content:center;gap:clamp(.75rem,1.25vw,1.25rem);display:flex}.system-buttons.svelte-1c3eptb{--system-btn-size:clamp(4.25rem,9vmin,5.75rem);--control-btn-size:var(--system-btn-size)}.control-btn.svelte-1c3eptb{background:var(--surface-2);border:var(--gb-border);color:var(--surface-2-text,var(--route-text,#111216));font-size:calc(var(--control-btn-size,4.75rem)*.32);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;aspect-ratio:var(--gb-control-ratio);box-shadow:var(--gb-shadow-control);letter-spacing:var(--gb-label-tracking);text-transform:uppercase;justify-content:center;align-items:center;min-width:clamp(3rem,4.75vw,4.75rem);min-height:clamp(3rem,4.75vw,4.75rem);padding:clamp(.25rem,.45vw,.45rem);font-weight:700;line-height:1;transition:transform 50ms,box-shadow 50ms;display:flex}.control-btn.down.svelte-1c3eptb,.control-btn.left.svelte-1c3eptb,.control-btn.right.svelte-1c3eptb,.control-btn.up.svelte-1c3eptb{font-weight:400}.buttons.svelte-1c3eptb .control-btn:where(.svelte-1c3eptb){height:var(--btn-size);min-height:var(--btn-size);min-width:var(--btn-size);width:var(--btn-size)}.system-buttons.svelte-1c3eptb .control-btn:where(.svelte-1c3eptb){height:var(--system-btn-size);min-height:var(--system-btn-size);min-width:var(--system-btn-size);width:var(--system-btn-size)}.mobile-controls.svelte-1c3eptb .control-btn:where(.svelte-1c3eptb){touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;width:auto;min-width:0;height:auto;min-height:0}.control-btn.svelte-1c3eptb:active{box-shadow:var(--gb-shadow-control-active);transform:translate(2px,2px)}.control-btn.svelte-1c3eptb:focus-visible{outline:3px dashed var(--border,#000);outline-offset:2px}.control-btn.center.svelte-1c3eptb{box-shadow:none;cursor:default;pointer-events:none;background:0 0;border:none}.btn-a.svelte-1c3eptb,.btn-b.svelte-1c3eptb{background:var(--primary);color:var(--control-on-primary,var(--on-primary,#111216))}.btn-select.svelte-1c3eptb,.btn-start.svelte-1c3eptb{background:var(--surface-1);padding:.75rem 1rem;font-size:.875rem}.key-mappings.svelte-1c3eptb{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex;position:relative;overflow:visible}.instructions.svelte-1c3eptb{flex-direction:column;gap:1rem;display:flex}.instructions.svelte-1c3eptb p:where(.svelte-1c3eptb){background:var(--surface-2);border:var(--gb-border);box-shadow:var(--gb-shadow-control);color:var(--surface-2-text,var(--route-text,#111216));letter-spacing:var(--gb-label-tracking);text-transform:uppercase;margin:0;padding:1rem;font-weight:700}.remapping-overlay.svelte-1c3eptb{background:var(--surface-1);border:var(--gb-border);box-sizing:border-box;z-index:4;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:absolute;inset:0}.remapping-overlay.svelte-1c3eptb,.remapping-overlay.svelte-1c3eptb :where(.svelte-1c3eptb){pointer-events:auto}.remapping-text.svelte-1c3eptb{box-shadow:none;color:var(--route-text,#111216);letter-spacing:.2em;text-transform:uppercase;background:0 0;border:none;margin:0;padding:0;font-size:1rem;font-weight:700}.remap-cancel-btn.svelte-1c3eptb{--emulator-button-text:var(--control-on-primary,var(--on-primary,#111216));background:var(--primary);color:var(--control-on-primary,var(--on-primary,#111216))}.key-mapping-item.svelte-1c3eptb{background:var(--surface-2);border:var(--gb-border);box-sizing:border-box;color:var(--surface-2-text,var(--route-text,#111216));pointer-events:auto;flex-wrap:nowrap;flex:1;justify-content:space-between;align-items:center;gap:clamp(.4rem,1.25vw,.6rem);width:100%;min-width:0;min-height:clamp(2.25rem,4vw,2.75rem);padding:clamp(.45rem,1.25vw,.6rem);display:flex;position:relative;overflow:visible}.key-mapping-label.svelte-1c3eptb{letter-spacing:var(--gb-label-tracking);text-transform:uppercase;flex:120px;min-width:0;font-size:clamp(.875rem,1.75vw,1rem);font-weight:700;line-height:1.2}.key-mapping-btn.svelte-1c3eptb{background:var(--surface-1);box-shadow:var(--gb-shadow-control);color:var(--route-text,#111216);overflow-wrap:anywhere;text-align:center;white-space:normal;z-index:1;flex:140px;min-width:0;max-width:100%;padding:clamp(.25rem,1vw,.375rem) clamp(.5rem,1.5vw,.75rem);font-size:clamp(.8125rem,1.625vw,.9375rem);line-height:1.2;position:relative}.key-mapping-btn.remapping.svelte-1c3eptb{--emulator-button-text:var(--control-on-primary,var(--on-primary,#111216));background:var(--primary);color:var(--control-on-primary,var(--on-primary,#111216));animation:1s ease-in-out infinite b}@keyframes b{0%,to{opacity:1}50%{opacity:.7}}@media (prefers-reduced-motion:reduce){.control-btn.svelte-1c3eptb,.controls-widget.brutal-panel.svelte-1c3eptb,.emulator-widget.brutal-panel.svelte-1c3eptb,.info-widget.brutal-panel.svelte-1c3eptb,.rom-dropdown-toggle.svelte-1c3eptb{transition:none}.volume-slider-track.svelte-1c3eptb input[type=range]:where(.svelte-1c3eptb)::-moz-range-thumb{transition:none}.volume-slider-track.svelte-1c3eptb input[type=range]:where(.svelte-1c3eptb)::-webkit-slider-thumb{transition:none}.key-mapping-btn.remapping.svelte-1c3eptb{animation:none}.control-btn.svelte-1c3eptb:active,.rom-dropdown-toggle.svelte-1c3eptb:hover{transform:none}}.reset-mappings-btn.svelte-1c3eptb{--emulator-button-text:var(--control-on-primary,var(--on-primary,#111216));background:var(--primary);color:var(--control-on-primary,var(--on-primary,#111216));width:100%;margin-top:auto;margin-bottom:clamp(.75rem,2vw,1.25rem);padding:.5rem;font-size:clamp(.9375rem,1.5vw,1rem)}@media (width<=768px){.source-link.svelte-1c3eptb{align-self:flex-start;padding:.4rem .75rem;font-size:clamp(.625rem,.75vw,.75rem)}.bottom-section.svelte-1c3eptb{grid-template-columns:1fr}.mobile-controls.svelte-1c3eptb{border-top:var(--gb-border-top-mobile);--mobile-btn-size:min(34vw,24vh);--mobile-control-gap:clamp(.5rem,1.5vw,1rem);margin-top:clamp(.5rem,.75vw,.75rem);padding-top:clamp(.5rem,.75vw,.75rem);display:block}.mobile-controls.svelte-1c3eptb .controls-grid:where(.svelte-1c3eptb){align-items:center;column-gap:calc(var(--mobile-control-gap) + .3rem);row-gap:var(--mobile-control-gap);grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-controls.svelte-1c3eptb .control-panel:where(.svelte-1c3eptb){gap:var(--mobile-control-gap)}.mobile-controls.svelte-1c3eptb .control-panel:where(.svelte-1c3eptb):first-child{margin-right:clamp(.125rem,.5vw,.25rem)}.mobile-controls.svelte-1c3eptb .control-panel:where(.svelte-1c3eptb):nth-child(2){margin-left:clamp(.125rem,.5vw,.25rem)}.mobile-controls.svelte-1c3eptb .dpad:where(.svelte-1c3eptb){gap:calc(var(--mobile-control-gap)/2)}.mobile-controls.svelte-1c3eptb .control-btn:where(.svelte-1c3eptb){font-size:clamp(.875rem,1vw,1rem)}.mobile-controls.svelte-1c3eptb .btn-select:where(.svelte-1c3eptb),.mobile-controls.svelte-1c3eptb .btn-start:where(.svelte-1c3eptb){font-size:clamp(.75rem,.85vw,.85rem)}.widget-header.svelte-1c3eptb{padding:clamp(.5rem,.75vw,.75rem) clamp(.5rem,1vw,1rem)}.widget-title.svelte-1c3eptb{font-size:clamp(.875rem,1vw,1rem)}.widget-content.svelte-1c3eptb{padding:clamp(.5rem,.75vw,.75rem)}.emulator-widget.svelte-1c3eptb .widget-content:where(.svelte-1c3eptb){--gb-control-gap:clamp(.625rem,1.5vw,.875rem)}.emulator-buttons.svelte-1c3eptb,.emulator-controls-top.svelte-1c3eptb{flex-direction:column}.emulator-buttons.svelte-1c3eptb{flex-wrap:nowrap;width:100%;margin:0;padding:0}.emulator-buttons.svelte-1c3eptb>:where(.svelte-1c3eptb),.rom-dropdown-container.svelte-1c3eptb{flex:none!important;width:100%!important;min-width:0!important;max-width:100%!important}.rom-dropdown-container.svelte-1c3eptb{order:1}.rom-dropdown-toggle.svelte-1c3eptb{width:100%}.save-controls.svelte-1c3eptb{order:2;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;margin:0;padding:0;display:grid;flex:none!important;width:100%!important;min-width:0!important;max-width:100%!important}.file-input-label.svelte-1c3eptb,.save-controls.svelte-1c3eptb>:where(.svelte-1c3eptb){width:100%;flex:none!important;min-width:0!important;max-width:none!important}.file-input-label.svelte-1c3eptb{display:flex}.file-input-button.svelte-1c3eptb,.save-load-btn.svelte-1c3eptb{box-sizing:border-box;width:100%;height:auto;padding:clamp(.5rem,.75vw,.75rem) clamp(.5rem,2vw,.75rem)}.file-input-button.svelte-1c3eptb,.fps-display.svelte-1c3eptb,.save-load-btn.svelte-1c3eptb,.status-display.svelte-1c3eptb{text-align:center;max-width:100%;min-height:48px;font-size:clamp(.7rem,.75vw,.75rem)}.fps-display.svelte-1c3eptb,.status-display.svelte-1c3eptb{min-width:0;padding:var(--gb-gap-xs);text-overflow:ellipsis;white-space:nowrap;flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.emulator-wrapper.svelte-1c3eptb{padding:clamp(.125rem,.25vw,.25rem)}.control-group.svelte-1c3eptb{gap:clamp(.25rem,.375vw,.375rem)}.control-label.svelte-1c3eptb{margin-bottom:clamp(.125rem,.25vw,.25rem);font-size:clamp(.7rem,.75vw,.75rem)}.btn-select.svelte-1c3eptb,.btn-start.svelte-1c3eptb{font-size:clamp(.75rem,.85vw,.85rem)}@media (width<=560px){.save-controls.svelte-1c3eptb{grid-template-columns:minmax(0,1fr)}.file-input-button.svelte-1c3eptb,.save-load-btn.svelte-1c3eptb{min-height:50px;font-size:clamp(.75rem,3.2vw,.85rem)}}@media (width<=480px){.emulator-container.svelte-1c3eptb{padding:clamp(.375rem,.75vw,.625rem)}.widget-content.svelte-1c3eptb{padding:clamp(.5rem,.75vw,.75rem)}}}
