@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color:#e8e8e3;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--page:#19171e;--panel:#232027;--line:#3d3844;--muted:#aaa4b0;--quiet:#81788b;--violet:#bb8df2;--violet-light:#d9b7ff;--orange:#e47d4e;--mono:"DM Mono", monospace;--pixel:"Press Start 2P", monospace;background:#19171e;font-family:Manrope,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:var(--page);min-height:100vh}button,a{font:inherit;color:inherit}::selection{color:#21192a;background:var(--violet-light)}.app-shell{background:radial-gradient(ellipse at 72% 13%, #2b2434 0, transparent 36%), var(--page);flex-direction:column;min-height:100vh;display:flex;overflow:hidden}.site-header{border-bottom:1px solid #34372f;justify-content:space-between;align-items:center;width:min(1240px,100% - 64px);height:82px;margin:0 auto;display:flex}.brand{color:#f2f2ec;font-family:var(--pixel);letter-spacing:0;align-items:center;gap:11px;font-size:10px;text-decoration:none;display:inline-flex}.brand img{object-fit:contain;width:32px;height:32px;image-rendering:pixelated}.header-nav{align-items:center;gap:25px;display:flex}.nav-link{color:#c0c3b9;align-items:center;gap:9px;font-size:13px;text-decoration:none;transition:color .18s;display:flex}.nav-link:hover,.nav-link.active{color:var(--violet-light)}.saved-count{min-width:20px;height:20px;color:var(--muted);font:10px var(--mono);border:1px solid #474b40;border-radius:50px;place-items:center;padding:0 5px;display:grid}.nav-icon-link{color:#aeb2a7;place-items:center;transition:color .18s;display:grid}.nav-icon-link:hover{color:var(--violet-light)}.header-load,.primary-button,.secondary-button{cursor:pointer;min-height:44px;font:8px/1.8 var(--pixel);border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:0 17px;text-decoration:none;transition:background .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.header-load,.primary-button{color:#241a30;background:var(--violet)}.header-load:hover,.primary-button:hover{background:var(--violet-light);transform:translateY(-1px)}.header-load{min-height:38px;padding-inline:14px}.secondary-button{color:#e2e3dc;background:0 0;border-color:#4a4e43}.secondary-button:hover{border-color:var(--violet);color:var(--violet-light)}.file-input{display:none}main{flex:1;width:100%}.home-page,.saved-page,.emulator-page,.empty-emulator{width:min(1240px,100% - 64px);margin:0 auto}.hero-section{grid-template-columns:1fr 1.05fr;align-items:center;gap:52px;min-height:610px;padding:54px 0 48px;display:grid}.hero-copy{padding:0 0 16px 3px}.eyebrow{color:var(--quiet);font:500 10px/1.5 var(--mono);letter-spacing:0;margin:0}.eyebrow-mark{background:var(--violet);border-radius:50%;width:7px;height:7px;margin:0 8px 0 0;display:inline-block;box-shadow:0 0 12px #bb8df266}.hero-copy h1{color:#f2f2ec;font:24px/1.9 var(--pixel);margin:26px 0 20px}.hero-copy h1 span{color:var(--violet-light)}.hero-description{color:#a9ada2;max-width:465px;margin:0;font-size:15px;line-height:1.8}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:31px;display:flex}.hero-actions .primary-button,.hero-actions .secondary-button{min-height:49px}.hero-links{gap:24px;margin-top:36px;display:flex}.hero-links a{color:#9ca196;font:11px var(--mono);align-items:center;gap:8px;text-decoration:none;transition:color .16s;display:inline-flex}.hero-links a:hover{color:var(--violet-light)}.link-arrow{margin-left:2px;transform:rotate(135deg)}.console-stage{isolation:isolate;place-items:center;height:490px;display:grid;position:relative}.console-stage:before{content:"";z-index:-2;opacity:.38;background-image:linear-gradient(#5b5e5140 1px,#0000 1px),linear-gradient(90deg,#5b5e5140 1px,#0000 1px);background-size:34px 34px;position:absolute;inset:22px 0;-webkit-mask-image:radial-gradient(#000 20%,#0000 72%);mask-image:radial-gradient(#000 20%,#0000 72%)}.console-halo{z-index:-1;border:1px solid #bb8df22b;border-radius:50%;width:390px;height:300px;position:absolute;transform:rotate(-20deg);box-shadow:0 0 0 32px #bb8df20c,0 0 0 66px #bb8df208}.console{background:linear-gradient(145deg,#927aaa 0%,#765d91 37%,#5e4978 80%);border:1px solid #a28ab9;border-radius:35px 35px 42px 42px;width:min(540px,98%);height:340px;padding:19px 22px 15px;position:relative;transform:rotate(-5deg);box-shadow:22px 28px 45px #08060b7a,inset 0 2px #f2e8ff45,inset -5px -8px #38294788}.console:after{content:"";z-index:-1;filter:blur(15px);background:#0009;border-radius:50%;height:30px;position:absolute;bottom:-16px;left:8%;right:8%}.console-topline,.console-bottomline{color:#e0d3ec;font:9px var(--mono);justify-content:space-between;display:flex}.console-topline span:first-child{color:var(--violet-light)}.console-body{grid-template-columns:92px minmax(0,1fr) 92px;align-items:center;gap:11px;height:272px;display:grid}.console-screen-frame{background:#12140f;border:1px solid #11130f;border-radius:15px;height:220px;padding:11px;box-shadow:inset 0 2px 5px #000}.console-screen{background:radial-gradient(#50385f,#34263f 69%,#251e2c);border:1px solid #8f6ea4;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 26px #16101c}.console-screen img{object-fit:contain;width:70px;height:64px;image-rendering:pixelated;filter:sepia(.5)saturate(.7)hue-rotate(18deg);opacity:.87}.console-screen>span{color:#e5c6ff;font:9px var(--mono);animation:1.6s steps(2,start) infinite blink}.screen-scanlines{pointer-events:none;opacity:.22;background:repeating-linear-gradient(0deg,#0000 0 3px,#10180f 4px);position:absolute;inset:0}.console-left-controls{flex-direction:column;align-items:center;gap:20px;display:flex}.dpad{width:85px;height:75px;position:relative}.dpad span,.dpad i,.dpad b,.dpad em,.dpad strong{background:linear-gradient(140deg,#29232f,#17141c);border:1px solid #40354a;display:block;position:absolute}.dpad span{border-radius:4px;width:27px;height:58px;top:8px;left:29px}.dpad i{border-radius:4px;width:59px;height:27px;top:24px;left:13px}.dpad b{background:#211b28;border:0;width:20px;height:19px;top:10px;left:33px}.dpad em{background:#211b28;border:0;width:20px;height:19px;bottom:10px;left:33px}.dpad strong{background:#211b28;border:0;width:17px;height:19px;top:28px;left:17px}.system-buttons{gap:5px;display:flex;transform:rotate(-12deg)}.system-buttons b{color:#dfcbed;text-align:center;min-width:28px;font:5px var(--mono);background:#3b3047;border-radius:8px;padding:4px 3px;box-shadow:1px 2px #392844,inset 0 1px #e5d4f233}.console-right-controls{flex-direction:column;align-items:center;gap:22px;display:flex}.console-speaker{gap:5px;display:flex;transform:rotate(-35deg)}.console-speaker i{background:#30273a;border-radius:5px;width:3px;height:34px;box-shadow:1px 1px #a38ab8}.action-buttons{gap:11px;display:flex;transform:rotate(-28deg)}.action-buttons b{color:#f4cbb7;width:36px;height:36px;font:10px var(--mono);background:linear-gradient(145deg,#c85a43,#743326);border-radius:50%;place-items:center;display:grid;box-shadow:2px 4px #10110e,inset 1px 2px #fff3}.console-bottomline{color:#d2c2e0;font-size:8px}.console-bottomline i{background:#362b42;border-radius:6px;width:22px;height:5px;margin:0 4px;display:inline-block;box-shadow:inset 0 1px #211a29}.stage-coordinate{color:#656a5c;font:9px var(--mono);position:absolute;top:27px;right:10px}.stage-caption{color:#858a7e;font:9px var(--mono);position:absolute;bottom:15px;left:4px}.stage-caption span{color:var(--violet);margin-right:9px}.stage-rule{background:linear-gradient(90deg, var(--violet), #514956 46%, transparent);height:1px;position:absolute;bottom:0;left:0;right:0}.library-strip{border-top:1px solid #35382f;padding:38px 0 56px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:20px;display:flex}.section-heading h2{color:#e6e8e0;font:12px/1.8 var(--pixel);margin:12px 0 0}.text-link{color:var(--violet-light);align-items:center;gap:5px;font-size:12px;text-decoration:none;display:inline-flex}.recent-grid{border-top:1px solid #34372f;grid-template-columns:repeat(3,1fr);display:grid}.recent-game{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #34372f;grid-template-columns:88px 1fr 17px;align-items:center;gap:14px;min-width:0;padding:15px 15px 15px 0;display:grid}.recent-game+.recent-game{border-left:1px solid #34372f;padding-left:15px}.recent-game img{object-fit:contain;width:88px;height:59px;image-rendering:pixelated;background:#272d22}.recent-game strong,.recent-game small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.recent-game strong{color:#e6e8e0;font:8px/1.8 var(--pixel)}.recent-game small{color:#8d9386;font:10px var(--mono);margin-top:6px}.recent-game>svg{color:#777d70}.recent-game:hover strong,.recent-game:hover>svg{color:var(--violet-light)}.quick-start{overflow:hidden}.empty-library{color:#959a8e;border:1px dashed #44483c;align-items:center;gap:13px;min-height:85px;padding:18px;font-size:13px;display:flex}.empty-library svg{color:var(--violet)}.site-footer{color:#797e73;width:min(1240px,100% - 64px);min-height:61px;font:10px var(--mono);border-top:1px solid #34372f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;margin:0 auto;padding:13px 0;display:flex}.footer-dot{color:#555a4e;margin:0 7px}.runtime-status{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;max-width:50%;display:inline-flex;overflow:hidden}.legal-disclaimer{color:#6f746a;border-top:1px solid #2e312b;flex-basis:100%;margin:0;padding-top:10px;font-size:9px;line-height:1.6}.runtime-status i{background:var(--violet);border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #bb8df280}.saved-page{padding:67px 0 90px}.saved-heading{border-bottom:1px solid #393c34;justify-content:space-between;align-items:end;padding-bottom:27px;display:flex}.saved-heading h1,.emulator-heading h1{font:17px/1.8 var(--pixel);margin:16px 0 12px}.saved-heading>div>p:last-child{color:#9da195;margin:0;font-size:13px}.library-count{color:var(--violet-light);font:30px var(--mono)}.library-count small{color:#818779;text-align:right;margin-top:4px;font-size:9px;display:block}.saved-row{border-bottom:1px solid #393c34;grid-template-columns:160px minmax(180px,1fr) minmax(180px,.65fr) 44px;align-items:center;gap:23px;min-height:124px;padding:15px 0;display:grid}.saved-art{cursor:pointer;background:#282d22;border:0;width:160px;height:92px;padding:0;position:relative;overflow:hidden}.saved-art img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated;transition:transform .25s;display:block}.saved-art:after{content:"";opacity:0;background:#10130da8;transition:opacity .18s;position:absolute;inset:0}.saved-art>span{z-index:1;color:var(--violet-light);font:8px/1.8 var(--pixel);opacity:0;justify-content:center;align-items:center;gap:6px;transition:opacity .18s;display:flex;position:absolute;inset:0}.saved-art:hover img{transform:scale(1.04)}.saved-art:hover:after,.saved-art:hover>span{opacity:1}.saved-info h2{overflow-wrap:anywhere;color:#eceee7;font:10px/1.8 var(--pixel);margin:0}.saved-info p{color:#8d9386;margin:7px 0 0;font-size:12px}.saved-date span,.saved-date time{display:block}.saved-date span{color:#747a6d;font:9px var(--mono);margin-bottom:8px}.saved-date time{color:#b6baaf;font:11px var(--mono)}.delete-button{color:#858a7e;cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;width:38px;height:38px;display:grid}.delete-button:hover{color:#ec8f69;border-color:#6f4135}.empty-saved,.empty-emulator{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:430px;display:flex}.empty-emulator{width:min(700px,100% - 48px);min-height:calc(100vh - 160px);margin:0 auto}.empty-emulator-icon{width:60px;height:60px;color:var(--violet-light);background:#29242f;border:1px solid #554763;place-items:center;margin-bottom:19px;display:grid}.empty-saved h2,.empty-emulator h1{color:#eceee7;font:13px/1.8 var(--pixel);margin:14px 0 12px}.empty-saved p,.empty-emulator>p:not(.eyebrow){color:#9da195;max-width:380px;margin:0 0 23px;font-size:13px;line-height:1.7}.empty-emulator>small{color:#7e8477;font:10px var(--mono);margin-top:22px}.rom-error-log{color:#e0b5a8;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;width:min(100%,680px);max-height:240px;font:11px/1.65 var(--mono);background:#171411;border:1px solid #704b43;margin:22px 0 32px;padding:15px 17px;overflow:auto}.emulator-page{padding:48px 0 72px}.emulator-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.emulator-heading-actions{align-items:center;gap:10px;display:flex}.emulator-title{flex:1;min-width:0}.emulator-heading h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.emulator-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:24px;display:grid}.screen-well{position:relative}.screen-well canvas{aspect-ratio:3/2;width:100%;height:auto;image-rendering:pixelated;background:#090b08;display:block}.emulation-notice{color:#f1eee8;text-align:center;background:#11130fe8;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:28px;display:flex;position:absolute;inset:0}.emulation-notice strong{color:#e1c8fa;font:14px var(--pixel)}.emulation-notice span{color:#c0c3b9;max-width:460px;font:12px/1.7 var(--mono);overflow-wrap:anywhere}.paused-notice{cursor:pointer;background:#11130fcc;border:0}.secondary-button:disabled{opacity:.45;cursor:not-allowed}.secondary-button:disabled:hover{color:#e2e3dc;border-color:#4a4e43}.secondary-button[aria-pressed=true]{border-color:var(--violet);color:var(--violet-light);background:#29242f}.touch-controls{background:var(--touch-bg);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;gap:18px;padding:16px 18px 24px;display:grid;overflow:clip}.touch-controls [data-gba]{color:var(--touch-label);font:9px var(--pixel);place-items:center;transition:background 60ms,transform 60ms;display:grid}.touch-shoulders,.touch-main,.touch-system{justify-content:space-between;align-items:center;display:flex}.touch-system{justify-content:center;gap:22px}.touch-shoulder{border:1px solid var(--touch-border);background:var(--touch-surface);border-radius:18px 18px 6px 6px;width:min(30%,120px);height:36px}.touch-dpad{isolation:isolate;aspect-ratio:1;width:clamp(120px,38vw,150px);position:relative}.touch-dpad:before{content:"";border-radius:50%;position:absolute;inset:-30%}.touch-dpad i{pointer-events:none;position:absolute}.touch-dpad i:before,.touch-dpad i:after{content:"";border-radius:6px;position:absolute}.touch-dpad i:before{z-index:0;background:var(--touch-border);box-shadow:0 4px 0 var(--touch-depth);inset:0}.touch-dpad i:after{z-index:1;background:var(--touch-surface);border-radius:5px;inset:1px}.touch-dpad-h{inset:33% 0}.touch-dpad-v{inset:0 33%}.touch-dpad.is-pressed{filter:brightness(1.2)}.touch-face{aspect-ratio:1.15;width:clamp(130px,42vw,168px);position:relative}.touch-face-button{aspect-ratio:1;background:var(--touch-face);width:46%;box-shadow:0 4px 0 var(--touch-face-depth);border-radius:50%;position:absolute;color:var(--touch-face-label)!important;font-size:12px!important}.touch-a{top:0;right:0}.touch-b{bottom:0;left:0}.touch-pill{border:1px solid var(--touch-border);background:var(--touch-surface);border-radius:13px;min-width:74px;height:26px;padding:0 12px;font-size:7px!important}.touch-controls .is-pressed:not(.touch-dpad){filter:brightness(1.2);box-shadow:none;transform:translateY(3px)}.touch-controls,.touch-theme-swatch,.app-shell.touch-play{--touch-bg:#1a1d18;--touch-surface:#282b24;--touch-border:#4a4e43;--touch-depth:#0e100c;--touch-label:#c9cdc1;--touch-face:#bb8df2;--touch-face-label:#1a1420;--touch-face-depth:#5b3f7a;--touch-ink:#e8e8e3}[data-touch-theme=indigo]{--touch-bg:#34327a;--touch-surface:#24224f;--touch-border:#5a58a8;--touch-depth:#15143a;--touch-label:#d8d7ff;--touch-face:#9c9ae0;--touch-face-label:#1d1c48;--touch-face-depth:#4b4996;--touch-ink:#ecebff}[data-touch-theme=pikachu]{--touch-bg:#f2cf3a;--touch-surface:#2d2a22;--touch-border:#b8960f;--touch-depth:#8a6f08;--touch-label:#f7e27a;--touch-face:#e2463a;--touch-face-label:#fff4ec;--touch-face-depth:#8e231b;--touch-ink:#2d2a22}[data-touch-theme=emerald]{--touch-bg:#0f4f3c;--touch-surface:#0a3528;--touch-border:#2b8a66;--touch-depth:#04201a;--touch-label:#c6f0dc;--touch-face:#3fd08f;--touch-face-label:#06291d;--touch-face-depth:#1d7552;--touch-ink:#dff7ec}[data-touch-theme=fire-red]{--touch-bg:#a8231c;--touch-surface:#4c100c;--touch-border:#d8574c;--touch-depth:#2e0806;--touch-label:#ffd8d2;--touch-face:#ff9540;--touch-face-label:#3a0f06;--touch-face-depth:#a3461a;--touch-ink:#fff0ec}[data-touch-theme=hyrule]{--touch-bg:#2d4528;--touch-surface:#3d2f1c;--touch-border:#8c7540;--touch-depth:#1e170c;--touch-label:#eed98c;--touch-face:#d6b23a;--touch-face-label:#2a1f08;--touch-face-depth:#7a6320;--touch-ink:#f3e7b8}[data-touch-theme=oled-silver]{--touch-bg:#000;--touch-surface:#b9bcc2;--touch-border:#e4e6ea;--touch-depth:#55585e;--touch-label:#1c1d20;--touch-face:#d6d8dc;--touch-face-label:#1c1d20;--touch-face-depth:#6b6e74;--touch-ink:#e4e6ea;--touch-chrome:linear-gradient(135deg, #f7f8fa 0%, #aeb2b9 28%, #eceef1 48%, #8e929a 70%, #d9dce0 100%);--touch-holo:linear-gradient(120deg, #ff9ee455, #9ee8ff44 45%, #d2ff9e44)}[data-touch-theme=oled-silver] .touch-dpad i:after{background:var(--touch-chrome) center / 100% 100% no-repeat}[data-touch-theme=oled-silver] .touch-dpad .touch-dpad-h:after{background-size:100% 294%}[data-touch-theme=oled-silver] .touch-dpad .touch-dpad-v:after{background-size:294% 100%}[data-touch-theme=oled-silver] .touch-shoulder,[data-touch-theme=oled-silver] .touch-pill{box-shadow:inset 0 1px 0 #fff, 0 3px 0 var(--touch-depth);text-shadow:0 1px #fff8;background:linear-gradient(#fdfdfe,#b9bdc4 55%,#8a8e95)}[data-touch-theme=oled-silver] .touch-face-button,[data-touch-theme=oled-silver].touch-theme-swatch b{background:radial-gradient(circle at 32% 26%, #fff 0 9%, #fff0 32%), var(--touch-holo), conic-gradient(from 210deg, #c3c7cd, #f8f9fb, #9a9ea6, #e8eaee, #b0b4bb, #c3c7cd)}[data-touch-theme=oled-silver] .touch-face-button{box-shadow:inset 0 -3px 6px #0004, 0 0 14px #c9e6ff33, 0 4px 0 var(--touch-face-depth);text-shadow:0 1px #fff9}[data-touch-theme=oled-silver].touch-theme-swatch i,[data-touch-theme=oled-silver].touch-theme-swatch i:after{background:var(--touch-chrome)}.touch-theme-options{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.touch-theme-options .haptic-options{grid-template-columns:repeat(3,1fr)}.speed-option{text-align:center;min-height:78px;padding:8px 4px;font-size:7px}.touch-theme-swatch{border:1px solid var(--touch-border);background:var(--touch-bg);border-radius:6px;width:52px;height:30px;position:relative}.touch-theme-swatch i{background:var(--touch-surface);border-radius:1px;width:15px;height:5px;position:absolute;top:12px;left:7px}.touch-theme-swatch i:after{content:"";background:var(--touch-surface);border-radius:1px;width:5px;height:15px;position:absolute;top:-5px;left:5px}.touch-theme-swatch b{background:var(--touch-face);border-radius:50%;width:13px;height:13px;position:absolute;top:8px;right:7px}.emulator-aside{background:#1d201b;border:1px solid #393d34;padding:23px 20px}.cartridge-mockup{aspect-ratio:1;background:linear-gradient(145deg,#927aaa 0%,#765d91 37%,#5e4978 80%);border:1px solid #a28ab9;border-radius:8px 8px 5px 5px;justify-content:center;align-items:center;width:min(100%,210px);margin:2px auto 23px;padding:25px 16px 19px;display:flex;position:relative;box-shadow:inset 2px 2px #f2e8ff45,inset -3px -4px #38294788,5px 7px 12px #08060b7a}.cartridge-mockup:before,.cartridge-mockup:after{content:"";background:#765d91;border:1px solid #a28ab9;border-bottom:0;width:28px;height:16px;position:absolute;top:-1px}.cartridge-mockup:before{transform-origin:100% 100%;left:15px;transform:skew(32deg)}.cartridge-mockup:after{transform-origin:0 100%;right:15px;transform:skew(-32deg)}.cartridge-grip{background:#382947;border-radius:3px;width:51px;height:5px;position:absolute;top:9px;left:50%;transform:translate(-50%);box-shadow:0 1px #f2e8ff25}.cartridge-label{aspect-ratio:1;color:#332a23;text-align:center;background:linear-gradient(145deg,#c3b098,#927d68);border:1px solid #8e8172;flex-direction:column;justify-content:center;width:min(100%,150px);padding:10px 12px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff4d066}.cartridge-label img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cartridge-label span,.cartridge-label small{font:8px var(--mono);letter-spacing:.08em}.cartridge-label strong{color:#241e1a;overflow-wrap:anywhere;font:6px/1.6 var(--pixel);margin:7px 0}.cartridge-label small{color:#5d4b3e;font-size:6px}.cartridge-contacts{background:#382947;justify-content:center;gap:4px;height:10px;padding-top:2px;display:flex;position:absolute;bottom:0;left:25px;right:25px}.cartridge-contacts i{background:linear-gradient(90deg,#c7a85c,#7b652e);width:8px;height:8px}.emulator-aside>p:not(.eyebrow){color:#969b8f;margin:0 0 19px;font-size:12px;line-height:1.7}.wide-button{width:100%}.keyboard-note{border-top:1px solid #393d34;margin-top:25px;padding-top:19px}.keyboard-note>span{color:#787e71;font:9px var(--mono);margin-bottom:12px;display:block}.keyboard-note>div{flex-wrap:wrap;gap:8px 12px;display:flex}.keyboard-note .control{align-items:center;gap:6px;display:inline-flex}.keyboard-note .control small{color:#979d91;font:9px var(--mono)}kbd{color:#d1d4ca;text-align:center;min-width:29px;font:9px var(--mono);background:#272a24;border:1px solid #4b4f45;padding:6px}.emulator-disclaimer{color:#777d71;max-width:750px;margin:17px 0 0;font-size:11px;line-height:1.7}.settings-backdrop{z-index:10;background:#090a08aa;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.settings-modal{background:#20221d;border:1px solid #5b5363;width:min(100%,430px);max-height:calc(100dvh - 48px);padding:23px;overflow-y:auto;box-shadow:0 24px 70px #000b}.mobile-only{display:none!important}.details-modal .settings-modal-heading{margin-bottom:19px}.settings-modal-heading{z-index:1;background:#20221d;border-bottom:1px solid #3b3f36;justify-content:space-between;align-items:start;gap:18px;margin:-23px -23px 0;padding:23px 23px 19px;display:flex;position:sticky;top:0}.settings-modal h2{color:#eeefe9;font:12px/1.7 var(--pixel);margin:10px 0 0}.modal-close{color:#b9beb1;cursor:pointer;background:0 0;border:1px solid #4b4f45;place-items:center;width:34px;height:34px;display:grid}.modal-close:hover{border-color:var(--violet);color:var(--violet-light)}.setting-row{color:#dde0d7;cursor:pointer;justify-content:space-between;align-items:center;gap:18px;padding:21px 0;display:flex}.setting-row strong,.setting-row small{display:block}.setting-row strong{font-size:13px}.setting-row small{color:#979d91;margin-top:5px;font-size:11px}.setting-column{cursor:default;flex-direction:column;align-items:stretch}.speed-options{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.speed-option{color:#b9beb1;cursor:pointer;min-height:64px;font:8px/1.6 var(--pixel);background:0 0;border:1px solid #4a4e43;flex-direction:column;justify-content:center;align-items:center;gap:8px;transition:border-color .18s,color .18s,background .18s;display:flex}.speed-option:hover{border-color:var(--violet);color:var(--violet-light)}.speed-option.active{border-color:var(--violet);color:var(--violet-light);background:#bb8df21f}.speed-option:focus-visible,.sound-toggle:focus-visible{outline:2px solid var(--violet-light);outline-offset:2px}.sound-controls{align-items:center;gap:12px;display:flex}.sound-toggle{color:#dde0d7;cursor:pointer;background:0 0;border:1px solid #4a4e43;flex:none;place-items:center;width:38px;height:38px;display:grid}.sound-toggle:hover{border-color:var(--violet);color:var(--violet-light)}.sound-toggle[aria-pressed=true]{color:#f08a7e}.sound-controls input[type=range]{min-width:0;accent-color:var(--violet);cursor:pointer;flex:1}.sound-controls input[type=range]:disabled{opacity:.4;cursor:not-allowed}.sound-controls output{color:#979d91;width:38px;font:11px var(--mono);text-align:right}.setting-row input{width:18px;height:18px;accent-color:var(--violet);cursor:pointer}.settings-note{color:#858b80;border-top:1px solid #3b3f36;margin:0;padding-top:16px;font-size:11px;line-height:1.65}@keyframes blink{to{visibility:hidden}}@media (width<=850px){.hero-section{grid-template-columns:1fr 1fr;gap:15px}.console-stage{transform-origin:50%;transform:scale(.92)}.console{height:285px}.console-body{grid-template-columns:72px minmax(0,1fr) 72px;gap:6px;height:217px}.console-screen-frame{height:174px;padding:9px}.console-left-controls{gap:14px;transform:scale(.8)}.console-right-controls{gap:16px;transform:scale(.85)}.emulator-layout{grid-template-columns:minmax(0,1fr) 220px;gap:15px}.saved-row{grid-template-columns:130px minmax(140px,1fr) 42px;gap:16px}.saved-art{width:130px;height:78px}.saved-date{display:none}}@media (width<=620px){.site-header,.home-page,.saved-page,.emulator-page{width:calc(100% - 36px)}.site-header{height:68px}.brand{gap:7px;font-size:8px}.brand img{width:27px;height:27px}.header-nav{gap:13px}.header-nav .nav-link{display:none}.header-load{width:38px;height:38px;min-height:38px;padding:0}.header-load span{display:none}.home-page{width:100%}.hero-section{grid-template-columns:1fr;gap:0;min-height:auto;padding:52px 18px 25px}.hero-copy{padding:0}.hero-copy h1{margin-top:20px;font-size:17px}.hero-description{font-size:13px}.hero-actions{margin-top:23px}.hero-actions .primary-button,.hero-actions .secondary-button{padding-inline:12px;font-size:7px}.hero-links{gap:17px;margin-top:25px}.hero-links a{gap:6px;font-size:9px}.stage-caption{bottom:11px;left:18px}.stage-rule{left:18px;right:18px}.library-strip{padding:27px 18px 37px}.section-heading h2{font-size:10px}.recent-grid{grid-template-columns:1fr}.recent-game{grid-template-columns:82px 1fr 16px;padding-right:0}.recent-game+.recent-game{border-left:0;padding-left:0}.recent-game img{width:82px;height:54px}.site-footer{width:calc(100% - 36px);min-height:58px;font-size:8px}.legal-disclaimer{font-size:8px}.runtime-status{max-width:48%}.saved-page{padding:44px 0 60px}.saved-heading h1,.emulator-heading h1{font-size:12px}.saved-heading>div>p:last-child{max-width:240px;font-size:11px;line-height:1.6}.library-count{font-size:24px}.saved-row{grid-template-columns:97px minmax(0,1fr) 35px;gap:11px;min-height:93px}.saved-art{width:97px;height:62px}.saved-info h2{font-size:8px}.saved-info p{font-size:10px;line-height:1.5}.delete-button{width:32px;height:34px}.empty-saved{min-height:370px;padding:20px}.empty-saved h2,.empty-emulator h1{font-size:10px}.emulator-page{padding:35px 0 50px}.emulator-heading{align-items:end;gap:10px}.emulator-heading-actions{gap:7px}.emulator-heading .secondary-button{min-height:38px;padding-inline:10px;font-size:7px}.emulator-heading-actions .secondary-button{gap:0;width:38px;padding:0;font-size:0}.emulator-layout{grid-template-columns:1fr}.play-surface{margin-inline:-18px}.touch-controls{padding-inline:16px}.emulator-aside{padding:17px}.keyboard-note{margin-top:17px}}.app-shell.touch-play{background:var(--touch-bg);color:var(--touch-ink)}.touch-play .brand,.touch-play .nav-link:not(.active),.touch-play .nav-icon-link,.touch-play .emulator-heading h1,.touch-play .site-footer,.touch-play .footer-dot,.touch-play .legal-disclaimer{color:var(--touch-ink)}.touch-play .site-footer,.touch-play .legal-disclaimer{opacity:.75}.touch-play .site-header,.touch-play .site-footer,.touch-play .legal-disclaimer{border-color:var(--touch-border)}.touch-play .emulator-heading-actions .secondary-button{border-color:var(--touch-border);background:var(--touch-surface);color:var(--touch-label)}.touch-play .emulator-heading-actions .secondary-button[aria-pressed=true]{border-color:var(--touch-face);color:var(--touch-face)}.touch-play[data-touch-theme=oled-silver] .emulator-heading-actions .secondary-button{background:linear-gradient(#fdfdfe,#b9bdc4 55%,#8a8e95);box-shadow:inset 0 1px #fff}.touch-play[data-touch-theme=oled-silver] .emulator-heading-actions .secondary-button[aria-pressed=true]{color:#1c1d20;border-color:#9ee8ff;box-shadow:inset 0 1px #fff,0 0 10px #9ee8ff66}@media (orientation:portrait) and (pointer:coarse){.emulator-layout{grid-template-columns:1fr}.play-surface{width:100vw;margin-inline:calc(50% - 50vw) 0}}@media (orientation:landscape) and (pointer:coarse) and (height<=540px){.emulator-layout:has(.has-touch-controls){grid-template-columns:1fr}.play-surface.has-touch-controls{background:#000;width:100vw;height:100dvh;margin-left:calc(50% - 50vw);position:relative}.has-touch-controls .screen-well{place-items:center;height:100%;display:grid}.has-touch-controls .screen-well canvas{width:auto;max-width:100%;height:100%}.has-touch-controls .touch-controls{pointer-events:none;background:0 0;padding:0;display:block;position:absolute;inset:0}.has-touch-controls .touch-controls [data-gba]{pointer-events:auto;opacity:.42}.has-touch-controls .touch-controls [data-gba].is-pressed{opacity:.75}.has-touch-controls .touch-shoulders{position:absolute;top:12px;left:16px;right:16px}.has-touch-controls .touch-shoulder{width:110px;height:34px}.has-touch-controls .touch-main{left:max(22px, env(safe-area-inset-left));right:max(22px, env(safe-area-inset-right));align-items:center;position:absolute;bottom:clamp(64px,24dvh,120px)}.has-touch-controls .touch-dpad{width:min(140px,38dvh)}.has-touch-controls .touch-face{width:min(150px,40dvh)}.has-touch-controls .touch-system{position:absolute;bottom:10px;left:0;right:0}}@media (width<=620px),(orientation:landscape) and (pointer:coarse) and (height<=540px){.hero-section{grid-template-columns:1fr;min-height:auto}.console-stage{display:none}}.landscape-actions-toggle{display:none}@media (orientation:landscape) and (pointer:coarse) and (height<=540px){.app-shell.touch-play{overscroll-behavior:none;height:100dvh;min-height:0}.touch-play .site-header,.touch-play .site-footer,.touch-play .emulator-title{display:none}.touch-play main{flex:1;min-height:0}.touch-play .emulator-page{width:100%;height:100%;padding:0;position:relative}.touch-play .emulator-heading{display:none}.touch-play .actions-open .emulator-heading{z-index:2;justify-content:center;margin:0;display:flex;position:absolute;top:56px;left:0;right:0}.touch-play .emulator-heading-actions{border:1px solid var(--touch-border);background:color-mix(in srgb, var(--touch-bg) 88%, transparent);flex-wrap:wrap;justify-content:center;max-width:calc(100% - 32px);padding:6px}.touch-play .landscape-actions-toggle{border:1px solid var(--touch-border);background:var(--touch-surface);width:40px;height:34px;color:var(--touch-label);opacity:.42;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:13px;place-items:center;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.touch-play .landscape-actions-toggle[aria-expanded=true]{opacity:.9}}@media (orientation:portrait) and (pointer:coarse){.app-shell.touch-play{height:100dvh;min-height:0}.touch-play .site-header,.touch-play .site-footer,.touch-play .emulator-title{display:none}.touch-play main{flex:1;min-height:0}.touch-play .emulator-page{height:100%;padding:max(10px, env(safe-area-inset-top)) 0 env(safe-area-inset-bottom);flex-direction:column;display:flex}.touch-play .emulator-heading{justify-content:center;margin-bottom:10px}.touch-play .emulator-layout{flex-direction:column;flex:1;min-height:0;display:flex}.touch-play .play-surface{flex-direction:column;flex:1;display:flex}.touch-play .touch-controls{flex:1;align-content:space-evenly}}@media (width<=620px),(orientation:portrait) and (pointer:coarse),(orientation:landscape) and (pointer:coarse) and (height<=540px){.emulator-aside{display:none}.mobile-only{display:inline-flex!important}}.saves-modal{width:min(100%,520px);max-height:calc(100vh - 48px);overflow-y:auto}.saves-section{border-bottom:1px solid #3b3f36;padding:21px 0}.saves-section:last-child{border-bottom:0;padding-bottom:0}.saves-section>span strong,.saves-section>span small{display:block}.saves-section>span strong{color:#dde0d7;font-size:13px}.saves-section>span small{color:#979d91;margin-top:5px;font-size:11px;line-height:1.6}.saves-section kbd{min-width:0;padding:1px 5px}.state-slots{gap:10px;margin-top:15px;display:grid}.state-slot{border:1px solid #393d34;grid-template-columns:96px 1fr auto;align-items:center;gap:14px;padding:8px;display:grid}.state-slot img,.state-slot-empty{aspect-ratio:3/2;width:96px;image-rendering:pixelated;background:#11130f;display:block}.state-slot-empty{color:#5f6458;font:7px var(--pixel);place-items:center;display:grid}.state-slot-info strong,.state-slot-info small{display:block}.state-slot-info strong{color:#e2e3dc;font:9px/1.8 var(--pixel)}.state-slot-info small{color:#979d91;font:11px var(--mono)}.state-slot-actions{gap:6px;display:flex}.state-slot-actions .secondary-button,.save-file-actions .secondary-button{min-height:36px;padding:0 12px}.save-file-actions{flex-wrap:wrap;gap:8px;margin-top:15px;display:flex}.save-import-error{color:#f08a7e;font:11px/1.6 var(--mono);margin:12px 0 0}.save-import-confirm{background:#e8c87214;border:1px solid #e8c87266;margin-top:14px;padding:14px}.save-import-confirm p{color:#dde0d7;margin:0 0 12px;font-size:12px;line-height:1.6}.save-import-confirm div{flex-wrap:wrap;gap:8px;display:flex}.leave-modal>p{color:#dde0d7;margin:16px 0;font-size:13px;line-height:1.6}.leave-actions{flex-direction:column;gap:8px;display:flex}.leave-actions button{justify-content:center}:root:has(.app-shell.touch-play){overscroll-behavior:none}body:has(.app-shell.touch-play){overscroll-behavior:none}.toast{z-index:20;border:1px solid var(--violet);color:#eeefe9;max-width:min(420px,100vw - 32px);font:12px/1.6 var(--mono);background:#20221d;padding:13px 17px;animation:.18s ease-out toast-in;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 40px #000a}.toast-error{border-color:#f08a7e}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.install-prompt{z-index:19;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));border:1px solid var(--violet);background:var(--panel);color:#eeefe9;align-items:center;gap:14px;width:min(520px,100vw - 32px);padding:14px 12px 14px 16px;animation:.2s ease-out install-prompt-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 12px 40px #000a}.install-prompt img{border-radius:10px;flex:none;width:44px;height:44px}.install-prompt-copy{flex:1;min-width:0}.install-prompt-copy strong{color:var(--violet-light);font:9px/1.6 var(--pixel);margin-bottom:6px;display:block}.install-prompt-copy p{color:var(--muted);font:12px/1.6 var(--mono);margin:0}.install-prompt-copy p svg{vertical-align:-2px;color:var(--violet-light)}.install-prompt-copy b{color:#eeefe9;font-weight:500}.install-prompt .primary-button{flex:none;min-height:38px;padding-inline:14px}.install-prompt-close{width:34px;height:34px;color:var(--quiet);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.install-prompt-close:hover{color:var(--violet-light)}@keyframes install-prompt-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (width<=560px){.install-prompt{bottom:calc(16px + env(safe-area-inset-bottom));flex-wrap:wrap}.install-prompt .primary-button{order:3;width:100%}.state-slot{grid-template-columns:72px 1fr}.state-slot img,.state-slot-empty{width:72px}.state-slot-actions{grid-column:1/-1}.toast{bottom:16px;left:16px;right:16px}}
