:root{color-scheme:dark;--ink:#111d29;--panel:#1d2a37;--white:#f4f3df;--muted:#97a8b4;--lime:#d3f376;--red:#fc8c73;--mono:ui-monospace,Consolas,monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--ink);font-family:Arial,Helvetica,sans-serif;color:var(--white);overflow:hidden;touch-action:none;overscroll-behavior:none;user-select:none;-webkit-user-select:none}button,select{font:inherit;color:inherit}button{cursor:pointer;border:0;touch-action:none}button:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button:active{transform:scale(.97)}[hidden]{display:none!important}#game{display:block;width:100vw;height:100dvh;position:fixed;inset:0}#menu{position:fixed;inset:0;background:linear-gradient(90deg,#111d29f5 0%,#111d29df 30%,#111d2950 62%,#111d2910 100%);padding:30px 4%;display:flex;flex-direction:column}.menu-header{display:flex;align-items:center;gap:30px}.wordmark{display:flex;gap:12px;align-items:center;color:var(--white);text-decoration:none}.logo{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--lime);border-radius:13px;color:#15212c;font-size:33px;font-style:italic;font-weight:1000;letter-spacing:-7px;padding-right:7px;transform:rotate(-7deg)}.logo span{font-size:18px}.wordmark>span:last-child{font-size:11px;letter-spacing:1.4px;line-height:1.2;font-weight:bold}.wordmark b{font-size:19px;letter-spacing:2.9px}.edition{font:9px var(--mono);letter-spacing:1.7px;color:#a4b0b6}.edition i{background:#ffffff1a;padding:4px 6px;font-style:normal;margin-left:8px}.round-icon{margin-left:auto;background:#23324099;border:1px solid #a1afbd55;border-radius:50%;width:34px;height:34px;font-weight:bold;color:#ccd4d8}.menu-content{width:450px;max-width:46%;margin-top:auto;margin-bottom:auto}.mini{font:8px var(--mono);letter-spacing:1.7px;color:#b9c2c6;display:flex;gap:8px;align-items:center}.mini span{width:5px;height:5px;background:var(--lime);border-radius:50%}h1{font-size:clamp(62px,8.3vw,118px);font-weight:1000;line-height:.86;letter-spacing:-7px;margin:23px 0 18px;position:relative}h1 em{font-style:italic;color:var(--lime)}.spark{font-size:55px;color:var(--red);position:absolute;right:25px;top:0;transform:rotate(12deg)}.tagline{font-size:13px;line-height:1.5;color:#aebbc0;margin:0 0 24px}.setup{max-width:410px}.styles{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.styles button{background:#23313bd9;border:1px solid #5d6b7255;border-radius:8px;padding:12px 12px;text-align:left;transition:.15s}.styles button.selected{background:var(--lime);color:#18252c;border-color:var(--lime)}.styles button>span{font:8px var(--mono);opacity:.65}.styles strong{display:block;font-size:16px;font-style:italic;letter-spacing:-.6px;margin-top:6px}.styles small{display:block;font-size:9px;opacity:.7;margin-top:5px}.match-options{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.opponents{display:flex;border-radius:5px;padding:3px;background:#0e1923b0;border:1px solid #50616b66}.opponents button{background:transparent;font:9px var(--mono);letter-spacing:.4px;padding:9px 12px;border-radius:3px;color:#91a6ad}.opponents button.selected{background:#394751;color:var(--white)}.difficulty-label{display:flex;align-items:center;gap:8px;font:7px var(--mono);color:var(--muted)}select{background:#1c2a35;border:1px solid #50616b77;border-radius:4px;font-size:10px;padding:8px 5px;max-width:110px}#modeHint{font-size:10px;color:#b0bdc2;line-height:1.5;margin:12px 0}.start{width:100%;background:var(--lime);color:#17242c;border-radius:7px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;font-weight:900;font-style:italic;font-size:15px;letter-spacing:-.4px;box-shadow:0 5px 0 #84a74e}.start span{font-size:23px;line-height:.9}.start:hover{background:#e2ff9f}.setup-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:17px;gap:8px}.pieces{display:flex;align-items:center;gap:6px;font-size:9px;color:#adbcc4}.pieces input{accent-color:var(--lime);margin:0;height:13px;width:13px}.setup-bottom button{background:transparent;color:#91a6ae;font:8px var(--mono);padding:6px 0}.arena-tag{position:absolute;right:5%;bottom:13%;border-left:2px solid var(--lime);padding-left:15px;pointer-events:none}.arena-tag>span{font:9px var(--mono);letter-spacing:2px;color:#bcc8c6}.arena-tag strong{display:block;font-size:26px;font-style:italic;letter-spacing:-1px;margin-top:7px}.arena-tag p{font-size:10px;color:#c2ccc9;margin:7px 0 14px}.arena-tag>div{font:8px var(--mono);letter-spacing:1.2px;color:var(--lime)}.arena-tag i{display:inline-block;width:4px;height:4px;background:var(--lime);border-radius:50%;margin-right:4px}.menu-footer{display:flex;justify-content:space-between;align-items:center;font:8px var(--mono);letter-spacing:1px;color:#8c9da7;gap:20px}.menu-footer button{background:transparent;color:var(--white);font:9px var(--mono);padding:8px}#hud{position:fixed;inset:0;pointer-events:none;padding:20px max(25px,env(safe-area-inset-right)) 0;display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(#0d1826c0,transparent 150px)}.fighter-hud{width:31%;max-width:350px}.hud-name{display:flex;justify-content:space-between;align-items:center;font:9px var(--mono);color:var(--white);margin-bottom:8px}.hud-name b{font-family:Arial,sans-serif;font-size:13px;font-style:italic;letter-spacing:.4px}.hud-name small{font:7px var(--mono);color:#c1d0ce;letter-spacing:.7px}.hud-name i{display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;margin-right:6px}.p2 .hud-name i{background:var(--red);margin:0 0 0 6px}.hp-track{height:13px;background:#14222b;border:1px solid #d9eee52b;transform:skewX(-12deg);padding:2px;border-radius:3px;overflow:hidden}.hp-track>div{width:100%;height:100%;background:var(--lime);transition:width .1s;border-radius:1px}.p2 .hp-track>div{background:var(--red);margin-left:auto}.stamina-track{height:3px;margin-top:5px;background:#132331;overflow:hidden}.stamina-track>div{height:100%;width:100%;background:#f9f6bfaa}.p2 .stamina-track>div{margin-left:auto}.round-dots{font-size:16px;letter-spacing:5px;margin-top:6px;color:var(--lime)}.p2 .round-dots{color:var(--red);text-align:right}.center-hud{text-align:center;position:absolute;left:50%;transform:translateX(-50%);top:18px}.center-hud>span{font:8px var(--mono);color:var(--lime);letter-spacing:2px}.center-hud>strong{display:block;font-size:32px;font-weight:900;font-style:italic;letter-spacing:-1px;line-height:1.2}.center-hud>small{font:7px var(--mono);color:#a5b5be;letter-spacing:1px}.pause-button{pointer-events:auto;position:absolute;right:15px;top:92px;width:36px;height:36px;border:1px solid #dae6ed40;background:#15253599;border-radius:8px;font-size:16px;color:#d9e3df}.p2{margin-right:0}#eventText{position:absolute;top:110px;left:50%;transform:translateX(-50%) rotate(-3deg);font-size:22px;font-weight:900;font-style:italic;letter-spacing:-.5px;color:var(--lime);text-shadow:0 3px 0 #17222c;white-space:nowrap}#perf{position:absolute;right:15px;top:140px;color:#93a9b9;font:7px var(--mono)}#controls{position:fixed;inset:0;pointer-events:none}.player-controls{position:absolute;inset:0;pointer-events:none}.stick-wrap{position:absolute;left:max(40px,env(safe-area-inset-left));bottom:35px;width:126px;height:145px;pointer-events:auto;touch-action:none}.stick-label{position:absolute;bottom:0;left:0;right:0;font:8px var(--mono);letter-spacing:2px;text-align:center;color:#e4ebdc77}.stick{height:124px;width:124px;border:1px solid #ecf4e833;border-radius:50%;background:#12232e55;position:relative;touch-action:none}.stick-ring{position:absolute;inset:14px;border:1px dashed #e3ebdf22;border-radius:50%}.stick-knob{position:absolute;left:36px;top:36px;width:50px;height:50px;border:1px solid #efffe677;background:#bbd29e44;border-radius:50%;display:grid;place-items:center;box-shadow:0 4px 15px #0003}.stick-knob span{font-size:20px;color:#eff8dfaa}.actions{position:absolute;bottom:26px;right:max(35px,env(safe-area-inset-right));width:245px;height:176px;pointer-events:none}.action{position:absolute;border:1px solid #e6eedc55;background:#142635bb;backdrop-filter:blur(5px);border-radius:50%;width:67px;height:67px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;pointer-events:auto;color:#dce9d8;touch-action:none}.action>span{font-size:20px;line-height:1}.action b{font-size:8px;letter-spacing:.4px}.action small{font:6px var(--mono);opacity:.5}.action.down{background:#d3f376aa;color:#10222a;border-color:#e6ffa8}.block{left:65px;top:0}#controlHint{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);max-width:42%;font:8px var(--mono);text-align:center;line-height:1.6;color:#a9c0b6;letter-spacing:.3px;pointer-events:none}.local-play .player-one{right:50%}.local-play .player-two{left:50%}.local-play .stick-wrap{left:18px;width:90px;height:110px;bottom:20px}.local-play .stick{width:90px;height:90px}.local-play .stick-knob{left:23px;top:23px;width:42px;height:42px}.local-play .actions{right:18px;bottom:24px;width:150px;height:115px}.local-play .action{width:49px;height:49px;gap:2px}.local-play .action b{font-size:6px}.local-play .action small{display:none}.local-play .action>span{font-size:17px}.local-play .block{left:32px;top:0}.local-play .player-two .stick-knob{background:#fc8c7344;border-color:#fc8c73aa}.local-play .player-two .stick-label{color:#ffb89e}.local-play #controlHint{bottom:10px;max-width:26%;font-size:6px}.overlay{position:fixed;inset:0;background:#101d2b99;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:8}.modal{width:390px;max-width:95%;background:#1c2b37;border:1px solid #b8cadb33;border-radius:15px;padding:30px;text-align:center;box-shadow:0 25px 100px #0006}.eyebrow{font:8px var(--mono);letter-spacing:1.5px;color:#aabdc3;margin:0 0 15px}.modal h2{font-size:40px;font-style:italic;letter-spacing:-2px;margin:0 0 25px;line-height:1}.modal h2>span{color:var(--lime);margin-left:15px}.pause-settings{display:flex;gap:5px;justify-content:center;margin:21px 0 14px}.pause-settings button{background:#344450;color:#e2e6d7;font:7px var(--mono);padding:10px 8px;border-radius:5px}.secondary{width:100%;padding:12px;background:transparent;border:1px solid #bacbce44;border-radius:6px;font-size:10px;font-weight:bold}.text-button{background:transparent;font:9px var(--mono);color:#a5bac3;margin-top:15px;padding:10px}.result-symbol{display:block;color:var(--lime);font-size:60px;line-height:1;margin-bottom:15px}.result-modal h2{font-size:37px}.result-modal .eyebrow{margin-bottom:13px;color:var(--lime)}#resultScore{font:28px var(--mono);margin:-10px 0 15px;color:var(--red)}#resultDescription{color:#b0c0c6;font-size:12px;margin:0 0 24px}#countdown{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none;text-shadow:0 5px 0 #152531;z-index:4}#countdown strong{font-size:clamp(70px,16vh,150px);font-weight:1000;font-style:italic;color:var(--lime);line-height:1}#countdown span{font:11px var(--mono);letter-spacing:3px;margin-top:15px}dialog{background:#1a2a36;color:var(--white);border:1px solid #abc5d255;border-radius:12px;width:min(720px,94vw);max-height:90dvh;padding:28px;overflow:auto;touch-action:pan-y;overscroll-behavior:contain}dialog::backdrop{background:#0a1420ce;backdrop-filter:blur(4px)}dialog h2{font-size:32px;font-style:italic;margin:0 0 20px;letter-spacing:-1px}#helpClose{position:absolute;top:10px;right:15px;font-size:30px;background:transparent;color:#aabac3}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.help-grid h3{font:9px var(--mono);color:var(--lime);letter-spacing:.5px;margin:0 0 8px}.help-grid p,.key-help p{font-size:11px;line-height:1.7;color:#afc0c7;margin:0 0 20px}.key-help{border-top:1px solid #a6bbce33;padding-top:17px}.key-help .fine{font-size:9px;margin-bottom:0;color:#869ea9}#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#111d29;z-index:30}.loader-icon{font-size:70px;font-style:italic;font-weight:1000;letter-spacing:-8px;color:var(--lime)}.loader-icon span{font-size:17px;color:var(--red);vertical-align:top;letter-spacing:0}.load-track{width:140px;height:3px;background:#334655;margin-top:26px;overflow:hidden}.load-track i{display:block;background:var(--lime);width:40%;height:100%;animation:loading 1s ease-in-out infinite alternate}#loading p{font:10px var(--mono);color:var(--muted);margin-top:18px}@keyframes loading{from{transform:translateX(0)}to{transform:translateX(150%)}}#rotate{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 20%,#293e42,#101d29 65%);z-index:50;display:none;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:28px}.phone-outline{width:65px;height:110px;border:3px solid var(--lime);border-radius:13px;display:grid;place-items:center;font-size:44px;color:var(--lime);transform:rotate(90deg);margin-bottom:40px}#rotate h2{font-size:31px;font-style:italic;letter-spacing:-1px;margin:0 0 15px}#rotate p{font-size:13px;line-height:1.8;color:#a1b8bd;margin:0 0 25px}#rotate button{padding:15px 24px;background:var(--lime);color:#162a31;border-radius:6px;font-size:11px;font-weight:bold}#rotate small{font-size:10px;color:#8ba2aa;margin-top:20px}#toast{position:fixed;bottom:30%;left:50%;transform:translateX(-50%);background:#152735ed;color:var(--white);border:1px solid #bed2c455;border-radius:7px;max-width:80%;width:max-content;padding:13px 19px;font-size:11px;opacity:0;pointer-events:none;z-index:55;transition:opacity .2s}#toast.show{opacity:1}
@media(max-height:680px) and (orientation:landscape){#menu{padding:19px 4%}.menu-header{gap:20px}.logo{width:34px;height:34px;font-size:26px;border-radius:10px}.logo span{font-size:15px}.wordmark>span:last-child{font-size:8px}.wordmark b{font-size:14px}.edition{font-size:7px}.menu-content{width:430px;max-width:47%;display:grid;grid-template-columns:1fr;position:relative}.mini{font-size:7px;letter-spacing:1.2px}h1{font-size:69px;letter-spacing:-5px;margin:14px 0}.spark{font-size:35px;right:80px}.tagline{display:none}.setup{max-width:360px}.styles button{padding:9px 10px}.styles strong{font-size:14px;margin-top:3px}.styles small{font-size:8px}.styles button>span{font-size:7px}.match-options{margin-top:9px}.opponents button{padding:7px 11px}.start{padding:12px 16px;font-size:13px}.setup-bottom{margin-top:12px}#modeHint{font-size:9px;margin:8px 0}.menu-footer{font-size:7px}.arena-tag{bottom:13%}.arena-tag strong{font-size:23px}}
@media(max-height:470px) and (orientation:landscape){#menu{padding:14px max(22px,env(safe-area-inset-left))}.menu-header{height:30px}.edition{font-size:6px;letter-spacing:1px}.menu-content{display:grid;grid-template-columns:160px minmax(200px,280px);column-gap:22px;max-width:64%;width:480px;align-items:start;margin-top:auto;margin-bottom:auto}.mini{grid-column:1 / -1;margin-bottom:15px;font-size:6px}h1{grid-column:1;grid-row:2;font-size:61px;letter-spacing:-4px;margin:0;align-self:center}.spark{font-size:25px;right:-7px;top:-11px}.setup{grid-column:2;grid-row:2;width:100%}.styles{gap:5px}.styles button{padding:8px}.styles strong{font-size:12px}.styles small{font-size:7px;margin-top:4px}.styles button>span{font-size:6px}.opponents button{font-size:8px;padding:7px 9px}.difficulty-label{font-size:6px;gap:4px}select{font-size:9px;padding:6px 3px;max-width:95px}.match-options{gap:5px;margin-top:8px}#modeHint{font-size:8px;line-height:1.4;margin:7px 0;min-height:22px}.start{padding:11px 13px;font-size:11px;border-radius:5px}.start span{font-size:19px}.setup-bottom{margin-top:10px}.pieces{font-size:7px;gap:4px}.pieces input{height:11px;width:11px}.setup-bottom button{font-size:6px}.arena-tag{right:4%;bottom:15%;padding-left:10px}.arena-tag>span{font-size:7px}.arena-tag strong{font-size:21px}.arena-tag p{font-size:8px}.arena-tag>div{font-size:6px}.menu-footer{font-size:6px;gap:8px}.menu-footer button{font-size:7px}.menu-footer>span:first-child{max-width:170px}.round-icon{width:29px;height:29px}.stick-wrap{width:103px;height:117px;bottom:18px;left:30px}.stick{width:102px;height:102px}.stick-knob{left:29px;top:29px;width:42px;height:42px}.stick-label{font-size:6px}.actions{right:25px;bottom:19px;width:206px;height:144px}.action{height:55px;width:55px}.block{left:52px}.action b{font-size:7px}.action small{font-size:5px}.action>span{font-size:18px}#hud{padding:12px 24px 0}.fighter-hud{max-width:260px;width:33%}.hud-name{margin-bottom:5px}.hud-name b{font-size:11px}.hud-name small{font-size:6px}.hp-track{height:11px}.center-hud{top:10px}.center-hud>strong{font-size:26px}.center-hud>span{font-size:7px}.center-hud>small{font-size:6px;letter-spacing:.5px}.round-dots{font-size:13px;margin-top:3px}.pause-button{top:76px;right:14px;width:30px;height:30px}.p2{margin-right:0}#eventText{top:85px;font-size:18px}#perf{top:113px;font-size:6px}#controlHint{bottom:12px;font-size:6px;max-width:38%}.modal{padding:22px;max-height:94dvh;overflow:auto;width:350px;touch-action:pan-y}.modal h2{font-size:32px;margin-bottom:20px}.result-symbol{font-size:38px;margin-bottom:9px}.result-modal .eyebrow{font-size:7px}.result-modal h2{font-size:29px}.result-modal #resultScore{font-size:24px;margin-bottom:10px}.result-modal #resultDescription{margin-bottom:17px;font-size:10px}.local-play .stick-wrap{bottom:16px;left:18px}.local-play .actions{right:13px;bottom:20px}dialog{padding:22px}.help-grid p,.key-help p{font-size:10px}.help-grid{gap:20px}.help-grid h3{font-size:8px}}
.mode-cards{grid-template-columns:repeat(2,1fr)}.mode-cards button:last-child{border-color:#d3f37655;background:linear-gradient(135deg,#23313be8,#2d4039e8)}.mode-cards button:last-child.selected{background:linear-gradient(135deg,#d3f376,#aeea87);border-color:#e5ffae}.training-options{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 14px;padding:12px;border:1px solid #d3f37655;border-radius:8px;background:#13232d}.training-options p{grid-column:1/-1;margin:0 0 4px;font:8px var(--mono);letter-spacing:1.2px;color:var(--lime)}.training-options label{display:flex;align-items:center;justify-content:center;gap:6px;background:#263946;border-radius:5px;padding:10px 7px;font:7px var(--mono);cursor:pointer}.training-options input{accent-color:var(--lime);width:15px;height:15px;margin:0}.training-options #toggleTrainingAnchor{grid-column:1/-1;padding:10px;font-size:8px}@media(max-height:470px) and (orientation:landscape){.training-options{padding:7px;margin-bottom:8px}.training-options label{padding:7px 4px;font-size:6px}.training-options p{font-size:6px}}
@media(max-width:740px) and (orientation:landscape){.menu-content{grid-template-columns:130px minmax(190px,245px);column-gap:15px;max-width:69%}h1{font-size:50px}.spark{font-size:21px;right:-4px}.edition{display:none}.arena-tag{max-width:155px}.arena-tag strong{font-size:18px}.styles small{font-size:6px}.local-play .stick-wrap{left:9px;width:76px;height:92px}.local-play .stick{width:76px;height:76px}.local-play .stick-knob{width:36px;height:36px;left:19px;top:19px}.local-play .actions{width:132px;right:8px}.local-play .action{width:45px;height:45px}.local-play .block{left:27px}.local-play .action b{font-size:5px}.local-play #controlHint{display:none}}
@media(orientation:portrait) and (max-width:900px){#rotate{display:flex}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Keep touch controls cheap to composite over the moving 3D canvas. */
.action{backdrop-filter:none}.hp-track>div,.stamina-track>div{transform-origin:left;will-change:transform}.hp-track>div{transition:transform .08s linear}.p2 .hp-track>div,.p2 .stamina-track>div{transform-origin:right}

/* Each trigger owns a hand. Identical targets for simultaneous touch input. */
.actions{width:225px;height:184px}.arm{bottom:0;width:82px;height:82px;background:#d3f376dd;color:#1d2c30;border-color:#efffa8}.arm-l{left:12px}.arm-r{right:12px}.arm>span{font:bold 23px var(--mono)}.arm b{font-size:9px}.arm small{font-size:5px;opacity:.8}.arm.down{background:#e4ff9a}.arm.gripping{background:#78e2c2;color:#102d30;box-shadow:0 0 0 3px #78e2c233}.arm.missing{opacity:.38}.block{left:17px;top:3px}.grip-ring{position:absolute;inset:-5px;width:calc(100% + 10px);height:calc(100% + 10px);pointer-events:none;transform:rotate(-90deg)}.grip-ring circle{fill:none;stroke:#fff3cf;stroke-width:3;stroke-dasharray:289;stroke-dashoffset:289;stroke-linecap:round}
.local-play .actions{width:150px;height:122px}.local-play .arm{width:57px;height:57px}.local-play .arm-l{left:8px}.local-play .arm-r{right:8px}.local-play .block{left:12px;top:0}.local-play .player-two .arm{background:#fc8c73e6}.local-play .player-two .arm.gripping{background:#78e2c2}
@media(max-height:470px) and (orientation:landscape){.actions{width:194px;height:153px}.arm{width:72px;height:72px}.arm-l{left:7px}.arm-r{right:7px}.arm>span{font-size:22px}.arm b{font-size:8px}.arm small{font-size:5px}.block{left:16px}.local-play .actions{width:144px;height:122px}.local-play .arm{width:57px;height:57px}.local-play .arm-l{left:5px}.local-play .arm-r{right:5px}.local-play .arm>span{font-size:17px}.local-play .arm b{font-size:6px}}
@media(max-width:740px) and (orientation:landscape){.local-play .actions{width:132px}.local-play .arm{width:54px;height:54px}.local-play .arm-l{left:4px}.local-play .arm-r{right:4px}.local-play .block{left:9px}}

.action,.stick{-webkit-touch-callout:none}

/* Combat update: a fifth action and concise feedback, sized for landscape touch. */
.actions{width:258px;height:182px}.block{left:7px;top:0}.dash{left:96px;top:0;border-color:#85e8e6aa;color:#a9fff0}.dash>span{font-weight:bold;font-size:32px}.dash.cooling{opacity:.48}.arm-l{left:28px}.arm-r{right:28px}.combat-meta{display:flex;justify-content:space-between;gap:6px;margin-top:4px;font:7px var(--mono);color:#d6be7e}.combat-meta strong{color:#a6ffec;font-size:8px;white-space:nowrap}.round-dots{margin-top:2px}.match-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0}.match-stats b{display:block;font:24px var(--mono);color:var(--lime)}.match-stats span{display:block;font:6px var(--mono);color:#b5c4c9;margin-top:6px;line-height:1.5}#personalBest{font-size:7px;margin-bottom:14px}.new-mechanics{border-top:1px solid #a6bbce33;padding-top:18px}.new-mechanics h3{font:10px var(--mono);color:#ffdc80}.new-mechanics p{font-size:11px;line-height:1.7;color:#afc0c7}
@media(max-height:470px) and (orientation:landscape){.actions{width:222px;height:150px}.block{left:4px}.dash{left:84px}.arm-l{left:21px}.arm-r{right:21px}.combat-meta{font-size:5px;margin-top:3px}.combat-meta strong{font-size:6px}#eventText{top:96px;font-size:17px}.match-stats{margin:8px 0}.match-stats b{font-size:20px}.match-stats span{font-size:5px}#personalBest{margin-bottom:9px}.setup-bottom{gap:6px}.pieces{font-size:6px}.pieces input{width:10px;height:10px}.new-mechanics p{font-size:10px}}
.local-play .actions{width:162px;height:128px}.local-play .block{left:0;top:0}.local-play .dash{left:57px;top:0}.local-play .arm-l{left:14px}.local-play .arm-r{right:14px}.local-play .action{width:48px;height:48px}.local-play .arm{width:57px;height:57px}.local-play .dash>span{font-size:24px}
@media(max-width:740px) and (orientation:landscape){.local-play .actions{width:146px;height:122px}.local-play .action{width:44px;height:44px}.local-play .dash{left:51px}.local-play .arm{width:54px;height:54px}.local-play .arm-l{left:11px}.local-play .arm-r{right:11px}}

#deskDock{display:none}
@media(pointer:fine){
 #controls .player-controls{display:none}
 #deskDock{display:flex;position:absolute;bottom:35px;left:50%;transform:translateX(-50%);align-items:center;gap:0;background:#101e2a88;border:1px solid #a3bed222;border-radius:5px;padding:7px 11px;white-space:nowrap;opacity:.72}
 #rangeRead{color:#d7aa90;letter-spacing:1px;font:10px var(--mono)}#rangeRead.in-range{color:#d3f376}
 #deskBinding{color:#c2ccd1;font:8px var(--mono);letter-spacing:.12px;white-space:pre}
 #controlHint{bottom:9px;max-width:82%}#rotate{display:none}
 #game{cursor:crosshair}.arena-tag>p{line-height:1.65}
}

/* Six actions, two rows. Punch targets stay large and every control remains reachable. */
.actions{width:268px;height:218px}.block{left:8px;top:0}.dash{left:101px;top:0}.arm-l{left:0}.arm-r{right:0}.kick{left:101px;bottom:7px;top:auto;border-color:#ffcf80;color:#ffe0a6}.kick.cooling{opacity:.5}.kick.missing{opacity:.25}
@media(max-height:470px) and (orientation:landscape){.actions{width:232px;height:175px}.block{left:7px}.dash{left:89px}.kick{left:89px;bottom:8px}.arm-l{left:0}.arm-r{right:0}}
.local-play .actions{width:170px;height:130px}.local-play .dash,.local-play .kick{left:61px}.local-play .kick{bottom:4px}.local-play .arm-l{left:0}.local-play .arm-r{right:0}
@media(pointer:fine){#deskDock{max-width:95vw;padding:7px 10px}#deskBinding{font-size:clamp(6px,.68vw,8px);white-space:normal}#controlHint{display:none}}@media(pointer:coarse){#controlHint{max-width:84%;font:7px var(--mono);opacity:.72;bottom:10px;letter-spacing:.1px;line-height:1.4}}

.model-note{font:9px var(--mono);line-height:1.5;color:var(--muted);margin:8px 0 14px}

.customize-button{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:13px;padding:12px 14px;border:1px solid #b5d0bf55;background:#223440cc;border-radius:6px;font:10px var(--mono);color:var(--lime)}.customize-button span{font-size:7px;color:#a6b8bf}
#characterEditor{position:fixed;inset:0;z-index:12;pointer-events:none;background:linear-gradient(90deg,#101c2a80,transparent 70%)}
.atelier-panel{position:absolute;left:0;top:0;bottom:0;width:40%;min-width:350px;max-width:580px;background:#14232ef5;border-right:1px solid #bdd3c333;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto;padding:26px 30px 22px;scrollbar-color:#7b9561 #14232e}
.atelier-panel header{position:relative}.atelier-panel header>.eyebrow{color:#a1b3bf;font-size:8px}.atelier-panel header>button{position:absolute;right:0;top:-12px;background:transparent;font-size:30px;color:#b1c2ca}.atelier-panel h2{font-size:38px;line-height:.95;letter-spacing:-1.6px;margin:18px 0 10px;font-weight:900}.atelier-panel h2 em{color:var(--lime)}.atelier-panel header>p{font-size:11px;color:#b5c3c9}
.editor-fighters,.editor-tabs,.body-presets{display:flex;gap:6px}.editor-fighters{margin:22px 0 16px}.editor-fighters button{flex:1;background:#223541;color:#adc1c7;border:1px solid #637d8355;border-radius:5px;padding:11px;font:9px var(--mono)}.editor-fighters button.selected{background:var(--lime);color:#17242c}.editor-tabs{border-bottom:1px solid #7d939755;gap:0}.editor-tabs button{flex:1;padding:13px 6px;background:transparent;font:9px var(--mono);color:#91a7b0;border-bottom:2px solid transparent}.editor-tabs button.selected{border-color:var(--lime);color:var(--lime)}
.editor-intro{font-size:11px;line-height:1.65;color:#afc1c7;margin:17px 0}.body-presets{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:22px}.body-presets button{padding:9px 3px;border-radius:4px;border:1px solid #77918b66;background:#243b42;font-size:9px;color:#d6e1d6}.body-presets button:hover{border-color:var(--lime)}
.body-sliders label{display:block;margin:0 0 18px}.body-sliders label>span{display:flex;justify-content:space-between;font-size:12px;color:#e4e8dc}.body-sliders output{font:11px var(--mono);color:var(--lime)}.body-sliders input{width:100%;margin:11px 0 6px;accent-color:var(--lime);cursor:ew-resize;height:17px;touch-action:pan-y}.body-sliders small{display:block;font-size:9px;color:#92aab4;line-height:1.5}.body-sliders input:focus-visible{outline:2px solid var(--lime);outline-offset:4px;border-radius:3px}#bodyAdjustment{font-size:10px;color:#ffd897;line-height:1.5;min-height:14px}.editor-subtle{display:block;width:100%;background:transparent;color:#acbec5;padding:12px 4px;font:8px var(--mono);letter-spacing:.4px}.atelier-panel footer{margin-top:24px;border-top:1px solid #7d939733;padding-top:14px}.atelier-panel footer>p{font-size:10px;color:#acc1c8;line-height:1.6;margin:0 0 13px}.atelier-panel footer .start{font-size:12px;padding:15px}
.look-selects{display:grid;grid-template-columns:1fr 1fr;gap:17px 12px}.look-selects label{font-size:10px;color:#c1ced0}.look-selects select{display:block;margin-top:7px;width:100%;max-width:none;padding:10px 8px;font-size:11px;background:#233643}.editor-colors{margin:24px 0;display:flex;flex-wrap:wrap;gap:15px}.editor-colors label{width:calc(33.333% - 10px);font-size:9px;display:flex;flex-direction:column;gap:7px;color:#b3c4c9}.editor-colors input{width:100%;height:37px;background:transparent;border:1px solid #617b7f66;border-radius:5px;padding:3px;cursor:pointer}
.editor-stat{margin-bottom:18px}.editor-stat>span{display:flex;justify-content:space-between;font-size:11px;color:#cdd9d7}.editor-stat b{font:11px var(--mono);color:var(--lime)}.editor-stat>div{height:6px;background:#273d47;margin-top:8px;border-radius:3px;position:relative;overflow:hidden}.editor-stat i{display:block;height:100%;background:var(--lime)}.editor-stat em{position:absolute;left:71.428%;top:0;bottom:0;width:2px;background:#fff9}.editor-rules{border:1px solid #a2bcb933;background:#1b303a;padding:15px;border-radius:6px;margin-top:25px}.editor-rules h3{font:9px var(--mono);color:var(--lime);margin:0 0 12px}.editor-rules p{font-size:10px;line-height:1.7;color:#a9bdc6;margin:0 0 12px}.editor-rules p:last-child{font-size:9px;margin:0;color:#809ba8}
.atelier-preview{position:absolute;left:42%;right:0;top:0;bottom:0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:36px 20px 24px}.preview-title{text-align:center;text-shadow:0 2px 10px #000}.preview-title>span{font:8px var(--mono);letter-spacing:3px;color:#b9c9ce}.preview-title strong{display:block;font-size:17px;font-style:italic;margin:11px 0;color:var(--lime)}.preview-title p{font:10px var(--mono);color:#d1dcd9}.preview-tools{pointer-events:auto;text-align:center;background:#142531d9;padding:15px 20px;border:1px solid #aac4c033;border-radius:8px;backdrop-filter:blur(6px)}.preview-tools>div{display:flex;gap:8px;margin-bottom:14px}.preview-tools button{background:#304751;color:#e1eed7;font:9px var(--mono);padding:11px 15px;border:1px solid #879c8e44;border-radius:4px}.preview-tools label{display:flex;align-items:center;gap:12px;font:8px var(--mono);color:#a9bdc4}.preview-tools input{accent-color:var(--lime);min-width:110px}.preview-tools p{font-size:8px;line-height:1.6;color:#9fb5be;margin:11px 0 0}
@media(max-width:900px){.atelier-panel{width:43%;min-width:300px;padding:20px}.atelier-preview{left:45%}.atelier-panel h2{font-size:30px}.preview-title strong{font-size:12px}.preview-tools{padding:10px}.preview-tools button{padding:10px;font-size:8px}.preview-tools label{flex-direction:column;gap:7px}.body-presets{grid-template-columns:1fr 1fr}}
@media(max-height:500px){.atelier-panel{padding-top:16px}.atelier-panel h2{font-size:24px;margin:10px 0}.editor-fighters{margin:14px 0 8px}.atelier-preview{padding:16px}.preview-title p{font-size:8px}.preview-tools{padding:9px}.preview-tools>div{margin-bottom:8px}.preview-tools p{display:none}.customize-button{padding:8px 10px;margin-top:10px}.customize-button span{font-size:6px}.setup-bottom{margin-top:10px}}

/* Player identity and direct online duel. */
.fighter-name{display:block;margin:-5px 0 16px;font:8px var(--mono);letter-spacing:.6px;color:#9eb3bb}.fighter-name input{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid #6b858866;border-radius:5px;background:#1b303b;color:var(--white);font:12px Arial,sans-serif;outline:none}.fighter-name input:focus{border-color:var(--lime)}
#onlineDialog{width:min(680px,92vw);max-height:88dvh;overflow:auto;padding:28px;background:#14232f;color:var(--white);border:1px solid #a9c4bd55;border-radius:10px;touch-action:pan-y}#onlineDialog::backdrop{background:#07101bcc;backdrop-filter:blur(5px)}#onlineDialog h2{margin:0 0 14px;color:var(--lime);font-size:28px;font-style:italic}#onlineDialog p{font-size:11px;line-height:1.65;color:#afc0c7}#onlineDialog label{display:block;margin:15px 0 6px;font:8px var(--mono);color:#afc1c7}#onlineDialog textarea{display:block;width:100%;margin-top:7px;padding:10px;resize:vertical;background:#0f1b25;color:#dce7e2;border:1px solid #60798377;border-radius:5px;font:8px var(--mono);line-height:1.35;user-select:text;-webkit-user-select:text;touch-action:pan-y}#onlineDialog button{padding:11px 13px;border-radius:5px;background:#2d424d;color:#e8efe9;font:8px var(--mono)}#onlineDialog [data-copy]{margin-top:8px;background:#526c55}#onlineDialog [data-close]{display:block;margin:16px 0 0 auto;background:transparent;color:#9fb2ba}.online-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:16px}.online-buttons button:first-child{background:var(--lime);color:#17242c}.online-buttons button:nth-child(2){background:var(--red);color:#211a19}#onlineDialog [data-status]{min-height:18px;color:#ffe098;font:9px var(--mono)}

/* Two people on one phone: each half owns an isolated multi-touch control zone. */
@media(pointer:coarse) and (orientation:landscape){
 #controls{contain:layout paint}.action,.stick{will-change:transform}.local-play #controls:after{content:"";position:absolute;left:50%;top:24%;bottom:9%;width:1px;background:linear-gradient(transparent,#d3f37644,transparent);pointer-events:none}
 .local-play .player-controls{top:0;bottom:0;width:50%;right:auto;overflow:hidden}.local-play .player-one{left:0}.local-play .player-two{left:50%}
 .local-play .stick-wrap{left:max(9px,env(safe-area-inset-left));bottom:14px}.local-play .actions{right:max(7px,env(safe-area-inset-right));bottom:12px}
 .local-play .action{min-width:46px;min-height:46px}.local-play .arm{min-width:56px;min-height:56px}.local-play .stick,.local-play .action{touch-action:none}
}
@media(pointer:coarse) and (orientation:landscape) and (max-width:740px){
 .local-play .stick-wrap{width:84px;height:100px}.local-play .stick{width:84px;height:84px}.local-play .stick-knob{width:38px;height:38px;left:22px;top:22px}
 .local-play .actions{width:150px;height:126px}.local-play .action{width:46px;height:46px}.local-play .arm{width:56px;height:56px}.local-play .dash,.local-play .kick{left:52px}.local-play .arm-l{left:8px}.local-play .arm-r{right:8px}
}
@media(max-height:500px){#onlineDialog{padding:18px;max-height:94dvh}#onlineDialog h2{font-size:22px}.online-buttons button{padding:9px 7px;font-size:7px}#onlineDialog p{font-size:9px;margin:8px 0}#onlineDialog textarea{max-height:58px}.fighter-name{margin-bottom:10px}.fighter-name input{padding:8px 10px}}

/* Parties and complete settings. */
:root{--control-scale:1;--control-opacity:.85;--hud-scale:1;--touch-inset:24px}
.menu-settings{white-space:nowrap}.online-main-button{display:grid;grid-template-columns:36px 1fr;grid-template-rows:1fr 1fr;align-items:center;width:100%;margin-top:10px;padding:12px 15px;border:1px solid #d7f27888;border-radius:6px;background:linear-gradient(110deg,#2d453d,#223742);color:var(--white);text-align:left}.online-main-button>span{grid-row:1/3;font-size:24px;color:var(--lime)}.online-main-button strong{font:11px var(--mono);color:var(--lime)}.online-main-button small{font:7px var(--mono);color:#a9bdc4}
.dialog-close{position:absolute;right:15px;top:9px;background:transparent!important;font-size:28px!important;color:#b7c8ce!important}.mobile-only{display:none!important}
#settingsDialog{position:relative;width:min(760px,94vw);max-height:91dvh;overflow:auto;padding:28px;background:#14232ff5;color:var(--white);border:1px solid #a9c4bd55;border-radius:10px;touch-action:pan-y}#settingsDialog::backdrop{background:#07101bd9;backdrop-filter:blur(6px)}#settingsDialog h2{font-size:34px;font-style:italic;margin:6px 0 20px;color:var(--lime)}.settings-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:20px}.settings-tabs button{padding:11px 6px;border:1px solid #78918d44;background:#253a45;color:#aebfc4;font:8px var(--mono);border-radius:4px}.settings-tabs button.selected{background:var(--lime);color:#17242c}.settings-tabs+.settings-page{margin-top:15px}#settingsDialog section>label{display:block;margin:14px 0;font-size:11px;color:#d7e0dc}#settingsDialog section>label:not(.toggle){display:grid;grid-template-columns:1fr auto;gap:7px 12px}#settingsDialog select{grid-column:1/3;width:100%;max-width:none;padding:10px;background:#223642;color:#eef4ed;border:1px solid #6f898766;border-radius:5px}#settingsDialog input[type=range]{grid-column:1/3;width:100%;accent-color:var(--lime)}#settingsDialog output{font:10px var(--mono);color:var(--lime)}#settingsDialog .toggle{display:flex;align-items:center;gap:9px}.settings-note{font-size:10px;line-height:1.6;color:#98afb8}.settings-done{margin-top:22px}.bind-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.bind-grid h3{font:9px var(--mono);color:var(--lime);margin-bottom:8px}.bind-grid label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid #72878c22;font-size:10px}.bind-grid label button{min-width:92px;padding:8px;border-radius:4px;background:#2b414b;color:#e8efeb;font:8px var(--mono)}.bind-grid label button.listening{background:#ffe092;color:#242b2b}.settings-done{width:100%}
#onlineDialog{position:relative;width:min(570px,94vw)}#onlineDialog [data-home]>p:first-child{text-align:center;font-size:13px}.party-actions{display:grid;grid-template-columns:1fr auto 1.4fr;align-items:center;gap:12px;margin:24px 0}.party-actions>button,.join-code button{background:var(--lime)!important;color:#17242c!important;font-weight:bold!important}.party-actions>span{font:8px var(--mono);color:#7f969f}.join-code{display:flex}.join-code input{min-width:0;width:100%;padding:12px;background:#0e1b25;color:#fff;border:1px solid #78918d88;border-radius:5px 0 0 5px;font:15px var(--mono);text-transform:uppercase;letter-spacing:2px}.join-code button{border-radius:0 5px 5px 0!important}.online-fine{text-align:center;font-size:9px!important;color:#869da6!important}.party-code{text-align:center;padding:20px;border:1px solid #d5f37d55;background:#1d3037;border-radius:8px}.party-code span{display:block;font:7px var(--mono);color:#95abb3}.party-code strong{display:block;margin:10px;font:32px var(--mono);letter-spacing:6px;color:var(--lime)}.party-slots{display:grid;gap:8px;margin:16px 0}.party-slots>div{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #60798355;background:#1a2b36;border-radius:6px}.party-slots i{width:11px;height:11px;border-radius:50%;background:#66767b}.party-slots .ready i{background:var(--lime);box-shadow:0 0 12px var(--lime)}.party-slots b,.party-slots small{display:block}.party-slots b{font:9px var(--mono)}.party-slots small{margin-top:4px;font-size:9px;color:#8fa5ad}#onlineDialog [data-status]{text-align:center;margin:14px 0}#onlineDialog [data-start]{width:100%;background:var(--lime)!important;color:#17242c!important;font-size:10px!important}#onlineDialog [data-leave]{display:block;margin:10px auto 0}
@media(pointer:coarse){.mobile-only{display:block!important}.player-controls{opacity:var(--control-opacity);transform:scale(var(--control-scale));transform-origin:bottom left}.player-two{transform-origin:bottom right}.fighter-hud,.center-hud{transform:scale(var(--hud-scale))}.p1{transform-origin:top left}.p2{transform-origin:top right}.center-hud{transform-origin:top center}.stick-wrap{left:max(var(--touch-inset),env(safe-area-inset-left))}.actions{right:max(var(--touch-inset),env(safe-area-inset-right))}.left-handed .player-one .stick-wrap{left:auto;right:max(var(--touch-inset),env(safe-area-inset-right))}.left-handed .player-one .actions{right:auto;left:max(var(--touch-inset),env(safe-area-inset-left))}.left-handed .player-one{transform-origin:bottom right}}
@media(max-width:650px){.bind-grid{grid-template-columns:1fr}.party-actions{grid-template-columns:1fr}.party-actions>span{display:none}.settings-tabs{grid-template-columns:1fr 1fr}#settingsDialog{padding:18px}#settingsDialog h2{font-size:26px}.party-code strong{font-size:25px}}
@media(max-height:500px){#settingsDialog{padding:15px 20px}#settingsDialog h2{font-size:24px;margin:2px 0 10px}.settings-tabs{margin-bottom:10px}.settings-tabs button{padding:7px}.settings-note{margin:5px 0}.party-actions{margin:12px 0}.party-code{padding:10px}.party-code strong{font-size:23px;margin:5px}.party-slots{margin:8px 0}.party-slots>div{padding:8px}}
#settingsDialog .camera-bind{display:flex!important;align-items:center;justify-content:space-between;gap:10px;margin:14px 0;padding:7px 0;border-bottom:1px solid #72878c22;font-size:10px;color:#d7e0dc}#settingsDialog .camera-bind button{min-width:92px;padding:8px;border-radius:4px;background:#2b414b;color:#e8efeb;font:8px var(--mono)}#settingsDialog .camera-bind button.listening{background:#ffe092;color:#242b2b}

#aimReticle{display:none;position:fixed;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);z-index:5;pointer-events:none}.aim-mode #aimReticle{display:block}#aimReticle:before,#aimReticle:after{content:"";position:absolute;background:rgba(245,246,239,.72)}#aimReticle:before{width:10px;height:1px;left:1px;top:5.5px}#aimReticle:after{width:1px;height:10px;left:5.5px;top:1px}body.fight-active,body.fight-active *{cursor:none!important}

/* Mobile camera HUD: reachable without overlapping the pause control. */
.touch-camera-button,.touch-lock-button{z-index:7;right:60px;top:92px;width:38px;height:38px;font-size:17px;line-height:1;border-color:#d3f37666;color:#e8f2df;background:#152535bb;backdrop-filter:blur(6px)}.touch-lock-button{right:105px;color:#c4d2d5;border-color:#c3d4dc44}.touch-lock-button.active{background:#d3f376;color:#16232b;border-color:#eaffb2;box-shadow:0 0 15px #d3f37666}
@media(max-height:470px) and (orientation:landscape){.touch-camera-button,.touch-lock-button{top:76px;width:30px;height:30px;right:53px}.touch-lock-button{right:89px}}

.aim-controls{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;align-items:center;gap:5px;pointer-events:none}.aim-controls .aim-action{pointer-events:auto;width:58px;height:26px;border-radius:7px;background:#142635bb;border:1px solid #e6eedc44;color:#dce9d8;font:700 7px var(--mono);line-height:1;white-space:nowrap}.aim-controls small{font:6px var(--mono);color:#e2e8da88;letter-spacing:.6px}.aim-action.down{background:#d3f376aa;color:#10222a}.local-play .aim-controls{bottom:4px}.local-play .aim-controls .aim-action{width:52px;height:22px;font-size:6px}.local-play .aim-controls small{display:none}

.arena-choice{justify-content:space-between;margin-top:9px}.arena-choice select{max-width:180px;min-width:140px}
