.pro-gate[data-v-731097d8]{z-index:80;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.pro-gate__backdrop[data-v-731097d8]{cursor:pointer;background:#0000009e;border:0;position:absolute;inset:0}.pro-gate__panel[data-v-731097d8]{z-index:1;width:min(440px,100%);padding:1.1rem 1.2rem 1.2rem;position:relative}.pro-gate__title[data-v-731097d8]{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.08em;margin:0 0 .55rem;font-size:.85rem}.pro-gate__body[data-v-731097d8]{color:var(--text);margin:0 0 .65rem;font-size:.9rem;line-height:1.5}.pro-gate__list[data-v-731097d8]{color:var(--cyan);margin:0 0 .55rem;padding-left:1.1rem;font-size:.85rem;line-height:1.55}.pro-gate__free[data-v-731097d8]{margin:0 0 .75rem}.pro-gate__plans[data-v-731097d8]{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:0 0 .75rem;display:grid}.pro-gate__plan[data-v-731097d8]{background:#00000040;border:1px solid #ffffff1a;border-radius:4px;flex-direction:column;gap:.1rem;padding:.45rem .5rem;font-size:.78rem;display:flex}.pro-gate__plan strong[data-v-731097d8]{color:var(--neon-yellow);font-weight:600}.pro-gate__quota[data-v-731097d8]{color:var(--text-muted);margin:.25rem 0 0;padding:0;font-size:.68rem;line-height:1.4;list-style:none}.pro-gate__quota li+li[data-v-731097d8]{margin-top:.08rem}.pro-gate__hint[data-v-731097d8]{margin:0 0 .9rem}.pro-gate__wechat[data-v-731097d8]{color:var(--neon-yellow)}@media (width<=420px){.pro-gate__plans[data-v-731097d8]{grid-template-columns:1fr}}.site-nav__user[data-v-cb7c81db]{color:var(--cyan);padding:.5rem .75rem;font-size:.78rem;text-decoration:none}.site-nav__user[data-v-cb7c81db]:hover{color:var(--neon-yellow)}a.site-nav__user[aria-current=page][data-v-cb7c81db]{color:#1a0a00}a.site-nav__user[aria-current=page] .site-nav__pro[data-v-cb7c81db]{color:#1a0a00;border-color:#1a0a0073}.site-nav__pro[data-v-cb7c81db]{color:var(--neon-yellow);letter-spacing:.06em;border:1px solid #ffd60a8c;border-radius:3px;margin-left:.35rem;padding:.05rem .3rem;font-size:.62rem}.site-nav__logout[data-v-cb7c81db]{font-family:var(--font-arcade);letter-spacing:.06em;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.5rem 1rem;font-size:.78rem}.site-nav__logout[data-v-cb7c81db]:hover{color:var(--neon-yellow)}.footer-sep[data-v-3978773d]{color:var(--text-muted);margin:0 .35rem}.macro-cloud-modal[data-v-0fb4e645]{z-index:10050;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.macro-cloud-modal__backdrop[data-v-0fb4e645]{cursor:pointer;background:#000000b8;border:0;position:absolute;inset:0}.macro-cloud-modal__panel[data-v-0fb4e645]{z-index:1;border-radius:var(--radius);border:2px solid var(--border);background:#160b28;flex-direction:column;gap:.65rem;width:min(440px,100%);max-height:min(70vh,520px);padding:1.1rem 1.2rem 1.2rem;display:flex;position:relative;box-shadow:0 0 0 1px #ff2a6d33,0 18px 48px #0000008c}.macro-cloud-modal__head[data-v-0fb4e645]{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.macro-cloud-modal__title[data-v-0fb4e645]{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.08em;margin:0;font-size:.85rem}.macro-cloud-modal__close[data-v-0fb4e645]{appearance:none;color:#c5c6d0;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:999px;flex:none;place-items:center;width:1.85rem;height:1.85rem;margin:0;padding:0;transition:color .12s,border-color .12s,background .12s;display:inline-grid}.macro-cloud-modal__close svg[data-v-0fb4e645]{width:.95rem;height:.95rem;display:block}.macro-cloud-modal__close[data-v-0fb4e645]:hover{color:#fff;background:#ff2a6d24;border-color:#ff8aa873}.macro-cloud-modal__hint[data-v-0fb4e645]{margin:0}.macro-cloud-modal__list[data-v-0fb4e645]{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.macro-cloud-modal__item[data-v-0fb4e645]{background:#00000047;border:1px solid #ffffff14;border-radius:4px;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.65rem;padding:.65rem .7rem;display:flex}.macro-cloud-modal__meta[data-v-0fb4e645]{flex-direction:column;gap:.2rem;min-width:0;display:flex}.macro-cloud-modal__meta strong[data-v-0fb4e645]{color:var(--text);word-break:break-word;font-size:.88rem}.macro-cloud-modal__meta span[data-v-0fb4e645]{color:var(--text-muted);font-size:.75rem}.macro-cloud-modal__pick[data-v-0fb4e645]{appearance:none;color:#baf8ff;font-family:var(--font-arcade);letter-spacing:.08em;cursor:pointer;background:linear-gradient(#05d9e838 0%,#05d9e814 100%);border:1px solid #05d9e873;border-radius:999px;flex:none;align-items:center;gap:.28rem;margin:0;padding:.38rem .72rem;font-size:.68rem;line-height:1;transition:color .12s,border-color .12s,background .12s,box-shadow .12s,transform .12s;display:inline-flex;box-shadow:0 0 12px #05d9e81f}.macro-cloud-modal__actions[data-v-0fb4e645]{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.macro-cloud-modal__pick[data-v-0fb4e645]:hover:not(:disabled){color:#fff;background:linear-gradient(#05d9e857 0%,#05d9e824 100%);border-color:#05d9e8bf;transform:translateY(-1px);box-shadow:0 0 16px #05d9e847}.macro-cloud-modal__pick[data-v-0fb4e645]:active:not(:disabled){transform:translateY(0)}.macro-cloud-modal__pick[data-v-0fb4e645]:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.macro-cloud-modal__danger[data-v-0fb4e645]{appearance:none;color:#ff9bb4;cursor:pointer;background:#ff2a6d1a;border:1px solid #ff8aa866;border-radius:999px;margin:0;padding:.38rem .65rem;font-size:.72rem;line-height:1}.macro-cloud-modal__danger[data-v-0fb4e645]:hover{color:#ffc0d0;background:#ff2a6d33;border-color:#ff8aa8a6}.macro-cloud-toast[data-v-332151d1]{z-index:10070;color:#d8fbff;max-width:min(92vw,22rem);font-family:var(--font-arcade);letter-spacing:.06em;pointer-events:none;background:#0c1624f0;border:1px solid #05d9e88c;border-radius:999px;align-items:center;gap:.45rem;padding:.7rem 1rem;font-size:.78rem;animation:.22s ease-out macro-cloud-toast-in-332151d1;display:inline-flex;position:fixed;top:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #05d9e82e,0 10px 28px #00000073,0 0 24px #05d9e838}.macro-cloud-toast__icon[data-v-332151d1]{color:#7ef7ff;width:1.15rem;height:1.15rem;font-family:var(--font-mono);background:#05d9e833;border-radius:999px;place-items:center;font-size:.75rem;line-height:1;display:inline-grid}@keyframes macro-cloud-toast-in-332151d1{0%{opacity:0;transform:translate(-50%)translateY(-.45rem)}to{opacity:1;transform:translate(-50%)translateY(0)}}.macro-dup-dialog[data-v-332151d1]{z-index:10060;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.macro-dup-dialog__backdrop[data-v-332151d1]{cursor:pointer;background:#000000b8;border:0;position:absolute;inset:0}.macro-dup-dialog__panel[data-v-332151d1]{z-index:1;border-radius:var(--radius);border:2px solid var(--border);background:#160b28;width:min(380px,100%);padding:1.1rem 1.2rem 1.2rem;position:relative;box-shadow:0 0 0 1px #ff2a6d33,0 18px 48px #0000008c}.macro-dup-dialog__title[data-v-332151d1]{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.08em;margin:0 0 .55rem;font-size:.85rem}.macro-dup-dialog__body[data-v-332151d1]{color:var(--text);margin:0 0 1rem;font-size:.9rem;line-height:1.5}.macro-dup-dialog__actions[data-v-332151d1]{justify-content:flex-end;gap:.5rem}.macro-dup-dialog__btn[data-v-332151d1]{appearance:none;cursor:pointer;border:1px solid #0000;border-radius:999px;min-height:2.1rem;padding:.4rem .95rem;font-size:.82rem;line-height:1;transition:border-color .15s,background .15s,color .15s}.macro-dup-dialog__btn[data-v-332151d1]:disabled{opacity:.5;cursor:not-allowed}.macro-dup-dialog__btn--ghost[data-v-332151d1]{color:#d8d8e2;background:#ffffff0a;border-color:#ffffff29}.macro-dup-dialog__btn--ghost[data-v-332151d1]:hover:not(:disabled){color:#fff;background:#ffffff14;border-color:#ffffff47}.macro-dup-dialog__btn--danger[data-v-332151d1]{color:#ffe0e8;background:#ff2a6d38;border-color:#ff2a6d8c}.macro-dup-dialog__btn--danger[data-v-332151d1]:hover:not(:disabled){color:#fff;background:#ff2a6d59;border-color:#ff2a6dcc}.app-home-layer[data-v-ffc4b8a4]{z-index:1;visibility:hidden;pointer-events:none;position:fixed;inset:0;overflow:auto}.app-home-layer--active[data-v-ffc4b8a4]{visibility:visible;pointer-events:auto}.app-route-layer[data-v-ffc4b8a4]{z-index:2;background:#0c0618eb;min-height:100dvh;position:relative}.legal-article code[data-v-aa836b85]{color:var(--cyan);background:#05d9e81a;border-radius:3px;padding:.08rem .28rem;font-size:.85em}.auth-main[data-v-dc65b18e]{max-width:480px;margin:0 auto;padding:1.25rem 1.5rem 2rem}.auth-card h2[data-v-dc65b18e]{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.08em;margin:0 0 .5rem;font-size:.9rem}.auth-form input[data-v-dc65b18e]{border-radius:var(--radius-sm);background:var(--bg-elevated);width:100%;color:var(--text);border:2px solid #4a2d7acc;padding:.65rem .85rem;font-family:inherit;font-size:.9rem}.auth-form input[data-v-dc65b18e]:focus-visible{outline:2px solid var(--neon-yellow);outline-offset:2px}.auth-form input[data-v-dc65b18e]:disabled{opacity:.7;cursor:not-allowed}.auth-forgot[data-v-dc65b18e]{margin:.25rem 0 0;font-size:.82rem}.auth-forgot a[data-v-dc65b18e]{color:var(--cyan)}.auth-main[data-v-9e33ec08]{max-width:480px;margin:0 auto;padding:1.25rem 1.5rem 2rem}.auth-card h2[data-v-9e33ec08]{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.08em;margin:0 0 .5rem;font-size:.9rem}.auth-form input[data-v-9e33ec08]{border-radius:var(--radius-sm);background:var(--bg-elevated);width:100%;color:var(--text);border:2px solid #4a2d7acc;padding:.65rem .85rem;font-family:inherit;font-size:.9rem}.auth-form input[data-v-9e33ec08]:focus-visible{outline:2px solid var(--neon-yellow);outline-offset:2px}.auth-form input[data-v-9e33ec08]:disabled{opacity:.7;cursor:not-allowed}.code-row[data-v-9e33ec08]{align-items:stretch;gap:.55rem;display:flex}.code-row input[data-v-9e33ec08]{flex:auto;min-width:0}.code-btn[data-v-9e33ec08]{white-space:nowrap;flex:none;min-width:7.5rem}.agree-field[data-v-9e33ec08]{color:var(--text-muted);cursor:pointer;align-items:flex-start;gap:.55rem;margin:.15rem 0 .35rem;font-size:.82rem;line-height:1.45;display:flex}.agree-field input[data-v-9e33ec08]{width:auto;accent-color:var(--cyan);flex:none;margin-top:.2rem}.agree-field a[data-v-9e33ec08]{color:var(--cyan);text-underline-offset:.15em;text-decoration:underline}.agree-field a[data-v-9e33ec08]:hover{color:var(--neon-yellow)}.auth-main[data-v-3384bacd]{max-width:480px;margin:0 auto;padding:1.25rem 1.5rem 2rem}.auth-card h2[data-v-3384bacd]{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.08em;margin:0 0 .5rem;font-size:.9rem}.auth-form input[data-v-3384bacd]{border-radius:var(--radius-sm);background:var(--bg-elevated);width:100%;color:var(--text);border:2px solid #4a2d7acc;padding:.65rem .85rem;font-family:inherit;font-size:.9rem}.auth-form input[data-v-3384bacd]:focus-visible{outline:2px solid var(--neon-yellow);outline-offset:2px}.auth-form input[data-v-3384bacd]:disabled{opacity:.7;cursor:not-allowed}.dev-reset-url a[data-v-3384bacd]{color:var(--cyan);word-break:break-all}.auth-main[data-v-e0644dbf]{max-width:480px;margin:0 auto;padding:1.25rem 1.5rem 2rem}.auth-card h2[data-v-e0644dbf]{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.08em;margin:0 0 .5rem;font-size:.9rem}.auth-form input[data-v-e0644dbf]{border-radius:var(--radius-sm);background:var(--bg-elevated);width:100%;color:var(--text);border:2px solid #4a2d7acc;padding:.65rem .85rem;font-family:inherit;font-size:.9rem}.auth-form input[data-v-e0644dbf]:focus-visible{outline:2px solid var(--neon-yellow);outline-offset:2px}.auth-form input[readonly][data-v-e0644dbf]{opacity:.85}.auth-form input[data-v-e0644dbf]:disabled{opacity:.7;cursor:not-allowed}.admin-main[data-v-58aa8785]{max-width:1100px;margin:0 auto;padding:1rem 1.25rem 2.5rem}.admin-nav[data-v-58aa8785]{flex-wrap:wrap;gap:.55rem;margin-bottom:1rem;padding:.7rem .85rem;display:flex}.admin-nav__link[data-v-58aa8785]{font-family:var(--font-arcade);letter-spacing:.06em;color:var(--neon-yellow);border:1px solid #ffd60a59;border-radius:4px;padding:.4rem .7rem;font-size:.72rem;text-decoration:none}.admin-nav__link.router-link-active[data-v-58aa8785]{background:#ffd60a1f}.admin-nav__link.ghost[data-v-58aa8785]{color:var(--text-muted);border-color:#ffffff1f}:root{--bg-deep:#0c0618;--bg-panel:#160c28e0;--bg-elevated:#20123af2;--border:#ff2a6d38;--border-bright:#05d9e859;--text:#fff5f8;--text-muted:#b8a8c8;--accent:#ff2a6d;--accent-deep:#c4004f;--accent-glow:#ff2a6d8c;--cyan:#05d9e8;--cyan-dim:#05d9e81f;--neon-yellow:#f9f002;--cabinet:#1e0f35;--cabinet-light:#3d2068;--radius:6px;--radius-sm:4px;--shadow-card:0 0 0 1px #ff2a6d26, 0 0 24px #ff2a6d14, 0 16px 40px #00000080;--font-sans:system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--font-arcade:var(--font-mono);--page-max-width:1480px;--controls-col-min:260px;--controls-col-max:320px;--game-frame-max-vh:85vh;--game-frame-max-height:900px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:16px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html,body{min-height:100dvh;margin:0}body{font-family:var(--font-sans);background-color:var(--bg-deep);color:var(--text);-webkit-font-smoothing:antialiased;width:100%;min-height:100dvh;line-height:1.55}#app{width:100%;min-height:100dvh;font-size:1rem}.page-shell{z-index:1;flex-direction:column;width:100%;min-height:100dvh;display:flex;position:relative}.page-shell>.page-shell__body,.page-shell>main{flex:auto;width:100%}.page-shell>.site-footer{flex-shrink:0;margin-top:auto}.scene-bg{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.scene-bg picture{display:block;position:absolute;inset:0}.scene-bg__image{object-fit:cover;object-position:center center;width:100%;height:100%;image-rendering:pixelated;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;backface-visibility:hidden;position:absolute;inset:0;transform:translateZ(0)}.scene-bg__overlay{background:linear-gradient(#0c0618d1 0%,#0c061861 38%,#0c06187a 68%,#0c0618e6 100%),radial-gradient(80% 60% at 50% 45%,#0000 0%,#0c06188c 100%),linear-gradient(90deg,#0c06186b 0%,#0000 22% 78%,#0c06186b 100%);position:absolute;inset:0}.scene-stars{opacity:.55;background-image:radial-gradient(circle, var(--neon-yellow) 1px, transparent 1px), radial-gradient(circle, var(--cyan) 1px, transparent 1px), radial-gradient(circle, var(--accent) 1.5px, transparent 1.5px);background-position:0 0,40px 60px,80px 20px;background-size:120px 120px,180px 180px,240px 240px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 25% 75%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 25% 75%,#0000 100%)}@media (width<=900px){.scene-bg__image{object-position:center 30%}}.arcade-floor{pointer-events:none;z-index:0;opacity:.2;background-image:linear-gradient(90deg,#ff2a6d0a 1px,#0000 1px),linear-gradient(#05d9e80a 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0}.ambient{pointer-events:none;filter:blur(90px);opacity:.45;z-index:0;border-radius:50%;position:fixed}.ambient--a{background:#ff2a6d47;width:min(480px,80vw);height:min(480px,80vw);top:-12%;right:-15%}.ambient--b{background:#05d9e82e;width:min(400px,70vw);height:min(400px,70vw);bottom:0;left:-15%}.scanlines{pointer-events:none;z-index:9999;opacity:.05;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000073 2px 4px);position:fixed;inset:0}@keyframes neon-pulse{0%,to{text-shadow:0 0 8px #ff2a6de6,0 0 20px #ff2a6d99,0 0 40px #05d9e859}50%{text-shadow:0 0 12px #ff2a6d,0 0 28px #ff2a6dbf,0 0 50px #05d9e880}}@keyframes blink-dot{0%,to{opacity:1}50%{opacity:.25}}@keyframes marquee-scroll{0%{background-position:0%}to{background-position:200%}}.site-header{z-index:1;text-align:center;-webkit-backdrop-filter:blur(8px);background:linear-gradient(#12081feb 0%,#12081f8c 100%);border-bottom:2px solid #ff2a6d40;padding:1.35rem 1.5rem 1rem;position:relative;box-shadow:0 8px 32px #ff2a6d14}.brand{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem .75rem;display:flex}.neon-title{letter-spacing:.12em;color:#fff;margin:0;font-size:clamp(1.5rem,5vw,2.25rem);font-weight:800;line-height:1.2;animation:3s ease-in-out infinite neon-pulse;position:relative}.brand-seo-name{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.brand-icon{width:2.1rem;height:2.1rem;color:var(--neon-yellow);border:2px solid var(--neon-yellow);background:linear-gradient(#4a2878 0%,#2a1548 100%);border-radius:4px;justify-content:center;align-items:center;font-size:1rem;display:inline-flex;box-shadow:0 0 12px #f9f00266,inset 0 1px #fff3}.brand-tag{font-family:var(--font-arcade);letter-spacing:.2em;color:var(--cyan);border:2px solid var(--cyan);background:#05d9e814;border-radius:2px;padding:.25rem .6rem;font-size:.62rem;font-weight:700;box-shadow:0 0 12px #05d9e859}.tagline{max-width:38rem;color:var(--text-muted);margin:.65rem auto 0;font-size:.9rem}.tagline--arcade{font-family:var(--font-arcade);letter-spacing:.08em;text-transform:uppercase;color:var(--neon-yellow);font-size:.72rem}.blink-dot{color:var(--accent);margin:0 .35rem;animation:1.2s step-end infinite blink-dot}.layout{z-index:1;grid-template-columns:minmax(var(--controls-col-min), var(--controls-col-max)) minmax(0, 1fr);width:100%;max-width:var(--page-max-width);box-sizing:border-box;align-items:start;gap:1.5rem;margin:0 auto;padding:1.25rem 1.5rem 2.5rem;display:grid;position:relative}@media (width<=900px){.layout{padding-left:0;padding-right:0;padding-bottom:max(2rem, env(safe-area-inset-bottom));flex-direction:column;gap:0;display:flex}.game-panel{order:-1;align-self:stretch;width:100%}.controls-panel{padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));padding-top:1.25rem}.arcade-cabinet{border-left:none;border-right:none;border-radius:0;padding:.5rem .35rem .65rem}.arcade-bezel{padding:6px}.arcade-bezel .game-frame{--game-max-h:min(70svh, calc(100svh - 12rem));width:min(100%, calc(var(--game-max-h) * 4 / 3));aspect-ratio:4/3;max-width:100%;height:auto;max-height:var(--game-max-h);border-radius:0;min-height:0}.arcade-bezel .game-frame.aspect-gba{width:min(100%, calc(var(--game-max-h) * 3 / 2));aspect-ratio:3/2}.arcade-bezel .game-frame.aspect-gb{width:min(100%, calc(var(--game-max-h) * 10 / 9));aspect-ratio:10/9}.arcade-bezel .game-frame.aspect-nds{--game-max-h:min(82svh, calc(100svh - 12rem));width:min(100%, calc(var(--game-max-h) * 2 / 3));aspect-ratio:2/3;max-height:var(--game-max-h)}.arcade-bezel .emulator-host{height:100%;min-height:0}.arcade-bezel .emulator-host:empty{height:100%;min-height:0;display:block}.arcade-deck{min-height:3.25rem;margin-top:.5rem}@media (orientation:landscape){.site-header,.arcade-marquee,.site-footer,.arcade-deck{display:none}.layout{padding-bottom:0}.game-panel{order:-1}.arcade-cabinet{box-shadow:none;background:#000;border:none;justify-content:center;align-items:center;min-height:100svh;padding:0;display:flex}.arcade-bezel{box-shadow:none;background:#000;border:none;border-radius:0;justify-content:center;align-items:center;width:100%;padding:0;display:flex}.arcade-bezel .game-frame{--game-max-h:calc(100svh - env(safe-area-inset-top) - env(safe-area-inset-bottom));aspect-ratio:4/3;height:min(var(--game-max-h), calc(100vw * 3 / 4));width:min(100vw, calc(var(--game-max-h) * 4 / 3));max-width:100%;max-height:var(--game-max-h);border-radius:0;min-height:0;margin-inline:auto}.arcade-bezel .game-frame.aspect-gba{aspect-ratio:3/2;height:min(var(--game-max-h), calc(100vw * 2 / 3));width:min(100vw, calc(var(--game-max-h) * 3 / 2))}.arcade-bezel .game-frame.aspect-gb{aspect-ratio:10/9;height:min(var(--game-max-h), calc(100vw * 9 / 10));width:min(100vw, calc(var(--game-max-h) * 10 / 9))}.arcade-bezel .game-frame.aspect-nds{aspect-ratio:2/3;height:min(var(--game-max-h), calc(100vw * 3 / 2));width:min(100vw, calc(var(--game-max-h) * 2 / 3))}.arcade-bezel .game-frame:before{display:none}.controls-panel{padding-top:.75rem}}.page-shell.is-playing .site-header,.page-shell.is-playing .site-footer,.page-shell.is-playing .arcade-marquee,.page-shell.is-playing .controls-panel{display:none}.page-shell.is-playing.play-menu-open .controls-panel{z-index:60;width:100%;max-height:min(78svh,100%);padding:.75rem max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;pointer-events:auto;background:linear-gradient(#1a1028 0%,#12081f 40%,#0c0614 100%);border-radius:16px 16px 0 0;flex-direction:column;margin:0;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -12px 40px #0000008c}.page-shell.is-playing.play-menu-open .play-setup,.page-shell.is-playing.play-menu-open .card.compact{display:none}.page-shell.is-playing.play-menu-open .controls-panel>.card{box-shadow:none;background:0 0;border:none;margin:0;padding:0}.play-menu-backdrop{display:none}.page-shell.is-playing.play-menu-open .play-menu-backdrop{z-index:55;cursor:pointer;background:#0000008c;border:0;margin:0;padding:0;display:block;position:fixed;inset:0}.page-shell.is-playing.play-menu-open .arcade-deck,.page-shell.is-playing.ejs-overlay-open .arcade-deck{display:none}.play-menu-sheet__head{flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.65rem;display:flex}.play-menu-sheet__title{color:#f2e9ff;margin:0;font-size:1rem;font-weight:700}.play-menu-sheet__close{font-family:var(--font-arcade);letter-spacing:.12em;color:#ffb4c0;cursor:pointer;background:linear-gradient(#2a2a2a 0%,#101010 100%);border:2px outset #8a3048;border-radius:2px;padding:.4rem .85rem;font-size:.58rem}.page-shell.is-playing .layout{gap:0;padding:0;display:block}.page-shell.is-playing .game-panel{z-index:40;order:0;width:100%;height:100%;max-height:none;position:fixed;inset:0}.page-shell.is-playing .arcade-cabinet{height:100%;min-height:100%;box-shadow:none;background:#000;border:none;border-radius:0;flex-direction:column;padding:0;display:flex;position:relative}.page-shell.is-playing .arcade-bezel{min-height:0;box-shadow:none;background:#000;border:none;border-radius:0;flex:auto;padding:0;display:flex}.page-shell.is-playing .arcade-bezel .game-frame,.page-shell.is-playing .arcade-bezel .game-frame.aspect-gba,.page-shell.is-playing .arcade-bezel .game-frame.aspect-gb,.page-shell.is-playing .arcade-bezel .game-frame.aspect-nds{aspect-ratio:auto;border-radius:0;flex:auto;width:100%;max-width:none;height:100%;min-height:0;max-height:none;margin:0}.page-shell.is-playing .arcade-bezel .game-frame:before{display:none}.page-shell.is-playing .arcade-bezel .emulator-host{height:100%;min-height:0}.page-shell.is-playing .arcade-deck{display:none}.arcade-deck .coin-slot--menu{display:inline-block}body:has(.page-shell.is-playing){overscroll-behavior:none;overflow:hidden}.site-header{padding-top:max(1rem, env(safe-area-inset-top));padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right))}.tagline{padding:0 .5rem;font-size:.68rem}.btn{flex:1;min-width:8rem;min-height:44px}.actions--emulator .btn{min-width:0}.drop-zone{-webkit-tap-highlight-color:transparent;padding:1.1rem}.card.compact+.card{margin-top:1.25rem}}.panel{min-width:0}.card{-webkit-backdrop-filter:blur(10px);border:2px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);background:linear-gradient(165deg,#2d164eb8 0%,#0e081aeb 100%);margin-bottom:1rem;padding:1.35rem}.card.compact{margin-bottom:0}.card.compact+.card{margin-top:1rem}.card h2{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.55rem;margin:0 0 .85rem;font-size:.82rem;font-weight:700;display:flex}.card h2:before{content:"■";color:var(--accent);text-shadow:0 0 8px var(--accent-glow);flex-shrink:0;font-size:.65rem}.hint{color:var(--text-muted);margin:0 0 1.1rem;font-size:.86rem}.hint code,.field-hint code{font-family:var(--font-mono);color:var(--cyan);background:#00000073;border:1px solid #05d9e833;border-radius:2px;padding:.12em .4em;font-size:.78em}.field{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.field.optional{margin-bottom:0}.bios-picker{border-radius:var(--radius-sm);cursor:pointer;background:radial-gradient(at 0%,#05d9e80f 0%,#0000 55%),#00000047;border:2px dashed #05d9e852;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.7rem .85rem;transition:border-color .2s,background .2s,box-shadow .2s;display:flex}.bios-picker:hover,.bios-picker:focus-visible,.bios-picker.dragover{border-color:var(--cyan);background:radial-gradient(at 0%,#05d9e81f 0%,#0000 60%),#05d9e80d;box-shadow:0 0 16px #05d9e81f}.bios-picker.dragover{border-style:solid}.bios-picker__btn{font-family:var(--font-arcade);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-sm);color:var(--neon-yellow);background:linear-gradient(#3d2068 0%,#1e0f35 100%);border:2px solid #f9f0028c;flex-shrink:0;padding:.45rem .7rem;font-size:.65rem;font-weight:700;box-shadow:inset 0 1px #ffffff1a}.bios-picker__name{min-width:0;font-family:var(--font-mono);color:var(--text-muted);word-break:break-all;flex:1;font-size:.78rem}.bios-picker__name.is-selected{color:var(--cyan);text-shadow:0 0 8px #05d9e859}.recent-local{background:#00000038;border:1px solid #ffffff14;border-radius:8px;margin:.85rem 0 .35rem;padding:.75rem .8rem}.recent-local__head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.55rem;display:flex}.recent-local__title{color:#f0e6ff;margin:0;font-size:.92rem;font-weight:700}.recent-local__clear{color:#ffb4c0;cursor:pointer;background:#00000040;border:1px solid #8a3048a6;border-radius:4px;flex-shrink:0;padding:.25rem .55rem;font-size:.72rem}.recent-local__clear:hover:not(:disabled){background:#8a304840}.recent-local__clear:disabled{opacity:.45;cursor:not-allowed}.recent-local__hint{margin:0 0 .75rem}.recent-local__block+.recent-local__block{margin-top:.55rem}.recent-local__label{letter-spacing:.06em;text-transform:uppercase;color:#ffffff73;margin:0 0 .3rem;font-size:.72rem}.recent-local__list{flex-direction:column;gap:.35rem;max-height:11rem;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.recent-local__item{align-items:stretch;gap:.35rem;display:flex}.recent-local__pick{text-align:left;min-width:0;color:inherit;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:6px;flex-direction:column;flex:1;align-items:flex-start;gap:.1rem;padding:.45rem .55rem;display:flex}.recent-local__pick:hover:not(:disabled){background:#ff2a6d14;border-color:#ff2a6d73}.recent-local__pick:disabled{opacity:.5;cursor:not-allowed}.recent-local__name{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.82rem;font-weight:600;overflow:hidden}.recent-local__meta{color:#ffffff73;font-size:.68rem}.recent-local__remove{color:#ffb4c0;cursor:pointer;background:#00000040;border:1px solid #ffffff1a;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:2rem;display:inline-flex}.recent-local__remove svg{width:1rem;height:1rem;display:block}.recent-local__remove:hover:not(:disabled){background:#8a30484d}.recent-local__remove:disabled{opacity:.45;cursor:not-allowed}.field-label{font-family:var(--font-arcade);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);font-size:.68rem;font-weight:700}select{border-radius:var(--radius-sm);background:var(--bg-elevated);width:100%;color:var(--text);border:2px solid #4a2d7acc;padding:.65rem .85rem;font-family:inherit;font-size:.9rem;transition:border-color .2s,box-shadow .2s}select:hover{border-color:var(--border-bright)}select:focus-visible,button:focus-visible,.drop-zone:focus-visible,.bios-picker:focus-visible{outline:2px solid var(--neon-yellow);outline-offset:2px}.field-hint{color:var(--text-muted);margin:-.45rem 0 1rem;font-size:.78rem;line-height:1.45}.drop-zone{border-radius:var(--radius);cursor:pointer;background:radial-gradient(at 50% 0,#f9f00214 0%,#0000 65%),#00000040;border:2px dashed #f9f00273;margin-bottom:1rem;padding:1.35rem 1rem;transition:border-color .25s,background .25s,transform .2s,box-shadow .25s}.drop-zone:hover,.drop-zone.dragover{border-color:var(--neon-yellow);background:radial-gradient(at 50% 0,#f9f00226 0%,#0000 70%),#f9f0020d;transform:translateY(-1px);box-shadow:0 0 24px #f9f00226}.drop-zone-inner{text-align:center}.drop-icon-wrap{border:2px solid var(--neon-yellow);background:linear-gradient(#3d2068 0%,#1e0f35 100%);border-radius:4px;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;margin:0 auto .65rem;display:flex;box-shadow:0 0 16px #f9f00240,inset 0 2px #ffffff1a}.drop-icon{font-size:1.5rem;line-height:1}.drop-title{font-family:var(--font-arcade);letter-spacing:.1em;color:var(--neon-yellow);margin:0;font-size:.78rem;font-weight:700}.rom-name{font-family:var(--font-mono);color:var(--cyan);word-break:break-all;text-shadow:0 0 8px #05d9e866;margin:.45rem 0 0;font-size:.78rem}.actions{flex-wrap:wrap;gap:.6rem;display:flex}.actions--emulator{flex-wrap:nowrap;gap:.45rem}.actions--emulator .btn{letter-spacing:.04em;white-space:nowrap;flex:1 1 0;min-width:0;padding:.65rem .4rem;font-size:.7rem}.save-io{background:#00000038;border:1px solid #ffffff14;border-radius:6px;flex-direction:column;align-items:stretch;gap:.55rem;min-width:0;margin-top:.75rem;padding:.55rem .7rem;display:flex;overflow:hidden}.save-io-head{flex-direction:column;gap:.15rem;min-width:0;display:flex}.save-io-title{font-family:var(--font-arcade);color:var(--neon-yellow);margin:0;font-size:.78rem;font-weight:400}.pro-badge{color:var(--neon-yellow);letter-spacing:.06em;vertical-align:.1em;border:1px solid #ffd60a8c;border-radius:3px;margin-left:.35rem;padding:.08rem .35rem;font-size:.62rem;display:inline-block}.cloud-io-modal{z-index:10050;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.cloud-io-modal__backdrop{cursor:pointer;background:#000000b8;border:0;position:absolute;inset:0}.cloud-io-modal__panel{z-index:1;border-radius:var(--radius);border:2px solid var(--border);background:#160b28;flex-direction:column;gap:.65rem;width:min(480px,100%);max-height:min(70vh,560px);padding:1.1rem 1.2rem 1.2rem;display:flex;position:relative;box-shadow:0 0 0 1px #ff2a6d33,0 18px 48px #0000008c}.cloud-io-modal__busy{z-index:5;border-radius:inherit;text-align:center;background:#0a0412d1;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.2rem;display:flex;position:absolute;inset:0}.cloud-io-modal__busy p{color:#bff8ff;max-width:18rem;margin:0;font-size:.85rem;line-height:1.45}.cloud-io-modal__spinner{border:3px solid #05d9e840;border-top-color:var(--cyan);border-radius:50%;width:1.75rem;height:1.75rem;animation:.75s linear infinite cloud-spin}@keyframes cloud-spin{to{transform:rotate(360deg)}}.cloud-io-modal__head{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.cloud-io-modal__title{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.08em;margin:0;font-size:.85rem}.cloud-io-modal__tools{flex-wrap:wrap;flex:auto;justify-content:flex-end;align-items:center;gap:.4rem;min-width:0;display:flex}.cloud-io-modal__close{appearance:none;color:#c5c6d0;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:999px;flex:none;place-items:center;width:1.85rem;height:1.85rem;margin:0;padding:0;transition:color .12s,border-color .12s,background .12s;display:inline-grid}.cloud-io-modal__close svg{width:.95rem;height:.95rem;display:block}.cloud-io-modal__close:hover{color:#fff;background:#ff2a6d24;border-color:#ff8aa873}.cloud-io-modal__hint{margin:0}.cloud-io-modal__list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.cloud-io-modal__item{background:#00000047;border:1px solid #ffffff14;border-radius:4px;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.65rem;padding:.65rem .7rem;display:flex}.cloud-io-modal__meta{flex-direction:column;flex:auto;gap:.2rem;min-width:0;display:flex}.cloud-io-modal__meta strong{color:var(--text);word-break:break-word;font-size:.88rem}.cloud-io-modal__meta span{color:var(--text-muted);font-size:.75rem}.cloud-io-modal__actions{flex-wrap:nowrap;flex:none;align-items:center;gap:.35rem;display:flex}.cloud-io-modal__actions .cloud-io-modal__pick{appearance:none;color:#baf8ff;font-family:var(--font-arcade);letter-spacing:.08em;cursor:pointer;background:linear-gradient(#05d9e838 0%,#05d9e814 100%);border:1px solid #05d9e873;border-radius:999px;flex:none;align-items:center;gap:.28rem;margin:0;padding:.38rem .72rem;font-size:.68rem;line-height:1;display:inline-flex;box-shadow:0 0 12px #05d9e81f}.cloud-io-modal__actions .cloud-io-modal__pick:hover:not(:disabled){color:#fff;background:linear-gradient(#05d9e857 0%,#05d9e824 100%);border-color:#05d9e8bf}.cloud-io-modal__actions .cloud-io-modal__pick:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.cloud-io-modal__danger{appearance:none;color:#ff9bb4;cursor:pointer;background:#ff2a6d1a;border:1px solid #ff8aa866;border-radius:999px;margin:0;padding:.38rem .65rem;font-size:.72rem;line-height:1}.cloud-io-modal__danger:hover:not(:disabled){color:#ffc0d0;background:#ff2a6d33;border-color:#ff8aa8a6}.cloud-io-modal__danger:disabled{opacity:.45;cursor:not-allowed}.save-io-hint{margin:0;font-size:.75rem}.save-io-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;width:100%;min-width:0;display:grid}.save-io-actions--row3{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.save-io-actions--row4{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.save-io-actions .btn{text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;min-width:0;padding-left:.4rem;padding-right:.4rem;font-size:.72rem;overflow:hidden}.save-io-chip{appearance:none;width:100%;min-height:2rem;font-family:var(--font-arcade);letter-spacing:.05em;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.32rem;margin:0;padding:.4rem .7rem;font-size:.68rem;line-height:1;transition:color .12s,border-color .12s,background .12s,box-shadow .12s,transform .12s;display:inline-flex;position:relative}.save-io-chip--pro{overflow:visible}.save-io-pro-tag{color:var(--neon-yellow);font-family:var(--font-arcade);letter-spacing:.03em;pointer-events:none;background:#1a1028;border:1px solid #f9f002a6;border-radius:3px;padding:.03rem .18rem;font-size:.48rem;line-height:1.1;position:absolute;top:-.28rem;right:-.12rem;box-shadow:0 1px 3px #00000073}.save-io-chip svg{flex:none;width:.95rem;height:.95rem;display:block}.save-io-chip--local{color:#baf8ff;background:linear-gradient(#05d9e838 0%,#05d9e814 100%);border-color:#05d9e873;box-shadow:0 0 12px #05d9e81f}.save-io-chip--local:hover{color:#fff;background:linear-gradient(#05d9e857 0%,#05d9e824 100%);border-color:#05d9e8bf;transform:translateY(-1px);box-shadow:0 0 16px #05d9e847}.save-io-chip--cloud{color:#fff4a8;background:linear-gradient(#f9f0022e 0%,#f9f0020f 100%);border-color:#f9f0026b;box-shadow:0 0 12px #f9f0021a}.save-io-chip--cloud:hover:not(:disabled){color:#fff;background:linear-gradient(#f9f00247 0%,#f9f0021a 100%);border-color:#f9f002b3;transform:translateY(-1px);box-shadow:0 0 16px #f9f00238}.save-io-chip--sm{width:auto;min-height:1.7rem;padding:.28rem .65rem .28rem .5rem;font-size:.62rem}.save-io-chip--sm svg{width:.82rem;height:.82rem}.save-io-chip:active:not(:disabled){transform:translateY(0)}.save-io-chip:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.save-io-chip--busy{cursor:wait}.save-io-chip--busy:disabled{opacity:.85}.save-io-chip__spinner{border:2px solid #ffffff38;border-top-color:currentColor;border-radius:50%;flex:none;width:.9rem;height:.9rem;animation:.75s linear infinite cloud-spin}.btn{font-family:var(--font-arcade);letter-spacing:.08em;border-radius:var(--radius-sm);cursor:pointer;border:2px solid #0000;justify-content:center;align-items:center;gap:.35rem;padding:.75rem 1.2rem;font-size:.78rem;font-weight:700;line-height:1.2;text-decoration:none;transition:transform .12s,box-shadow .2s,opacity .15s,border-color .15s,color .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(.96)translateY(2px)}.btn.primary{color:#1a0a00;background:linear-gradient(#ffe033 0%,#e6a800 45%,#c47f00 100%);border-color:#fff8c0;box-shadow:0 4px #8a5500,0 6px 18px #f9f00247}.btn.primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px #8a5500,0 0 22px #f9f00273}.btn.ghost{color:var(--text);background:linear-gradient(#3a2460 0%,#241538 100%);border-color:#05d9e86b;box-shadow:0 3px #12081f}.btn.ghost:not(:disabled):hover{color:var(--cyan);border-color:var(--cyan);box-shadow:0 3px #12081f,0 0 14px #05d9e852}.btn.danger,.btn.danger-ghost{color:#ffb3c8;background:linear-gradient(#5a1840 0%,#321028 100%);border-color:#ff2a6d8c;box-shadow:0 3px #1a0814}.btn.danger:not(:disabled):hover,.btn.danger-ghost:not(:disabled):hover{color:#fff;border-color:var(--accent);box-shadow:0 3px 0 #1a0814, 0 0 14px var(--accent-glow)}.arcade-btn-start{color:#1a0a00;background:linear-gradient(#ffe033 0%,#e6a800 45%,#c47f00 100%);border:2px solid #fff8c0;box-shadow:0 6px #8a5500,0 8px 24px #f9f00259}.arcade-btn-start:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px #8a5500,0 0 28px #f9f00280}.arcade-btn-stop{color:var(--text-muted);background:linear-gradient(#4a2878 0%,#2a1548 100%);box-shadow:0 4px #150a24;border:2px solid #ff2a6d66!important}.arcade-btn-stop:not(:disabled):hover{color:var(--text);box-shadow:0 4px 0 #150a24, 0 0 16px var(--accent-glow);border-color:var(--accent)!important}.status{min-height:1.25rem;font-family:var(--font-mono);color:var(--cyan);text-shadow:0 0 8px #05d9e859;margin:1rem 0 0;font-size:.8rem;line-height:1.45}.status.error{color:#ff8a8a;text-shadow:none}.status.ok{color:#8dffc2;text-shadow:0 0 10px #50ffaa73;animation:.9s ease-out status-ok-pulse}@keyframes status-ok-pulse{0%{opacity:.55;transform:translateY(2px)}40%{opacity:1;transform:translateY(0)}to{opacity:1}}.tips-list{color:var(--text-muted);margin:0;padding-left:1.1rem;font-size:.82rem}.tips-list li{margin-bottom:.45rem}.tips-list li::marker{color:var(--neon-yellow)}.tips-list ul{margin:.35rem 0 .15rem;padding-left:1rem}.tips-list ul li{margin-bottom:.25rem}.game-panel{justify-self:stretch;width:100%;min-width:0;position:sticky;top:1.25rem}.controls-panel,.controls-panel .card{min-width:0;max-width:100%}@media (width<=900px){.game-panel{position:static}}.arcade-cabinet{background:linear-gradient(180deg, var(--cabinet-light) 0%, var(--cabinet) 8%, #12081f 100%);border:4px solid #2a1548;border-radius:12px 12px 16px 16px;padding:.75rem .75rem 1rem;box-shadow:0 0 0 2px #ff2a6d33,0 0 40px #ff2a6d1f,0 24px 48px #0009,inset 0 1px #ffffff14}.arcade-marquee{background:#0a0512;border:2px solid #2a1548;border-radius:4px;justify-content:center;align-items:center;gap:.5rem;margin-bottom:.65rem;padding:.45rem .5rem;display:flex;overflow:hidden}.marquee-text{font-family:var(--font-arcade);letter-spacing:.25em;color:var(--accent);text-shadow:0 0 8px var(--accent-glow), 0 0 20px #ff2a6d80;white-space:nowrap;margin:0;font-size:clamp(.65rem,2.5vw,.85rem);font-weight:700}.marquee-lights{background:linear-gradient(90deg, var(--neon-yellow), var(--accent), var(--cyan), var(--neon-yellow));opacity:.85;background-size:200% 100%;border-radius:3px;flex:1;max-width:4rem;height:6px;animation:2.5s linear infinite marquee-scroll}.arcade-bezel{background:linear-gradient(#1a0a2e 0%,#0d0618 100%);border:3px solid #0a0512;border-radius:6px;padding:10px;box-shadow:inset 0 0 24px #000c,inset 0 0 0 1px #ffffff0d}.game-frame.aspect-gba{aspect-ratio:3/2;max-height:min(80vh,540px)}.game-frame.aspect-gb{aspect-ratio:10/9;max-height:min(75vh,520px)}.game-frame.aspect-nds{aspect-ratio:2/3;max-height:min(92vh,820px)}.game-frame{width:min(100%, calc(min(var(--game-frame-max-vh), var(--game-frame-max-height)) * 4 / 3));aspect-ratio:4/3;max-width:100%;height:auto;max-height:min(var(--game-frame-max-vh), var(--game-frame-max-height));background:#020203;border:none;border-radius:2px;margin-inline:auto;position:relative;overflow:hidden;box-shadow:inset 0 0 60px #000000e6}.game-frame:before{content:"";pointer-events:none;z-index:2;background:radial-gradient(#0000 55%,#0000008c 100%);position:absolute;inset:0}.arcade-deck{justify-content:space-between;align-items:center;margin-top:.75rem;padding:0 .5rem;display:flex}.deck-label{font-family:var(--font-arcade);color:var(--accent);text-shadow:0 0 10px var(--accent-glow);font-size:.9rem;font-weight:700}.deck-actions{justify-content:center;align-items:center;gap:.5rem;display:flex}.coin-slot{font-family:var(--font-arcade);letter-spacing:.15em;color:#c8c8c8;cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(#2a2a2a 0%,#101010 100%);border:2px outset #555;border-radius:2px;padding:.4rem 1.1rem;font-size:.65rem;transition:color .15s,border-color .15s,box-shadow .15s,transform .1s}.coin-slot:not(:disabled):hover{color:var(--neon-yellow);border-color:#888;box-shadow:0 0 12px #f9f00240}.coin-slot:not(:disabled):active{border-style:inset;transform:translateY(1px)}.coin-slot:disabled{opacity:.45;cursor:not-allowed;color:#666}.coin-slot--live{color:#8dffc2;border-color:#3a7a55;box-shadow:0 0 10px #50ffaa33}.coin-slot--paused{color:var(--neon-yellow);border-color:#8a7a20;box-shadow:0 0 10px #f9f00238}.coin-slot--exit{color:#ffb4c0;border-color:#8a3048;box-shadow:0 0 10px #ff2a6d2e}.coin-slot--menu{color:#b8d4ff;border-color:#3a5a8a;display:none;box-shadow:0 0 10px #508cff2e}.coin-slot--menu-open{color:#ffe08a;border-color:#8a7a20}.emulator-host{z-index:1;width:100%;height:100%;min-height:0;position:relative}.emulator-host .emulator-frame{background:#000;border:0;width:100%;height:100%;display:block}.emulator-host:empty,.emulator-host:not(:empty)+.placeholder{display:none}.placeholder{z-index:1;background:radial-gradient(circle at 50% 45%,#ff2a6d14 0%,#0000 50%),#050508;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.placeholder:after{content:"";opacity:.2;pointer-events:none;background-image:radial-gradient(#05d9e826 1px,#0000 1px);background-size:16px 16px;position:absolute;inset:0}.placeholder-content{z-index:1;text-align:center;padding:1rem;position:relative}.placeholder-ring{border:2px solid var(--accent);width:4.5rem;height:4.5rem;box-shadow:0 0 24px var(--accent-glow);background:#ff2a6d14;border-radius:4px;justify-content:center;align-items:center;margin:0 auto .65rem;display:flex}.placeholder-glyph{font-size:2rem;line-height:1}.placeholder-cta{font-family:var(--font-arcade);letter-spacing:.2em;color:var(--neon-yellow);text-shadow:0 0 12px #f9f00280;margin:0;font-size:1rem;font-weight:700;animation:1.5s step-end infinite blink-dot}.placeholder-sub{color:var(--text-muted);max-width:16rem;margin:.35rem 0 0;font-size:.8rem}.emulator-loading{z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 45%,#05d9e81a 0%,#0000 55%),#050508eb;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.emulator-loading__content{text-align:center;padding:1rem}.emulator-loading__spinner{border:3px solid #05d9e840;border-top-color:var(--neon-cyan,#05d9e8);border-radius:50%;width:2.25rem;height:2.25rem;margin:0 auto .75rem;animation:.75s linear infinite emulator-spin;display:block}.emulator-loading__title{font-family:var(--font-arcade);letter-spacing:.18em;color:var(--neon-cyan,#05d9e8);margin:0;font-size:.95rem;font-weight:700}.emulator-loading__sub{color:var(--text-muted);margin:.4rem 0 0;font-size:.8rem}@keyframes emulator-spin{to{transform:rotate(360deg)}}.site-footer{z-index:1;text-align:center;color:var(--text-muted);background:linear-gradient(#0000 0%,#0a0512e6 100%);border-top:2px solid #ff2a6d33;padding:1.5rem 1.5rem 2.25rem;font-size:.8rem;position:relative}.site-footer a{color:var(--cyan);text-decoration:none;transition:color .2s}.site-footer a:hover{color:var(--neon-yellow);text-shadow:0 0 8px #f9f00266}.macro-fieldset{background:#08040e73;border:1px solid #ff2a6d59;border-radius:6px;min-width:0;max-width:100%;margin:1rem 0 0;padding:.75rem .7rem .9rem;overflow-x:clip}.macro-fieldset legend{font-family:var(--font-arcade);color:var(--neon-yellow);padding:0 .35rem;font-size:.85rem}.macro-fieldset .field{margin-top:.65rem}.check-field{cursor:pointer;align-items:center;gap:.5rem;display:flex}.check-field input{width:1rem;height:1rem;accent-color:var(--accent)}.macro-enable{cursor:pointer;-webkit-user-select:none;user-select:none;background:#00000047;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:.7rem;margin-top:.7rem;padding:.55rem .7rem;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.macro-enable:hover{background:#0000005c;border-color:#ffffff2e}.macro-enable.is-on{background:#05d9e814;border-color:#05d9e866;box-shadow:inset 0 0 0 1px #05d9e814}.macro-enable__input{opacity:0;pointer-events:none;position:absolute}.macro-enable__switch{background:#ffffff14;border:1px solid #ffffff2e;border-radius:999px;flex:none;width:2.4rem;height:1.3rem;transition:background .15s,border-color .15s;position:relative}.macro-enable.is-on .macro-enable__switch{background:#05d9e859;border-color:#05d9e88c}.macro-enable__knob{background:#d8d8e2;border-radius:50%;width:.9rem;height:.9rem;transition:left .15s,background .15s;position:absolute;top:50%;left:.15rem;transform:translateY(-50%);box-shadow:0 1px 3px #00000059}.macro-enable.is-on .macro-enable__knob{background:#e8fdff;left:calc(100% - 1.05rem)}.macro-enable__text{flex-direction:column;gap:.12rem;min-width:0;display:flex}.macro-enable__text strong{color:var(--text);font-size:.86rem;font-weight:600;line-height:1.2}.macro-enable.is-on .macro-enable__text strong{color:#dffbff}.macro-enable__text small{color:var(--text-muted);font-size:.72rem;line-height:1.25}.macro-groups{flex-direction:column;gap:.85rem;margin-top:.75rem;display:flex}.macro-group{background:linear-gradient(#ffffff08,#0000 40%),#00000047;border:1px solid #ffffff17;border-radius:8px;min-width:0;max-width:100%;padding:.65rem .6rem .7rem;overflow-x:clip}.macro-group-head{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.4rem .5rem;min-width:0;display:flex}.macro-group-tools{flex-wrap:nowrap;flex:none;align-items:center;gap:.35rem;padding:.3rem .35rem 0 0;display:flex}.macro-group-title{font-family:var(--font-arcade);color:var(--neon-yellow);letter-spacing:.06em;margin:0;font-size:.8rem;font-weight:400;line-height:1.2}.macro-group-hint{opacity:.9;margin:.25rem 0 0;font-size:.72rem}.macro-list{flex-direction:column;gap:.55rem;margin-top:.55rem;display:flex}.macro-list:empty:before{content:"还没有条目，点右侧 + 新建，或云图标添加（Pro）";color:#6e6e7a;padding:.55rem .2rem;font-size:.76rem;display:block}.macro-row{background:#0806108c;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;gap:.5rem;min-width:0;max-width:100%;padding:.6rem .55rem .5rem;transition:border-color .15s,box-shadow .15s;display:flex;overflow-x:clip;box-shadow:inset 0 1px #ffffff0a}.macro-row.is-capturing{border-color:#05d9e88c;box-shadow:inset 0 1px #ffffff0a,0 0 0 1px #05d9e82e,0 0 18px #05d9e81f}.macro-capture-banner{color:#d7fbff;background:#05d9e824;border:1px solid #05d9e866;border-radius:6px;margin:0;padding:.45rem .55rem;font-size:.78rem;line-height:1.35;animation:1.2s ease-in-out infinite macro-capture-pulse}.macro-capture-banner__sub{color:#d7fbffb8;margin-left:.25rem;font-size:.72rem}@keyframes macro-capture-pulse{0%,to{box-shadow:0 0 #05d9e826}50%{box-shadow:0 0 0 3px #05d9e81f}}.macro-row-head{flex-wrap:wrap;align-items:center;gap:.45rem .6rem;display:flex}.macro-row-head.is-dimmed{opacity:.45;pointer-events:none;transition:opacity .15s}.macro-row-footer{background:0 0;border:0;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.35rem;min-width:0;margin:0;padding:.1rem 0;display:flex}.macro-row-footer.is-capturing{background:#05d9e80f;border:1px solid #05d9e847;border-radius:6px;padding:.2rem .25rem}.macro-row-footer.is-turbo{flex-wrap:wrap;gap:.4rem .35rem}.macro-row-footer.is-turbo .macro-trigger{flex:100%;justify-content:flex-start;max-width:100%}.macro-row-footer.is-turbo .macro-row-tools{margin-left:auto;padding-top:.1rem}.macro-row-footer.is-turbo .macro-rate-select{min-width:4.6rem;max-width:none;margin-left:auto}.macro-trigger{background:#05d9e814;border:1px solid #05d9e838;border-radius:999px;flex-wrap:nowrap;flex:auto;align-items:center;gap:.22rem;min-width:0;padding:.08rem .14rem .08rem .28rem;display:inline-flex}.macro-trigger.is-empty{background:#ffffff08;border-color:#ffffff1a}.macro-trigger.is-capturing{background:#05d9e829;border-color:#05d9e8b3;box-shadow:0 0 14px #05d9e838}.macro-trigger__cap{color:var(--text-muted);letter-spacing:.04em;white-space:nowrap;flex:none;font-size:.68rem}.macro-row-tools{flex-wrap:nowrap;flex:none;align-items:center;gap:.25rem;padding:.25rem .3rem 0 0;display:flex}.macro-text-btn{appearance:none;color:#d2d2dc;white-space:nowrap;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff24;border-radius:999px;flex:none;justify-content:center;align-items:center;min-height:1.55rem;padding:.14rem .42rem;font-size:.7rem;line-height:1;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.macro-text-btn--accent{color:#b8f7ff;background:#05d9e81f;border-color:#05d9e86b}.macro-text-btn--accent:hover{color:#fff;background:#05d9e838;border-color:#05d9e8b3}.macro-text-btn--warn{color:var(--neon-yellow);background:#f9f0021f;border-color:#f9f00273}.macro-text-btn--warn:hover{color:#fff8a8;background:#f9f00233;border-color:#f9f002b3}.macro-icon-btn{appearance:none;color:#cfd0da;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff24;border-radius:999px;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;padding:0;transition:color .12s,border-color .12s,background .12s,opacity .12s;display:inline-flex;position:relative}.macro-icon-btn svg{width:.88rem;height:.88rem;display:block}.macro-icon-btn:hover:not(:disabled){color:#fff;background:#ffffff14;border-color:#ffffff4d}.macro-icon-btn:disabled{opacity:.45;cursor:not-allowed}.macro-icon-btn--pro{background:#f9f0020f;border-color:#f9f00259}.macro-icon-btn--pro:hover:not(:disabled){color:#fff;background:#f9f0021f;border-color:#f9f00299}.macro-icon-btn.macro-icon-btn--saving:disabled{opacity:1;color:#fff8a8;cursor:wait;background:#f9f00224;border-color:#f9f002b3}.macro-icon-btn.macro-icon-btn--saved{opacity:1;color:#9dffc8;background:#50ffaa29;border-color:#50ffaab3;animation:.35s ease-out macro-cloud-saved-pop;box-shadow:0 0 12px #50ffaa59}.macro-icon-spin{animation:.75s linear infinite macro-cloud-spin}@keyframes macro-cloud-spin{to{transform:rotate(360deg)}}@keyframes macro-cloud-saved-pop{0%{transform:scale(.86)}55%{transform:scale(1.08)}to{transform:scale(1)}}.macro-pro-tag{color:var(--neon-yellow);font-family:var(--font-arcade);letter-spacing:.03em;pointer-events:none;background:#1a1028;border:1px solid #f9f002a6;border-radius:3px;padding:.03rem .18rem;font-size:.48rem;line-height:1.1;position:absolute;top:-.28rem;right:-.2rem;box-shadow:0 1px 3px #00000073}.macro-icon-btn--accent{color:#b8f7ff;background:#05d9e81f;border-color:#05d9e86b}.macro-icon-btn--accent:hover:not(:disabled){color:#fff;background:#05d9e838;border-color:#05d9e8b3}.macro-icon-btn--danger{color:#ff9bb4;border-color:#ff8aa84d}.macro-icon-btn--danger:hover:not(:disabled){color:#ffc0d0;background:#ff2a6d24;border-color:#ff8aa88c}.macro-pad-picks{flex-wrap:wrap;flex:auto;align-items:center;gap:.3rem;min-width:0;max-width:100%;display:flex}.macro-sequence-editor{flex-direction:column;gap:.45rem;width:100%;display:flex}.macro-sequence-steps{flex-wrap:wrap;align-items:center;gap:.3rem;min-height:1.85rem;display:flex}.macro-sequence-step{color:#dff9ff;min-width:1.85rem;font-family:var(--font-arcade);background:#00e5ff24;border:1px solid #00e5ff73;border-radius:999px;justify-content:center;align-items:center;padding:.26rem .42rem;font-size:.72rem;display:inline-flex}.macro-sequence-empty{color:#7a7a88;font-size:.8rem}.macro-sequence-palette{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.macro-sequence-chip{color:#c8c8d0;min-width:1.85rem;font-family:var(--font-arcade);cursor:pointer;background:#00000059;border:1px solid #ffffff2e;border-radius:999px;padding:.26rem .42rem;font-size:.68rem}.macro-sequence-chip:hover{color:#fff;border-color:#00e5ff8c}.macro-sequence-tools{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.macro-seq-tool{appearance:none;font-family:var(--font-arcade);letter-spacing:.06em;cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:.28rem;margin:0;padding:.32rem .7rem .32rem .52rem;font-size:.66rem;line-height:1;transition:color .12s,border-color .12s,background .12s,box-shadow .12s,transform .12s;display:inline-flex}.macro-seq-tool svg{width:.88rem;height:.88rem;display:block}.macro-seq-tool--undo{color:#b8f7ff;background:linear-gradient(#05d9e833 0%,#05d9e812 100%);border-color:#05d9e86b;box-shadow:0 0 10px #05d9e81a}.macro-seq-tool--undo:hover:not(:disabled){color:#fff;background:linear-gradient(#05d9e852 0%,#05d9e81f 100%);border-color:#05d9e8b8;transform:translateY(-1px);box-shadow:0 0 14px #05d9e83d}.macro-seq-tool--clear{color:#ff9bb4;background:linear-gradient(#ff2a6d2e 0%,#ff2a6d0f 100%);border-color:#ff8aa866;box-shadow:0 0 10px #ff2a6d1a}.macro-seq-tool--clear:hover:not(:disabled){color:#ffc0d0;background:linear-gradient(#ff2a6d47 0%,#ff2a6d1f 100%);border-color:#ff8aa8a6;transform:translateY(-1px);box-shadow:0 0 14px #ff2a6d38}.macro-seq-tool:active:not(:disabled){transform:translateY(0)}.macro-seq-tool:disabled{opacity:.38;cursor:not-allowed;box-shadow:none}.macro-rate-select{background:#00000059;border-color:#ffffff29;border-radius:999px;flex:0 auto;min-width:4.2rem;max-width:5rem;min-height:1.45rem;padding:.08rem .25rem;font-size:.68rem}.macro-pad-pick{color:#b8b8c4;width:1.85rem;height:1.85rem;font-family:var(--font-arcade);cursor:pointer;-webkit-user-select:none;user-select:none;background:#0006;border:1px solid #ffffff29;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:.68rem;transition:color .12s,border-color .12s,background .12s,box-shadow .12s,transform .12s;display:inline-flex}.macro-pad-pick input{opacity:0;pointer-events:none;position:absolute}.macro-pad-pick:hover{color:#fff;border-color:#ffffff52}.macro-pad-pick:has(input:checked){color:#fff;background:#ff2a6d52;border-color:#ff2a6dcc;transform:translateY(-1px);box-shadow:0 0 0 1px #ff2a6d33,0 0 12px #ff2a6d47}.macro-hotkey-label{min-width:1.4rem;max-width:3.2rem;font-family:var(--font-arcade);color:var(--cyan);white-space:nowrap;text-overflow:ellipsis;background:#00000059;border:1px solid #05d9e847;border-radius:4px;flex:0 auto;justify-content:center;padding:.1rem .28rem;font-size:.68rem;display:inline-flex;overflow:hidden}.macro-trigger.is-empty .macro-hotkey-label{color:#7a7a88;border-color:#ffffff1f}.macro-hotkey-label.is-waiting{min-width:2rem;color:var(--neon-yellow);background:#f9f0021a;border-color:#f9f00273;animation:.9s step-end infinite macro-hotkey-blink}@keyframes macro-hotkey-blink{50%{opacity:.35}}#macro-hotkey-hint{margin-top:.7rem}.btn.compact{letter-spacing:.06em;padding:.35rem .75rem;font-size:.72rem}.legal-header{padding-bottom:.5rem}.site-nav{background:#0a0512d9;border:2px solid #ff2a6d59;border-radius:4px;justify-content:center;gap:.25rem;margin-bottom:1.15rem;padding:.3rem;font-size:.78rem;display:inline-flex;box-shadow:0 0 20px #ff2a6d26}.site-nav a{font-family:var(--font-arcade);letter-spacing:.08em;color:var(--text-muted);border-radius:2px;padding:.5rem 1rem;text-decoration:none;transition:color .2s,background .2s,box-shadow .2s}.site-nav a:hover{color:var(--neon-yellow);background:#f9f00214;text-decoration:none}.site-nav a[aria-current=page]{color:#1a0a00;background:linear-gradient(#ffe033 0%,#e6a800 100%);font-weight:700;box-shadow:0 0 16px #f9f00259}.legal-main{max-width:720px;margin:0 auto;padding:0 1.25rem 2rem}.legal-article h2{font-family:var(--font-arcade);letter-spacing:.08em;text-transform:uppercase;color:var(--neon-yellow);margin:1.5rem 0 .75rem;font-size:.85rem}.legal-article h2:first-child{margin-top:0}.legal-article p,.legal-article li{color:var(--text-muted);font-size:.92rem}.legal-article ul{padding-left:1.2rem}.legal-article a{color:var(--cyan)}.legal-updated{margin-top:2rem;color:var(--text-muted)!important;font-size:.8rem!important}.footer-note{opacity:.85;margin-top:.5rem;font-size:.75rem}
