/* V.03: arcade selection and handheld controls. */
.selection-screen{position:absolute;inset:0;z-index:15;overflow:auto;background:repeating-linear-gradient(0deg,#0002 0 1px,transparent 1px 4px),radial-gradient(ellipse at 50% 60%,#168ad4,#1244b3 55%,#151265);padding:18px 3% 20px;color:#fff6be;display:flex;flex-direction:column;align-items:center;gap:8px;text-shadow:2px 2px #1d154c}
.selection-screen[hidden]{display:none}
.setup-top{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;font:8px/1.7 ArcadePixel,monospace}
.setup-top b{color:#f75a43}.setup-top button{font:inherit;background:#061a60aa;color:#fff6ce;border:1px solid #86b6ff;padding:9px;cursor:pointer}
.select-heroes{display:grid;grid-template-columns:1fr 1fr 1fr;width:min(840px,88%);gap:20px;align-items:center;min-height:0;flex:1}
.select-portrait{display:flex;flex-direction:column;align-items:center;min-width:0;position:relative}
.select-player{font:22px ArcadePixel;color:#ff694a;position:absolute;top:3px;left:8px;z-index:1;text-shadow:3px 3px #061445}
.player-1 .select-player{color:#fff049;left:auto;right:8px}
.portrait-window{width:100%;aspect-ratio:1.3;overflow:hidden;background:linear-gradient(135deg,#081b6b,#224abd);border:3px solid #b8cddd;box-shadow:4px 5px #091644}
.portrait-window img{width:100%;height:100%;object-fit:cover;object-position:center 20%;image-rendering:pixelated;filter:drop-shadow(3px 3px #09153d)}
.player-1 .portrait-window img{transform:scaleX(-1)}
.select-portrait strong{font:clamp(18px,3.2vw,43px) ArcadeBrush,sans-serif;letter-spacing:1px;line-height:1.15;color:var(--fighter-color);-webkit-text-stroke:.4px #362731;text-shadow:3px 3px #081345;margin-top:5px}
.select-power{font:7px/1.7 ArcadePixel;text-align:center;min-height:24px;max-width:230px}
.select-center{display:flex;align-items:center;flex-direction:column;text-align:center}.select-center img{width:130%;max-height:150px;object-fit:contain}.select-center em{font:62px/.9 ArcadeBrush;color:#ffb52b;-webkit-text-stroke:1px #922a36;text-shadow:4px 4px #0d1854}.select-center p{font:8px ArcadePixel}.select-center .colombia-flag{margin-top:6px}
.selection-screen h2{font:clamp(25px,3.5vw,46px)/1 ArcadeBrush;margin:0;letter-spacing:2px;color:#ffe283;-webkit-text-stroke:.6px #e16f41;text-shadow:3px 3px #391d5e}
.selection-prompt{font:8px/1.8 ArcadePixel;margin:0;text-align:center;min-height:15px}
.fighter-options{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:min(650px,76%)}
.fighter-option{height:74px;position:relative;overflow:hidden;padding:0;background:linear-gradient(135deg,#24449a,#5391db);border:2px solid #b2cbd4;cursor:pointer;box-shadow:2px 2px #061746}
.fighter-option img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;image-rendering:pixelated;transition:filter .1s}
.fighter-option>span{position:absolute;bottom:0;left:0;right:0;background:#091851cd;color:#fff5d5;font:7px/1.8 ArcadePixel}
.fighter-option.cursor{border-color:#fff66a;box-shadow:0 0 0 2px #fff66a;z-index:1}.fighter-option:hover img{filter:brightness(1.2)}
.cursor-badge{position:absolute;top:2px;font:9px ArcadePixel;padding:3px;text-shadow:1px 2px #050b2c}.cursor-badge.p1{left:1px;color:#ff654b}.cursor-badge.p2{right:1px;color:#fff945}
.select-actions{display:flex;align-items:center;justify-content:center;width:100%;gap:25px;min-height:45px}.select-actions .start-button{margin:0;padding:12px 20px;font-size:10px;width:auto;min-width:240px;min-height:44px}.selection-tip{font:7px/1.9 ArcadePixel;max-width:200px}.select-actions .secondary-button{font-size:8px;max-width:220px}
.stage-options{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:95%;margin:6px 0}
.stage-option{min-width:0;padding:4px 4px 8px;background:#081e62;border:2px solid #6ea2d4;color:#f6efcb;cursor:pointer}.stage-option img{width:100%;aspect-ratio:16/9;object-fit:cover;image-rendering:pixelated}.stage-option strong{display:block;font:clamp(12px,1.7vw,22px) ArcadeBrush;margin:5px 0}.stage-option span{font:6px/1.6 ArcadePixel;display:block}.stage-option.selected{border-color:#fff36a;box-shadow:0 0 0 2px #ffe35d;background:#2347a0}
#controls-dialog{max-width:760px;width:calc(100% - 28px);max-height:90dvh;overflow:auto;padding:32px;background:#0c1954;color:#fff4c4;border:3px solid #e5b959;box-shadow:8px 8px #030924}
#controls-dialog h2{font:32px ArcadeBrush;margin:12px 0;color:#ffd96a}#controls-dialog p{font:11px/1.8 ArcadePixel}#controls-dialog .start-button{font-size:11px;min-height:48px;width:100%;padding:15px}
.preset-row{display:flex;gap:8px;margin:18px 0}.preset-row button{flex:1;background:#24468c;border:2px solid #7babe4;color:#fff6c9;padding:12px 8px;font:9px/1.7 ArcadePixel;cursor:pointer}.key-players{display:grid;grid-template-columns:1fr 1fr;gap:28px}.key-players h3{font:12px ArcadePixel;color:#ffd96a}.key-row{display:flex;align-items:center;justify-content:space-between;gap:5px;border-bottom:1px solid #5470ab55;padding:5px 0;font:10px ArcadePixel}.key-row button{background:#04113e;color:#fff7bb;border:1px solid #819ac7;min-width:80px;min-height:33px;padding:6px;font:10px ArcadePixel;cursor:pointer}.key-row button:focus-visible{outline:3px solid #ffd052}.mobile-options{border-top:1px solid #617cba;margin-top:20px;padding-top:16px;display:grid;gap:15px;font:10px/1.8 ArcadePixel}.mobile-options label{display:block}.mobile-options input[type=range]{display:block;width:100%;margin-top:12px}.mobile-options output{float:right}#controls-dialog .binding-status{font-size:9px;min-height:36px;color:#ffd96a}
.touch-controls{display:none}.touch-deck{padding:16px}.deck-label{font:9px ArcadePixel;color:#2a2554;margin-bottom:17px}.deck-buttons{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:155px}.dpad{position:relative;width:calc(140px * var(--touch-scale,1));height:calc(140px * var(--touch-scale,1));flex-shrink:0;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);filter:drop-shadow(0 5px #19182b)}.dpad button{border:0;border-radius:3px;background:#292a3e;color:#b8bac8;font:27px sans-serif;touch-action:none;user-select:none;-webkit-user-select:none;padding:0}.dpad i{grid-area:2/2;background:radial-gradient(circle,#202131 35%,#323346 38%);pointer-events:none}.dpad [data-action=jump]{grid-area:1/2}.dpad [data-action=left]{grid-area:2/1}.dpad [data-action=right]{grid-area:2/3}.dpad [data-action=crouch]{grid-area:3/2}.action-pad{display:grid;grid-template-columns:repeat(2,calc(60px * var(--touch-scale,1)));gap:17px 13px;transform:rotate(-13deg);margin-right:8px}.action-pad button{background:#a02b66;border:3px solid #7c1d50;border-radius:50%;box-shadow:0 5px #5f1840;color:#ffd9e6;aspect-ratio:1;position:relative;touch-action:none;user-select:none;-webkit-user-select:none;padding:0}.action-pad b{font:22px ArcadeBrush}.action-pad button span{position:absolute;bottom:-17px;left:-10px;right:-10px;font:6px ArcadePixel;color:#282546;transform:rotate(13deg)}.action-pad [data-action=special]{background:#7953aa;border-color:#5b3c84;box-shadow:0 5px #412c64}.touch-controls .pressed{filter:brightness(1.5);box-shadow:0 1px #25202e;transform:translateY(3px)}.southpaw .deck-buttons{flex-direction:row-reverse}.console-bottom{padding:18px 18px 26px;display:flex;align-items:center;justify-content:space-between;color:#383152;font:7px/1.8 ArcadePixel}.console-bottom span b{display:block;font:22px ArcadeBrush}.console-bottom button{border:0;border-radius:15px;background:#77728a;color:#eee7f9;box-shadow:0 3px #4a455c;padding:12px;font:7px ArcadePixel}
@media(max-width:700px){
.page-shell{padding:12px 10px}.site-header{gap:7px;padding:12px 0 15px;flex-wrap:wrap}.brand-mark{display:none}.brand-copy{font-size:8px}.brand-copy>span{font-size:23px}.site-header nav{gap:5px;margin-left:auto}.nav-button{min-width:36px;min-height:36px;padding:6px}.site-header .location{display:none}.arena-heading{font-size:7px;padding:15px 0}.arena-heading .version{font-size:6px}.arena-heading .heading-muted{display:none}
.arena{aspect-ratio:1/1;border:12px solid #38364b;border-radius:15px 15px 5px 5px;background:#151526;box-shadow:0 3px #9d96b6;overflow:hidden}.arena #game{width:100%;height:auto;position:absolute;top:50%;transform:translateY(-50%);aspect-ratio:16/9;object-fit:contain}.arena .vignette{pointer-events:none}.arena .intro{padding:16px 8px;gap:7px;justify-content:center;background:#08102082}.intro-top{font-size:5px;gap:8px}.intro .game-logo{width:80%;margin:0 auto;max-height:100px}.intro .game-logo img{max-height:115px;object-fit:contain}.intro-tagline{font-size:13px;margin:0}.intro .matchup{font-size:16px;margin:0;gap:13px}.intro .matchup em{font-size:20px}.mode-picker{gap:5px;margin:5px 0}.mode-picker .mode{font-size:6px;padding:10px 8px;min-height:35px}.intro .start-button{width:90%;min-height:40px;padding:9px;font-size:9px;margin:4px 0}.intro .start-hint{font-size:5px;line-height:1.8}.intro-footer{display:none}
.selection-screen{padding:9px 8px;gap:5px}.setup-top{font-size:5px;gap:3px}.setup-top>span{display:none}.setup-top button{padding:7px;font-size:6px;min-height:28px}.select-heroes{width:98%;gap:8px;flex:0}.portrait-window{aspect-ratio:1.1;border-width:2px}.select-player{font-size:13px}.select-portrait strong{font-size:20px}.select-power{font-size:4.5px;line-height:1.7;min-height:20px;max-width:110px}.select-center img{max-height:90px;width:150%}.select-center em{font-size:34px}.select-center p{font-size:5px}.select-center .colombia-flag{width:24px;height:15px}.selection-screen h2{font-size:25px}.selection-prompt{font-size:5.5px;min-height:10px}.fighter-options{width:100%;gap:3px}.fighter-option{height:49px}.fighter-option>span{font-size:4.5px}.cursor-badge{font-size:6px;padding:1px}.select-actions{gap:6px;min-height:32px;margin-top:auto}.selection-tip{display:none}.select-actions .start-button{min-width:0;min-height:32px;font-size:7px;padding:9px 12px}.select-actions .secondary-button{font-size:5px;line-height:1.8;padding:5px;max-width:120px}.stage-options{grid-template-columns:repeat(3,1fr);width:100%;gap:5px;margin:0}.stage-option{padding:2px}.stage-option strong{font-size:11px;margin:2px 0}.stage-option span{font-size:4px}.stage-option img{max-height:44px}.selection-screen:has(.stage-options) .select-heroes{display:none}
.touch-controls{display:block;background:linear-gradient(135deg,#d7d1e5,#b0a5c9);border:2px solid #8a819d;border-top:0;border-radius:0 0 35px 10px;margin:0 0 16px;box-shadow:inset 3px -5px 0 #8d82a4,0 5px #211f31}.control-grid{display:none}.under-arena{display:none}.deck-label{font-size:7px}.deck-buttons{min-height:145px}.deck-label+ .deck-buttons{padding-bottom:4px}.console-bottom{padding-top:12px}.touch-deck+ .touch-deck{border-top:2px solid #91859f}.hud{top:12%;left:3%;right:3%;gap:10px;grid-template-columns:1fr 42px 1fr}.hud .player-label{font-size:5px}.hud .player-label b{font-size:10px}.hud .health-track{height:11px}.hud .hud-bottom>span:not(.round-dots){display:none}.hud .hud-bottom{gap:4px}.hud .round-label{font-size:4px}.hud #timer{font-size:27px}.hud #pause-btn{font-size:15px;padding:4px}.hud .round-dots i{width:6px;height:6px}.stage-caption{font-size:5px;bottom:8px;left:3%;right:3%}.announcement{top:35%}.announcement strong{font-size:52px}.announcement span{font-size:6px}.result h2,.pause h2{font-size:38px}.result p{font-size:9px}.result .start-button,.pause .start-button{font-size:9px;min-height:40px;padding:12px;width:85%}.result .secondary-button,.pause .secondary-button{font-size:7px}.result .eyebrow,.pause .eyebrow{font-size:7px}footer{font-size:6px;gap:10px}.footer-title{display:none}
#controls-dialog{padding:24px 16px}#controls-dialog h2{font-size:26px}#controls-dialog p{font-size:8px}.preset-row button{font-size:6px;padding:10px 5px}.key-players{gap:15px}.key-players h3{font-size:8px}.key-row{font-size:6px}.key-row button{font-size:7px;min-width:54px;padding:5px}.mobile-options{font-size:8px}
}
@media(max-width:370px){.dpad{width:calc(117px * var(--touch-scale,1));height:calc(117px * var(--touch-scale,1))}.action-pad{grid-template-columns:repeat(2,calc(50px * var(--touch-scale,1)));gap:16px 12px}.touch-deck{padding:12px}.fighter-option{height:43px}.selection-screen{gap:3px}.select-heroes{gap:4px}.select-portrait strong{font-size:17px}.intro .game-logo{max-height:80px}}
@media(pointer:coarse) and (min-width:701px){.touch-controls{display:block;background:#b9b0c9;border-radius:0 0 25px 25px}.touch-deck{max-width:600px;margin:auto}.control-grid{display:none}.console-bottom{max-width:600px;margin:auto}.deck-label{color:#171d40}.action-pad button{min-height:60px}}

/* Character selection gets its own taller screen on a handheld. */
@media(max-width:700px){
.arena:has(.selection-screen:not([hidden])){aspect-ratio:4/5}
.select-heroes{flex:0 0 auto;min-height:0;height:125px;width:94%}
.select-portrait .portrait-window{height:83px;aspect-ratio:auto}
.select-portrait strong{font-size:21px;line-height:1.1;margin-top:3px}
.select-power{font-size:4px;min-height:17px}
.select-center img{height:62px;max-height:62px}.select-center em{font-size:28px}.select-center .colombia-flag{margin-top:0}.select-center p{margin:5px 0;font-size:4px}
.selection-screen{gap:7px}.selection-screen h2{font-size:27px;flex-shrink:0}.selection-prompt{flex-shrink:0}
.fighter-options{flex-shrink:0}.fighter-option{height:53px}.select-actions{flex-shrink:0;margin-top:7px}
.page-shell:has(#selection:not([hidden])) #touch-controls .touch-deck{display:none}
.page-shell:has(#selection:not([hidden])) #touch-controls .console-bottom{padding:13px 18px}
#controls-dialog .key-players{grid-template-columns:1fr}#controls-dialog .key-players section:nth-child(2){display:none}#controls-dialog .key-row{font-size:9px}#controls-dialog .key-row button{font-size:10px;min-width:100px}
#controls-dialog [data-preset]{font-size:0}#controls-dialog [data-preset=classic]::after{content:'WASD + F / G / H';font-size:7px}#controls-dialog [data-preset=swapped]::after{content:'FLECHAS + J / K / L';font-size:7px}
.selection-screen:has(.stage-options){justify-content:flex-start}.stage-options{grid-template-columns:repeat(2,1fr);gap:8px}.stage-option img{max-height:64px}.stage-option strong{font-size:16px}.stage-option span{font-size:5px}.selection-screen:has(.stage-options) .select-actions{margin-top:auto}
}
@media(max-width:370px){.select-heroes{height:109px}.select-portrait .portrait-window{height:72px}.select-portrait strong{font-size:18px}.select-power{font-size:3.5px}.fighter-option{height:45px}.selection-screen{gap:5px}.selection-screen h2{font-size:24px}}

@media(max-width:700px){.stage-option img{max-height:50px}.stage-option strong{font-size:15px}.stage-options{gap:7px}.selection-screen:has(.stage-options) .select-actions{padding-bottom:7px}}

/* Natural document rows keep portraits, headings and cards from overlapping. */
.arena:has(.selection-screen:not([hidden])){height:auto;min-height:0;aspect-ratio:auto}
.arena:has(.selection-screen:not([hidden])) #game{position:absolute;inset:0;width:100%;height:100%;transform:none;object-fit:cover}
.selection-screen{position:relative;inset:auto;display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;justify-items:center;align-content:start;align-items:start;gap:14px;padding:20px 3% 25px;overflow:visible;min-height:0}
.selection-screen>*{min-width:0;max-width:100%;flex:none}
.setup-top{align-items:center;min-height:34px}
.select-heroes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(0,1fr);width:min(840px,96%);height:auto;min-height:0;gap:20px;flex:none;align-items:center;margin:0}
.select-portrait{width:100%;height:auto;min-height:0}
.select-portrait .portrait-window{width:100%;height:clamp(100px,15vw,184px);aspect-ratio:auto;flex:none}
.select-portrait strong{font-size:clamp(23px,3vw,39px);line-height:1.15;margin:7px 0 4px}
.select-power{font-size:7px;line-height:1.8;min-height:26px;width:100%;max-width:240px}
.select-center{width:100%;gap:5px;min-height:0}
.select-center img{width:100%;height:clamp(70px,10vw,135px);max-height:135px;object-fit:contain}
.select-center em{font-size:clamp(30px,4vw,52px);line-height:1}
.select-center p{font-size:7px;line-height:1.8;margin:3px 0}
.select-center .colombia-flag{margin:0}
.selection-screen h2{position:static;margin:0;font-size:clamp(28px,3.5vw,44px);line-height:1.1}
.selection-prompt{position:static;margin:0;min-height:15px;font-size:8px;line-height:1.9}
.fighter-options{position:static;width:min(780px,100%);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0}
.fighter-option{height:clamp(60px,7vw,86px);min-width:0}
.fighter-option>span{font-size:7px;line-height:2}
.select-actions{position:static;width:100%;min-height:44px;height:auto;margin:4px 0 0;padding:0;gap:20px;align-items:center;flex-wrap:wrap}
.select-actions .start-button{min-width:230px;max-width:100%;min-height:44px;padding:12px 17px;font-size:10px}
.stage-options{position:static;width:100%;gap:10px;margin:0;grid-template-columns:repeat(5,minmax(0,1fr))}
.stage-option img{height:auto;max-height:none;aspect-ratio:16/9;object-fit:cover}
.stage-option strong{font-size:clamp(14px,1.8vw,22px);line-height:1.2;margin:6px 0}
.stage-option span{font-size:6px;line-height:1.8}
@media(max-width:700px){
.selection-screen{gap:12px;padding:12px 10px 20px}
.select-heroes{height:auto;gap:9px;width:100%;flex:none}
.select-portrait .portrait-window{height:clamp(86px,20vw,125px)}
.select-portrait strong{font-size:clamp(20px,4.5vw,28px);margin:6px 0 3px}
.select-power{font-size:5px;line-height:1.9;min-height:22px;max-width:100%}
.select-center img{width:100%;height:clamp(55px,14vw,85px);max-height:85px}
.select-center em{font-size:30px}.select-center p{font-size:5px;line-height:1.8;margin:3px 0}
.selection-screen h2{font-size:30px}.selection-prompt{font-size:6px;line-height:1.9;min-height:12px}
.fighter-options{width:100%;gap:6px}.fighter-option{height:clamp(57px,13vw,79px)}.fighter-option>span{font-size:clamp(4px,1vw,6px);line-height:2.1}
.select-actions{gap:10px;margin:3px 0 0;min-height:40px}
.select-actions .start-button{min-width:0;min-height:40px;font-size:8px;padding:11px 15px}
.select-actions .secondary-button{font-size:6px;max-width:130px;padding:8px;line-height:1.9}
.stage-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:100%}
.stage-option img{max-height:none;height:auto}.stage-option strong{font-size:17px;margin:5px 0}.stage-option span{font-size:5px;line-height:1.9}
.selection-screen:has(.stage-options) .select-actions{margin:4px 0 0;padding:0}
}
@media(max-width:370px){.selection-screen{padding:10px 7px 18px;gap:10px}.select-heroes{height:auto;gap:6px}.select-portrait .portrait-window{height:80px}.select-portrait strong{font-size:18px}.select-power{font-size:4px;min-height:20px}.selection-screen h2{font-size:27px}.fighter-option{height:53px}.fighter-options{gap:5px}.select-actions .start-button{font-size:7px;padding:10px}}

/* A real square render surface fills the handheld screen, including the stage. */
@media(max-width:700px){
.arena:not(:has(.selection-screen:not([hidden]))) #game{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:1;object-fit:fill;transform:none}
.arena .hud{top:4%}.arena .stage-caption{bottom:10px}
.arena .intro{background:linear-gradient(90deg,#07122d66,#07122dc9 35%,#07122dc9 65%,#07122d66)}
}
@media(hover:none) and (pointer:coarse) and (min-width:701px){
.arena:not(:has(.selection-screen:not([hidden]))){aspect-ratio:1}
.arena:not(:has(.selection-screen:not([hidden]))) #game{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:1;object-fit:fill;transform:none}
}

/* Fullscreen includes the complete console; the render frame always keeps its ratio. */
.game-console{min-width:0}
.console-tools{display:none}
#game-console:fullscreen{width:100vw;height:100dvh;max-width:none;background:#050820;padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left));overflow:hidden}
#game-console.is-fullscreen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
#game-console.is-fullscreen .console-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px;width:100%;font:7px/1.8 ArcadePixel;color:#f6e9bb;flex:none}
.console-tools button{border:1px solid #759ad7;background:#14275b;color:#fff3c4;font:8px ArcadePixel;padding:9px 12px;min-height:32px}
#game-console.is-fullscreen .arena{width:var(--fullscreen-width,70vmin);height:var(--fullscreen-height,70vmin);aspect-ratio:auto;min-height:0;flex:none;border-width:6px;margin:0}
#game-console.is-fullscreen .arena #game{position:absolute;inset:0;width:100%;height:100%;transform:none;aspect-ratio:auto;object-fit:contain}
#game-console.is-fullscreen .selection-screen{height:100%;overflow:auto;min-height:0}
#game-console.is-fullscreen #touch-controls{display:none;margin:0;flex:none}
#game-console.is-fullscreen.is-handheld #touch-controls{display:block;width:100%;border-radius:0 0 25px 10px;background:linear-gradient(135deg,#d7d1e5,#b0a5c9)}
#game-console.is-fullscreen.is-handheld .touch-deck{padding:10px 14px}
#game-console.is-fullscreen.is-handheld .deck-label{font-size:7px;margin-bottom:10px}
#game-console.is-fullscreen.is-handheld .deck-buttons{min-height:125px}
#game-console.is-fullscreen.is-handheld .dpad{width:calc(120px * var(--touch-scale,1));height:calc(120px * var(--touch-scale,1))}
#game-console.is-fullscreen.is-handheld .action-pad{grid-template-columns:repeat(2,calc(51px * var(--touch-scale,1)));gap:18px 12px}
#game-console.is-fullscreen.is-handheld .console-bottom{padding:12px 14px 15px}
#game-console.is-fullscreen.is-handheld .hud{top:4%;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);gap:6px}
#game-console.is-fullscreen.is-handheld .player-label{font-size:5px}
#game-console.is-fullscreen.is-handheld .player-label b{font-size:9px;letter-spacing:0;margin:0 2px}
#game-console.is-fullscreen.is-handheld .player-label>span:last-child:not(:has(b)),#game-console.is-fullscreen.is-handheld .player-two .player-label>span:first-child{display:none}
#game-console.is-fullscreen.is-handheld .hud-bottom>span:not(.round-dots){display:none}
#game-console.is-fullscreen.is-handheld .health-track{height:12px;border-width:2px;margin-top:5px}
#game-console.is-fullscreen.is-handheld #timer{font-size:25px}
#game-console.is-fullscreen.is-handheld .round-label{font-size:4px}
#game-console.is-fullscreen.is-handheld .stage-caption{font-size:5px;bottom:8px}
/* Two people share an unfolded touch screen: separate controllers in one row. */
.fold-notice{font:8px/1.8 ArcadePixel;color:#ffe382;text-align:center;padding:12px;background:#12275d;margin:0}
.fold-notice[hidden]{display:none}
#touch-controls.dual-deck{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:none;touch-action:none}
#touch-controls.dual-deck .touch-deck{width:100%;max-width:none;margin:0;padding:12px 14px 22px;min-width:0}
#touch-controls.dual-deck .touch-deck+.touch-deck{border-top:0;border-left:2px solid #91859f}
#touch-controls.dual-deck .console-bottom{grid-column:1/-1;width:100%;max-width:none;padding:8px 14px 12px}
#touch-controls.dual-deck .deck-buttons{min-height:125px;gap:8px}
#touch-controls.dual-deck .deck-label{font-size:7px;margin-bottom:12px}
#touch-controls.dual-deck .dpad{width:calc(114px * var(--touch-scale,1));height:calc(114px * var(--touch-scale,1))}
#touch-controls.dual-deck .action-pad{grid-template-columns:repeat(2,calc(46px * var(--touch-scale,1)));gap:19px 10px;margin-right:6px}
#touch-controls.dual-deck .action-pad button{min-width:0;min-height:0}
#touch-controls.dual-deck .action-pad button span{font-size:5px}
#game-console.is-fullscreen.is-handheld #touch-controls.dual-deck{display:grid;width:100%;max-width:1000px}
@media(max-width:679px){#touch-controls.dual-deck{grid-template-columns:1fr}#touch-controls.dual-deck .touch-deck+.touch-deck{border-left:0;border-top:2px solid #91859f}}
/* Keep both controllers visible even where native fullscreen is unavailable. */
.page-shell:has(.touch-duel .arena.playing){padding:8px;max-width:none}
.page-shell:has(.touch-duel .arena.playing)>.site-header,
.page-shell:has(.touch-duel .arena.playing) .arena-heading,
.page-shell:has(.touch-duel .arena.playing) .under-arena,
.page-shell:has(.touch-duel .arena.playing)~footer{display:none}
#game-console.touch-duel:has(.arena.playing):not(.is-fullscreen){display:flex;flex-direction:column;align-items:center;min-height:calc(100dvh - 16px);justify-content:center}
#game-console.touch-duel:has(.arena.playing):not(.is-fullscreen) .arena{width:min(100%,calc(100dvh - 285px));aspect-ratio:1;flex:none;margin:0}
#game-console.touch-duel:has(.arena.playing) #touch-controls{max-width:1000px;flex:none}
.page-shell:has(.touch-duel .arena.playing)>footer{display:none}
#touch-controls.dual-deck{gap:0;margin:0}
#game-console.touch-duel .hud{top:4%;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);gap:6px}
#game-console.touch-duel .hud .player-label{font-size:5px}
#game-console.touch-duel .hud .player-label b{font-size:9px;letter-spacing:0;margin:0 2px}
#game-console.touch-duel .hud .player-label>span:last-child:not(:has(b)),#game-console.touch-duel .hud .player-two .player-label>span:first-child{display:none}
#game-console.touch-duel .hud .health-track{height:12px;border-width:2px;margin-top:5px}
#game-console.touch-duel .hud .hud-bottom>span:not(.round-dots){display:none}
#game-console.touch-duel .hud #timer{font-size:25px}
#game-console.touch-duel .hud .round-label{font-size:4px}

/* Thumb controls always occupy the bottom edge, also on an open Fold. */
#game-console.is-fullscreen.is-handheld{justify-content:flex-start}
#game-console.is-fullscreen.is-handheld #touch-controls{margin-top:auto;max-width:none}
#game-console.is-fullscreen.is-handheld .touch-deck{max-width:none;width:100%;margin:0}
#game-console.is-fullscreen.is-handheld .console-bottom{max-width:none;width:100%;margin:0}
#game-console.is-fullscreen.is-handheld .deck-buttons{width:100%}

/* Selection is a full screen menu, not a square combat viewport. */
#game-console.is-fullscreen:has(#selection:not([hidden])) #touch-controls{display:none!important}
#game-console.is-fullscreen .selection-screen{overflow:hidden;align-content:center;gap:clamp(6px,1.5vh,14px);padding:12px 3%;height:100%}
#game-console.is-fullscreen .selection-screen .select-portrait .portrait-window{height:clamp(65px,18vh,170px)}
#game-console.is-fullscreen .selection-screen .select-center img{height:clamp(55px,12vh,120px)}
#game-console.is-fullscreen .selection-screen .select-actions{margin-top:4px}
@media(max-height:600px){
#game-console.is-fullscreen .selection-screen .select-heroes{display:none}
#game-console.is-fullscreen .selection-screen .fighter-option{height:clamp(40px,13vh,65px)}
#game-console.is-fullscreen .selection-screen h2{font-size:26px}
#game-console.is-fullscreen .selection-screen .setup-top>span{display:none}
#game-console.is-fullscreen .selection-screen .stage-options{grid-template-columns:repeat(5,minmax(0,1fr))}
#game-console.is-fullscreen .selection-screen .stage-option img{max-height:65px}
}
/* Keep each player's controls within a comfortable central thumb span. */
.touch-deck .deck-buttons{max-width:540px;margin-inline:auto}
#game-console.is-fullscreen.is-handheld .deck-buttons{max-width:540px;margin-inline:auto}
#game-console.is-fullscreen.is-handheld .deck-label{max-width:540px;margin-inline:auto}
#game-console.is-fullscreen.is-handheld .console-bottom{max-width:568px;margin-inline:auto}

.ambience-picker{width:100%;text-align:center;font:7px/1.8 ArcadePixel;color:#ffdf74}
.ambience-picker>span{display:block;margin-bottom:8px}
.ambience-picker>div{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}
.ambience-picker button{font:7px/1.7 ArcadePixel;background:#09245d;border:2px solid #83a7d4;padding:9px 11px;color:#d4e6ff;min-height:38px}
.ambience-picker button.selected{border-color:#ffe366;background:#785518;color:#fff2b1;box-shadow:inset 0 0 0 1px #fbc431}
@media(max-width:700px){.ambience-picker{font-size:6px}.ambience-picker>div{gap:5px}.ambience-picker button{font-size:5px;padding:8px 7px;min-height:32px}}
#game-console.is-fullscreen .selection-screen:has(.stage-options) .select-heroes{display:none}
#game-console.is-fullscreen .selection-screen:has(.stage-options) .stage-option img{max-height:150px}
@media(max-height:600px){#game-console.is-fullscreen .ambience-picker>span{display:none}#game-console.is-fullscreen .ambience-picker button{min-height:28px;padding:5px 7px;font-size:6px}#game-console.is-fullscreen .selection-screen:has(.stage-options){gap:6px}#game-console.is-fullscreen .selection-screen:has(.stage-options) .stage-option img{max-height:60px}}
@media(max-height:600px){#game-console.is-fullscreen .selection-screen:has(.stage-options){padding-top:10px;padding-bottom:10px;gap:5px}}
.cpu-difficulty{font:7px/1.8 ArcadePixel;color:#ffe17b;display:flex;flex-direction:column;gap:5px;text-align:left}
.cpu-difficulty select{font:8px/1.8 ArcadePixel;color:#ffe17b;background:#10295d;border:2px solid #92b8e5;padding:8px 12px;min-height:36px;cursor:pointer}
@media(max-width:700px){.cpu-difficulty{font-size:5px}.cpu-difficulty select{font-size:7px;padding:6px;min-height:32px}}
.hold-hint{float:right;font-size:5px;line-height:1.8;color:#282546;margin-left:10px}
.dual-deck .hold-hint{font-size:4px}
/* Six arenas share one row on desktop; handhelds keep readable two/three-column cards. */
@media(min-width:701px){.stage-options{grid-template-columns:repeat(6,minmax(0,1fr))}.stage-option strong{font-size:clamp(12px,1.4vw,18px)}#game-console.is-fullscreen .selection-screen .stage-options{grid-template-columns:repeat(6,minmax(0,1fr))}#game-console.is-fullscreen.is-handheld .selection-screen .stage-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
.stage-option strong{overflow-wrap:anywhere}
@media(max-width:700px){#game-console.is-fullscreen .selection-screen .stage-options{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-option strong{font-size:14px}#game-console.is-fullscreen .selection-screen:has(.stage-options) .stage-option img{max-height:65px}}
/* Eleven fighters: six above and five centered below; four/four/three on phones. */
.fighter-options{grid-template-columns:repeat(12,minmax(0,1fr))}.fighter-option{grid-column:span 2}.fighter-option:nth-child(7){grid-column:auto/span 2}
@media(max-width:700px){.fighter-options{grid-template-columns:repeat(8,minmax(0,1fr))}.fighter-option:nth-child(7){grid-column:auto/span 2}.fighter-option:nth-child(9){grid-column:auto/span 2}}
#result-victory-quote,#announcement-quote{box-sizing:border-box;max-width:min(600px,88%);margin:0 auto;padding:13px 17px;border:2px solid #f5cf58;background:#0b245be8;color:#ffdf70;font:12px/1.9 ArcadePixel,monospace;text-transform:uppercase;text-shadow:2px 2px #17102b;white-space:normal}
#announcement-quote{margin:12px auto 0;font-size:10px}
@media(max-width:700px){#result-victory-quote,#announcement-quote{font-size:7px;padding:9px 11px;line-height:1.9}#announcement-quote{margin-top:8px}}

/* Victory stays on the live arena, with the complete celebration sprite visible. */
#result.victory-scene{background:none;backdrop-filter:none;justify-content:flex-start;gap:0;padding:0;pointer-events:none}
#result.victory-scene #result-eyebrow{display:none}
#result.victory-scene #result-title,.victory-announcement strong{font:italic clamp(34px,6.2vw,86px)/1 ArcadeBrush,sans-serif;letter-spacing:1px;color:#ffe363;text-shadow:2px 3px #e26329,4px 5px #200e25;-webkit-text-stroke:1px #3a1521}
#result.victory-scene #result-title{position:absolute;top:20%;left:3%;right:3%;margin:0;max-width:none}
#result.victory-scene #result-victory-quote,.victory-announcement #announcement-quote{background:none;border:0;padding:0;font:italic clamp(25px,4.7vw,64px)/1.05 ArcadeBrush,sans-serif;color:#ffdc4d;text-shadow:2px 3px #c33e22,4px 5px #140f29;-webkit-text-stroke:.6px #3c1722;max-width:90%;text-wrap:balance}
#result.victory-scene #result-victory-quote{position:absolute;top:30%;left:5%;right:5%;margin:0}
#result.victory-scene #result-copy{position:absolute;bottom:14%;left:4%;right:4%;font-size:clamp(5px,.7vw,9px);text-shadow:1px 2px #000,0 0 5px #000;background:#050d2180;padding:5px;max-width:none;margin:0}
#result.victory-scene .result-buttons{position:absolute;bottom:4%;left:3%;right:3%;flex-direction:row;justify-content:center;gap:12px;pointer-events:auto}
#result.victory-scene .start-button{min-width:0;width:auto;min-height:0;padding:9px 12px;font-size:clamp(5px,.8vw,10px);box-shadow:2px 2px #37142c}
#result.victory-scene .secondary-button{font-size:clamp(5px,.7vw,8px);padding:8px;background:#071631df;border:1px solid #7293ba}
.announcement.victory-announcement{top:20%;filter:none}
.victory-announcement #announcement-small{display:none}
.victory-announcement #announcement-quote{margin:12px auto 0}
@media(max-width:700px){#result.victory-scene #result-title,.victory-announcement strong{font-size:clamp(30px,8vw,56px)}#result.victory-scene #result-victory-quote,.victory-announcement #announcement-quote{font-size:clamp(24px,6vw,42px)}#result.victory-scene .result-buttons{gap:6px}#result.victory-scene #result-copy{bottom:15%}}

/* Classic arcade continue screen: portrait and illuminated countdown on black. */
.continue-panel{z-index:12;background:#000;color:#fff2c9;padding:3% 6%;justify-content:space-between;gap:5px}
.continue-panel header{display:flex;justify-content:space-between;width:100%;font:clamp(6px,1vw,12px)/1.6 ArcadePixel,monospace;text-shadow:2px 2px #80512d}
.continue-panel h2{font:italic clamp(24px,4vw,54px)/1 ArcadeBrush,sans-serif;margin:0;color:#ffdc53;text-shadow:2px 3px #b33822}
.continue-stage{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10%;width:min(76%,620px);min-height:0;flex:1;max-height:58%}
.continue-stage figure{margin:0;min-height:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}
#continue-portrait{width:100%;max-height:88%;object-fit:contain;image-rendering:pixelated;aspect-ratio:1}
#continue-name{font:clamp(7px,1.2vw,15px)/1.5 ArcadePixel,monospace;color:#ffd85c;margin-top:6px}
.continue-counter{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;height:100%;gap:8px}
.continue-counter>span{font:clamp(6px,1vw,11px)/1.4 ArcadePixel,monospace;color:#e9e2ce}
#continue-digit{display:block;font:clamp(70px,12vw,175px)/1.2 ArcadePixel,monospace;letter-spacing:0;background:radial-gradient(circle,#fffce0 28%,#ffe17f 38%,#9c591b 49%,#1c0d04 57%,transparent 65%) 0 0/7px 7px;background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 0 3px #f0b34180)}
#continue-copy,#continue-message{margin:0;font:clamp(5px,.7vw,9px)/1.8 ArcadePixel,monospace;max-width:94%;color:#b4c5e2;text-wrap:balance}
#continue-message{color:#ffcc63;min-height:1.8em}
.continue-buttons{display:flex;justify-content:center;align-items:center;gap:24px;width:100%}
.continue-buttons .start-button{min-width:0;width:auto;min-height:0;font-size:clamp(7px,1vw,12px);padding:12px 24px}
.continue-buttons .secondary-button{font-size:clamp(6px,.8vw,10px);border:1px solid #5d6790;background:#0a1024;padding:12px 20px}
@media(max-width:700px){.continue-panel{padding:4% 5%;gap:3px}.continue-panel h2{font-size:clamp(21px,6vw,35px)}.continue-stage{width:83%;max-height:51%;gap:8%}#continue-digit{font-size:clamp(65px,18vw,125px);background-size:5px 5px}.continue-buttons{gap:16px}.continue-buttons .start-button{font-size:7px;padding:10px 15px;min-height:40px}.continue-buttons .secondary-button{font-size:6px;min-height:40px;padding:10px 14px}#continue-name{font-size:7px;margin-top:3px}#continue-message{font-size:5px}}

/* The editorial notice is readable prose, with the unifying purpose emphasized. */
#satire-notice{width:min(820px,94vw);max-height:92dvh;padding:clamp(20px,4vw,38px);overflow:auto;color:#edf3ff;border:3px solid #ffd750;background:linear-gradient(140deg,#122d62,#07142f)}
#satire-notice::backdrop{background:#020617eb}
#satire-notice .eyebrow{display:block;font:8px/1.8 ArcadePixel,monospace;color:#f5cf6c}
#satire-notice h2{font:italic clamp(30px,5vw,54px)/1.05 ArcadeBrush,sans-serif;color:#ffdf60;margin:18px 0;text-shadow:2px 3px #ac3a29}
#satire-notice>p,#satire-notice .satire-mission p{font:15px/1.65 Arial,Helvetica,sans-serif;color:#d7e3f8;margin:15px 0}
.satire-mission{border-left:5px solid #ffd54e;padding:17px 21px;background:#1b3d75;margin:20px 0}
#satire-notice .satire-mission>strong{display:block;font:italic clamp(22px,3.5vw,32px)/1.15 ArcadeBrush,sans-serif;color:#ffe783;letter-spacing:.4px}
#satire-notice .satire-mission>b{font:700 15px/1.6 Arial,Helvetica,sans-serif;color:#fff0b7}
.satire-accept{position:sticky;bottom:-1px;padding:16px 0 0;background:linear-gradient(#0b1d43ed,#0b1d43 35%);text-align:center}
#satire-notice .start-button{width:100%;min-width:0;font-size:clamp(8px,1.3vw,12px);padding:17px 12px}
.satire-accept small{display:block;font:12px/1.5 Arial,Helvetica,sans-serif;color:#aebfdb;margin-top:12px}
#read-satire{font-size:6px;color:#c6d8f7;padding:6px 0}
@media(max-width:700px){#satire-notice{padding:20px;max-height:94dvh}#satire-notice .eyebrow{font-size:6px}#satire-notice>p,#satire-notice .satire-mission p{font-size:14px;line-height:1.55}.satire-mission{padding:14px;margin:16px 0}#satire-notice .satire-mission>b{font-size:14px}.satire-accept small{font-size:11px}}

footer{flex-wrap:wrap}.game-credit{flex:0 0 100%;text-align:center;font:14px/1.6 Arial,Helvetica,sans-serif;letter-spacing:0;color:#bed0eb;margin:10px 0 4px}.game-credit .credit-heart{color:#ff6c86}.game-credit a{color:#ffdd71;text-decoration:underline;text-underline-offset:3px}.game-credit a:hover{color:#fff1b6}@media(max-width:700px){.game-credit{font-size:13px;margin-top:12px}}

/* The face-off fills either wide or square arenas without stretching portraits. */
.versus-screen{position:absolute;inset:0;z-index:16;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2vw,25px);padding:4%;color:#ffe7a0;background:repeating-linear-gradient(0deg,#0002 0 1px,transparent 1px 4px),radial-gradient(ellipse at 50% 40%,#164db3,#0b155a 65%,#060925);overflow:hidden}
.versus-screen[hidden]{display:none}.versus-eyebrow{font:clamp(8px,1.3vw,18px) ArcadePixel;text-align:center;color:#b5ceff;letter-spacing:.08em;margin:0}
.versus-duel{display:grid;grid-template-columns:minmax(0,1fr) .42fr minmax(0,1fr);align-items:center;gap:2%;width:min(100%,1050px)}
.versus-fighter{margin:0;min-width:0;text-align:center}.versus-fighter img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border:3px solid #a4c5ff;background:linear-gradient(140deg,#11336f,#051434);box-shadow:5px 6px #030b2c;image-rendering:pixelated}
.versus-fighter figcaption{font:italic clamp(22px,4.4vw,62px)/1.1 ArcadeBrush,sans-serif;color:#ffe55c;text-shadow:2px 3px #cb542f,4px 5px #050c2c;margin-top:14px;overflow-wrap:anywhere}
.versus-mark{font:italic clamp(42px,8vw,112px)/1 ArcadeBrush,sans-serif;color:#ffe461;text-align:center;text-shadow:3px 4px #d24126,6px 7px #080d35;filter:drop-shadow(0 0 14px #ff522999)}
.versus-caption{margin:0;font:clamp(7px,1vw,14px)/1.8 ArcadePixel;text-align:center;color:#c0d8ff;max-width:90%}.versus-screen .secondary-button{font-size:clamp(8px,1vw,13px);margin:0;padding:12px 18px;min-height:40px}
@media(max-width:700px){.versus-screen{gap:20px;padding:6% 4%}.versus-fighter figcaption{font-size:clamp(19px,6vw,34px);margin-top:10px}.versus-mark{font-size:clamp(35px,9vw,54px)}.versus-eyebrow{font-size:8px}.versus-caption{font-size:7px}}
