:root{color-scheme:dark;font-family:ui-monospace,Consolas,monospace;background:#070914;color:#f9efcf}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at top,#292b56,#080a17 67%)}main{width:min(1240px,calc(100% - 24px));margin:auto;padding:16px 0 36px}.topline{display:flex;justify-content:space-between;gap:12px;margin:0 0 12px;color:#95a2bd;font-size:11px;font-weight:bold;letter-spacing:.1em}.topline b{color:#fdb94f}a{color:#91dff2}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #fff4a5;outline-offset:3px}[hidden]{display:none!important}
.effects-choice{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:5px 0;color:#b7c9df;font-size:11px}.effects-choice input{width:18px;height:18px;min-height:18px}.touch-controls,.rotate-hint{display:none}#asset-status{font-size:12px;color:#b7c9df}#start:disabled{opacity:.45;cursor:wait}
@media(pointer:coarse){
 main{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}
 button,select,input{min-height:44px}.touch-controls{display:flex;justify-content:space-between;gap:8px;margin-top:8px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
 .touch-movement,.touch-attacks{display:flex;gap:5px;align-items:center}.touch-controls button{min-width:44px;height:50px;padding:4px 6px;border:2px solid #7e9fca;border-radius:10px;background:#182b46;color:#fff1bb;font:bold 10px monospace;touch-action:none}.touch-controls [data-key=l]{background:#733b28;border-color:#ffd079}.touch-controls .held{background:#e0a44c;color:#18172d;transform:translateY(2px)}
 .in-fight .online-entry,.in-fight .map-credit,.in-fight #asset-status,.in-fight #retry-assets,.in-fight .controls,.in-fight #status{display:none}.in-fight .effects-choice{margin:0;font-size:10px}.in-fight .topline{margin-bottom:2px}.in-fight .fight-actions{margin:5px 0}.in-fight .fight-actions button{min-height:30px;padding:5px 8px}
 .online-grid>div{min-width:0;width:min(100%,380px)}.online-screen input{font-size:16px}.online-options label{flex-wrap:wrap}.online-screen{padding:12px}.online-players span{font-size:12px;padding:7px}.online-screen select{max-width:160px}
}
@media(pointer:coarse) and (orientation:landscape){
 .in-fight main{padding-top:3px;padding-bottom:max(3px,env(safe-area-inset-bottom,0px))}.in-fight canvas{width:min(100%,calc((100svh - 108px)*16/9));margin:auto}.in-fight .touch-controls{margin:5px auto 0;width:100%;}.in-fight .touch-controls button{min-width:54px;height:46px}.in-fight .topline{font-size:9px}.in-fight .effects-choice{position:absolute;right:max(150px,env(safe-area-inset-right,0px));top:24px;z-index:1}
}
@media(pointer:coarse) and (orientation:portrait){.rotate-hint{display:block;text-align:center;color:#ffde8f;font-size:12px}.touch-controls{gap:4px}.touch-controls button{padding:2px;font-size:9px}.touch-movement,.touch-attacks{gap:3px}.online-screen label{display:flex;justify-content:center}.online-screen select{max-width:185px}}
.select-screen{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:16/10;min-height:450px;background:linear-gradient(105deg,#122b56 0%,#151e38 48%,#4d111b 52%,#25080e 100%);border:3px solid #4d5d76;box-shadow:0 20px 80px #0009}
.screen-noise{position:absolute;inset:0;z-index:-1;opacity:.5;background:repeating-linear-gradient(108deg,transparent 0 13px,#ffffff08 14px 15px,transparent 16px 29px),radial-gradient(ellipse at 50% 46%,#7c50675c,transparent 45%)}
h1{position:absolute;top:2%;left:0;width:100%;margin:0;text-align:center;font:italic 900 clamp(24px,4vw,48px)/1 Impact,'Arial Black',sans-serif;letter-spacing:.03em;color:#fff0aa;text-shadow:3px 3px #a22c32,-2px -2px #222d57}h1 em{font-style:inherit;color:#ff7860}
.city-map{position:absolute;left:28%;top:12%;width:44%;height:47%;overflow:hidden;border:4px solid #eef4f8;border-radius:50%;box-shadow:0 0 15px 7px #dde9ff99,0 5px 45px #819be1a0;background:#193948}.city-map iframe{width:100%;height:100%;border:0;pointer-events:none;position:absolute;inset:0}.map-fallback{position:absolute;inset:0;background:linear-gradient(80deg,transparent 52%,#438c9f 53% 61%,transparent 62%),repeating-linear-gradient(23deg,#446852 0 3px,#577255 4px 14px,#4b694e 15px 19px);display:grid;place-content:center;text-align:center;color:#fcf3c3;text-shadow:1px 2px #1c2933}.map-fallback span{font:bold clamp(18px,2.5vw,32px) Impact,sans-serif}.map-fallback small{font-size:10px}.map-fallback i{margin-top:12px;font-size:10px}.map-caption{position:absolute;bottom:6%;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:7px;pointer-events:none;text-shadow:1px 2px #161f29}.map-caption strong{background:#152a39dd;padding:3px 8px;color:#fff1a3;font-size:clamp(10px,1.6vw,18px);letter-spacing:.12em}.map-caption span{background:#152a39dd;padding:4px;color:#fff;font-size:9px}
.portrait{position:absolute;bottom:11%;width:22%;display:flex;flex-direction:column;align-items:flex-start;z-index:1}.portrait-player{left:2%}.portrait-cpu{right:2%;align-items:flex-end}.player-label{font:900 clamp(19px,3vw,38px)/1 Impact,sans-serif;color:#fff4b1;text-shadow:2px 2px #a5212f}.portrait-player .player-label{color:#ff5956}.portrait strong{font:italic 900 clamp(19px,3vw,38px)/1 Impact,sans-serif;color:#ffe282;text-shadow:2px 2px #a51f39;margin:2px 0 5px}.portrait-frame{width:100%;height:clamp(160px,26vw,320px);overflow:hidden;border:3px solid #b9cbde;border-radius:4px;background:radial-gradient(circle at 50% 35%,#405369,#080b12 72%);box-shadow:0 5px 20px #000b}.portrait-cpu .portrait-frame{background:radial-gradient(circle at 50% 35%,#705547,#130c0a 72%)}.portrait-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%}.portrait-cpu .portrait-frame img{transform:scaleX(-1)}
.roster{position:absolute;bottom:13%;left:30%;width:40%;display:grid;grid-template-columns:repeat(6,1fr);gap:3px;z-index:2}.roster button{position:relative;aspect-ratio:1/1;overflow:visible;border:2px solid #bdc8d5;border-radius:2px;background:linear-gradient(135deg,#263444,#10141e);padding:0;box-shadow:1px 2px #080a11}.roster button:disabled{cursor:default;opacity:.66;background:#101723}.roster img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 15%}.roster button span{display:none;position:absolute;top:-17px;left:0;color:#fff;font:900 clamp(12px,1.5vw,19px) Impact,sans-serif;text-shadow:2px 2px #da1c2f}.roster button[aria-pressed=true]{border:3px solid #ffe982;box-shadow:0 0 0 2px #e84946,0 0 16px #e74625}.roster button[aria-pressed=true] span{display:block}
.select-bottom{position:absolute;bottom:1.8%;left:25%;width:50%;display:flex;gap:6px;justify-content:center;align-items:center;flex-wrap:wrap}.select-bottom>span{font-size:9px;letter-spacing:.09em;color:#d5d9e6}.map-options{display:flex;gap:5px}.map-options button,.fight-actions button{border:1px solid #8493a8;color:#dce9f9;background:#15243c;padding:6px 8px;font:800 10px ui-monospace,monospace}.map-options button[aria-pressed=true]{color:#221815;background:#ffe2a0;border-color:#ffbd50}#start{background:linear-gradient(#ffe794,#f0a634);border:2px solid #fff2b6;color:#3f1717;font:900 12px ui-monospace,monospace;padding:7px 12px;box-shadow:0 3px #ad451c}#start b{color:#a51f2b}.map-credit{font-size:10px;color:#97a4b8;margin:8px 2px 16px}.fight-actions{display:flex;justify-content:space-between;margin:12px 0}.fight-actions button{padding:9px 12px}canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;border:3px solid #7582a9;background:#111a2e;image-rendering:pixelated;box-shadow:0 18px 50px #0008}.controls,.note{margin:12px 0 0;font-size:12px;color:#c3cce1;line-height:1.55}.controls b{color:#ffdd81}.note{color:#909fbf}
@media(max-width:700px){main{width:calc(100% - 14px);padding-top:10px}.topline{font-size:9px}.select-screen{aspect-ratio:auto;min-height:650px}h1{top:2%}.city-map{top:10%;left:14%;width:72%;height:27%}.portrait{bottom:25%;width:28%}.portrait-player{left:2%}.portrait-cpu{right:2%}.portrait-frame{height:clamp(145px,42vw,240px)}.roster{left:32%;width:36%;bottom:28%;grid-template-columns:repeat(3,1fr);gap:2px}.select-bottom{left:5%;width:90%;bottom:3%;gap:8px}.select-bottom>span{width:100%;text-align:center}.map-credit{line-height:1.5}}
.rival-choice{display:flex;align-items:center;gap:5px;color:#d5d9e6;font-size:9px;letter-spacing:.06em}.rival-choice[hidden]{display:none}.rival-choice select{max-width:100px;border:1px solid #8493a8;color:#fff;background:#15243c;padding:5px;font:800 10px ui-monospace,monospace}
.online-entry{display:flex;align-items:center;gap:12px;margin:8px 0 14px;color:#becce1;font-size:12px}.online-entry button,.online-screen button{padding:10px 14px;background:#f1b84e;color:#231729;border:1px solid #ffe7a1;font-weight:bold}.online-screen{padding:clamp(18px,4vw,42px);background:#121b31;border:3px solid #4d5d76;text-align:center}.online-screen h2{color:#ffe49e;font-size:clamp(25px,4vw,42px)}.online-grid{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.online-grid>div{padding:18px;border:1px solid #526580;min-width:220px}.online-screen label{display:inline-flex;gap:8px;align-items:center;margin:8px;font-size:12px}.online-screen select,.online-screen input{padding:8px;background:#080f20;color:white;border:1px solid #8493a8;max-width:180px}.online-players{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.online-players span{padding:10px;background:#263750;border-left:4px solid #62c8f5}.online-players span.red{border-color:#ff7066}.online-options{margin:16px auto}.online-screen button:disabled{opacity:.45;cursor:not-allowed}#online-status{min-height:1.5em;color:#ffdb84}
#next-stage{background:linear-gradient(#ffe794,#f0a634);border:2px solid #fff2b6;color:#3f1717;font:900 12px ui-monospace,monospace;padding:7px 12px;box-shadow:0 3px #ad451c}.setup-screen{min-height:500px;padding:clamp(20px,5vw,55px);text-align:center;border:3px solid #4d5d76;background:radial-gradient(ellipse at top,#384063,#10182b 70%);box-shadow:0 20px 80px #0009}.setup-kicker{letter-spacing:.25em;font-size:11px;color:#ffcf70}.setup-screen h2{margin:8px 0;font:italic 900 clamp(30px,5vw,54px) Impact,sans-serif;color:#fff0aa;text-shadow:3px 3px #a22c32}.matchup{color:#fff;font-weight:bold;letter-spacing:.12em}.matchup b{color:#ff9156}.stage-cards{display:flex;justify-content:center;gap:16px;margin:28px auto;flex-wrap:wrap}.stage-cards button{width:min(42%,340px);padding:0;overflow:hidden;border:3px solid #64758e;background:#0c1322;color:white}.stage-cards button[aria-pressed=true]{border-color:#ffe982;box-shadow:0 0 0 2px #e84946}.stage-cards img{width:100%;height:clamp(90px,17vw,180px);display:block;object-fit:cover}.stage-cards span{display:block;padding:10px;font-weight:bold;font-size:12px}.round-choice{display:flex;align-items:center;justify-content:center;gap:10px;color:#ffe095;font-weight:bold}.round-choice select{padding:8px;background:#101b30;color:white;border:1px solid #a6bad4}.round-hint{color:#b6c3d7;font-size:11px}.setup-actions{display:flex;justify-content:center;gap:15px;margin-top:24px}.setup-actions #back-fighters{border:1px solid #8493a8;color:#fff;background:#15243c;padding:9px 13px;font-weight:bold}

.skin-dialog{width:min(920px,calc(100% - 24px));max-height:92svh;overflow:auto;border:2px solid #f5be61;border-radius:18px;padding:26px;background:radial-gradient(ellipse at top,#31375a,#0d1427 70%);color:#fff0cf;box-shadow:0 24px 100px #000b;text-align:center}.skin-dialog::backdrop{background:#020512db;backdrop-filter:blur(5px)}.skin-dialog h2{margin:8px 0;font:italic bold clamp(20px,3vw,32px) Impact,Arial,sans-serif;letter-spacing:.04em}.skin-dialog p{color:#c1c9df;font-size:13px}.skin-dialog .skin-kicker{color:#ffcc73;letter-spacing:.15em;font-size:11px}.skin-cards{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin:22px 0}.skin-cards button{flex:0 1 245px;max-width:245px;min-width:145px;padding:10px 10px 14px;border:2px solid #697a9a;border-radius:12px;background:linear-gradient(160deg,#2c3b55,#111b30);color:#fff0cb;transition:transform .15s,border-color .15s}.skin-cards button:hover,.skin-cards button:focus-visible{transform:translateY(-4px);border-color:#ffd773}.skin-cards button[aria-pressed=true]{border-color:#ffd773;box-shadow:0 0 20px #ffc65a33}.skin-cards img{display:block;width:100%;height:220px;object-fit:contain;object-position:center}.skin-cards strong{display:block;font-size:18px;margin:12px 0}.skin-cards span{display:inline-block;border-radius:5px;padding:7px 12px;background:#ffd178;color:#1b2236;font-size:11px;font-weight:bold}.skin-dialog #skin-cancel{background:transparent;border:1px solid #7c8dac;padding:10px 20px;color:#c6d1e7;border-radius:7px}#skin-open,#online-change-skin{font-size:10px;padding:8px;min-height:32px;background:#23344f;color:#ffe19e;border:1px solid #7c8dac;border-radius:5px}
@media(max-width:600px){.skin-dialog{padding:16px 12px}.skin-cards{gap:10px;margin:16px 0}.skin-cards button{flex:1 1 130px;min-width:120px;max-width:180px}.skin-cards img{height:155px}.skin-cards strong{font-size:14px}}@media(max-height:480px){.skin-dialog{padding:12px}.skin-dialog p{margin:6px}.skin-cards{margin:10px 0;gap:12px}.skin-cards button{flex-basis:175px;padding:6px}.skin-cards img{height:130px}.skin-cards strong{font-size:14px;margin:4px}.skin-cards span{padding:5px 10px}.skin-dialog h2{font-size:20px}}

.selection-step{position:absolute;bottom:4%;width:100%;text-align:center;color:#ffd27e;font-weight:bold;font-size:clamp(10px,1.2vw,15px);letter-spacing:.08em}.opponent-screen{padding:28px;border:2px solid #65718d;border-radius:12px;background:linear-gradient(135deg,#172b48,#181329);text-align:center}.opponent-screen h2{font:italic bold clamp(24px,4vw,40px) Impact,sans-serif;color:#ffda90;margin:8px}.chosen-preview{display:flex;gap:14px;align-items:center;justify-content:center;margin:14px;color:#d2def1}.chosen-preview img{width:72px;height:82px;object-fit:contain;border:1px solid #8193b0;border-radius:8px;background:#1c2a42}.opponent-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:900px;margin:20px auto}.opponent-cards button{border:2px solid #6e819f;border-radius:10px;background:linear-gradient(#2b3c55,#111c31);padding:8px;color:#fff0c9}.opponent-cards img{width:100%;height:150px;object-fit:contain}.opponent-cards strong{display:block;margin:8px 0;font-size:14px}.opponent-cards button[aria-pressed=true]{border-color:#ffd77e;box-shadow:0 0 16px #ffba5844}.opponent-screen button:disabled{opacity:.4;cursor:default}@media(max-width:600px){.opponent-screen{padding:14px 8px}.opponent-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.opponent-cards img{height:120px}.opponent-cards strong{font-size:12px}.selection-step{bottom:8%}}@media(max-height:480px){.opponent-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.opponent-cards img{height:90px}}

.menu-audio-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:6px 0;color:#b7c9df;font-size:11px}.menu-audio-controls label{display:flex;align-items:center;gap:5px}.menu-audio-controls input[type=range]{width:110px;min-height:24px;accent-color:#ffd178}.menu-audio-controls input[type=checkbox]{width:18px;height:18px;min-height:18px}.menu-audio-controls output{min-width:32px;color:#ffe0a3}#menu-audio-status{font-size:10px;color:#a0adc5}.in-fight .menu-audio-controls{display:none}@media(max-width:600px){.menu-audio-controls{justify-content:center;gap:6px}.menu-audio-controls input[type=range]{width:90px}}

.mode-menu,.career-screen{padding:clamp(20px,5vw,50px);border:2px solid #65718d;border-radius:12px;background:radial-gradient(ellipse at top,#384063,#10182b 70%);text-align:center;margin:16px 0}
.mode-menu h2,.career-screen h2{color:#ffe49e;font-size:clamp(23px,4vw,38px)}
.mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:30px 0}
.mode-options button{width:100%;height:100%;min-height:140px;padding:22px 14px;border:2px solid #c8a365;border-radius:10px;color:#fff0cf;background:linear-gradient(#2b3c55,#111c31);cursor:pointer}
.mode-options button:hover,.mode-options button:focus-visible{border-color:#ffe982;box-shadow:0 0 18px #ffc65a44}
.mode-options strong{display:block;font-size:20px;margin-bottom:12px}.mode-options span{display:block;font-size:12px;line-height:1.6;color:#c1c9df}
.mode-options .online-entry{display:block;margin:0}.career-tower{max-width:620px;margin:26px auto;padding-left:30px;text-align:left;line-height:1.7}.career-tower li{padding:14px;border-bottom:1px solid #526580}.career-tower [aria-current]{color:#ffe49e}
#career-status{line-height:1.7;color:#c1c9df}#back-main-menu,.career-screen button{padding:12px 18px;background:#23344f;color:#ffe19e;border:1px solid #7c8dac;border-radius:6px;margin:10px 0}.career-screen button:disabled{opacity:.5;cursor:default}
@media(max-width:650px){.mode-options{grid-template-columns:1fr;gap:12px}.mode-options button{min-height:105px}.mode-menu,.career-screen{padding:20px 14px}}

/* Opening artwork and the tribute spectator. */
.intro-screen{position:relative;isolation:isolate;min-height:100svh;width:100%;overflow:hidden;display:grid;place-items:center;background:#0a1031}
.intro-backdrop,.intro-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.intro-shade{z-index:-1;background:linear-gradient(90deg,#080d24b8 0%,#080d2450 50%,#0b102028 100%)}
.intro-title{position:absolute;top:8%;left:50%;transform:translateX(-50%);width:94%;margin:0;text-align:center;font:900 clamp(38px,6.5vw,92px)/1 Impact,ui-monospace,monospace;letter-spacing:.04em;color:#fff2ba;text-shadow:4px 5px #732a24,0 0 25px #ffbd3c80;z-index:2}
.intro-title span{color:#ffbb46}.intro-title small{display:block;margin-top:14px;color:#e8f4ff;font:700 clamp(10px,1.5vw,17px) monospace;letter-spacing:.24em;text-shadow:2px 2px #080d24}
.intro-side{position:absolute;right:10.5%;bottom:0;height:78%;width:16px;background:linear-gradient(90deg,#60462e,#c39a61,#35271c);border-left:2px solid #e2bc8155;box-shadow:-12px 0 30px #090e2180}
.intro-grandmother{position:absolute;right:2.2%;bottom:-1%;height:87svh;max-width:46%;object-fit:contain;object-position:right bottom;filter:drop-shadow(-12px 12px 20px #0009);z-index:1}
.intro-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;min-height:68px;padding:20px 36px;border:3px solid #ffe3a3;border-radius:8px;background:linear-gradient(#f9bd4e,#df8434);color:#24172b;box-shadow:0 7px #6c3325,0 0 28px #ffb54a66;font:900 clamp(18px,2.3vw,27px) monospace;white-space:nowrap;text-transform:uppercase}
.intro-play:hover{background:linear-gradient(#ffda7d,#f39b40)}.intro-play:active{margin-top:4px;box-shadow:0 3px #6c3325}.intro-play span{margin-left:14px;font-size:.8em}
#game-shell:focus{outline:none}
@media(max-width:700px){.intro-title{top:10%;font-size:clamp(32px,10vw,60px)}.intro-grandmother{height:82svh;max-width:none;right:-27%;bottom:-1%}.intro-side{right:0;height:64%}.intro-play{top:49%;padding:18px 24px;min-height:62px}.intro-backdrop{object-position:47% center}}
@media(max-height:500px) and (orientation:landscape){.intro-title{top:6%;font-size:clamp(28px,6vw,48px)}.intro-title small{margin-top:8px;font-size:10px}.intro-grandmother{height:91svh;max-width:41%;right:0}.intro-play{top:55%;min-height:56px;padding:13px 26px;font-size:20px}.intro-side{right:1%;height:82%}}

.online-fighter-cards{grid-template-columns:repeat(5,minmax(0,1fr));max-width:900px}.online-fighter-cards button{padding:6px;color:#fff0c9;background:linear-gradient(#2b3c55,#111c31);border:2px solid #6e819f}.online-fighter-cards img{height:130px;object-fit:contain}.online-fighter-cards strong{font-size:12px}.online-players span{display:inline-flex;align-items:center;gap:8px}.online-players img{width:42px;height:48px;object-fit:contain;background:#101b30;border-radius:4px}@media(max-width:600px){.online-fighter-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.online-fighter-cards img{height:90px}.online-fighter-cards strong{font-size:10px}.online-screen{padding:14px 8px}}

.has-touch .touch-controls{display:flex;justify-content:space-between;gap:8px;margin-top:8px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.has-touch .touch-movement,.has-touch .touch-attacks{display:flex;gap:5px;align-items:center}.has-touch .touch-controls button{min-width:44px;height:50px;padding:4px 6px;border:2px solid #7e9fca;border-radius:10px;background:#182b46;color:#fff1bb;font:bold 10px monospace;touch-action:none}.has-touch .touch-controls [data-key=l]{background:#733b28;border-color:#ffd079}.has-touch .touch-controls .held{background:#e0a44c;color:#18172d;transform:translateY(2px)}@media(max-width:600px){.has-touch .touch-controls{gap:4px}.has-touch .touch-movement,.has-touch .touch-attacks{gap:3px}.has-touch .touch-controls button{padding:2px;font-size:9px}}

/* Keep the opening scene behind the choice of modes. */
.mode-menu{position:relative;isolation:isolate;overflow:hidden;min-height:600px;display:flex;align-items:center;border-color:#c9a36780;background:#0a1031}
.mode-backdrop,.mode-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}
.mode-shade{z-index:-2;background:linear-gradient(90deg,#080d24c9 0%,#080d2488 53%,#080d2410 100%)}
.mode-grandmother{position:absolute;z-index:-1;right:-1%;bottom:-2%;height:96%;width:47%;object-fit:contain;object-position:right bottom;filter:drop-shadow(-12px 12px 20px #0009)}
.mode-content{width:65%;position:relative;z-index:1}.mode-options{grid-template-columns:1fr;gap:12px;margin:26px auto 0;max-width:470px}.mode-options button{min-height:92px;background:linear-gradient(110deg,#17263aeb,#10182bd9);backdrop-filter:blur(3px);padding:16px 20px;text-align:left}.mode-options strong{margin-bottom:5px}.mode-content h2{font-size:clamp(25px,3.2vw,42px);text-shadow:2px 3px #16121f}
@media(max-width:650px){.mode-menu{min-height:620px;align-items:flex-start;padding-top:28px}.mode-content{width:100%}.mode-content h2{font-size:25px;margin:14px 0}.mode-grandmother{height:70%;width:68%;right:-12%;bottom:-1%}.mode-options{width:72%;margin:32px 0 0;gap:12px}.mode-options button{min-height:103px;padding:14px 10px}.mode-options strong{font-size:17px}.mode-options span{font-size:10px}.mode-shade{background:linear-gradient(90deg,#080d24b8,#080d2466 60%,#080d2405)}}

/* Stacked stone floors, a moving player medallion and a camera that climbs. */
.career-screen{background:radial-gradient(ellipse at top,#343245,#0d1120 75%);padding:24px clamp(12px,4vw,44px)}
.career-screen h2{margin:10px 0;font:900 clamp(24px,4vw,38px) Impact,monospace;letter-spacing:.07em}.career-screen .setup-kicker{margin:0}.career-screen #career-player{font-size:12px;margin:12px 0}.career-screen #career-choose{font-size:11px;padding:8px 12px;margin:0 0 14px}
.tower-stage{position:relative;isolation:isolate;max-width:760px;margin:auto;border:1px solid #76634d;background:radial-gradient(ellipse at 25% 25%,#484a6155,transparent 60%),linear-gradient(#0d1426e8,#141827dd),url('assets/laje-magica-expanded-v3.webp') center/cover;overflow:hidden;box-shadow:inset 0 0 70px #03050ecc,0 14px 35px #0006}
.tower-stage::before,.tower-stage::after{content:'';position:absolute;bottom:-40px;width:40%;height:70%;background:linear-gradient(160deg,transparent 25%,#050814 26%,#050814 65%,transparent 66%);opacity:.7;z-index:-1}.tower-stage::before{left:-13%;transform:rotate(12deg)}.tower-stage::after{right:-20%;transform:rotate(-18deg)}
.tower-moon{position:absolute;top:40px;right:12%;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#e5cda766,#b4956530 55%,#b4956500 70%);box-shadow:0 0 70px #e7c38a20}
.tower-viewport{height:470px;position:relative;overflow:hidden;mask-image:linear-gradient(transparent,#000 11%,#000 88%,transparent)}
.tower-track{position:absolute;left:50%;top:0;width:300px;will-change:transform}
.career-tower{display:flex;flex-direction:column-reverse;width:240px;max-width:none;padding:0;margin:0 auto;list-style:none;position:relative;border-left:8px solid #54483d;border-right:8px solid #302b2b;box-shadow:-10px 0 0 #171c28,10px 0 0 #171c28,0 0 36px #000b}
.career-tower .tower-floor{position:relative;height:146px;flex:0 0 146px;display:flex;align-items:center;justify-content:center;padding:10px 10px 28px;border:0;border-top:10px solid #8a7760;border-bottom:7px solid #2a2729;background:repeating-linear-gradient(0deg,transparent 0 31px,#090e1780 32px 34px),repeating-linear-gradient(90deg,#4b4650 0 54px,#292c38 55px 58px,#49434a 59px 112px);box-shadow:inset 8px 0 12px #0008,inset -8px 0 10px #0008}
.tower-floor::after{content:'';position:absolute;left:-17px;right:-17px;top:-12px;height:11px;background:linear-gradient(#b09b77,#5c5043);box-shadow:0 5px 9px #0009}
.tower-face{width:88px;height:88px;overflow:hidden;position:relative;flex:none;display:grid;place-items:center;border:3px solid #8d7b63;border-radius:44px 44px 8px 8px;background:#101521;box-shadow:0 0 0 3px #141922,inset 0 0 15px #000;color:#b9a98b;font:900 48px Impact,monospace}
.tower-face img{width:100%;height:100%;object-fit:cover;object-position:center 15%}.tower-face.tower-boss-face{background-size:400% 400%;background-position:0 0;background-color:#1c1620}
.tower-opponent-name{position:absolute;bottom:5px;left:2px;right:2px;text-align:center;color:#f3dfaf;font-size:10px;line-height:1.2;text-shadow:1px 2px #000}.tower-floor-number{position:absolute;left:9px;top:10px;color:#cebd9c;font-size:10px}
.tower-hidden .tower-face{color:#aa9c8c;background:radial-gradient(#262b37,#0b101d)}.tower-hidden .tower-opponent-name{font-size:8px;color:#9c958d;letter-spacing:.06em}
.career-tower .tower-defeated{filter:grayscale(1);opacity:.68}.tower-defeated .tower-face::after{content:'✓';position:absolute;bottom:0;right:3px;color:#fff;font-size:23px;text-shadow:0 2px 5px #000}
.career-tower [aria-current]{color:#ffe49e;box-shadow:inset 0 0 28px #e9a84355}.tower-revealed .tower-face{border-color:#ffe49e;box-shadow:0 0 0 3px #372722,0 0 24px #ffc56677}
.tower-climber{position:absolute;top:0;left:-39px;z-index:2;width:96px;will-change:transform;filter:drop-shadow(0 3px 8px #000)}.tower-climber>span{display:block;color:#ffe49e;font:bold 10px monospace;letter-spacing:.12em;text-align:center;margin-bottom:4px}.tower-player-frame{height:76px;width:76px;margin:auto;overflow:hidden;border:3px solid #ffe49e;transform:rotate(-5deg);background:#161e2e;box-shadow:0 0 18px #eac26066}.tower-player-frame img{width:100%;height:100%;object-fit:cover}.tower-climber>b{position:absolute;right:-15px;top:44px;font-size:21px;color:#ffe49e}.tower-climbing .tower-player-frame{box-shadow:0 0 30px #ffd179aa}
.tower-crown{position:absolute;left:30px;right:30px;top:-90px;height:90px;border:6px solid #8e7958;border-bottom:0;text-align:center;line-height:85px;color:#ffdc87;font-size:60px;background:linear-gradient(#403747,#191d2c);clip-path:polygon(0 0,16% 0,16% 18%,30% 18%,30% 0,44% 0,44% 18%,58% 18%,58% 0,72% 0,72% 18%,86% 18%,86% 0,100% 0,100% 100%,0 100%)}
.tower-caption{position:relative;margin:0;padding:14px 10px;border-top:1px solid #8e795844;background:#080d18e8;color:#ffdfa2;font:bold 12px monospace;letter-spacing:.05em;text-align:center;min-height:44px}.tower-complete .tower-crown{box-shadow:0 0 40px #ffdc87}
#career-status{font-size:12px;max-width:650px;margin:18px auto 8px}.career-screen #career-new{font-size:10px;background:transparent}.career-screen #career-start{min-width:210px;background:#e6b85d;color:#241c24;font-weight:bold}
.tower-final-overlay{position:fixed;inset:0;z-index:30;margin:0;border:0;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#040711ed;backdrop-filter:blur(7px)}.tower-final-overlay .tower-stage{width:min(760px,100%);margin:0}.tower-final-overlay #career-choose,.tower-final-overlay #career-start,.tower-final-overlay #career-new,.tower-final-overlay #career-status{display:none}
@media(max-width:500px){.tower-viewport{height:390px}.tower-track{width:250px}.career-tower{width:208px;border-left-width:6px;border-right-width:6px}.tower-climber{left:-23px;width:80px}.tower-player-frame{width:64px;height:64px}.tower-climber>b{right:-10px;top:38px}.tower-face{width:82px;height:82px}.tower-caption{font-size:10px}.career-screen #career-player{font-size:10px}.tower-moon{right:3%;width:75px;height:75px}.career-screen #career-new{display:block;margin:8px auto 0}.tower-final-overlay #career-new{display:none}}
@media(prefers-reduced-motion:reduce){.tower-track,.tower-climber{will-change:auto}}
.skin-dialog.skin-inline{position:absolute;inset:auto 2% 11% auto;margin:0;width:26%;max-height:55%;padding:14px 8px;z-index:4;border-radius:10px;background:linear-gradient(155deg,#243354f5,#10182cf5);box-shadow:0 8px 30px #0008;overflow:auto}
.skin-inline .skin-kicker,.skin-inline>p:not(.skin-kicker){display:none}.skin-inline h2{font-size:16px;margin:0 0 10px}.skin-inline .skin-cards{gap:8px;margin:8px 0 14px}.skin-inline .skin-cards button{flex:0 1 72px;min-width:54px;max-width:76px;padding:3px;border-radius:4px;position:relative}.skin-inline .skin-cards img{height:auto;width:100%;aspect-ratio:1;object-fit:cover}.skin-inline .skin-cards strong{font-size:8px;margin:5px 0;overflow-wrap:anywhere}.skin-inline .skin-cards span{display:none}.skin-inline #skin-cancel{font-size:10px;padding:7px 9px}.choosing-skin .roster{filter:brightness(.65)}
.roster button:focus-visible{z-index:3;outline:3px solid #fff3af;outline-offset:3px;box-shadow:0 0 24px #ffcb57}
.tower-climbing .tower-climber>b{color:#fffbd4;text-shadow:0 0 12px #ffcb57}.tower-climbing .tower-player-frame{border-color:#fff6c2}
@media(max-width:700px){.skin-dialog.skin-inline{inset:auto 5% 2%;width:90%;max-height:25%;padding:10px 8px}.skin-inline h2{font-size:14px;margin:0}.skin-inline .skin-cards{margin:7px 0;gap:12px}.skin-inline .skin-cards button{flex-basis:64px;min-width:54px}.skin-inline #skin-cancel{position:absolute;right:8px;top:8px;font-size:8px;padding:4px}.choosing-skin .selection-step{bottom:23%}}
@media(prefers-reduced-motion:reduce){.skin-cards button{transition:none}}
.arena-view{position:relative}.match-result-actions{position:absolute;bottom:4%;left:4%;right:4%;z-index:5;text-align:center}.match-result-buttons{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.match-result-buttons button{min-height:52px;padding:14px 22px;border:2px solid #ffe9ac;border-radius:8px;background:linear-gradient(#ffe9a2,#edab40);color:#2a1931;font:bold clamp(11px,1.5vw,18px) ui-monospace,monospace;box-shadow:0 4px 0 #925028,0 8px 25px #0009}.match-result-buttons #result-characters{background:linear-gradient(#273e61,#101e39);color:#fff0cb;border-color:#b7cee8;box-shadow:0 4px 0 #080f21,0 8px 25px #0009}.match-result-buttons button:hover{filter:brightness(1.15)}.match-result-buttons button:disabled{opacity:.7;cursor:wait}.match-result-actions p{display:table;margin:12px auto 0;padding:5px 10px;max-width:100%;border-radius:5px;background:#081022e8;color:#ffe4a0;font-size:12px;line-height:1.4}.match-result-actions p:empty{display:none}.match-finished .touch-controls{display:none}.match-finished #back-select,.match-finished #restart{visibility:hidden}
@media(max-width:600px){.match-result-buttons{gap:8px}.match-result-buttons button{min-height:36px;padding:8px 10px;font-size:9px;border-radius:5px}.match-result-actions{left:2%;right:2%;bottom:4%}.match-result-actions p{font-size:9px;margin-top:7px;padding:3px 6px}}@media(pointer:coarse) and (orientation:landscape){.arena-view{width:min(100%,calc((100svh - 108px)*16/9));margin:auto}.arena-view canvas{width:100%}}

/* The tower climbs through buried stone and soil; daylight appears only at its top. */
.tower-stage{background:radial-gradient(ellipse at 18% 45%,#b8772e22,transparent 48%),repeating-linear-gradient(173deg,#33262c 0 36px,#211c28 37px 43px,#45302d 44px 90px,#201a25 91px 97px);box-shadow:inset 0 0 90px #05030ad9,0 14px 35px #0006}
.tower-stage::before,.tower-stage::after{top:0;bottom:0;height:100%;width:40%;background:repeating-linear-gradient(19deg,#15131dcc 0 42px,#43342c55 43px 48px,#11121bbb 49px 95px);transform:none;clip-path:polygon(0 0,90% 0,66% 13%,91% 29%,70% 47%,93% 66%,60% 82%,90% 100%,0 100%);opacity:.9}.tower-stage::before{left:-8%}.tower-stage::after{right:-8%;transform:scaleX(-1)}
.tower-moon{top:35%;right:9%;width:48px;height:90px;border-radius:0;clip-path:polygon(50% 0,100% 32%,75% 100%,20% 85%,0 30%);background:linear-gradient(110deg,#f5cb7b77,#bb6d2533,#e3ac6055);box-shadow:none;filter:drop-shadow(0 0 20px #f7bd6344)}
.tower-earth-surface{position:absolute;left:50%;transform:translateX(-50%);top:-170px;width:2000px;height:170px;z-index:-1;background:linear-gradient(transparent 0 49%,#879160 50% 53%,#8d6b47 54% 58%,#47312b 59% 78%,#2b2028 79%);border-bottom:10px solid #47312b}
.tower-earth-surface::before{content:'';position:absolute;inset:-400px 0 84px;background:linear-gradient(#0c1637,#a76d6e);z-index:-1}
.tower-earth-surface span{position:absolute;top:56px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.2em;color:#ffe1b4;text-shadow:0 2px 4px #000}

/* Keep the additional crouch and technique controls reachable on small touch screens. */
@media(max-width:600px){.has-touch .touch-controls{flex-wrap:wrap}.has-touch .touch-movement,.has-touch .touch-attacks{width:100%;min-width:0;display:grid;gap:5px}.has-touch .touch-movement{grid-template-columns:repeat(4,minmax(0,1fr))}.has-touch .touch-attacks{grid-template-columns:repeat(auto-fit,minmax(48px,1fr))}.has-touch .touch-controls button{min-width:0;width:100%;height:48px}}
