.fg-player{border:1px solid var(--line);border-radius:var(--r3);background:var(--surface);overflow:hidden;text-align:left}
.fg-player-head,.fg-player-tools{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s4) var(--s5);flex-wrap:wrap}
.fg-player-head{border-bottom:1px solid var(--line)}
.fg-player-head strong{font-size:var(--fs-body)}
.fg-player-badge{font-size:var(--fs-xs);color:var(--acc);display:flex;align-items:center;gap:var(--s2)}
.fg-player-badge::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.fg-screen-wrap{padding:var(--s5);background:var(--surface2)}
.fg-screen{position:relative;max-width:640px;margin:auto;background:var(--shot-bg);border-radius:var(--r1);overflow:hidden;aspect-ratio:4/3}
.fg-screen canvas{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none;outline:none}
.fg-screen canvas:focus-visible{outline:2px solid var(--acc);outline-offset:-3px}
.fg-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s3);padding:var(--s5);background:var(--shot-bg);color:var(--code-fg);text-align:center}
.fg-overlay[hidden]{display:none}
.fg-overlay strong{font-size:var(--fs-h3);color:var(--code-fg)}
.fg-overlay p{font-size:var(--fs-sm);margin:0;max-width:32ch;white-space:pre-wrap;overflow-wrap:anywhere}
.fg-player-tools{justify-content:flex-start;border-top:1px solid var(--line)}
.fg-boot{margin-left:auto;touch-action:none;user-select:none;min-width:88px}
.fg-boot:active{border-color:var(--acc);color:var(--acc)}
.fg-player-info{padding:0 var(--s5) var(--s4);color:var(--dim);font-size:var(--fs-xs)}
.fg-player-info p{margin:var(--s2) 0 0}
.fg-player-log{max-height:120px;overflow:auto;font-size:var(--fs-xs);white-space:pre-wrap;overflow-wrap:anywhere}
.fg-player-log:empty{display:none}
.fg-player-status{color:var(--dim);font-size:var(--fs-xs)}
.fg-dialog{padding:0;border:1px solid var(--line);border-radius:var(--r3);background:var(--surface);color:var(--text);width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto}
.fg-dialog::backdrop{background:rgba(0,0,0,.65)}
.fg-dialog .fg-player{border:0;border-radius:0}
.fg-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s5);border-bottom:1px solid var(--line);font-size:var(--fs-xs);color:var(--dim)}
.fg-player:fullscreen{display:flex;flex-direction:column;justify-content:center;border-radius:0;overflow:auto}
.fg-player:fullscreen .fg-screen-wrap{padding:var(--s3);min-height:0}
.fg-player:fullscreen .fg-screen{max-width:min(960px,calc((100dvh - 240px)*4/3))}
.fg-play-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:var(--s6);align-items:start}
.fg-play-aside{border:1px solid var(--line);border-radius:var(--r2);padding:var(--s5);background:var(--surface)}
.fg-play-aside h2{font-size:var(--fs-h3);margin:0 0 var(--s3)}
.fg-play-aside p{color:var(--dim);font-size:var(--fs-sm)}
.fg-play-aside select{width:100%;padding:var(--s3);font:inherit;background:var(--surface2);color:var(--text);border:1px solid var(--line2);border-radius:var(--r1)}
.fg-play-aside .btn{margin-top:var(--s4)}
.fg-play-lead{margin-bottom:var(--s6)}
.fg-play-lead h1{font-size:var(--fs-h2);margin:0 0 var(--s2)}
.fg-play-lead p{margin:0;color:var(--dim)}
@media(max-width:760px){.fg-play-layout{grid-template-columns:minmax(0,1fr)}.fg-screen-wrap{padding:var(--s3)}.fg-player-head,.fg-player-tools{padding:var(--s3)}.fg-player-info{padding:0 var(--s3) var(--s3)}.fg-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.fg-player-tools{gap:var(--s2)}}
