#touch-pad{box-sizing:border-box;flex-shrink:0;width:min(100%,852px);height:192px;padding:16px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:8px;background:linear-gradient(165deg,#a13840,#6b1726);border:4px solid #d5bd8b;border-radius:12px;box-shadow:inset 0 0 0 2px #45121c;font:700 11px/1.2 ui-monospace,monospace;color:#f5dfad;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#touch-pad[hidden],body.touch-controls #legend{display:none}#touch-pad button{touch-action:none;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}#touch-pad button:focus-visible{outline:3px solid white;outline-offset:3px}.touch-dpad{position:relative;width:120px;height:120px;flex-shrink:0}.dpad-cross{position:absolute;top:4px;right:4px;bottom:4px;left:4px;background:#252427;clip-path:polygon(33% 0,67% 0,67% 33%,100% 33%,100% 67%,67% 67%,67% 100%,33% 100%,33% 67%,0 67%,0 33%,33% 33%)}.touch-dpad>span:not(.dpad-cross){position:absolute;display:grid;place-items:center;width:33.333%;height:33.333%;color:#77747a;font-size:20px;box-sizing:border-box}.touch-dpad .held{color:#ffe4a0!important;background:#454047;border-radius:5px}.dpad-up{top:0;left:33.333%}.dpad-down{bottom:0;left:33.333%}.dpad-left{top:33.333%;left:0}.dpad-right{top:33.333%;right:0}.dpad-center{top:33.333%;left:33.333%}.dpad-center:after{content:"";width:22px;height:22px;border-radius:50%;background:#18181b;box-shadow:inset 0 2px 3px #08080a}.touch-system{display:flex;flex-direction:column;align-items:center;gap:8px}.touch-brand{font-size:10px;text-align:center;letter-spacing:1px}.touch-system button{border:2px solid #c4ab7a;border-radius:12px;background:#29252a;color:#f5dfad;min-height:36px;min-width:64px;padding:4px 8px}.touch-system button.held{background:#51424a}.touch-hint{font-size:9px;white-space:nowrap}.touch-actions{position:relative;width:120px;height:144px;flex-shrink:0}.touch-actions button{position:absolute;border:0;padding:0;background:none;color:#f5dfad;width:60px}.touch-actions b{display:grid;place-items:center;height:56px;border-radius:50%;border:3px solid #e5ca92;background:linear-gradient(#ed4b4d,#b3192d);box-shadow:0 5px #45111b;font-size:26px;color:#ffeac0}.touch-actions span{display:block;margin-top:9px;font-size:9px}.touch-b{left:0;bottom:0}.touch-a{right:0;top:0}.touch-actions .held b{transform:translateY(4px);box-shadow:0 1px #45111b;background:#ff7770}body.touch-controls{height:100dvh}body.touch-controls canvas{flex-shrink:0}@media(max-width:359px){#touch-pad{gap:4px;padding-inline:8px}.touch-dpad{width:104px;height:104px}.touch-actions{width:108px}.touch-actions button{width:54px}}@media(orientation:landscape)and (max-height:540px){#touch-pad{height:136px;padding-block:4px}.touch-dpad{width:116px;height:116px}.touch-actions{height:116px;width:146px}.touch-brand,.touch-hint{display:none}}#stage-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;overflow:hidden;box-sizing:border-box;background:#000;color:#fff;padding:24px 20px;text-align:center;font:700 16px/1.4 ui-monospace,Menlo,Consolas,monospace}#stage-select[hidden]{display:none}.stage-content{max-width:960px;margin:auto}#stage-select button{font:inherit;border-radius:0;cursor:pointer}#stage-select button:focus-visible{outline:3px solid #ffe7a0;outline-offset:5px}.stage-versus{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.stage-fighter h2{font-size:clamp(18px,3vw,32px);margin:0 0 16px}.stage-fighter img{width:clamp(80px,15vw,144px);height:clamp(80px,15vw,144px);object-fit:contain;border:3px solid #49d22d;image-rendering:pixelated}.stage-fighter p{margin:6px 0 16px;font-size:clamp(12px,2vw,18px)}.stage-vs{font-size:clamp(28px,5vw,54px);color:#ffe7a0;text-shadow:3px 3px #c94700}.strength-bar{background:#727572;padding:6px 12px}.strength-bar h2{margin:0;font-size:24px;letter-spacing:3px}.strength-players{display:flex;justify-content:space-around;gap:20px}.strength-values{display:flex;justify-content:center}.strength-values button{position:relative;border:0;background:transparent;color:#fff;padding:3px clamp(3px,1vw,10px);font-size:clamp(18px,3vw,30px)!important}.strength-values button[aria-pressed=true]{color:#ffe7a0;background:#333;box-shadow:inset 0 -3px #ffe7a0}.strength-player p,.strength-note{margin:3px 0;font-size:12px}.strength-note{color:#fff;font-weight:400}#stage-select h1{font-size:clamp(18px,3vw,26px);margin:20px 0 12px;letter-spacing:2px}.stage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stage-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;padding:6px;border:3px solid #555;color:#aaa;background:#151515}.stage-selected{border-color:#f75b22;color:#ffe7a0;background:#000;box-shadow:0 0 0 2px #ffe7a0}.stage-preview{position:relative;width:100%;aspect-ratio:1.8;overflow:hidden;background:#172130}.stage-preview img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}#stage-select .stage-locked{cursor:default}.stage-unknown{font-size:42px;color:#555}.stage-slot small{font-size:10px;letter-spacing:2px}.stage-help,.stage-status{font-size:12px}.stage-help{color:#aaa}.stage-status{color:#ffe7a0}.stage-status:empty{display:none}.stage-start{display:block;margin:24px auto 8px;padding:8px 24px;border:0;background:#000;color:#ffe7a0;font-size:clamp(22px,4vw,32px)!important}.stage-start:hover{color:#fff}.stage-back{padding:8px;border:0;color:#aaa;background:#000;font-size:12px!important}@media(max-width:560px){#stage-select{padding:16px 12px}.stage-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stage-preview{max-height:90px}.strength-players{gap:12px}}@media(max-height:650px)and (min-width:600px){#stage-select{padding-top:12px}.stage-fighter img{width:80px;height:80px}.stage-fighter h2{margin-bottom:6px;font-size:22px}.stage-fighter p{margin-bottom:8px}.stage-start{margin-top:12px}}@container game (max-height: 650px){#stage-select{padding:8px 12px}.stage-fighter h2{margin:0 0 4px;font-size:16px}.stage-fighter img{width:48px;height:48px}.stage-fighter p{margin:2px 0 6px;font-size:12px}.stage-vs{font-size:26px}.strength-bar{padding:4px}.strength-bar h2{font-size:16px}.strength-players{gap:8px}.strength-player{min-width:0;flex:1}.strength-values button{flex:1;min-height:40px;padding:2px;font-size:18px!important}.strength-player p,.stage-help{display:none}.strength-note{font-size:11px}#stage-select h1{margin:8px 0;font-size:18px}.stage-grid{grid-template-columns:repeat(2,1fr);gap:8px}.stage-slot{min-height:44px;gap:4px;padding:4px;font-size:13px!important}.stage-preview{height:44px;aspect-ratio:auto}.stage-locked{min-height:44px}.stage-status{margin:6px 0}.stage-start{min-height:44px;margin:8px auto 0;padding:6px 20px;font-size:22px!important}.stage-back{min-height:40px;padding:6px 8px}}@container game (max-height: 400px){.stage-fighter img{display:none}.stage-preview{height:32px}}@container game (max-width: 600px){#stage-select{padding:6px 8px}.stage-content{height:100%;display:flex;flex-direction:column;justify-content:center;gap:clamp(2px,1cqh,8px)}.stage-versus,.strength-bar,#stage-select h1,.stage-help,.stage-status,.stage-start,.stage-back{flex:none}.stage-fighter h2{margin:0 0 2px;font-size:12px}.stage-fighter img{width:min(13cqh,64px);height:min(13cqh,64px)}.stage-fighter p{margin:0;font-size:11px}.stage-vs{font-size:24px}.strength-bar{padding:2px 4px}.strength-bar h2{font-size:14px}.strength-values button{min-height:36px;font-size:17px!important}.strength-note{margin:0;font-size:10px}#stage-select h1{margin:0;font-size:17px}.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;min-height:0;flex:none}.stage-slot{min-height:0;padding:2px;gap:2px;font-size:11px!important}.stage-preview{height:clamp(22px,8cqh,64px);max-height:100%}.stage-unknown{font-size:22px}.stage-slot small{font-size:8px}.stage-help{margin:0;font-size:9px}.stage-status{margin:0;font-size:10px}.stage-start{min-height:40px;margin:0 auto;padding:2px 12px;font-size:18px!important}.stage-back{min-height:32px;padding:2px 8px}}@container game (max-height: 480px){#stage-select{padding:3px 8px}.stage-content{gap:1px}.stage-fighter img{display:none}.stage-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stage-preview{height:min(12cqh,42px)}.strength-bar h2,.strength-note,.stage-help{display:none}.stage-start{min-height:34px}.stage-back{min-height:28px}}#main-menu{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;overflow:hidden;padding:24px;box-sizing:border-box;background:radial-gradient(ellipse at top,#342031,#080910 65%);color:#fff;font:16px/1.5 ui-monospace,monospace}#main-menu[hidden]{display:none}.game-logo{display:block;width:min(100%,340px,44dvh);height:auto;margin:auto}.splash h1:has(.game-logo){margin:8px 0 16px}.menu-panel{width:min(100%,460px);text-align:center}.menu-panel>p:first-child{color:#ed5267;letter-spacing:.25em;font-size:12px}.menu-panel h1{font-size:clamp(30px,7vw,52px);line-height:1.1;margin:20px 0 36px;text-transform:uppercase}.menu-panel button,.menu-panel select,.menu-panel input{font:inherit;box-sizing:border-box;width:100%;border:2px solid #67434d;padding:14px;margin:7px 0;background:#15131d;color:#fff;border-radius:4px}.menu-panel button{cursor:pointer;background:#a8233c;border-color:#ed5267;font-weight:700}.menu-panel button:hover{background:#cc304d}.menu-panel button.secondary{background:transparent;border-color:#55424c}.menu-panel :focus-visible{outline:3px solid #ffe7a0;outline-offset:3px}.menu-panel :disabled{opacity:.5;cursor:wait}.menu-panel label{display:block;text-align:left;margin:18px 0}.menu-panel #message{color:#ffe7a0;overflow-wrap:anywhere}.splash h1{font-size:clamp(60px,14vw,100px);letter-spacing:-.06em}.splash h1 span{color:#ed5267}#network-status{position:absolute;left:0;right:0;top:0;padding:8px;background:#111d;color:#ffe7a0;text-align:center;font:12px/1.4 monospace;pointer-events:none}#character-select .room-status{color:#ffe7a0;font-size:16px;letter-spacing:1px}@container game (max-height: 520px){#main-menu{padding:12px 16px;gap:8px}.menu-panel>p:first-child{margin:4px 0}.menu-panel h1{font-size:28px;margin:10px 0 14px}.menu-panel button,.menu-panel select,.menu-panel input{min-height:44px;padding:8px 12px;margin:4px 0}.menu-panel label{margin:8px 0}.menu-panel #message{margin:6px 0;font-size:14px}.menu-panel #message:empty{display:none}.game-logo{width:min(100%,240px,42cqh)}.splash h1:has(.game-logo){margin:4px 0 8px}}@container game (max-height: 380px){#main-menu{padding:8px 12px;gap:4px}.menu-panel h1{font-size:24px;margin:6px 0 8px}.game-logo{width:min(100%,36cqh)}}@container game (max-width: 600px){#main-menu{padding:8px 12px}.menu-panel{max-width:420px}.menu-panel h1{font-size:clamp(24px,7cqw,38px);margin:clamp(6px,2cqh,16px) 0}.menu-panel button,.menu-panel select,.menu-panel input{min-height:44px;padding:8px 12px;margin:4px 0}.menu-panel label{margin:8px 0}.menu-panel #message{margin:4px 0;font-size:13px}.game-logo{width:min(100%,34cqh,260px)}}@container game (max-height: 420px){.menu-panel>p:first-child{margin:0}.menu-panel h1{margin:4px 0 8px;font-size:22px}.menu-panel button,.menu-panel select,.menu-panel input{min-height:38px;padding:5px 10px;margin:2px 0}.menu-panel label{margin:4px 0}.game-logo{width:min(100%,27cqh)}}
