*{box-sizing:border-box}body{margin:0;background:#10151d;color:#eef4fc;font:14px -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}aside{width:280px;padding:30px 22px;background:#171e29;min-height:100vh;border-right:1px solid #293443;flex-shrink:0}.brand{font-size:27px;font-weight:800;letter-spacing:-1px}.tag{font-size:10px;letter-spacing:2px;color:#8a9db4;margin:10px 0}h3{font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-top:40px;color:#8a9db4}main{padding:34px;max-width:1300px;flex:1}header,.spread{display:flex;justify-content:space-between;align-items:center}h1{font-size:30px;margin:8px 0 26px;letter-spacing:-1px}h2{font-size:17px;margin:0 0 15px}section{background:#171e29;border:1px solid #293443;border-radius:16px;padding:22px;margin-bottom:20px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}button,select,input{background:#242f3e;color:#eaf2ff;border:1px solid #3a4a5f;border-radius:8px;padding:10px;font:inherit}button{cursor:pointer}button:hover{background:#36445a}.primary{background:#b4f77d;color:#17250e;border-color:#b4f77d;font-weight:700}.pill{font-size:11px;border:1px solid #3a4a5f;border-radius:30px;padding:8px 12px;color:#b4f77d;white-space:nowrap}.muted{color:#91a3b9;font-size:12px;line-height:1.6}#drop{border:1px dashed #5b718b;border-radius:12px;text-align:center;margin:24px 0 12px;padding:24px 8px;font-size:30px;color:#b4f77d}#drop strong,#drop span{display:block;font-size:13px;margin-top:8px}#drop span{font-size:11px;color:#91a3b9}#drop.over{background:#304829}.game{display:flex;gap:5px;margin:8px 0}.game button:first-child{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis}.game.active button:first-child{border-color:#b4f77d;color:#b4f77d}#stage{position:relative;aspect-ratio:16/9;background:#080b10;border:1px solid #3a4a5f;overflow:hidden;border-radius:6px;touch-action:none}#preview{position:absolute;width:100%;height:100%;object-fit:fill}#box{position:absolute;border:2px solid #b4f77d;background:#b4f77d0a;cursor:move;touch-action:none}#box span{position:absolute;top:12px;left:12px;color:#b4f77d;font-size:10px;letter-spacing:2px;text-shadow:0 1px 4px black}i{position:absolute;width:16px;height:16px;background:#b4f77d;border:3px solid #182516}i[data-corner=nw]{left:0;top:0;cursor:nwse-resize}i[data-corner=ne]{right:0;top:0;cursor:nesw-resize}i[data-corner=sw]{left:0;bottom:0;cursor:nesw-resize}i[data-corner=se]{right:0;bottom:0;cursor:nwse-resize}.fields{margin-top:18px;align-items:end}label{font-size:11px;color:#91a3b9;display:flex;flex-direction:column;gap:6px}input{width:115px}pre{font-size:12px;color:#b4f77d;white-space:pre-wrap;background:#10151d;padding:16px;border-radius:8px;min-height:70px}#notice{color:#a5b8ce;font-size:12px;padding-bottom:20px}
/* Arcade home */
body{display:block;background:#070b15}.arcade{height:100vh;min-height:650px;position:relative;overflow:hidden;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 50%,#142541 0%,#0a1222 44%,#070b15 75%)}.aurora{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 30% 15%,#34336a22,transparent 48%),radial-gradient(ellipse at 75% 55%,#25d6d112,transparent 40%)}.arcade-top{position:relative;display:flex;justify-content:space-between;align-items:center;padding:34px 44px}.wordmark{font-size:18px;font-weight:850;letter-spacing:3px}.wordmark>span{font-size:27px;color:#93e9e5;vertical-align:middle;margin-right:8px}.wordmark small{display:block;font-size:8px;letter-spacing:3px;color:#71839f;margin:6px 0 0 42px}.top-actions{display:flex;gap:12px}.top-actions button{border-color:#ffffff15;background:#ffffff05;font-size:12px;padding:11px 16px}.collection{position:relative;text-align:center;font-size:10px;letter-spacing:3px;color:#94a6c0;margin-top:12px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#96f4d8;box-shadow:0 0 12px #96f4d8;margin-right:10px}#gameCount{margin-left:18px;color:#50647f;letter-spacing:1px}#carousel{position:relative;flex:1;min-height:260px;outline:none;touch-action:pan-y;user-select:none}#cards{position:absolute;inset:0;perspective:1200px;overflow:hidden}.orbit{position:absolute;left:50%;top:65%;width:440px;height:90px;border:1px solid #88e0e320;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 55px #69cee009,inset 0 0 50px #69cee006}.orbit-two{width:550px;height:125px;opacity:.35}.game-card{position:absolute;left:50%;top:43%;width:350px;height:230px;margin:-115px 0 0 -175px;border:0;background:transparent!important;padding:20px;display:flex;align-items:center;justify-content:center;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .4s,filter .4s;cursor:pointer;will-change:transform}.game-card img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 16px 25px #0008);pointer-events:none}.game-card .logo-text{font-weight:950;font-size:50px;line-height:.96;letter-spacing:-2px;text-align:center;text-transform:uppercase;color:#eafcff;text-shadow:0 4px 0 #35536d,0 14px 35px #4ae3db44;overflow-wrap:anywhere;max-width:100%;pointer-events:none}.game-card.is-selected .floating{animation:hover-logo 4s ease-in-out infinite}.floating{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.game-card:focus-visible{outline:2px solid #9ff3e4;border-radius:24px}.nav-arrow{position:absolute;z-index:3;top:43%;transform:translateY(-50%);border-radius:50%;width:48px;height:48px;padding:0;font-size:32px;background:#ffffff04;border-color:#ffffff16;color:#adbbd0}#previous{left:5%}#next{right:5%}.nav-arrow:disabled{opacity:.2;cursor:default}.selection{text-align:center;position:relative;padding:0 20px 28px}#selectionNumber{font-size:10px;color:#7d94b5;letter-spacing:4px}#selectionTitle{font-size:28px;margin:13px 0 8px;letter-spacing:-.6px}#selectionCaption{font-size:12px;color:#7e90ab;margin:0 0 25px}.launch-actions{display:flex;align-items:center;justify-content:center;gap:14px}#playSelected{background:#aaf3dc;color:#142c2b;border:0;font-size:11px;font-weight:800;letter-spacing:2px;padding:16px 34px;border-radius:30px;box-shadow:0 0 35px #7de7d215}#playSelected:hover{background:#d2fff0;transform:translateY(-2px)}#artSelected{background:transparent;border:0;color:#7e90ab;font-size:11px}button:disabled{opacity:.35;cursor:default}.arcade-footer{position:relative;display:flex;justify-content:space-between;align-items:center;margin:0 44px;padding:24px 0;border-top:1px solid #ffffff0b;color:#6e819e;font-size:10px;letter-spacing:.5px}kbd{border:1px solid #334058;border-radius:4px;padding:3px 6px;font:9px inherit;color:#aebbd0}.accent{color:#92e8da;margin-left:10px}#pagination{display:flex;gap:7px;max-width:250px;overflow:hidden}#pagination button{width:6px;height:6px;border-radius:10px;padding:0;border:0;background:#34445c}#pagination button.current{width:22px;background:#aaf3dc}#emptyState{position:absolute;inset:0;z-index:2;text-align:center;padding-top:80px;background:#0a1222}#emptyState[hidden]{display:none}#emptyState p{color:#8496b1}#controls{width:calc(100vw - 70px);max-width:1350px;height:calc(100vh - 60px);padding:0;border:1px solid #344158;border-radius:18px;color:#eef4fc;background:#10151d;overflow:auto}#controls::backdrop{background:#020610cc;backdrop-filter:blur(10px)}.dialog-top{position:sticky;top:0;z-index:10;background:#171e29;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid #293443;font-size:10px;letter-spacing:2px}.control-layout{display:flex}.control-layout aside{min-height:0;width:245px}.control-layout main{min-width:0;padding:24px}.control-layout h1{font-size:24px}.control-layout #stage{max-width:100%}#notice{position:fixed;bottom:70px;left:50%;transform:translateX(-50%);z-index:30;background:#213348;border-radius:10px;padding:12px 22px;box-shadow:0 10px 30px #0008;pointer-events:none}#notice:empty{display:none}@keyframes hover-logo{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-height:750px){.arcade-top{padding-top:22px;padding-bottom:22px}.selection{padding-bottom:16px}.arcade-footer{padding:18px 0}}

#deleteSelected{background:transparent;border:0;color:#a77983;font-size:11px}#deleteSelected:hover{color:#ffafbd;background:#ffafbd0a}input:disabled{opacity:.35}

.auto-fullscreen{display:flex;flex-direction:row;align-items:center;margin-top:18px;gap:9px}.auto-fullscreen input{width:auto;accent-color:#aaf3dc}

.arcade-top{padding:12px 44px;min-height:144px}.app-logo{display:block;width:210px;height:140px;object-fit:contain}.settings-logo{display:block;width:100%;height:auto}.wordmark{line-height:0}@media(max-height:750px){.arcade-top{padding:8px 36px;min-height:112px}.app-logo{width:168px;height:112px}}

.game-running .game-card.is-selected .floating{animation-play-state:paused}

#settingsNav{display:grid;gap:4px;margin:12px 0}#settingsNav button{text-align:left}#liveInputs,#targetKey:not([hidden]){display:flex;flex-wrap:wrap;gap:5px}#liveInputs .active-input{background:#126d51;color:white}#inputPanel details{margin-top:12px}

.control-layout main > [hidden]{display:none!important} #settingsNav button[aria-pressed="true"]{outline:2px solid currentColor;outline-offset:-2px}

#liveInputs{display:grid;gap:5px}
.binding-head,.input-binding{display:grid;grid-template-columns:minmax(0,1fr) minmax(7em,38%);align-items:center;gap:8px;padding:7px 10px}
.binding-head{font-weight:bold}.input-binding{border:1px solid #415466;border-radius:6px}
.input-binding span{overflow-wrap:anywhere}.input-binding button{border:1px solid #829caf}
.input-binding #targetKey{grid-column:1/-1}

/* Equal side columns keep the logo centered despite different button widths. */
.arcade-top{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px}
.arcade-top .wordmark{grid-column:2;grid-row:1;justify-self:center}
.arcade-top > #settingsOpen{grid-column:1;grid-row:1;justify-self:start}
.arcade-top .top-actions{grid-column:3;grid-row:1;justify-self:end}


#box{border-color:#ffdb35;background:#ffdb350a}#box span{color:#ffdb35}#box i{background:#ffdb35}#displayAllSettings{display:none}

body{background:#000}#homeOutput{position:fixed;inset:0;overflow:hidden}#homeOutput>.arcade{position:absolute;left:50%;top:50%;min-height:0;transform-origin:center}
