/* Screen games and the working console share the existing scene travel. */
.spaces-arcade-focus{left:calc(var(--room-origin) + var(--room-width)*.32 + 26.52vh);top:50vh;width:1px;height:1px;pointer-events:none}
.vintage-tv{cursor:default}.vintage-tv>img{pointer-events:none}.tv-arcade{position:absolute;left:var(--tv-screen-left);top:var(--tv-screen-top);width:var(--tv-screen-width);height:var(--tv-screen-height);z-index:1;border-radius:0;overflow:hidden;pointer-events:auto;line-height:1.2;outline:none;background:transparent}
.tv-arcade:focus-visible{outline:none}.tv-arcade [hidden],.snake-controls[hidden]{display:none!important}
.tv-arcade-menu{position:absolute;inset:0;background:#07100dec;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#c3ef9c;text-align:center;font-family:'Courier New',monospace;padding:12px}
.tv-arcade-menu strong{font-size:19px;letter-spacing:.06em;line-height:1.08}.tv-arcade-menu small{font-size:10px;letter-spacing:.12em}.tv-arcade-menu p{font-size:11px;line-height:1.35;margin:0}.tv-arcade-menu button{min-height:44px;padding:8px 18px;background:#9cc778;color:#07100d;font:bold 12px 'Courier New',monospace;border:1px solid #deffc3}.tv-arcade-menu button:focus-visible{outline:2px solid white}
.snake-controls{position:absolute;top:calc(100% + 8px);left:50%;translate:-50% 0;width:208px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;z-index:8;pointer-events:auto}
.snake-controls button{height:46px;background:linear-gradient(#353735,#141715);border:1px solid #656d61;border-radius:5px;color:#cdf19a;font-size:21px;box-shadow:0 3px 0 #080b09;touch-action:none}.snake-controls .snake-pause,.snake-controls .snake-exit{grid-column:span 2;font:bold 10px 'Courier New',monospace;letter-spacing:.1em}
.tv-power{position:absolute;left:91.1%;top:93.5%;translate:-50% -50%;z-index:4;width:3.4%;height:auto;aspect-ratio:1;padding:0;border:1px solid #696b62;border-radius:2px;background:#1b1e1a;color:#abb2a3;font-size:clamp(6px,.8vh,10px);pointer-events:auto;line-height:1}
.vintage-tv.arcade-on .tv-noise{box-shadow:0 0 12px #b3f58a22}.vintage-tv.arcade-on .tv-power{opacity:.65}.vintage-tv.arcade-on .tv-arcade{box-shadow:inset 0 0 18px #0006}
.beat-console{position:absolute;left:50%;translate:-50% 0;bottom:10vh;width:min(76vw,820px);z-index:10;pointer-events:auto;padding:17px 22px 20px;background:linear-gradient(165deg,#454747,#1a1c1e 24%,#121416 80%);border:2px solid #656669;border-bottom:12px solid #08090a;border-radius:10px 10px 5px 5px;box-shadow:0 12px 30px #0009,inset 0 2px 0 #ffffff25;color:#d8d8d6;font-family:Arial,sans-serif}
.beat-console::before,.beat-console::after{content:'';position:absolute;top:-2px;bottom:-12px;width:10px;background:linear-gradient(90deg,#543c2c,#241d18);border:1px solid #1b1511;border-radius:4px;pointer-events:none}.beat-console::before{left:-10px}.beat-console::after{right:-10px}
.beat-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.beat-brand{font:bold 11px Arial;letter-spacing:.14em}.beat-brand b{color:#ed3038;font-size:19px;letter-spacing:-.05em;margin-right:9px}.beat-play{min-height:44px;min-width:84px;padding:8px 14px;background:#c62932;border:1px solid #ec4a50;border-radius:4px;font:bold 11px Arial;letter-spacing:.1em;color:white}.beat-console[data-running=true] .beat-play{background:#202725;border-color:#8dd195;color:#b5e1ac}
.beat-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.beat-toolbar label{display:flex;align-items:center;gap:8px;font:10px 'Courier New',monospace;letter-spacing:.06em}.beat-toolbar output{color:#b9dfaf;background:#080e0b;padding:7px 6px;min-width:44px;text-align:center;font:bold 14px 'Courier New',monospace;border:1px solid #444b43}.beat-toolbar input{width:150px;height:44px;accent-color:#dc323a;cursor:pointer;touch-action:none}.beat-small{font:10px Arial;color:#c9c9c5;padding:7px;min-height:44px;border:1px solid #55585a;border-radius:4px;background:#242729}.beat-small:hover{background:#35393b}
.beat-tabs{display:none}.beat-row{display:grid;grid-template-columns:64px 1fr;gap:9px;align-items:center;margin-top:7px}.beat-track-label{font:bold 10px Arial;min-height:36px;text-align:left;color:#cacdca;letter-spacing:.06em;padding:4px}.beat-track-label.is-hit{color:#f95057}.beat-steps{display:grid;grid-template-columns:repeat(16,1fr);gap:4px}.beat-step{min-height:32px;background:linear-gradient(#3e4244,#262a2c);border:1px solid #53585a;border-radius:3px;padding:0;color:#90999a;font:9px 'Courier New',monospace;box-shadow:0 2px 0 #060808;touch-action:none}.beat-step:nth-child(4n + 1){border-left:2px solid #989b91}.beat-step[aria-pressed=true]{background:linear-gradient(#b5353f,#791e29);border-color:#dd5a63;color:#ffdddc}.beat-step.is-current{outline:2px solid #e9dfb4;outline-offset:1px}.beat-console button:focus-visible,.beat-console input:focus-visible{outline:2px solid #eee4ba;outline-offset:2px}.beat-status{margin-top:12px;font:9px 'Courier New',monospace;letter-spacing:.08em;color:#9ea59d;min-height:12px}.beat-row[data-track=hat] .beat-step[aria-pressed=true]{background:linear-gradient(#737144,#464a2a);border-color:#aba66a;color:#fff1bd}
@media(max-aspect-ratio:1/1){.beat-console{width:calc(100vw - 32px);bottom:11vh;padding:10px 11px 12px}.beat-console::before,.beat-console::after{width:6px}.beat-console::before{left:-6px}.beat-console::after{right:-6px}.beat-header{margin-bottom:3px}.beat-brand{font-size:8px}.beat-brand b{font-size:18px;margin-right:6px}.beat-toolbar{gap:6px;margin-bottom:3px;flex-wrap:wrap}.beat-toolbar label{flex:1}.beat-toolbar input{width:auto;min-width:60px;flex:1}.beat-small{font-size:9px;padding:5px}.beat-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:7px}.beat-tabs button{min-height:44px;font:bold 10px Arial;border:1px solid #54595b;background:#292d2f;border-radius:3px}.beat-tabs button[aria-selected=true]{background:#79252e;border-color:#df5963;color:#fff}.beat-row{display:none;grid-template-columns:1fr;margin-top:0}.beat-row.is-selected{display:grid}.beat-track-label{display:none}.beat-steps{grid-template-columns:repeat(8,1fr);gap:4px}.beat-step{min-height:44px;font-size:10px}.beat-status{margin-top:8px;font-size:8px;letter-spacing:.04em}}
@media(max-height:650px) and (min-aspect-ratio:1/1){.beat-console{bottom:13vh;padding:8px 16px 10px}.beat-header{margin-bottom:2px}.beat-toolbar{margin-bottom:4px}.beat-row{margin-top:3px}.beat-step{min-height:26px}.beat-status{margin-top:6px}}
@media(prefers-reduced-motion:reduce){.beat-console *,.tv-arcade *{transition:none!important;animation:none!important}}
@media(min-aspect-ratio:1/1){.beat-console{padding:10px 18px 12px}.beat-header{margin-bottom:4px}.beat-play{min-height:32px}.beat-toolbar{margin-bottom:5px}.beat-toolbar input{height:30px}.beat-small{min-height:32px}.beat-track-label{min-height:26px}.beat-step{min-height:26px}.beat-row{margin-top:4px}.beat-status{margin-top:6px}}
@media(max-aspect-ratio:1/1){.beat-console{padding:6px 11px}.beat-header{margin-bottom:1px}.beat-toolbar{margin-bottom:1px}.beat-tabs{margin-bottom:4px}.beat-status{margin-top:3px;min-height:9px}}

.snake-controls button:disabled{opacity:.45;cursor:default}
.beat-console button{transition:background .12s,border-color .12s,box-shadow .12s}.beat-step:hover{border-color:#ded4ba;box-shadow:0 0 7px #eac67b33}.beat-step:active{scale:.94}.beat-play:hover{filter:brightness(1.18)}

.vintage-tv{--tv-screen-left:10.4%;--tv-screen-top:11%;--tv-screen-width:79%;--tv-screen-height:64%}.vintage-tv .tv-noise{left:var(--tv-screen-left);top:var(--tv-screen-top);width:var(--tv-screen-width);height:var(--tv-screen-height)}.tv-power::before{content:'';position:absolute;inset:-14px}.beat-overlay{position:fixed;inset:0;z-index:200;pointer-events:none}.beat-overlay[hidden]{display:none!important}.beat-console{max-height:none;overflow:visible;scrollbar-width:none}.beat-header .beat-play{margin-left:auto}.beat-close{height:32px;min-width:32px;flex:none;border:1px solid #666;color:#bbb;background:#222;border-radius:4px;font:23px Arial;line-height:1}.beat-row[data-track=hat] .beat-steps{grid-template-columns:repeat(32,1fr);gap:2px}.beat-row[data-track=hat] .beat-step{font-size:7px}.beat-row[data-track=hat] .beat-step:nth-child(4n + 1){border-left:1px solid #53585a}.beat-row[data-track=hat] .beat-step:nth-child(8n + 1){border-left:2px solid #989b91}@media(max-aspect-ratio:1/1){.beat-close{height:44px;min-width:36px}.beat-row[data-track=hat] .beat-steps{grid-template-columns:repeat(8,1fr);gap:4px}.beat-row[data-track=hat] .beat-step{font-size:9px}}

.beat-console::-webkit-scrollbar{display:none}.beat-console[data-open=false]{pointer-events:none}
@media(max-height:650px) and (max-aspect-ratio:1/1){.beat-console{bottom:10vh}.beat-play,.beat-small,.beat-tabs button,.beat-step{min-height:32px}.beat-close{height:32px}.beat-toolbar input{height:32px}}

/* The supplied folders share one pattern each; sound choices never add rows. */
.beat-console{width:min(86vw,1000px);padding:12px 18px 14px}
.beat-preset-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:7px 0 9px;color:#b5b8b2;font:9px 'Courier New',monospace;letter-spacing:.08em}
.beat-preset-bar label{display:flex;align-items:center;gap:9px;min-width:0}
.beat-preset{width:175px;min-height:32px;padding:5px 28px 5px 9px;border:1px solid #62696a;border-radius:4px;background:#222829;color:#ede5d0;font:bold 12px Arial;cursor:pointer;touch-action:manipulation}
.beat-sound-picker{padding:8px 10px;background:#0b0e10;border:1px solid #3e4545;border-radius:5px;margin-bottom:10px}
.beat-sound-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.beat-sound-title{font:bold 10px 'Courier New',monospace;letter-spacing:.08em;color:#d9cda9}
.beat-random{min-height:30px;font-size:9px;letter-spacing:.03em;color:#d8d0b8;background:#252b2c}
.beat-sound-choices{display:grid;grid-template-columns:repeat(var(--sounds,4),minmax(0,1fr));gap:5px}
.beat-sample{min-height:32px;padding:5px 7px;font:11px Arial;color:#abb5b1;border:1px solid #495250;border-radius:3px;background:#232b29;touch-action:manipulation}
.beat-sample:hover{border-color:#b8c2b3}.beat-sample[aria-pressed=true]{background:#414c36;border-color:#b7c991;color:#eef4d8;box-shadow:inset 0 0 9px #acbe7730}
.beat-row{grid-template-columns:100px minmax(0,1fr);gap:10px;margin-top:5px}
.beat-track-label{min-height:34px;padding:4px 7px;border:1px solid transparent;border-radius:4px;font-size:10px;line-height:1.2;touch-action:manipulation}
.beat-chosen-sound{display:block;font:9px Arial;font-weight:400;letter-spacing:0;margin-top:4px;color:#87948d}
.beat-row.is-selected .beat-track-label{border-color:#657257;background:#283020;color:#dee8c4}
.beat-row .beat-step{min-height:32px}.beat-track-label.is-hit,.beat-row.is-selected .beat-track-label.is-hit{color:#ff6970}
.beat-console select:focus-visible{outline:2px solid #eee4ba;outline-offset:2px}
@media(max-aspect-ratio:1/1),(max-width:900px),(max-height:600px){
 .beat-console{width:min(calc(100vw - 32px),820px);bottom:10vh;padding:8px 11px 10px}
 .beat-preset-bar{margin:5px 0 7px;gap:8px;font-size:8px}.beat-preset{width:150px;font-size:11px;min-height:32px}
 .beat-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:7px}
 .beat-tabs button{min-height:36px;font:bold 9px Arial;border:1px solid #54595b;background:#292d2f;border-radius:3px;padding:4px;touch-action:manipulation}
 .beat-tabs button[aria-selected=true]{background:#79252e;border-color:#df5963;color:#fff}
 .beat-row{display:none;grid-template-columns:minmax(0,1fr);margin-top:0}.beat-row.is-selected{display:grid}.beat-track-label{display:none}
 .beat-steps,.beat-row[data-track=hat] .beat-steps{grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}
 .beat-row .beat-step{min-height:38px;font-size:10px}.beat-row[data-track=hat] .beat-step{font-size:9px}
 .beat-sound-picker{padding:6px 7px;margin-bottom:8px}.beat-sound-title{font-size:9px}.beat-sample{padding:5px 3px;font-size:10px;min-height:34px}
 .beat-sound-choices[data-count="5"],.beat-sound-choices[data-count="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}
 .beat-status{font-size:8px;margin-top:6px;letter-spacing:.04em}
}
@media(max-width:380px){.beat-preset-bar>span{display:none}.beat-toolbar{gap:5px;flex-wrap:nowrap}.beat-toolbar label{min-width:0}.beat-toolbar input{width:0;min-width:48px}.beat-toolbar output{flex:none}.beat-sample{font-size:9px}.beat-random{font-size:8px;padding:5px}.beat-brand{font-size:8px}.beat-brand b{font-size:17px}}
@media(max-height:650px){
 .beat-console{padding-top:6px;padding-bottom:6px}.beat-header{margin-bottom:3px}.beat-preset-bar{margin:3px 0 5px}.beat-sound-picker{margin-bottom:5px;padding:5px 7px}.beat-sound-header{margin-bottom:4px}
 .beat-play,.beat-small,.beat-tabs button,.beat-sample,.beat-row .beat-step{min-height:32px}.beat-close{height:32px}.beat-toolbar input{height:32px}.beat-tabs{margin-bottom:5px}.beat-status{margin-top:4px}
}
@media(max-height:600px) and (min-aspect-ratio:1/1){
 .beat-console{bottom:8vh}.beat-tabs{grid-template-columns:repeat(7,minmax(0,1fr))}.beat-steps,.beat-row[data-track=hat] .beat-steps{grid-template-columns:repeat(16,minmax(0,1fr))}
 .beat-sound-choices[data-count="5"],.beat-sound-choices[data-count="6"]{grid-template-columns:repeat(var(--sounds),minmax(0,1fr))}.beat-sound-title{font-size:9px}
}
