#app{width:100%;min-height:100vh;margin:0;padding:0}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/SpaceGrotesk-400.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/SpaceGrotesk-500.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/SpaceGrotesk-700.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/SpaceMono-400.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/SpaceMono-700.woff2) format("woff2")}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/VT323-Regular.woff2) format("woff2")}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #060608;--bg-secondary: #08090c;--bg-tertiary: #0d0e12;--bg-card: #0b0c10;--bg-panel: #07080b;--bg-hover: rgba(255, 255, 255, .04);--bg-active: rgba(91, 245, 224, .08);--accent-primary: #5bf5e0;--accent-primary-rgb: 91, 245, 224;--accent-secondary: #5bf5e0;--accent-secondary-rgb: 91, 245, 224;--accent-tertiary: #ffce72;--accent-tertiary-rgb: 255, 206, 114;--accent-danger: #e05a65;--glow-primary: rgba(91, 245, 224, .1);--text-primary: #e2e4e9;--text-secondary: #7a8490;--text-muted: #4a5058;--text-accent: var(--accent-primary);--border-subtle: rgba(255, 255, 255, .06);--border-medium: rgba(255, 255, 255, .1);--border-accent: rgba(91, 245, 224, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .6);--focus-ring: 0 0 0 2px rgba(var(--accent-secondary-rgb), .4);--crt-panel-opacity: .06;--crt-panel-highlight: .02;--crt-panel-scanline: .012;--crt-panel-shadow: .01;--crt-panel-size: 4px 4px;--crt-card-opacity: .04;--crt-card-highlight: .015;--crt-card-scanline: .01;--crt-card-shadow: .008;--crt-card-size: 4px 4px;--crt-control-opacity: 0;--crt-control-highlight:0;--crt-control-scanline: 0;--crt-control-size: 5px 5px;--sidebar-width: 248px;--sidebar-collapsed-width: 52px;--play-panel-width: 228px;--font-sans: "Space Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "Space Mono", ui-monospace, "SFMono-Regular", monospace;--font-display: "VT323", "Space Mono", monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 26px;--text-3xl: 34px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px}:root[data-theme=laser-magenta]{--accent-secondary: #f85bff;--accent-secondary-rgb: 248, 91, 255;--accent-tertiary: #5bf5e0;--accent-tertiary-rgb: 91, 245, 224;--accent-primary: #f85bff;--accent-primary-rgb: 248, 91, 255;--glow-primary: rgba(248, 91, 255, .15);--bg-active: rgba(248, 91, 255, .08);--border-accent: rgba(248, 91, 255, .3)}:root[data-theme=spark-gold]{--accent-secondary: #ffce72;--accent-secondary-rgb: 255, 206, 114;--accent-tertiary: #ff68d8;--accent-tertiary-rgb: 255, 104, 216;--accent-primary: #ffce72;--glow-primary: rgba(255, 206, 114, .15);--bg-active: rgba(255, 206, 114, .08);--border-accent: rgba(255, 206, 114, .3)}:root[data-theme=arcade-violet]{--accent-secondary: #7f6dff;--accent-secondary-rgb: 127, 109, 255;--accent-tertiary: #5bf5e0;--accent-tertiary-rgb: 91, 245, 224;--accent-primary: #7f6dff;--glow-primary: rgba(127, 109, 255, .15);--bg-active: rgba(127, 109, 255, .08);--border-accent: rgba(127, 109, 255, .3)}:root[data-theme=ember-coral]{--accent-secondary: #ff8c66;--accent-secondary-rgb: 255, 140, 102;--accent-tertiary: #ffce72;--accent-tertiary-rgb: 255, 206, 114;--accent-primary: #ff8c66;--glow-primary: rgba(255, 140, 102, .15);--bg-active: rgba(255, 140, 102, .08);--border-accent: rgba(255, 140, 102, .3)}:root[data-theme=pixel-lilac]{--accent-secondary: #d8c0ff;--accent-secondary-rgb: 216, 192, 255;--accent-tertiary: #f85bff;--accent-tertiary-rgb: 248, 91, 255;--accent-primary: #d8c0ff;--glow-primary: rgba(216, 192, 255, .15);--bg-active: rgba(216, 192, 255, .08);--border-accent: rgba(216, 192, 255, .3)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pixelBlink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes subtlePulse{0%,to{opacity:1}50%{opacity:.97}}@keyframes loadingBarPulse{0%,to{transform:translate(0)}50%{transform:translate(233%)}}@keyframes scanlineScroll{0%{background-position:0 0}to{background-position:0 100%}}@keyframes gameOverIn{0%{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}html,body{height:100%}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100%;overflow-y:auto;overflow-x:hidden;font-size:var(--text-base);font-weight:400;letter-spacing:.01em;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,select{-webkit-tap-highlight-color:transparent}a{color:var(--accent-primary);text-decoration:none}a:hover{opacity:.8}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-md);top:-100px;z-index:10000;padding:var(--space-sm) var(--space-md);background:var(--accent-primary);color:var(--bg-primary);font-weight:700;border-radius:var(--radius-md);transition:top .15s ease}.skip-link:focus,.skip-link:focus-visible{top:var(--space-md);outline:2px solid var(--text-primary);outline-offset:2px}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}#app{height:100%}.app-container{display:flex;min-height:100vh;height:100%;align-items:stretch;position:relative;background:var(--bg-primary)}.app-container.dither-bg:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.018'/%3E%3C/svg%3E"),radial-gradient(ellipse 70% 45% at 78% -10%,rgba(var(--accent-secondary-rgb),.07),transparent 55%),radial-gradient(ellipse 50% 40% at -5% 100%,rgba(var(--accent-tertiary-rgb),.035),transparent 50%),var(--bg-primary)}.app-container:before{content:none}.app-container:after{content:none}.loading-splash{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse 80% 55% at 50% 35%,rgba(var(--accent-secondary-rgb),.08),transparent 55%),linear-gradient(180deg,#050506,#08090c 55%,#040405);animation:splashEnter .35s ease-out}.loading-splash.exiting{animation:splashExit .45s ease-in forwards}@keyframes splashEnter{0%{opacity:0;filter:blur(12px)}to{opacity:1;filter:blur(0)}}@keyframes splashExit{to{opacity:0;transform:scale(1.03);filter:blur(8px)}}.loading-splash-scanlines,.loading-splash-vignette{position:absolute;inset:0;pointer-events:none}.loading-splash-scanlines{z-index:2;opacity:.35;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.22) 2px,rgba(0,0,0,.22) 4px)}.loading-splash-vignette{z-index:1;background:radial-gradient(circle at center,transparent 28%,rgba(0,0,0,.62) 100%)}.loading-splash-content{position:relative;z-index:5;display:flex;flex-direction:column;align-items:center;gap:28px;padding:24px;text-align:center;max-width:440px;width:min(92vw,440px)}.loading-splash-logo-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px}.loading-splash-logo-wrap:before{content:"";position:absolute;inset:-28px;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-secondary-rgb),.18),transparent 68%);z-index:-1;opacity:.85;transition:opacity .4s ease,transform .4s ease}.loading-splash-logo-wrap.ready:before{opacity:1;transform:scale(1.06)}.loading-splash-logo-full{width:min(148px,38vw);height:auto;display:block;filter:drop-shadow(0 12px 28px rgba(0,0,0,.45));animation:logoSettle .7s cubic-bezier(.22,1,.36,1) both}@keyframes logoSettle{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}.loading-splash-wordmark{font-family:var(--font-display);font-size:clamp(34px,8vw,48px);letter-spacing:.14em;text-transform:uppercase;color:var(--text-primary);line-height:1;margin:0}.loading-splash-wordmark .logo-emu{color:var(--accent-primary)}.loading-splash-status{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}.boot-status-label{font-family:var(--font-display);font-size:20px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-primary);min-height:1.2em}.boot-status-label.ready{color:var(--text-primary);text-shadow:0 0 18px rgba(var(--accent-secondary-rgb),.35)}.boot-progress{width:100%;max-width:280px}.boot-progress-track{height:2px;background:#ffffff14;border-radius:999px;overflow:hidden}.boot-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent-primary),color-mix(in srgb,var(--accent-primary) 40%,#fff));box-shadow:0 0 12px rgba(var(--accent-secondary-rgb),.45);transition:width .12s linear}.boot-progress-meta{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--font-sans);font-size:11px;letter-spacing:.06em;color:var(--text-muted);text-transform:uppercase}.splash-version{position:absolute;top:max(20px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));z-index:6;display:flex;gap:8px;align-items:baseline;font-family:var(--font-sans);font-size:11px;letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase}.splash-version strong{color:var(--text-secondary);font-weight:600}.konami-hint{position:absolute;bottom:max(64px,calc(env(safe-area-inset-bottom) + 56px));right:max(24px,env(safe-area-inset-right));z-index:6;font-family:var(--font-display);font-size:14px;letter-spacing:.12em;color:rgba(var(--accent-secondary-rgb),.28);opacity:0;transition:opacity .5s ease;pointer-events:none}.konami-hint.visible{opacity:1}.konami-hint.accepted{color:var(--accent-primary);opacity:1;text-shadow:0 0 16px rgba(var(--accent-secondary-rgb),.4)}.skip-button{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%) translateY(8px);z-index:7;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--border-subtle);border-radius:999px;background:#08090cb8;color:var(--text-secondary);font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease,color .15s ease,border-color .15s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.skip-button.visible{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.skip-button:hover{color:var(--text-primary);border-color:var(--border-medium)}.skip-button .skip-icon{font-family:var(--font-display);font-size:16px;opacity:.8}@media(prefers-reduced-motion:reduce){.loading-splash,.loading-splash.exiting,.loading-splash-logo-full{animation:none!important}.loading-splash-logo-wrap:before,.boot-progress-fill,.skip-button{transition:none!important}}.desktop-banner{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:#060608f2;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;letter-spacing:.02em;position:fixed;top:0;left:0;right:0;z-index:1000;padding-left:env(safe-area-inset-left,16px);padding-right:env(safe-area-inset-right,16px);padding-top:calc(var(--space-sm) + env(safe-area-inset-top,0))}.desktop-banner-text{flex:1;text-align:center}.desktop-banner-dismiss{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;border-radius:var(--radius-sm)}.desktop-banner-dismiss:hover{color:var(--text-primary);background:var(--bg-hover)}.main-area.banner-offset{padding-top:calc(44px + env(safe-area-inset-top,0))}.mobile-hamburger{display:none;position:fixed;top:calc(12px + env(safe-area-inset-top,0));left:calc(12px + env(safe-area-inset-left,0));z-index:100;width:40px;height:40px;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-subtle);color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md)}.mobile-hamburger:hover{background:var(--bg-hover)}.app-container.banner-visible .mobile-hamburger{top:calc(56px + env(safe-area-inset-top,0))}.sidebar-drawer-backdrop{display:none;position:fixed;inset:0;background:#0009;z-index:998;transition:opacity .2s}.sidebar-drawer-backdrop.show{opacity:1}.sidebar{width:var(--sidebar-width);position:sticky;top:0;height:calc(100vh / var(--ui-zoom, 1));display:flex;flex-direction:column;flex-shrink:0;background:var(--bg-secondary);border-right:1px solid var(--border-subtle);transition:width .25s cubic-bezier(.4,0,.2,1);overflow:hidden;z-index:10;isolation:isolate}.sidebar:after{content:none}.sidebar>*{position:relative;z-index:1}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-lg);flex-shrink:0;height:72px;border-bottom:1px solid var(--border-subtle);overflow:visible}.sidebar-header>div{position:relative;display:flex;align-items:center}.logo-wrapper{display:flex;align-items:flex-start;gap:4px}.logo-text-block{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:2px}.logo{display:flex;align-items:baseline;gap:0;font-family:var(--font-display);font-size:22px;font-weight:400;letter-spacing:.2em;line-height:1;color:var(--text-primary);text-transform:uppercase;white-space:nowrap;position:relative;padding-bottom:6px}.logo:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:repeating-linear-gradient(90deg,var(--accent-primary),var(--accent-primary) 3px,transparent 3px,transparent 8px);opacity:.6}.logo-caret{color:var(--accent-primary);font-family:var(--font-display);font-size:22px;font-weight:400;line-height:1;opacity:.9;animation:caretBlink 1.5s step-end infinite;margin-top:1px}@keyframes caretBlink{0%,to{opacity:.9}50%{opacity:.2}}.logo-emu{color:var(--accent-primary)}.logo.compact{font-size:18px;letter-spacing:.15em}.sidebar-tagline{font-size:var(--text-xs);font-family:var(--font-mono);font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;margin:0;padding-left:2px}.sidebar-toggle{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s}.sidebar-toggle:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-toggle svg{transition:transform .25s}.sidebar-toggle svg.rotated{transform:rotate(180deg)}.sidebar-scroll-wrapper{flex:1;min-height:0;position:relative;overflow:hidden}.sidebar-scroll-wrapper:before,.sidebar-scroll-wrapper:after{content:"";position:absolute;left:0;right:0;height:20px;pointer-events:none;z-index:2;opacity:0;transition:opacity .15s}.sidebar-scroll-wrapper:before{top:0;background:linear-gradient(to bottom,var(--bg-secondary),transparent)}.sidebar-scroll-wrapper:after{bottom:0;background:linear-gradient(to top,var(--bg-secondary),transparent)}.sidebar-scroll-wrapper.has-scroll-top:before{opacity:1}.sidebar-scroll-wrapper.has-scroll-bottom:after{opacity:1}.sidebar-scrollable{height:100%;overflow-y:auto;overflow-x:hidden;padding:var(--space-lg) 0 var(--space-md);scrollbar-width:none}.sidebar-scrollable::-webkit-scrollbar{display:none}.sidebar-nav{padding:0 var(--space-sm);margin-bottom:var(--space-sm)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;letter-spacing:.01em;cursor:pointer;transition:background .15s,color .15s;text-align:left;white-space:nowrap;overflow:hidden}.sidebar-nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--bg-active);color:var(--accent-primary)}.sidebar-nav-item svg{flex-shrink:0;opacity:.7}.sidebar-nav-item.active svg{opacity:1}.sidebar-section-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:var(--space-sm) var(--space-lg) var(--space-xs);margin-top:var(--space-sm)}.sidebar-section{padding:0 var(--space-sm)}.game-list{display:flex;flex-direction:column;gap:2px}.game-card{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s;text-align:left;white-space:nowrap;overflow:hidden}.game-card:hover{background:var(--bg-hover);color:var(--text-primary)}.game-icon{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:14px}.game-info{display:flex;flex-direction:column;gap:1px;min-width:0}.game-name{font-size:var(--text-sm);font-weight:500;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-year{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.04em}.sidebar-systems{padding:0 var(--space-sm)}.sidebar-system-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-xs) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:400;cursor:pointer;transition:background .15s,color .15s;text-align:left;white-space:nowrap;overflow:hidden}.sidebar-system-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-system-item.active{background:var(--bg-active);color:var(--accent-primary)}.sidebar-system-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.04em;flex-shrink:0}.sidebar-system-item.active .sidebar-system-count{color:var(--accent-primary);opacity:.7}.sidebar-rom-row{display:flex;align-items:center;gap:4px;padding:0 var(--space-sm)}.sidebar-rom-item{flex:1;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:background .15s,color .15s;text-align:left;min-width:0}.sidebar-rom-item:hover{background:var(--bg-hover);color:var(--text-primary)}.rom-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-sm)}.save-indicator{font-size:10px;opacity:.7}.sidebar-rom-remove{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-muted);font-size:16px;cursor:pointer;flex-shrink:0;opacity:0;transition:opacity .15s,color .15s}.sidebar-rom-row:hover .sidebar-rom-remove{opacity:1}.sidebar-rom-remove:hover{color:var(--accent-danger)}.sidebar-empty-state{font-size:var(--text-xs);color:var(--text-muted);padding:var(--space-sm) var(--space-lg);font-style:italic}.sidebar-divider{height:1px;background:var(--border-subtle);margin:var(--space-md) var(--space-lg)}.sidebar-browse-btn{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-md) var(--space-lg) 0;padding:var(--space-sm) var(--space-md);background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap;overflow:hidden}.sidebar-browse-btn:hover{background:var(--bg-active);color:var(--accent-primary);border-color:var(--border-accent)}.sidebar-footer{padding:var(--space-md) var(--space-sm);border-top:1px solid var(--border-subtle);flex-shrink:0}.sidebar-settings-btn{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background .15s,color .15s;text-align:left;white-space:nowrap;overflow:hidden}.sidebar-settings-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-action-icon{flex-shrink:0}.sidebar.collapsed .sidebar-scroll-wrapper{display:none}.sidebar.collapsed .sidebar-header{justify-content:center;padding:var(--space-lg) 0;border-bottom:none;min-height:52px}.sidebar.collapsed .sidebar-header>div{display:none}.sidebar.collapsed .sidebar-tagline,.sidebar.collapsed .sidebar-settings-btn span{display:none}.sidebar.collapsed .sidebar-footer{display:flex;align-items:center;justify-content:center;padding:var(--space-md) 0}.sidebar.collapsed .sidebar-settings-btn{width:40px;height:40px;justify-content:center;padding:0}.main-area{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;z-index:1}.browse-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-2xl);height:72px;border-bottom:1px solid var(--border-subtle);background:var(--bg-primary);position:sticky;top:0;z-index:5;gap:var(--space-xl)}.browse-topbar.banner-offset{top:44px}.browse-brand{display:flex;align-items:center;gap:0;font-family:var(--font-display);font-size:28px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--text-primary);line-height:1}.browse-brand-icon{width:48px;height:48px;object-fit:contain;opacity:.95;margin-right:12px}.browse-brand .logo-emu{color:var(--accent-primary)}.browse-actions{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}.browse-search{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-sm);min-width:180px}.browse-search input{background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--text-sm);flex:1}.browse-search input:focus-visible{outline:none}.browse-search:focus-within{outline:2px solid var(--accent-primary);outline-offset:2px}.browse-search input::placeholder{color:var(--text-muted)}.btn-import-rom{display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-lg);background:var(--accent-primary);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;cursor:pointer;transition:opacity .15s ease,transform .15s ease;white-space:nowrap}.btn-import-rom:hover{opacity:.92;transform:translateY(-1px)}.main-view{flex:1;display:flex;flex-direction:column;min-height:0}.emulator-view{overflow:hidden}.emulator-scroll{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--border-subtle) transparent}.emulator-scroll::-webkit-scrollbar{width:6px}.emulator-scroll::-webkit-scrollbar-track{background:transparent}.emulator-scroll::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:3px}.systems-roulette-wrapper{padding:var(--space-2xl) var(--space-2xl) var(--space-xl);border-bottom:1px solid var(--border-subtle)}.systems-roulette-bar{overflow:hidden}.systems-roulette-track{display:flex;gap:var(--space-md);overflow-x:auto;padding-bottom:var(--space-xs);scrollbar-width:none}.systems-roulette-track::-webkit-scrollbar{display:none}.system-chip{display:flex;flex-direction:column;align-items:center;gap:10px;padding:var(--space-lg) var(--space-xl);background:color-mix(in srgb,var(--bg-secondary) 88%,transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease;flex-shrink:0;min-width:118px;text-align:center;color:var(--text-primary)}.system-chip:hover{background:var(--bg-hover);border-color:var(--border-medium);transform:translateY(-2px)}.system-chip-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;opacity:.5;transition:opacity .18s ease}.system-chip:hover .system-chip-icon{opacity:.95}.system-chip-icon svg{width:44px;height:44px;fill:currentColor}.system-chip-label{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;letter-spacing:.01em;text-align:center}.system-chip-caption{display:none}.system-chip-count{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.02em;text-align:center}.system-chip:hover .system-chip-count{color:var(--accent-primary)}.emulator-library-title{padding:var(--space-2xl) var(--space-2xl) var(--space-md);font-size:var(--text-xs);font-family:var(--font-sans);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.library-by-system{padding:0 var(--space-2xl) var(--space-3xl)}.library-empty-state{padding:var(--space-3xl) var(--space-2xl);text-align:center}.library-empty-hint{color:var(--text-muted);font-size:var(--text-sm);line-height:1.6}.library-system-section{margin-bottom:var(--space-xl)}.library-system-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0;margin-bottom:var(--space-sm);cursor:pointer;list-style:none;border-bottom:1px solid var(--border-subtle)}.library-system-header::-webkit-details-marker{display:none}.library-system-heading{display:flex;align-items:baseline;gap:var(--space-md)}.library-system-name{font-size:var(--text-base);font-weight:600;color:var(--text-primary);letter-spacing:.01em}.library-system-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.06em}.header-chevron{color:var(--text-muted);transition:transform .2s;flex-shrink:0}details.library-system-section:not([open]) .header-chevron{transform:rotate(-90deg)}.library-system-list{display:flex;flex-direction:column;gap:6px}.library-rom-row{display:flex;align-items:center;gap:4px;border-radius:var(--radius-lg);border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.library-rom-row:hover{background:var(--bg-hover);border-color:var(--border-subtle)}.library-rom-item{flex:1;display:flex;align-items:center;gap:var(--space-lg);padding:12px 14px;background:transparent;border:none;border-radius:var(--radius-lg);cursor:pointer;text-align:left;color:var(--text-primary);min-width:0;transition:none}.library-rom-thumbnail{width:76px;height:76px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-tertiary);border:1px solid var(--border-subtle);box-shadow:0 8px 20px #00000047}.library-rom-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.library-rom-thumbnail-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.library-rom-thumbnail-fallback svg{width:34px;height:34px;opacity:.4;fill:var(--text-muted)}.library-rom-thumbnail-placeholder{font-family:var(--font-display);font-size:18px;font-weight:400;color:var(--text-muted);letter-spacing:.08em}.library-rom-info{flex:1;min-width:0}.library-rom-name{font-family:var(--font-sans);font-size:var(--text-md);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.library-rom-meta{display:flex;align-items:center;gap:var(--space-sm);margin-top:5px;flex-wrap:wrap}.library-pill{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.02em}.library-pill-save{color:var(--accent-primary);opacity:.9;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent-primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent-primary) 22%,transparent)}.library-rom-action{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;color:var(--bg-primary);letter-spacing:.04em;text-transform:uppercase;padding:6px 12px;background:var(--accent-primary);border-radius:var(--radius-sm);flex-shrink:0;opacity:0;transform:translate(4px);transition:opacity .15s ease,transform .15s ease}.library-rom-row:hover .library-rom-action{opacity:1;transform:translate(0);color:var(--bg-primary)}.remove-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;flex-shrink:0;opacity:0;transition:opacity .15s,color .15s}.library-rom-row:hover .remove-btn{opacity:1}.remove-btn:hover{color:var(--accent-danger);background:#e05a651a}.gameplay-view{display:flex;flex-direction:column;height:100vh;overflow:hidden;position:relative}.game-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--border-subtle);background:var(--bg-primary);flex-shrink:0;gap:var(--space-xl);min-height:72px}.game-header-main{display:flex;align-items:center;gap:var(--space-md);min-width:0}.back-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap;flex-shrink:0}.back-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-medium)}.system-badge{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bg-primary);background:var(--accent-primary);padding:2px 8px;border-radius:var(--radius-xs);flex-shrink:0}.game-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.game-header-status{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.06em}.rom-info-hint{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.score-display{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-display);font-size:18px;font-weight:400;color:var(--text-secondary);letter-spacing:.08em;flex-shrink:0;padding:4px 12px;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.score-display span{color:var(--accent-primary);font-size:20px;letter-spacing:.04em}.header-icon-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}.header-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-medium)}.header-icon-btn.active{background:var(--bg-active);color:var(--accent-primary);border-color:var(--border-accent)}.game-body{flex:1;display:flex;min-height:0;overflow:hidden}.game-container{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);position:relative;min-width:0;background:var(--bg-primary)}.game-frame{position:relative;width:100%;max-width:760px;max-height:100%;aspect-ratio:4/3;background:#000;border-radius:10px;overflow:hidden;border:2px solid rgba(255,255,255,.06);box-shadow:0 0 0 1px #000c,0 24px 60px #000000a6,inset 0 0 80px #00000059;display:flex;align-items:center;justify-content:center}.game-frame:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:10;background:radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.35) 100%),repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.28) 2px,rgba(0,0,0,.28) 4px),repeating-linear-gradient(0deg,rgba(255,255,255,.018),rgba(255,255,255,.018) 1px,transparent 1px,transparent 4px);mix-blend-mode:normal;opacity:.9;border-radius:inherit}canvas#gameCanvas{display:block;width:100%;height:100%;image-rendering:pixelated}.press-start{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);background:#000000d9;z-index:5}.press-start.show{display:flex}.press-start-text{font-family:var(--font-display);font-size:28px;font-weight:400;color:var(--accent-primary);letter-spacing:.16em;animation:pixelBlink 1.2s step-end infinite}.coin-slot{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.12em}.game-over{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);background:#000000e0;z-index:6}.game-over.show{display:flex;animation:gameOverIn .3s ease-out}.game-over h2{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);letter-spacing:.15em;text-transform:uppercase}.game-over p{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);letter-spacing:.06em}.game-over p span{color:var(--accent-primary)}.new-high-score{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;color:var(--accent-tertiary);letter-spacing:.15em;animation:pixelBlink .8s step-end infinite}.restart-btn{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-2xl);background:var(--accent-primary);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:700;letter-spacing:.06em;cursor:pointer;transition:opacity .15s}.restart-btn:hover{opacity:.85}.emulator-container{position:absolute;inset:0;display:none;width:100%;height:100%}.emulator-container.active{display:flex}#emulator{width:100%;height:100%}.emulator-click-overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);letter-spacing:.1em;cursor:pointer;border:none;z-index:3}.rom-load-overlay{position:absolute;inset:0;z-index:7;background:#000000a6;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--accent-primary);letter-spacing:.12em;cursor:pointer;border:none;border-radius:var(--radius-md)}.controls-panel{width:var(--play-panel-width);flex-shrink:0;display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg-secondary) 92%,#000);border-left:1px solid var(--border-subtle);overflow-y:auto;scrollbar-width:none;position:relative;isolation:isolate}.controls-panel::-webkit-scrollbar{display:none}.controls-panel:after{content:none}.controls-panel>*{position:relative;z-index:1}.controls-panel-section{padding:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.controls-panel-label{font-family:var(--font-sans);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-md)}.controls-btn-row{display:flex;gap:var(--space-sm);margin-bottom:var(--space-sm)}.controls-btn-row:last-child{margin-bottom:0}.control-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;letter-spacing:.03em;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.control-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-medium)}.control-btn:disabled{opacity:.3;cursor:not-allowed}.control-btn.active{background:var(--bg-active);color:var(--accent-primary);border-color:var(--border-accent)}.control-btn--full{width:100%}.control-btn--small{font-size:var(--text-xs);padding:var(--space-xs) var(--space-sm)}.save-state-hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.06em;display:block;margin-top:var(--space-sm);text-align:center}.controls-panel-label-spaced{margin-top:var(--space-md)}.save-slot-row{display:flex;gap:6px;margin-bottom:var(--space-sm)}.save-slot-btn{flex:1;min-height:34px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;position:relative;transition:border-color .15s ease,color .15s ease,background .15s ease}.save-slot-btn:hover{border-color:var(--border-accent);color:var(--text-primary)}.save-slot-btn.active{border-color:var(--accent-primary);color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 12%,transparent)}.save-slot-btn.has-save:after{content:"";position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--accent-primary)}#emulator-host-frame{width:100%;height:100%;border:0;display:block;background:#000}.resolution-select{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-xs);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%234a5058' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.resolution-select:focus{outline:none;border-color:var(--border-accent)}.resolution-select:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.keyboard-hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.06em;display:block;margin-top:var(--space-sm)}.controls-kbd-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) 0;border-bottom:1px solid var(--border-subtle)}.controls-kbd-row:last-child{border-bottom:none}.controls-kbd-action{font-size:var(--text-xs);color:var(--text-secondary);letter-spacing:.02em}.controls-kbd-keys{display:flex;gap:4px}.key{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-medium);border-radius:var(--radius-xs);padding:1px 6px;letter-spacing:.04em}.controls-exit-btn{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-lg);padding:var(--space-sm) var(--space-md);background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s;width:calc(100% - 2 * var(--space-lg))}.controls-exit-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-medium)}.theater-hud{position:fixed;top:max(16px,env(safe-area-inset-top));left:50%;transform:translate(-50%) translateY(-8px);z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(920px,calc(100vw - 32px));padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#08090cc7;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 18px 40px #00000073;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease}.theater-hud.visible{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.theater-hud-left,.theater-hud-right{display:flex;align-items:center;gap:10px;min-width:0}.theater-hud-left{flex:1}.theater-hud-title{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.theater-hud-system{flex-shrink:0;font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bg-primary);background:var(--accent-primary);padding:3px 7px;border-radius:999px}.theater-hud-score{font-family:var(--font-display);font-size:18px;color:var(--accent-primary);letter-spacing:.06em;padding:0 4px}.theater-hud-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#ffffff08;color:var(--text-secondary);font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease}.theater-hud-btn:hover{background:#ffffff12;color:var(--text-primary);border-color:#ffffff24}.theater-hud-btn.active{color:var(--accent-primary);border-color:color-mix(in srgb,var(--accent-primary) 35%,transparent);background:color-mix(in srgb,var(--accent-primary) 12%,transparent)}.theater-hud-btn-accent{color:var(--text-primary);border-color:color-mix(in srgb,var(--accent-primary) 28%,transparent)}.theater-hud-kbd{font-family:var(--font-display);font-size:13px;opacity:.7;letter-spacing:.04em}.theater-hint{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:35;font-family:var(--font-sans);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#ffffff59;opacity:0;transition:opacity .25s ease;pointer-events:none}.theater-hint.visible{opacity:1;animation:theaterHintPulse 2.8s ease-in-out infinite}@keyframes theaterHintPulse{0%,to{opacity:.28}50%{opacity:.55}}.gameplay-view.theater-mode .game-header,.gameplay-view.theater-mode .game-header-status,.gameplay-view.theater-mode .controls-panel{display:none}.gameplay-view.theater-mode .game-body{height:100vh}.gameplay-view.theater-mode .game-container{padding:0;background:#000}.gameplay-view.theater-mode .game-frame{max-width:100%;max-height:100%;width:100%;height:100%;border-radius:0;border:none;box-shadow:none;aspect-ratio:auto}.gameplay-view.theater-mode .game-frame:after{border-radius:0;opacity:.75}@media(max-width:720px){.theater-hud{flex-direction:column;align-items:stretch;gap:10px;width:calc(100vw - 20px)}.theater-hud-left,.theater-hud-right{justify-content:space-between;flex-wrap:wrap}.theater-hud-title{max-width:50vw}}@media(prefers-reduced-motion:reduce){.theater-hud,.theater-hint{transition:none!important}}.controls-guide{padding:var(--space-md)}.controls-guide h4{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-sm)}.controls-grid{display:flex;flex-direction:column;gap:var(--space-xs)}.control-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-xs);color:var(--text-secondary)}.controls-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-subtle);background:var(--bg-secondary)}.settings-modal{position:fixed;inset:0;z-index:1000;display:none}.settings-modal.show{display:flex}.settings-backdrop{position:absolute;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.settings-panel{position:absolute;top:0;right:0;bottom:0;width:440px;max-width:100%;background:var(--bg-secondary);border-left:1px solid var(--border-subtle);display:flex;flex-direction:column;animation:slideInRight .22s cubic-bezier(.4,0,.2,1);overflow:hidden}@keyframes slideInRight{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xl) var(--space-2xl);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.settings-kicker{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px}.settings-header h2{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.settings-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.settings-close:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-content{flex:1;overflow-y:auto;padding:var(--space-xl) var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-xl);scrollbar-width:thin;scrollbar-color:var(--border-subtle) transparent}.settings-content::-webkit-scrollbar{width:4px}.settings-content::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:2px}.settings-section-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-sm)}.settings-section{display:flex;flex-direction:column;gap:var(--space-sm)}.settings-section h3{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-xs)}.settings-section-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg)}.settings-section-card h3{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-subtle)}.settings-toggle{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0;cursor:pointer;gap:var(--space-md)}.settings-toggle span:first-child{font-size:var(--text-base);color:var(--text-primary);font-weight:500}.settings-toggle input[type=checkbox]{display:none}.toggle-slider{position:relative;width:40px;height:22px;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:11px;flex-shrink:0;transition:background .2s,border-color .2s}.toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--text-muted);border-radius:50%;transition:transform .2s,background .2s}.settings-toggle input:checked+.toggle-slider{background:rgba(var(--accent-secondary-rgb),.2);border-color:var(--border-accent)}.settings-toggle input:checked+.toggle-slider:after{transform:translate(18px);background:var(--accent-primary)}.settings-row{display:flex;align-items:center;gap:var(--space-md);font-size:var(--text-base);color:var(--text-primary);padding:var(--space-sm) 0}.settings-row-spaced{justify-content:space-between}.settings-row-stack{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.settings-row-copy{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:var(--text-base)}.settings-row-value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-primary);letter-spacing:.06em}.settings-scale-buttons{display:flex;gap:6px}.settings-scale-btn{min-width:44px;height:28px;padding:0 var(--space-sm);display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.settings-scale-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-scale-btn.active{background:var(--bg-active);color:var(--accent-primary);border-color:var(--border-accent)}.settings-theme-strip{display:flex;gap:var(--space-sm);flex-wrap:wrap}.settings-theme-option{display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:none;cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:background .15s}.settings-theme-option:hover{background:var(--bg-hover)}.settings-theme-option.active{background:var(--bg-active)}.settings-theme-option-swatch{width:28px;height:28px;border-radius:50%;background:var(--theme-accent-secondary, var(--accent-primary));border:2px solid transparent;transition:border-color .15s;box-shadow:0 0 0 1px var(--border-subtle)}.settings-theme-option.active .settings-theme-option-swatch{border-color:var(--text-primary)}.settings-theme-option-label{font-family:var(--font-mono);font-size:9px;color:var(--text-muted);letter-spacing:.04em;white-space:nowrap}.settings-select{padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;appearance:none}.settings-select:focus{outline:none;border-color:var(--border-accent)}.settings-select:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.gamepad-settings{display:flex;flex-direction:column;gap:var(--space-sm)}.gamepad-status{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--text-secondary)}.gamepad-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.gamepad-status.connected .gamepad-status-dot{background:var(--accent-primary)}.gamepad-status.connected .gamepad-status-text{color:var(--accent-primary)}.high-scores-list{display:flex;flex-direction:column;gap:4px}.high-score-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle)}.high-score-item:last-child{border-bottom:none}.high-score-item .game-name{font-size:var(--text-base);color:var(--text-primary);font-weight:500}.high-score-item .score{font-family:var(--font-mono);font-size:var(--text-base);color:var(--accent-primary);letter-spacing:.08em}.settings-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.settings-description-secondary{color:var(--text-muted)}.settings-description-spaced{margin-bottom:var(--space-sm)}.settings-note{font-size:var(--text-xs);color:var(--text-muted);line-height:1.5}.settings-note-spaced{margin-bottom:var(--space-sm)}.settings-empty{text-align:center;font-style:italic}.settings-empty-centered{text-align:center;font-style:italic;padding:var(--space-md) 0}.settings-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.settings-status{margin-top:var(--space-sm)}.settings-status-error{color:var(--accent-danger)}.settings-status-success{color:var(--accent-primary)}.watch-folders-list{display:flex;flex-direction:column;gap:var(--space-xs)}.watch-folder-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs) 0}.watch-folder-name{font-size:var(--text-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dialog-modal{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center}.dialog-modal.show{display:flex}.dialog-backdrop{position:absolute;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-panel{position:relative;z-index:1;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-2xl);min-width:300px;max-width:460px;width:calc(100% - 2 * var(--space-2xl));box-shadow:var(--shadow-lg);animation:fadeIn .18s ease-out;display:flex;flex-direction:column;gap:var(--space-lg)}.dialog-panel--rom{min-width:340px}.dialog-kicker{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-primary)}.dialog-title{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.dialog-message{font-size:var(--text-base);color:var(--text-secondary);line-height:1.5}.dialog-intro{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.dialog-section{display:flex;flex-direction:column;gap:var(--space-sm)}.dialog-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.dialog-select{padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;appearance:none}.dialog-select:focus{outline:none;border-color:var(--border-accent)}.dialog-select:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.dialog-buttons{display:flex;gap:var(--space-sm);justify-content:flex-end}.dialog-buttons--rom{flex-wrap:wrap}.dialog-btn{padding:var(--space-sm) var(--space-lg);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.dialog-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-medium)}.dialog-btn-primary{background:var(--accent-primary);border-color:transparent;color:var(--bg-primary);font-weight:700}.dialog-btn-primary:hover{opacity:.9;background:var(--accent-primary)}.touch-controls{display:none;position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0));left:0;right:0;pointer-events:none;z-index:50;justify-content:center;gap:var(--space-2xl)}.touch-controls.visible{display:flex}.touch-controls *{pointer-events:auto}.touch-btn{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#060608cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-medium);border-radius:var(--radius-lg);color:var(--text-primary);font-size:24px;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;transition:background .1s,transform .1s,box-shadow .1s;box-shadow:0 2px 8px #0000004d}.touch-btn:active{background:var(--accent-primary);color:var(--bg-primary);transform:scale(.95);box-shadow:0 1px 4px #0000004d}.touch-btn-action{background:rgba(var(--accent-secondary-rgb),.15);border-color:var(--border-accent);color:var(--accent-primary);min-width:64px;font-size:13px;font-weight:700;letter-spacing:.06em}.touch-controls-pong{display:flex;flex-direction:column;gap:var(--space-md)}.touch-controls-snake{display:flex;align-items:center;gap:var(--space-2xl)}.touch-dpad{display:grid}.touch-dpad-cross{grid-template-columns:60px 60px 60px;grid-template-rows:60px 60px 60px;gap:6px}.touch-dpad-up{grid-column:2;grid-row:1}.touch-dpad-left{grid-column:1;grid-row:2}.touch-dpad-right{grid-column:3;grid-row:2}.touch-dpad-down{grid-column:2;grid-row:3}.touch-dpad-horizontal{grid-template-columns:60px 60px;grid-template-rows:60px;gap:var(--space-md)}.touch-controls-breakout{display:flex;align-items:center;gap:var(--space-xl)}.mobile-settings-fab{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom,0));right:var(--space-md);width:48px;height:48px;border-radius:50%;background:#060608d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-medium);color:var(--text-primary);cursor:pointer;z-index:100;display:none;align-items:center;justify-content:center;box-shadow:0 4px 12px #0006;transition:transform .2s,background .2s}.mobile-settings-fab:hover{transform:scale(1.05);background:#0f0f14e6}@media(max-width:768px){.mobile-settings-fab{display:flex}}@media(max-width:768px){.mobile-hamburger{display:flex}.sidebar-drawer-backdrop{display:block;opacity:0}.sidebar,.sidebar.drawer-mode{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width)!important;transform:translate(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:999}.sidebar.drawer-open{transform:translate(0)}.sidebar-drawer-backdrop.show{opacity:1}.browse-topbar{padding:var(--space-md) var(--space-lg);padding-left:calc(52px + var(--space-lg))}.systems-roulette-wrapper{padding:var(--space-lg) var(--space-lg) var(--space-md)}.library-by-system{padding:0 var(--space-lg) var(--space-2xl)}.emulator-library-title{padding:var(--space-lg) var(--space-lg) var(--space-sm)}.game-header{padding:var(--space-sm) var(--space-md)}.game-container{padding:var(--space-md)}.controls-panel{display:none}.controls-bar{display:flex}.game-body{flex-direction:column}.settings-panel{width:100%;left:0;animation:slideInUp .22s cubic-bezier(.4,0,.2,1)}@keyframes slideInUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}}@media(max-width:480px){.browse-topbar{flex-wrap:wrap;gap:var(--space-sm)}.game-title{font-size:var(--text-base)}.system-badge,.score-display{display:none}}@media(orientation:landscape)and (max-height:500px){.game-frame{max-height:85vh}.touch-controls{bottom:8px}.touch-btn{width:48px;height:48px;font-size:18px}.touch-dpad-cross{grid-template-columns:48px 48px 48px;grid-template-rows:48px 48px 48px}.mobile-settings-fab{bottom:calc(60px + env(safe-area-inset-bottom,0));right:var(--space-sm);width:40px;height:40px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.system-chip:hover,.btn-import-rom:hover,.library-rom-row:hover .library-rom-action{transform:none}}.home-kicker{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.section-title{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:var(--space-2xl) var(--space-2xl) var(--space-md)}.theme-tint-switcher{display:flex;align-items:center;gap:var(--space-sm)}.theme-tint-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase}.theme-tint-track{display:flex;gap:6px}.theme-tint-option{display:flex;flex-direction:column;align-items:center;gap:3px;background:transparent;border:none;cursor:pointer;padding:3px;border-radius:var(--radius-sm);transition:background .15s}.theme-tint-option:hover{background:var(--bg-hover)}.theme-tint-option.active{background:var(--bg-active)}.theme-tint-option-swatch{width:20px;height:20px;border-radius:50%;background:var(--theme-accent-secondary, var(--accent-primary));box-shadow:0 0 0 1px var(--border-subtle);border:2px solid transparent;transition:border-color .15s}.theme-tint-option.active .theme-tint-option-swatch{border-color:var(--text-primary)}.theme-tint-option-label{font-family:var(--font-mono);font-size:9px;color:var(--text-muted);letter-spacing:.04em;white-space:nowrap}.rom-upload{display:none}.desktop-banner.svelte-1oaruoy{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:linear-gradient(135deg,#7b5cfff2,#ff3366f2);color:#fff;font-size:var(--text-xs);font-family:var(--font-mono)}.banner-content.svelte-1oaruoy{display:flex;align-items:center;gap:var(--space-sm);flex:1}.banner-icon.svelte-1oaruoy{font-size:var(--text-sm);flex-shrink:0}.desktop-banner-text.svelte-1oaruoy{opacity:.95;line-height:1.4}.desktop-banner-dismiss.svelte-1oaruoy{background:#fff3;border:none;color:#fff;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:var(--text-base);line-height:1;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .2s}.desktop-banner-dismiss.svelte-1oaruoy:hover{background:#ffffff4d}.error-fallback.svelte-1k3aqik{display:flex;align-items:center;justify-content:center;min-height:200px;padding:2rem;background:#ff33661a;border:1px solid rgba(255,51,102,.3);border-radius:8px;margin:1rem}.error-content.svelte-1k3aqik{text-align:center;color:#f36}.error-content.svelte-1k3aqik h2:where(.svelte-1k3aqik){margin:0 0 .5rem;font-family:VT323,monospace;font-size:1.5rem}.error-message.svelte-1k3aqik{color:#ffffffb3;font-size:.875rem;margin:0 0 1rem;word-break:break-word}.error-content.svelte-1k3aqik button:where(.svelte-1k3aqik){background:#f36;color:#fff;border:none;padding:.5rem 1.5rem;font-family:VT323,monospace;font-size:1.25rem;cursor:pointer;border-radius:4px;transition:background .2s}.error-content.svelte-1k3aqik button:where(.svelte-1k3aqik):hover{background:#ff4d7a}
