@font-face{font-family:ArcadeDisplay;src:local("Impact"),local("Anton"),local("Arial Narrow");font-weight:900;font-display:swap}:root{color-scheme:dark;--bg:#111119;--panel:#191921;--line:#32313b;--ink:#eeeae3;--muted:#92909e;--lime:#c8ff6b;--lilac:#caa6ff;--orange:#ee997c;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 60% 30%,#21202c33,transparent 70%),var(--bg)}button,select,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}button,a,select,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--lime)}button{border:0}button:not(:disabled){transition:background .15s,color .15s,border-color .15s,transform .15s}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.site-shell{max-width:1440px;margin:auto;padding:0 52px}.topbar{height:96px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:17px;letter-spacing:1.2px;font-weight:900}.brand-mark{width:44px;height:41px;display:flex;align-items:center;position:relative;background:var(--lime);color:#16191b;font-size:23px;letter-spacing:-2px;padding-left:5px;clip-path:polygon(0 0,85% 0,100% 15%,100% 100%,0 100%)}.brand-mark span{font-size:21px;position:absolute;right:3px;bottom:0}.brand-sub{display:block;font-family:monospace;font-size:8px;letter-spacing:2.2px;margin-top:4px;color:#9994a2}nav{display:flex;gap:27px}.nav-button{background:transparent;font-size:12px;color:#aaa5b2;padding:12px 0}.nav-button.active{color:var(--lime)}.nav-button.active:before{content:"";display:inline-block;width:4px;height:4px;background:var(--lime);margin:0 8px 2px 0}.nav-button:hover{color:var(--ink)}.nav-button span{margin-left:4px}.build-label{display:flex;align-items:center;gap:8px;font:10px monospace;letter-spacing:.6px;color:#b7b0c1}.build-label i{width:5px;height:5px;background:var(--lime);border-radius:50%}.build-label span{color:#4d4958;margin:0 3px}.intro{display:flex;align-items:center;justify-content:space-between;padding:42px 0 29px;gap:24px}.eyebrow{font-family:monospace;font-size:10px;letter-spacing:2px;color:var(--lime);font-weight:700}.mini-pixels{font-size:16px;vertical-align:-1px;margin-right:7px}h1{font-family:ArcadeDisplay,Impact,Arial Narrow,sans-serif;font-stretch:condensed;font-weight:900;font-size:clamp(30px,3.45vw,52px);letter-spacing:-.5px;line-height:1.05;margin:12px 0;display:flex;align-items:center;gap:17px}.title-tag{font-family:monospace;font-size:11px;color:var(--lime);border:1px solid #7b9850;padding:8px 10px;letter-spacing:2px;white-space:nowrap;transform:rotate(-4deg);box-shadow:3px 3px #303e29}.intro p{color:#a7a1af;font-size:13px;margin:0;letter-spacing:.2px}.intro-stamp{display:flex;align-items:center;gap:13px;font:10px/1.7 monospace;color:#888192;letter-spacing:1.3px}.intro-stamp strong{color:#d3cbd9;font-weight:400}.stamp-cross{font-size:48px;color:var(--orange);font-family:serif;line-height:1}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 276px;gap:25px}.cabinet{min-width:0;border:1px solid #3c3945;background:#17171f;align-self:start;box-shadow:0 8px 25px #0003}.cabinet-top,.cabinet-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;font:9px monospace;letter-spacing:.8px}.cabinet-top{height:40px;padding:0 16px;border-bottom:1px solid #38333e}.cabinet-top>span:first-child{display:flex;align-items:center;gap:8px}.cabinet-top b{font-weight:400}.status-dot{display:block;width:5px;height:5px;background:var(--lime)}.status-dot.running{box-shadow:0 0 8px #c8ff6b66}.stage-location{color:#b4abbf;white-space:nowrap}.stage-location span{font-size:9px;background:#323039;padding:3px 4px;margin-right:7px}.screen{width:100%;aspect-ratio:16/9;position:relative;overflow:hidden;background:#10111c;isolation:isolate;outline:0}#game{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}#game canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;max-width:100%;max-height:100%}.scanlines{z-index:2;pointer-events:none;position:absolute;inset:0;background:repeating-linear-gradient(0deg,#00000024 0px,#00000024 1px,transparent 1px,transparent 4px);opacity:.5}.scanlines.off{display:none}.game-overlay{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;background:linear-gradient(#10111c30,#10111c66 85%);text-align:center}.start-card{margin-top:-5px;text-align:center;filter:drop-shadow(0 2px 0 #10111c)}.overlay-kicker{font:8px monospace;letter-spacing:3px;color:#d9d1df}.pixel-title{font-family:ArcadeDisplay,Impact,Arial Narrow,sans-serif;font-weight:900;font-size:clamp(38px,5.4vw,78px);line-height:.8;letter-spacing:1px;color:#f5e9d4;margin:18px 0;position:relative;text-shadow:3px 0 #171e2e,-3px 0 #171e2e,0 3px #171e2e,0 -3px #171e2e,5px 5px #503350;transform:skew(-5deg)}.pixel-title span{color:var(--lime);font-size:1.14em}.pixel-title i{font-style:normal;position:absolute;font-size:32px;color:var(--orange);right:2px;top:15px;transform:rotate(10deg)}.start-card p{font:7px monospace;letter-spacing:.75px;margin:0 0 16px;color:#f2e8e7}.button{display:flex;align-items:center;justify-content:center;gap:13px;padding:14px 20px;font:700 11px monospace;letter-spacing:1px;min-height:44px}.primary{color:#151c17;background:var(--lime);border:1px solid #d7ff97;box-shadow:3px 3px #26351c}.primary:hover{background:#ddffb0;transform:translateY(-1px)}.button kbd{border:1px solid #7a9c44;box-shadow:none;color:#354920;background:#b5e260;font:8px monospace;padding:3px 4px}.button>span{font-size:11px}.start-card .button{margin:auto}.start-hint{font-size:8px;color:#c0b4c7;display:block;margin-top:14px;letter-spacing:.2px}.cabinet-bottom{border-top:1px solid #37323f;height:41px;padding:0 10px 0 16px;color:#b6afc0}.cabinet-bottom>div:first-child{display:flex;align-items:center;gap:10px}.live-dot{width:4px;height:4px;background:var(--orange);border-radius:50%}.muted{color:#665e72}.game-tools{display:flex;gap:4px}.game-tools button{background:transparent;padding:4px 7px;color:#b9aec5;font-size:18px;min-width:28px}.game-tools button:hover{background:#34303e;color:var(--lime)}.game-tools button.muted{color:#64566d;text-decoration:line-through}.under-screen{display:flex;justify-content:space-between;align-items:center;height:40px;padding:0 15px;background:#14141c;border-top:1px solid #292531;font:8px monospace;color:#878191;letter-spacing:.3px}.under-screen>span:first-child{font-family:Arial,sans-serif;font-size:10px}.under-screen b{font-weight:400;margin:0 6px}.spark-icon{color:var(--orange);font-size:17px;vertical-align:-2px;margin-right:6px}.section-label{font:9px monospace;color:#bdb6c8;letter-spacing:1.2px}.section-label>span{color:#6d657a;margin-right:7px}.setup-panel{padding:5px 0 0;display:flex;flex-direction:column}.mode-tabs{display:flex;border:1px solid var(--line);margin-top:13px;padding:4px;gap:2px}.mode-tabs button{flex:1;background:transparent;padding:10px 3px;font:700 9px monospace;letter-spacing:.4px;color:#91899e;white-space:nowrap}.mode-tabs button.selected{background:var(--lime);color:#1e2921}.mode-tabs button:not(.selected):hover{background:#2a2634;color:#fff}.mode-description{font-size:11px;color:#9b92a7;line-height:1.6;margin-top:11px;min-height:35px}.fighter-label{margin-top:19px;margin-bottom:14px}.fighter-card{display:flex;align-items:center;position:relative;gap:13px;padding:0;background:#1b1b25;border:1px solid #37313f;text-align:left;margin-bottom:9px;width:100%;height:75px}.fighter-card canvas{height:73px;width:67px;image-rendering:pixelated;border-right:1px solid #393242;object-fit:cover;align-self:stretch}.fighter-card>div{display:flex;flex-direction:column;gap:6px}.fighter-card.selected{border-color:#a0c956;background:#222820;box-shadow:inset 3px 0 var(--lime)}.fighter-card.sarah.selected{border-color:var(--lilac);background:#302537;box-shadow:inset 3px 0 var(--lilac)}.fighter-card:not(:disabled):hover{border-color:#aaa0b7}.fighter-name{font:700 16px ArcadeDisplay,Impact,Arial Narrow,sans-serif;letter-spacing:1px}.fighter-role{font:7px monospace;color:#a69bb2;letter-spacing:.5px}.fighter-bars{display:flex;gap:3px;margin-top:2px}.fighter-bars i{width:10px;height:3px;background:var(--lime)}.fighter-card.sarah .fighter-bars i{background:var(--lilac)}.fighter-bars i.dim{opacity:.17}.player-chip{position:absolute;right:10px;top:13px;background:var(--lime);color:#26351e;padding:3px 4px;font:700 8px monospace;opacity:0}.fighter-card.selected .player-chip{opacity:1}.fighter-card.sarah .player-chip{background:var(--lilac);color:#322142}.opponent-row,.difficulty-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;min-height:26px}.opponent-row label,.difficulty-row label{font:8px monospace;letter-spacing:.6px;color:#a299b0}select{background:#24212d;border:1px solid #403646;color:#d9cde6;padding:5px 22px 5px 8px;font:10px monospace;border-radius:0;min-width:93px;accent-color:var(--lime)}.roster-note{display:flex;gap:12px;align-items:center;border-top:1px solid #34303c;padding-top:14px;margin-top:19px;color:#b4aabd;font-size:11px}.roster-note>span{font:19px monospace;color:#77717f;border:1px dashed #45404d;padding:8px 5px}.roster-note small{display:block;font-size:9px;color:#746b83;line-height:1.5;margin-top:4px}.prototype-note{display:flex;align-items:flex-start;gap:8px;margin-top:17px;font:8px monospace;color:#b9a485;letter-spacing:.5px}.prototype-note i{background:#d8b58a;width:4px;height:4px;margin-top:3px}.prototype-note small{display:block;font:9px Arial,sans-serif;color:#817586;margin-top:5px;letter-spacing:0}.training-option{margin-top:14px;font-size:10px;color:#cfc4db}.training-option label{display:flex;align-items:center;gap:7px}.training-option span{display:block;font-size:9px;color:#8d8198;margin-top:7px}.controls-strip{margin-top:25px;border:1px solid #32303b;background:#181720;padding:17px 22px 19px}.controls-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.text-button{padding:0;background:none;font-size:10px;color:#9d93ab}.text-button:hover{color:var(--lime)}.controls-players{display:flex;align-items:center;justify-content:space-between;gap:20px}.player-controls{display:flex;align-items:center;gap:21px}.player-controls+.player-controls{border-left:1px solid #36303e;padding-left:26px}.player-label{font:700 10px monospace;display:flex;align-items:center;justify-content:center;width:29px;height:29px;border:1px solid #465539;background:#252e23;color:var(--lime)}.player-label.p2{color:var(--lilac);border-color:#594763;background:#2b2434}.control-item{display:flex;flex-direction:column;gap:7px}.key-group{display:flex;gap:4px}kbd{font:10px monospace;padding:5px 7px;min-width:24px;text-align:center;background:#282530;color:#e7dfee;border:1px solid #4c4357;border-bottom:2px solid #574961;border-radius:2px;display:inline-block}.control-item>span{font:7px monospace;letter-spacing:.75px;color:#8a7f98}.guard-tip{display:flex;align-items:center;gap:13px;border-left:1px solid #36303e;padding-left:23px}.guard-symbol{font-size:26px;color:#c0ad91}.guard-tip p{font-size:11px;margin:0;color:#c7bdd0;line-height:1.5}.guard-tip small{display:block;color:#81778e;font-size:9px}.bottom-note{display:flex;align-items:center;gap:13px;margin:23px 0 32px}.note-arrow{font-size:26px;color:#9e866f}.bottom-note p{font-size:11px;margin:0;color:#ada3b8}.bottom-note p span{display:block;color:#746b81;font-size:10px;margin-top:5px}.roadmap-link{margin-left:auto;display:flex;gap:17px;align-items:center;background:none;font:9px monospace;letter-spacing:.5px;color:#c1b5ce;padding:12px 0}.roadmap-link span{font-size:18px;color:var(--lime)}.roadmap-link:hover{color:var(--lime)}footer{border-top:1px solid var(--line);height:68px;display:flex;align-items:center;justify-content:space-between;font:8px monospace;letter-spacing:.7px;color:#817789;gap:16px}footer b{margin:0 7px;font-weight:400}footer strong{font-weight:400;color:#a99ab2}.paused-overlay,.result-overlay{background:#0d1015ce;backdrop-filter:blur(3px)}.compact-card h2{font:48px ArcadeDisplay,Impact,sans-serif;letter-spacing:1px;margin:15px 0;color:var(--lime)}.compact-card p{font-size:12px;color:#c7bdcd;margin:0 0 22px}.compact-card .button{margin:10px auto;min-width:230px}.compact-card .text-button{display:block;margin:19px auto 0}.subtle{background:#292532;color:#e0d4e9;border:1px solid #4c425b;box-shadow:none}.subtle:hover{background:#3b3347}.dialog{background:#1b1924;color:#ebe4ef;border:1px solid #584966;padding:36px;max-width:560px;width:calc(100% - 32px);max-height:90vh;box-shadow:0 30px 100px #0009}.dialog::backdrop{background:#080910cf;backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:15px;top:12px;background:none;font-size:26px;color:#b2a4c0;padding:4px 8px}.dialog h2{font:34px ArcadeDisplay,Impact,sans-serif;letter-spacing:.4px;margin:15px 0 20px}.dialog p{font-size:12px;line-height:1.75;color:#b9aec4}.dialog strong{color:#e6dbf0}.dialog table{width:100%;border-collapse:collapse;margin:22px 0;font-size:11px;text-align:left}.dialog th{font:9px monospace;letter-spacing:1px;color:var(--lime)}.dialog th,.dialog td{padding:11px 9px;border-bottom:1px solid #3b3245}.dialog td:first-child{color:#a89ab6}.guide-notes p{font-size:11px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:15px 0;border-bottom:1px solid #3d3345;font-size:12px}.switch-row small{display:block;font-size:10px;color:#978ba5;line-height:1.4;margin-top:5px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--lime);cursor:pointer;flex-shrink:0}.setting-row{display:flex;align-items:center;gap:16px;font-size:11px;margin:28px 0 10px}.setting-row input{width:100%;accent-color:var(--lime);min-width:0}.setting-row output{min-width:36px;color:var(--lime);font:10px monospace}.storage-note{font-size:10px!important;color:#8e809d!important;margin-top:24px!important}.settings-dialog>.button{margin-top:18px;font-size:10px}.progress-step{display:flex;gap:14px;align-items:flex-start;padding:20px 0;border-bottom:1px solid #3d3345;font-size:13px;color:#d3c6df}.progress-step>b{font:13px monospace;color:#695776}.progress-step span{display:block;font-size:11px;color:#9685a7;line-height:1.5;margin-top:6px}.progress-step.current>b,.progress-step.current>div{color:var(--lime)}.progress-step em{font:8px monospace;color:var(--lime);margin-left:auto;font-style:normal;white-space:nowrap;padding-top:2px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);z-index:10;background:#c8ff6b;color:#16221a;padding:14px 22px;font:12px monospace;box-shadow:0 5px 35px #0007;max-width:90vw;text-align:center}.error-message{position:absolute;inset:0;z-index:7;background:#201d2bea;color:#ffb7b0;padding:40px;display:flex;align-items:center;justify-content:center;font-size:15px;text-align:center;line-height:1.6}.cabinet:fullscreen{display:flex;flex-direction:column;width:100%;height:100%;background:#101119;justify-content:center;border:0}.cabinet:fullscreen .screen{flex:1;min-height:0;aspect-ratio:auto}.cabinet:fullscreen .cabinet-top,.cabinet:fullscreen .cabinet-bottom{flex-shrink:0}.cabinet:fullscreen .under-screen{display:none}.cabinet:fullscreen .pixel-title{font-size:100px}.cabinet:fullscreen .start-card p{font-size:11px}.cabinet:fullscreen .overlay-kicker{font-size:13px}@media(min-width:1600px){.site-shell{max-width:1590px}.play-layout{grid-template-columns:minmax(0,1fr) 290px}h1{font-size:55px}.intro{padding:48px 0 32px}}@media(max-width:1150px){.site-shell{padding:0 28px}.play-layout{grid-template-columns:minmax(0,1fr) 247px;gap:20px}.intro-stamp{display:none}h1{font-size:40px}.guard-tip{display:none}.controls-players{justify-content:flex-start;gap:45px}.player-controls+.player-controls{padding-left:45px}.start-card .pixel-title{font-size:50px}.start-card p{font-size:6px;margin-bottom:12px}.start-card .overlay-kicker{font-size:7px}.start-card .button{padding:10px 15px;min-height:37px;font-size:9px}.start-hint{font-size:7px;margin-top:9px}.setup-panel .fighter-label{margin-top:13px}.fighter-card{height:67px}.fighter-card canvas{height:65px;width:60px}.prototype-note{margin-top:12px}.roster-note{margin-top:13px;padding-top:10px}.build-label{font-size:8px}.topbar nav{gap:19px}}@media(max-width:850px){.site-shell{padding:0 20px}.topbar{height:77px}.topbar nav{gap:18px}.nav-button{font-size:11px}.build-label{display:none}.intro{padding:29px 0 24px}h1{font-size:38px;gap:13px}.play-layout{grid-template-columns:1fr}.setup-panel{display:grid;grid-template-columns:1fr 1fr;gap:9px 20px;padding:20px;border:1px solid var(--line);background:#16161f}.setup-panel .section-label:first-child{grid-column:1 / -1}.mode-tabs{grid-column:1 / -1;margin-top:0}.mode-description{grid-column:1 / -1;min-height:0;margin:0}.fighter-label{grid-column:1 / -1;margin:7px 0 3px!important}.fighter-card{margin-bottom:0}.opponent-row{grid-column:1}.difficulty-row{grid-column:2}.roster-note{grid-column:1;border-top:0;margin-top:4px}.prototype-note{grid-column:2;align-self:center}.training-option{grid-column:2}.pixel-title,.start-card .pixel-title{font-size:68px}.start-card .button{font-size:11px;padding:13px 18px}.start-card p{font-size:8px}.start-hint{font-size:9px}.controls-players{gap:25px;justify-content:space-between}.player-controls{gap:13px}.player-controls+.player-controls{padding-left:25px}.controls-strip{padding:16px}footer{font-size:7px;letter-spacing:0}.under-screen{height:34px}.topbar .brand{font-size:15px}}@media(max-width:560px){.site-shell{padding:0 13px}.topbar{height:66px}.brand-mark{width:34px;height:34px;font-size:19px}.brand-sub{font-size:6px;letter-spacing:1.3px}.brand{gap:7px!important;font-size:13px!important}.brand-mark span{font-size:16px}.topbar nav{gap:14px}.nav-button{font-size:10px}.topbar .nav-button[data-action]{display:none}.intro{padding:23px 0 20px}.eyebrow{font-size:8px;letter-spacing:1.5px}h1{font-size:31px;display:block;line-height:1.2;letter-spacing:-.3px;margin:8px 0}.title-tag{font-size:8px;padding:5px 7px;letter-spacing:1px;display:inline-block;vertical-align:6px;margin-left:7px}.intro p{font-size:11px}.cabinet-top{height:32px;padding:0 9px;font-size:7px;letter-spacing:.2px}.stage-location span{font-size:7px;margin-right:3px}.start-card .pixel-title{font-size:40px;margin:10px 0 11px}.start-card .overlay-kicker{font-size:6px;letter-spacing:2px}.start-card .pixel-title i{font-size:22px;right:15px;top:4px}.start-card p{font-size:5px;letter-spacing:.3px;margin-bottom:9px}.start-card .button{font-size:8px;padding:8px 13px;min-height:30px;gap:10px}.start-card .button kbd{font-size:6px;padding:2px}.start-hint{font-size:6px;margin-top:8px}.cabinet-bottom{padding:0 6px 0 9px;font-size:7px;height:34px;letter-spacing:.1px}.cabinet-bottom>div:first-child{gap:6px}.game-tools{gap:0}.game-tools button{font-size:16px;padding:3px 6px;min-width:24px}.under-screen{padding:0 9px;font-size:6px;height:31px}.under-screen>span:first-child{font-size:8px}.under-screen b{margin:0 2px}.spark-icon{font-size:13px;margin-right:3px}.setup-panel{gap:9px 12px;padding:16px}.section-label{font-size:8px}.fighter-card{gap:8px;height:67px}.fighter-card canvas{width:48px}.fighter-name{font-size:14px}.fighter-role{font-size:5.5px;letter-spacing:0}.fighter-card>div{gap:5px}.player-chip{right:5px;top:6px;font-size:6px;padding:2px}.fighter-bars{gap:2px}.fighter-bars i{width:7px}.opponent-row,.difficulty-row{gap:5px;flex-wrap:wrap}.opponent-row label,.difficulty-row label{font-size:7px}.roster-note{gap:8px;font-size:10px}.roster-note>span{font-size:14px;padding:8px 4px}.roster-note small{font-size:8px}.prototype-note{font-size:7px;letter-spacing:0}.prototype-note small{font-size:8px;line-height:1.4}.controls-strip{padding:14px;margin-top:18px}.controls-heading{margin-bottom:15px}.controls-heading .text-button{font-size:9px}.controls-players{gap:18px;flex-wrap:wrap}.player-controls{width:100%;gap:22px;justify-content:flex-start}.player-controls+.player-controls{padding:13px 0 0;border-left:0;border-top:1px solid #36303e}.player-label{width:25px;height:25px}.control-item{gap:6px}.key-group kbd{padding:5px;min-width:25px}.controls-players .control-item:last-child{margin-left:auto}.bottom-note{margin:20px 0 25px;gap:8px;align-items:flex-start;flex-wrap:wrap}.bottom-note p{font-size:10px}.bottom-note p span{font-size:9px}.roadmap-link{font-size:8px;padding-top:2px}footer{height:auto;min-height:75px;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;font-size:7px}.compact-card h2{font-size:30px;margin:8px 0}.compact-card p{font-size:9px;margin-bottom:9px}.compact-card .button{font-size:8px;min-height:29px;padding:8px;margin:7px auto;min-width:190px}.compact-card .text-button{font-size:8px;margin-top:10px}.compact-card .overlay-kicker{font-size:7px}.dialog{padding:28px 22px}.dialog h2{font-size:30px}.dialog table{font-size:10px}.dialog td,.dialog th{padding:10px 4px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.play-layout{grid-template-areas:"arena setup" "roster setup";gap:22px 25px}.cabinet{grid-area:arena}.setup-panel{grid-area:setup}.roster-deck{grid-area:roster;min-width:0;border:1px solid var(--line);background:#181820;padding:16px}.roster-header,.roster-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.roster-header>div:first-child{display:flex;align-items:center;gap:10px}.roster-count{color:#7f7989;font:8px monospace}.side-tabs{display:flex;gap:4px}.side-tabs button{background:#252330;border:1px solid #3c3548;color:#a99cb8;font:8px monospace;letter-spacing:.4px;padding:7px 9px}.side-tabs button.selected{background:#293824;border-color:#9ebf62;color:var(--lime)}.side-tabs button[data-side="1"].selected{background:#34283e;border-color:#a88dc4;color:var(--lilac)}.roster-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:14px}.roster-card{position:relative;padding:0;background:#20222b;border:1px solid #3b3646;overflow:hidden;min-width:0;text-align:center}.roster-card canvas{image-rendering:pixelated;display:block;width:64px;height:72px;margin:0 auto}.roster-name{display:block;font:700 8px monospace;letter-spacing:.1px;text-transform:uppercase;padding:7px 3px;background:#12151ebf;white-space:nowrap;color:#cfccd2;border-top:1px solid #3e3540}.roster-card:hover:not(:disabled){border-color:var(--fighter);background:#343240;transform:translateY(-2px)}.roster-card.selected{outline:1px solid var(--fighter);outline-offset:2px}.roster-card.is-p1{border-bottom:2px solid var(--lime)}.roster-card.is-p2{border-bottom:2px solid var(--lilac)}.roster-card.is-p1.is-p2{border-image:linear-gradient(to right,var(--lime) 50%,var(--lilac) 50%) 1}.roster-p1,.roster-p2{position:absolute;top:5px;display:none;font:700 7px monospace;padding:3px 4px}.roster-p1{left:4px;background:var(--lime);color:#26361e}.roster-p2{right:4px;background:var(--lilac);color:#352141}.is-p1 .roster-p1,.is-p2 .roster-p2{display:block}.roster-footer{font:8px monospace;color:#9a91a5;margin-top:13px;line-height:1.5}.roster-footer .text-button{font-size:9px;white-space:nowrap}.fighter-slot canvas{width:65px!important;object-fit:contain!important;background:#20242a}.fighter-slot .player-chip{opacity:1;font-size:7px;right:7px}.fighter-slot.selected,.fighter-slot.sarah.selected{background:#232630;border-color:var(--fighter);box-shadow:inset 3px 0 var(--fighter)}.fighter-slot.selected .player-chip{background:var(--fighter)}.fighter-slot:not(.selected) .player-chip{background:#393343;color:#bdb1cd}.fighter-slot .fighter-name{font-size:14px}.fighter-slot .fighter-role{font-size:8px}.fighter-details{border-top:1px solid #38313f;padding-top:19px;margin-top:21px;--fighter:var(--lime)}.detail-channel{font:8px monospace;letter-spacing:1.3px;color:#a295af}.fighter-details h2{font-family:ArcadeDisplay,Impact,Arial Narrow,sans-serif;font-size:29px;font-weight:900;color:var(--fighter);line-height:1.1;margin:8px 0 5px;overflow-wrap:anywhere}.detail-role{font:8px monospace;color:#c4b8cd;letter-spacing:1px}.fighter-details p{font-size:11px;line-height:1.65;color:#a89db4;margin:13px 0 17px}.move-list{margin:0}.move-list>div{padding:10px 0;border-top:1px solid #302a38}.move-list dt{display:flex;gap:9px;align-items:center;font-size:11px;color:#d3c7df}.move-list kbd{font-size:7px;padding:3px 5px;min-width:34px}.move-list dd{margin:6px 0 0 44px;color:#8c8099;font:8px monospace}.movement-stat{display:flex;align-items:center;gap:10px;margin-top:16px;font:8px monospace;color:#998caa}.movement-stat>div{height:4px;background:#393141;flex:1}.movement-stat i{display:block;height:4px;background:var(--fighter)}.opponent-row select{max-width:153px}.prototype-note{line-height:1.5}@media(max-width:1150px){.play-layout{gap:20px}.roster-header .section-label{font-size:8px}.side-tabs button{font-size:7px;padding:6px}.roster-deck{padding:13px}.roster-grid{gap:6px}.roster-name{font-size:6.5px}.roster-count{display:none}.fighter-details h2{font-size:26px}}@media(max-width:850px){.play-layout{grid-template-areas:"arena" "roster" "setup";grid-template-columns:1fr}.setup-panel .fighter-label{grid-column:1/-1}.setup-panel .fighter-slot{grid-column:auto}.fighter-details{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:22px}.detail-channel,.fighter-details h2,.detail-role,.fighter-details p{grid-column:1}.detail-channel{grid-row:1}.fighter-details h2{grid-row:2;margin:8px 0}.detail-role{grid-row:3}.fighter-details p{grid-row:4;margin-bottom:0}.move-list{grid-column:2;grid-row:1/5}.movement-stat{grid-column:1/-1}.setup-panel .prototype-note{grid-column:1/-1;margin-top:7px}.roster-header .section-label,.roster-name{font-size:9px}.roster-count{display:inline}.side-tabs button{font-size:8px;padding:8px 10px}.roster-grid{gap:10px}}@media(max-width:560px){.roster-deck{padding:12px}.roster-header{flex-wrap:wrap;gap:10px}.roster-header>div:first-child{width:100%;justify-content:space-between}.side-tabs{width:100%}.side-tabs button{flex:1;font-size:8px}.roster-grid{gap:6px}.roster-card canvas{width:100%;height:auto;max-width:64px;max-height:72px}.roster-name{font-size:6px;padding:7px 1px;letter-spacing:-.2px}.roster-p1,.roster-p2{top:3px;padding:2px;font-size:6px}.roster-p1{left:2px}.roster-p2{right:2px}.roster-footer{font-size:7px;gap:8px}.roster-footer .text-button{font-size:8px}.fighter-slot canvas{width:45px!important}.fighter-slot .fighter-name{font-size:12px}.fighter-slot .fighter-role{font-size:6px}.fighter-slot .player-chip{top:5px;right:4px;font-size:6px;padding:2px}.fighter-details{column-gap:13px}.fighter-details h2{font-size:24px}.fighter-details p{font-size:10px}.detail-role{font-size:7px;letter-spacing:.4px}.move-list dt{font-size:10px;gap:6px}.move-list dd{font-size:7px;margin-left:0;line-height:1.6}.move-list kbd{font-size:6px;min-width:30px}.opponent-row select{max-width:150px}}.special-list{display:grid;gap:10px;border-top:1px solid #393140;padding-top:12px;margin-top:5px}.special-list>div{display:grid;grid-template-columns:44px 1fr;gap:4px 6px}.special-list span{font:8px monospace;color:var(--fighter);padding-top:2px}.special-list strong{font-size:11px;font-weight:500;color:#e3d6ed}.special-list small{grid-column:2;color:#94889f;font:8px monospace;line-height:1.5}.touch-panel{display:none;padding:12px 15px;background:#161820;border-top:1px solid #373342;gap:8px 18px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.touch-enabled .touch-panel{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center}.touch-pad-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}.touch-pad-wrap>small{font:6px monospace;color:#8d879c;white-space:nowrap}.touch-pad{width:126px;height:126px;position:relative;touch-action:none;border:1px solid #4b4558;background:linear-gradient(90deg,transparent 34%,#2b2b38 34%,#2b2b38 66%,transparent 66%),linear-gradient(transparent 34%,#2b2b38 34%,#2b2b38 66%,transparent 66%);border-radius:18px;color:#b6a9c8;flex-shrink:0}.touch-pad span{position:absolute;font-size:17px;line-height:1}.pad-up{left:calc(50% - 8px);top:9px}.pad-down{left:calc(50% - 8px);bottom:9px}.pad-left{top:calc(50% - 8px);left:9px}.pad-right{top:calc(50% - 8px);right:9px}.touch-pad i{width:32px;height:32px;background:#5e5c72;border:2px solid #9990a9;position:absolute;top:calc(50% - 16px);left:calc(50% - 16px);border-radius:6px;transform:translate(var(--pad-x,0px),var(--pad-y,0px));pointer-events:none}.touch-pad.pressed i{background:#728c52;border-color:var(--lime)}.touch-actions{display:grid;grid-template-columns:repeat(4,minmax(44px,1fr));gap:6px;max-width:330px;justify-self:end;width:100%}.touch-actions button{font:700 11px monospace;letter-spacing:.2px;color:#eee4f7;background:#302b3b;border:1px solid #625070;border-bottom:3px solid #5c4b70;border-radius:5px;min-width:44px;min-height:44px;padding:7px 3px;touch-action:none;transition:none!important;-webkit-tap-highlight-color:transparent}.touch-actions button small{display:block;font:6px monospace;letter-spacing:.3px;margin-top:4px;color:#b2a3c5}.touch-actions .touch-special{color:var(--lime);border-color:#536945;background:#273326}.touch-actions .touch-super{grid-column:span 2;color:#ccb68c;background:#363025;border-color:#72654b}.touch-actions .touch-super.ready{color:#201c13;background:#efd48a;border-color:#ffe7a8}.touch-actions .touch-super.ready small{color:#4e4228}.touch-actions button.pressed{background:#c8ff6b!important;color:#172015;border-color:#e3ffb5;box-shadow:0 0 0 2px #c8ff6b33}.touch-actions button.pressed small{color:#304b26}.touch-hint{grid-column:1/-1;font:9px/1.5 monospace;color:#a699b5;margin:3px 0 0;text-align:center}.touch-panel.inactive .touch-pad{opacity:.4}.touch-enabled .game-tools button{min-width:44px;min-height:44px}.touch-enabled .cabinet-bottom{min-height:48px}.touch-enabled .controls-strip{margin-top:18px}@media(max-width:560px){.touch-enabled .touch-panel{grid-template-columns:112px minmax(0,1fr);padding:10px 8px;gap:8px}.touch-pad{width:110px;height:126px}.touch-actions{gap:4px}.touch-actions button{font-size:10px;padding:6px 2px}.touch-pad-wrap>small{font-size:5px}.touch-hint{font-size:8px}.touch-enabled .cabinet-bottom>div:first-child{font-size:6px;gap:3px}.touch-enabled .cabinet-bottom>div:first-child>span:last-child,.touch-enabled .cabinet-bottom .muted{display:none}.dialog td{overflow-wrap:anywhere}.special-list{grid-column:1/-1}}@media(max-width:1000px)and (orientation:landscape)and (max-height:650px){body.mobile-play{overflow:hidden}.mobile-play .cabinet,.touch-enabled .cabinet:fullscreen{position:fixed;inset:0;z-index:20;height:100dvh;width:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:0;background:#10111b;display:grid;grid-template-columns:118px minmax(0,1fr) 194px;grid-template-rows:26px minmax(0,1fr) 48px;gap:0 8px}.mobile-play .cabinet-top,.touch-enabled .cabinet:fullscreen .cabinet-top{grid-column:1/-1;height:26px;font-size:7px;padding:0 12px}.mobile-play .screen,.touch-enabled .cabinet:fullscreen .screen{grid-column:2;grid-row:2;min-height:0;height:100%;aspect-ratio:auto;align-self:stretch}.mobile-play .touch-panel,.touch-enabled .cabinet:fullscreen .touch-panel{display:contents}.mobile-play .touch-pad-wrap,.touch-enabled .cabinet:fullscreen .touch-pad-wrap{grid-column:1;grid-row:2;align-self:center;padding-left:8px}.mobile-play .touch-actions,.touch-enabled .cabinet:fullscreen .touch-actions{grid-column:3;grid-row:2;align-self:center;gap:4px;padding-right:8px}.mobile-play .touch-actions button,.touch-enabled .cabinet:fullscreen .touch-actions button{min-height:48px;font-size:10px}.mobile-play .touch-hint,.mobile-play .under-screen,.touch-enabled .cabinet:fullscreen .touch-hint{display:none}.mobile-play .cabinet-bottom,.touch-enabled .cabinet:fullscreen .cabinet-bottom{grid-column:1/-1;grid-row:3;height:48px;padding:0 12px}.mobile-play .compact-card{padding:8px;max-width:100%}.mobile-play .compact-card h2{font-size:25px;margin:5px 0;overflow-wrap:anywhere}.mobile-play .compact-card p{font-size:9px;margin:5px 0}.mobile-play .compact-card .overlay-kicker{font-size:6px}.mobile-play .compact-card .button{font-size:8px;min-height:40px;min-width:160px;padding:7px;margin:5px auto}.mobile-play .compact-card .text-button{font-size:9px;min-height:36px;margin:3px auto}.mobile-play .compact-card .button+.button{min-height:36px}.mobile-play .paused-overlay{backdrop-filter:none}.toast{z-index:30}}@media(max-width:560px)and (orientation:portrait){.touch-enabled .paused-overlay .compact-card{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px;width:100%}.touch-enabled .paused-overlay h2{grid-column:1/-1;margin:0;font-size:23px}.touch-enabled .paused-overlay .overlay-kicker,.touch-enabled .paused-overlay p{display:none}.touch-enabled .paused-overlay .button{min-width:0;width:100%;min-height:44px;margin:0;font-size:7px}.touch-enabled .paused-overlay .text-button{grid-column:1/-1;min-height:40px;margin:0}.touch-enabled .result-overlay .compact-card .button{min-height:44px}.touch-enabled .result-overlay .compact-card .text-button{min-height:36px;margin-top:3px}}@media(max-width:560px){.touch-enabled #start{min-height:44px}.touch-enabled .start-hint{display:none}}.mode-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.mode-tabs button{font-size:8px;min-height:38px}.arena-picker{display:flex;flex-direction:column;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid #38313f}.arena-picker select{width:100%;min-width:0;font-size:10px;min-height:36px}.arena-picker canvas{width:100%;aspect-ratio:16/9;image-rendering:pixelated;display:block;border:1px solid #4a4054}.arena-picker p{font:9px/1.6 monospace;color:#a69aae;margin:0}.stage-location b{font-weight:400}.arcade-save-panel{padding:13px 12px;border:1px solid #4a5440;background:#20281f;margin:12px 0 0;display:flex;flex-direction:column;gap:9px}.arcade-save-panel>span{font:10px/1.5 monospace;color:#d1dfbb}.arcade-save-panel .button{padding:9px 7px;font-size:8px;letter-spacing:.2px}.arcade-save-panel small{font:8px/1.6 monospace;color:#a4ac9a}.arcade-progress{padding-bottom:17px;margin-bottom:17px;border-bottom:1px solid #39313e}.arcade-progress-heading{display:flex;justify-content:space-between;gap:12px;font:9px monospace;letter-spacing:.5px;color:#c9d4bb}.arcade-progress-heading strong{font-weight:400;color:var(--lime)}.arcade-route{list-style:none;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;padding:0;margin:13px 0 0}.arcade-route li{position:relative;background:#242430;border:1px solid #42394b;text-align:center;min-width:0;opacity:.5}.arcade-route canvas{display:block;width:100%;max-width:48px;aspect-ratio:8/9;height:auto;margin:auto;image-rendering:pixelated}.arcade-route li>span{position:absolute;left:3px;top:3px;font:8px monospace;color:#cfc4de;text-shadow:1px 1px #000}.arcade-route small{font:6px monospace;color:#b1a5bf;display:block;overflow:hidden;text-overflow:ellipsis;padding:4px 1px;border-top:1px solid #39313e}.arcade-route .done{opacity:.8;background:#273323;border-color:#627a45}.arcade-route .done>span{color:var(--lime)}.arcade-route .current{opacity:1;border-color:var(--lime);box-shadow:0 0 0 1px #c8ff6b66}.arcade-route .current small{color:var(--lime)}.bindings-dialog{max-width:650px}.binding-row{display:grid;grid-template-columns:minmax(100px,1.3fr) minmax(90px,1fr) minmax(90px,1fr);gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #372f41}.binding-row>span{font-size:11px;color:#b7a9c7}.binding-row button{background:#30293b;border:1px solid #594764;min-height:38px;border-radius:3px;color:#dfd3e9;font:11px monospace;padding:7px 5px}.binding-row button:hover{border-color:var(--lime)}.binding-row button.listening{background:#c8ff6b;color:#172116;border-color:#e0ffa5}.binding-head>span{font:8px monospace;color:var(--lime);letter-spacing:1px}#binding-message{min-height:42px;color:#d7dda7;font:11px/1.7 monospace}.key-group{flex-wrap:wrap}.move-list kbd{overflow-wrap:anywhere;max-width:90px;flex-shrink:0}.key-group kbd{max-width:95px;overflow-wrap:anywhere}@media(max-width:850px){.arena-picker,.arcade-save-panel{grid-column:1/-1}.arena-picker{display:grid;grid-template-columns:1fr 180px;gap:8px 16px}.arena-picker>label,.arena-picker>select,.arena-picker>p{grid-column:1}.arena-picker canvas{grid-column:2;grid-row:1/4;align-self:center}.mode-tabs button{font-size:9px}.arcade-save-panel .button{align-self:start}}@media(max-width:560px){.binding-row{grid-template-columns:minmax(85px,1fr) minmax(70px,1fr) minmax(70px,1fr);gap:5px}.binding-row>span{font-size:9px}.binding-row button{font-size:9px;min-height:44px;padding:5px 3px}.binding-head>span{font-size:7px}.arena-picker{grid-template-columns:1fr 125px;gap:8px}.arena-picker select{font-size:8px}.arcade-route{gap:3px}.arcade-route small{display:none}.arcade-progress-heading{font-size:7px}.stage-location{font-size:6px}.stage-location b{display:inline-block;max-width:140px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.key-group kbd{font-size:8px}.arcade-route li>span{font-size:6px;left:2px;top:2px}.arcade-save-panel .button{width:100%;align-self:stretch}}.controls-players{display:flex;flex-direction:column;align-items:stretch;gap:18px}.controls-players .player-controls{display:flex;flex-wrap:wrap;gap:18px 24px;width:100%;justify-content:flex-start}.controls-players .player-controls+.player-controls{border-left:0;border-top:1px solid #36303e;padding:18px 0 0}.controls-players .control-item:last-child{margin-left:0}.keyboard-layout-hint,.combat-tip{font-size:11px;line-height:1.7;color:#a89bb9;margin:16px 0 0}.combat-tip{padding-top:13px;border-top:1px solid #36303e}.combat-tip b{color:#d0e6ad}.binding-presets{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.binding-presets .button{font-size:10px;min-height:44px;padding:10px 12px;flex:1}.difficulty-row{flex-wrap:wrap}#difficulty-hint{display:block;width:100%;font-size:10px;line-height:1.6;color:#a89bb9}.result-overlay .compact-card{max-height:100%;overflow-y:auto;padding:8px 12px;width:min(100%,440px)}@media(max-width:560px){.controls-players .player-controls{gap:15px}.controls-players .control-item>span{font-size:7px}.controls-players .player-label{width:100%;height:auto;justify-content:flex-start;padding:5px 8px}.keyboard-layout-hint,.combat-tip{font-size:10px}.binding-presets{flex-direction:column}}.training-lab{margin-top:24px;border:1px solid #65527a;background:linear-gradient(120deg,#20202c,#171922);padding:22px}.training-layout{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:24px}.training-lab label,.training-lab .section-label{font:9px monospace;letter-spacing:1px;color:var(--lime)}.training-lab select{display:block;width:100%;margin:12px 0;color:#eee3f7;background:#302637;border:1px solid #5b4969;padding:11px}.training-lab p{font-size:11px;line-height:1.7;color:#aa9db9}.training-lab small{font-size:9px;color:#a99ab8}.training-lab .button{font-size:10px;min-height:42px}.training-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.training-metrics>div{background:#14161f;padding:14px;border:1px solid #353240}.training-metrics dt{font:9px monospace;color:#b2a1bf}.training-metrics dd{margin:9px 0 0;font:23px monospace;color:var(--lime)}.training-inputs{list-style:none;padding:0;margin:12px 0;min-height:128px}.training-inputs li{display:flex;justify-content:space-between;border-bottom:1px solid #393041;padding:3px 0;font:11px monospace;color:#e6d8ef}.controller-status{border-top:1px solid #4a3b54;padding-top:18px;margin-top:20px}.controller-status p{overflow-wrap:anywhere}.controller-status small{display:block;margin-top:10px;color:#aa9bbb;font-size:10px;line-height:1.7}.controller-status .button{font-size:10px;min-height:42px}.setting-row label{min-width:44px}.victory-quote{font-style:italic;color:var(--lime)!important;font-size:11px!important}.dialog h3{color:var(--lime);font:14px monospace;margin-top:25px}.dialog a{color:var(--lime);text-decoration:underline;text-underline-offset:3px}footer .text-button{font-size:9px;margin-right:16px}#training-current{color:#d4e5b6}.result-overlay .compact-card{overscroll-behavior:contain}@media(max-width:850px){.training-layout{grid-template-columns:1fr 1fr}.training-layout>div:last-child{grid-column:1/-1}.training-inputs{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;min-height:72px}.training-lab .controls-heading{gap:15px}}@media(max-width:560px){.training-lab{padding:15px}.training-layout{grid-template-columns:1fr}.training-lab .controls-heading{align-items:flex-start;flex-direction:column}.training-metrics dd{font-size:20px}.training-lab .button{width:100%}.training-inputs{display:block}.victory-quote{font-size:9px!important}.setting-row{gap:10px}}
