*{box-sizing:border-box}body{margin:0;background:#070a12;color:#ecf0fa;font:16px Arial,Tahoma,sans-serif}button,select{font:inherit}button{cursor:pointer;color:inherit;background:#172030;border:1px solid #344050;border-radius:5px;padding:9px 14px}button:hover{border-color:#c5ff42}button:focus-visible,select:focus-visible{outline:2px solid #c5ff42;outline-offset:3px}header{height:72px;display:flex;align-items:center;justify-content:space-between;max-width:1440px;margin:auto;padding:0 32px;border-bottom:1px solid #222b38}.brand{font-size:26px;letter-spacing:-1px;font-weight:900;color:white;text-decoration:none}.brand span{color:#c5ff42}.brand small{font-size:12px;letter-spacing:3px;margin-left:12px;color:#8190a7}.header-right{display:flex;align-items:center;gap:14px;font-size:14px;color:#93a1b6}header button{font-size:13px;background:transparent}main{max-width:1376px;margin:24px auto;padding:0 20px}#arena{position:relative;width:100%;aspect-ratio:16/9;background:#090f22;overflow:hidden;border:1px solid #303c50;border-radius:10px;box-shadow:0 24px 100px #0008}#game,#game canvas{width:100%!important;height:100%!important;display:block;image-rendering:pixelated}#hud{position:absolute;inset:0;pointer-events:none}.boss-head{position:absolute;top:4%;left:26%;right:26%;display:flex;justify-content:space-between;font-size:14px;letter-spacing:2px;text-shadow:0 2px #000}.boss-track{position:absolute;top:8%;left:26%;width:48%;height:10px;background:#09101d;border:1px solid #779098;transform:skewX(-12deg)}.boss-track i{display:block;height:100%;width:100%;background:#f45678;transition:width .15s}.player-panel{position:absolute;bottom:3%;left:3%;width:25%;padding:12px;background:#07101dea;border-left:3px solid #c5ff42}.player-panel strong{font-size:15px;letter-spacing:2px}.player-panel>span{float:right;font-size:13px}.hp-track,.energy-track{height:9px;background:#273146;margin-top:8px}.energy-track{height:4px;margin-top:5px}.hp-track i{display:block;height:100%;background:#c5ff42}.energy-track i{display:block;height:100%;background:#65dff5}.player-panel small{font-size:12px;display:block;margin-top:5px;color:#9daec4}.skills{position:absolute;right:3%;bottom:3%;display:flex;gap:8px;pointer-events:auto}.skills button{width:94px;min-height:77px;text-align:left;background:#0b1326ee;position:relative;border-color:#506079;padding:8px}.skills button b{display:block;font-size:12px;margin:5px 0}.skills button small{font-size:12px;color:#c5ff42}.skills button.cool{opacity:.55}.skills kbd{background:#29374b;color:#fff}kbd{font:12px monospace;border:1px solid #3c485c;border-radius:3px;padding:3px 5px;margin-right:3px;color:#c7d2e4}.overlay{position:absolute;inset:0;padding:4% 4.5%;background:linear-gradient(90deg,#080d19f5,#080d19cb);overflow:auto}.menu-intro{position:relative;margin-bottom:20px}.eyebrow{font-size:12px;letter-spacing:3px;color:#c5ff42}.menu-intro h1{font-size:clamp(28px,4.4vw,64px);line-height:.94;letter-spacing:-3px;margin:16px 0;font-weight:900}.menu-intro h1 em{font-style:normal;color:#c5ff42}.menu-intro p{position:absolute;right:0;bottom:0;color:#96a3b7;font-size:12px;letter-spacing:2px}.characters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.character{padding:14px;text-align:left;min-height:228px;background:#10192bed;border-color:#334158;position:relative;overflow:hidden}.character.selected{border:1px solid var(--accent);box-shadow:inset 0 -3px var(--accent);background:#1c2838}.character .num{font:12px monospace;letter-spacing:2px;color:var(--accent)}.portrait{height:72px;float:right;width:60px;image-rendering:pixelated}.character h2{font-size:26px;margin:9px 0 3px;letter-spacing:1px}.character .role{font-size:12px;color:var(--accent)}.character p{font-size:13px;line-height:1.6;color:#acb9cd;margin:12px 0 8px;clear:both}.stat{display:flex;align-items:center;gap:6px;font-size:11px;color:#9eacc0;margin-top:5px}.stat i{height:3px;background:#364357;flex:1}.stat i b{height:3px;display:block;background:var(--accent)}.menu-bottom{display:flex;align-items:end;justify-content:space-between;margin-top:20px;gap:12px}.menu-bottom label{font-size:12px;display:block;margin-bottom:5px;color:#a7b5ca}select{background:#131e30;border:1px solid #34445d;color:white;padding:10px;border-radius:4px;max-width:300px}.local-note{font-size:12px;color:#8291a6;margin-left:10px}.primary{background:#c5ff42;color:#10170b;font-weight:bold;border:0;padding:16px 28px;border-radius:3px}.primary span{margin-left:30px}footer{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:#92a0b5;margin:18px 0;line-height:2.3}#stageInfo{font-size:13px;color:#71849d;text-align:center}#notice{position:absolute;top:14%;width:100%;text-align:center;color:#e8f6fa;font-weight:bold;font-size:18px;text-shadow:0 2px 6px #000}.hidden{display:none!important}#modal{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#080e1ce8}#modal h2{font-size:clamp(30px,5vw,64px);margin:14px;color:#c5ff42}#modal p{line-height:1.8;color:#b5c4d8;max-width:640px}#modal .actions{display:flex;gap:12px;margin-top:20px}#modal .badge{font:14px monospace;letter-spacing:4px;color:#8496b2}#touchControls{display:none;position:absolute;bottom:22%;width:100%;padding:0 3%;justify-content:space-between;pointer-events:none}#touchControls>div{display:flex;gap:5px}#touchControls button{pointer-events:auto;touch-action:none;user-select:none;background:#15263cb0;min-width:44px;min-height:44px;font-size:12px}body{touch-action:manipulation}@media(pointer:coarse){#touchControls{display:flex}}@media(max-width:900px){header{height:58px;padding:0 16px}.brand small,#sectorLabel{display:none}main{margin:12px auto;padding:0 8px}.character{min-height:210px;padding:9px}.menu-intro{margin-bottom:12px}.menu-intro h1{font-size:36px}.menu-intro p{font-size:10px}.local-note{display:none}.overlay{padding:3%}.character h2{font-size:20px}.portrait{height:54px;width:45px}.character p{font-size:12px}.menu-bottom{margin-top:12px}.skills button{width:72px;min-height:64px}.skills button b{font-size:10px}footer{display:block;font-size:11px}.player-panel{padding:8px;width:29%}.boss-head{font-size:11px}}@media(max-width:600px){#arena{aspect-ratio:4/3}.characters{grid-template-columns:repeat(2,1fr)}.character{min-height:175px}.character p{margin:7px 0}.menu-intro p{display:none}.menu-intro h1{font-size:32px;line-height:1;margin:10px 0}.menu-intro h1 br{display:none}.menu-intro h1 em{margin-left:8px}.eyebrow{font-size:10px}.stat{display:none}.menu-bottom{align-items:center}.primary{padding:13px}.primary span{display:none}select{max-width:180px;font-size:12px}.skills{gap:3px;right:2%;bottom:2%}.skills button{width:54px;min-height:57px;padding:4px}.skills button b,.skills button small{font-size:9px}.player-panel strong{font-size:11px}.player-panel>span{font-size:10px}.player-panel{bottom:2%;left:2%;width:34%}.player-panel small{font-size:9px}.boss-head{left:20%;right:20%;font-size:10px}.boss-track{left:20%;width:60%}#notice{font-size:13px}.header-right{gap:6px}header button{padding:6px;font-size:11px}}
/* Combat update 02 — full character art and legible combat state */
.menu-intro h1{font-size:48px;letter-spacing:-2px;line-height:1.1;margin:12px 0}.menu-intro h1 small{font-size:18px;font-weight:400;letter-spacing:6px;margin-left:15px;color:#99a8bc}.menu-intro p{font-size:13px;letter-spacing:0}.menu-intro{margin-bottom:16px}.character{min-height:330px;padding:15px;background:linear-gradient(155deg,#152236e8,#080e1bef)}.portrait{float:none;display:block;width:100%;height:162px;object-fit:contain;filter:drop-shadow(0 0 14px #5ed3ff18)}.character .num{position:absolute;left:14px;top:14px;font-size:10px;opacity:.8}.character h2{margin:5px 0;font-size:25px}.character p{font-size:12px;margin:8px 0;line-height:1.5;min-height:36px}.character .role{font-size:11px}.character.selected{background:linear-gradient(155deg,#26364cec,#0a1324f2);border-color:var(--accent)}.character .stat{font-size:10px}#menu{background:linear-gradient(90deg,#050b16ed,#050b1699)}.menu-bottom{margin-top:16px}#bossMove{position:absolute;top:10.8%;width:100%;text-align:center;font-size:14px;font-weight:bold;color:#b6c8dc;text-shadow:0 2px 5px #000}#bossMove.danger{color:#ffb3bc}#bossMove.opening{color:#c5ff42}#notice{top:16%;font-size:16px}.boss-track{height:12px;background:#0b1428}.boss-track i{background:linear-gradient(90deg,#dc3c6b,#ff7595)}.player-panel{background:#050d1de8;border-color:#5ce5ed}.skills button{box-shadow:inset 0 1px #ffffff15}.skills button:last-child{border-color:#8b739e}.skills button b{font-size:11px}.hp-track i{background:linear-gradient(90deg,#4cc793,#bdf35f)}button:disabled{cursor:wait;opacity:.7}
@media(max-width:1000px){.character{min-height:290px;padding:10px}.portrait{height:126px}.character p{font-size:11px}.menu-intro h1{font-size:34px}.menu-intro p{display:none}.menu-intro{margin-bottom:10px}.menu-intro h1 small{font-size:13px}.character h2{font-size:22px}.menu-bottom{margin-top:10px}}
@media(max-width:600px){.character{min-height:245px}.portrait{height:110px}.character p{min-height:40px}.menu-intro h1{font-size:32px}.menu-intro h1 em{margin-left:0}.menu-intro h1 small{font-size:11px;letter-spacing:3px}.menu-intro .eyebrow{font-size:9px;letter-spacing:2px}.character .num{font-size:9px}#bossMove{font-size:10px;top:11%}#notice{font-size:11px;top:17%}}
#playerForm{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:12px;margin-top:14px}#playerForm label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:#bbcadc}#playerForm input,#playerForm select{width:100%;max-width:none;padding:10px 12px;border:1px solid #40516c;background:#0c1627;color:#fff;border-radius:4px;font-size:15px}#profileStatus,#seasonLabel{font-size:12px;line-height:1.7;color:#98acc5;margin-top:5px}#seasonLabel{color:#bfe579}.menu-bottom{align-items:center;flex-wrap:wrap}.local-note{display:none}.character{min-height:300px}.portrait{height:132px}.menu-intro{margin-bottom:10px}.menu-intro h1{font-size:36px;margin:8px 0}.character .stat{font-size:12px}.character p{min-height:58px}.overlay{padding:3% 4%}#raceTimer{position:absolute;right:3%;top:4%;font:700 24px monospace;background:#061020cc;padding:7px 12px;border:1px solid #6c87a0;color:#caffed}#buffBar{position:absolute;left:3%;bottom:21%;display:flex;gap:5px;flex-wrap:wrap;max-width:60%}#buffBar span{background:#071225e8;border:1px solid currentColor;padding:4px 7px;font:12px monospace}#modal.results{display:block;padding:25px 6%;overflow:auto}#modal.results h2{font-size:32px;margin:10px}#modal.results .actions{justify-content:center;position:sticky;bottom:0;background:#080e1cf5;padding:12px;margin-top:10px}.rank-content{max-width:850px;margin:auto}.rank-content h3{font-size:18px;margin:15px 0}.result-time{font:700 38px monospace;color:#c5ff42}.result-meta{font-size:14px;line-height:1.7;color:#adbed4}.rank-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.rank-table th,.rank-table td{padding:9px 12px;border-bottom:1px solid #2b3b52}.rank-table th{color:#97aac3;font-weight:normal}.rank-table td:last-child{font-family:monospace;color:#d0f7e4}.rank-table .place-1{background:#61521d66}.rank-table .place-2{background:#59677644}.rank-table .place-3{background:#77563844}.rank-table .is-me{outline:1px solid #bcf356;outline-offset:-1px}.rank-scroll{max-height:360px;overflow:auto}.split-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;text-align:left}.split-grid>div{padding:8px;background:#162337;border:1px solid #2b405c;display:flex;flex-direction:column;gap:4px}.split-grid span{font-size:11px;color:#92abc6}.split-grid b{font:14px monospace}.empty-rank{padding:24px;border:1px dashed #40566f}#modal p{margin:8px auto}@media(max-width:800px){#playerForm{grid-template-columns:1fr 1fr}#playerForm label:last-child{grid-column:1/-1}.split-grid{grid-template-columns:repeat(2,1fr)}.character{min-height:280px}#raceTimer{font-size:16px;top:20%}#buffBar{bottom:23%;max-width:70%}}@media(max-width:600px){#playerForm{grid-template-columns:1fr}#playerForm label:last-child{grid-column:auto}.portrait{height:110px}.rank-table{font-size:12px}.rank-table th,.rank-table td{padding:8px 5px}.result-time{font-size:28px}.character{min-height:250px}#raceTimer{font-size:12px;padding:4px 7px}#buffBar span{font-size:10px}#modal.results{padding:15px 3%}}

.race-rules{font-size:12px;line-height:1.6;color:#93a6bf;margin-top:5px}
/* V4: results hierarchy and cinematic end credits */
#resumeBtn.primary{box-shadow:0 0 25px #c5ff4226}#startBtn:not(:only-child){border:1px solid #5c687b}#modal.cleared>h2{color:#c5ff42;text-shadow:0 0 28px #c5ff4255}#modal.defeat{box-shadow:inset 0 0 120px #ff26452b}#modal.defeat>h2{color:#ff486d;animation:down-in .6s ease-out}.campaign-label{font-size:clamp(17px,2.2vw,26px);color:#eaf6ff;margin-top:12px}.campaign-total{font-size:clamp(44px,7vw,86px);font-weight:900;color:#c5ff42;line-height:1.2;font-variant-numeric:tabular-nums;text-shadow:0 0 35px #c5ff4244}.total-note{color:#a2b2c7;font-size:12px}.sector-time{color:#a6b4ca;font-size:14px;margin:12px 0}.result-meta{margin-bottom:20px}#modal .actions{gap:12px;z-index:5}.rank-table .place-1{background:#b9982929}.rank-table .place-2{background:#adc1d522}.rank-table .place-3{background:#b96c3826}
#modal.ending{padding:0;overflow:hidden;background:#080b16;min-height:100%;isolation:isolate}#modal.ending>.badge,#modal.ending>h2,#modal.ending>p{display:none}.ending-scene{position:absolute;inset:0;overflow:hidden;z-index:-1}.ending-art{position:absolute;inset:-3%;background:url('assets/ending.webp') center/cover;animation:ending-pan 45s ease-in-out infinite alternate}.ending-particles,.ending-shade{position:absolute;inset:0;width:100%;height:100%}.ending-shade{background:linear-gradient(90deg,#070b1844 0%,#080d1844 45%,#080c1bdb 67%,#080c1bf0),linear-gradient(0deg,#060912 0%,transparent 24%)}.ending-title{position:absolute;left:4%;top:6%;width:47%;text-align:left;text-shadow:0 3px 15px #000}.ending-title>span{font:10px monospace;letter-spacing:3px;color:#ffd9b4}.ending-title h2{font-size:clamp(28px,4.7vw,65px);line-height:.98;font-weight:900;margin:18px 0;color:white;letter-spacing:-2px}.ending-title p{font-size:clamp(13px,1.5vw,19px);margin:15px 0 5px}.ending-title small{color:#d4dfef}.ending-title strong{display:block;color:#c5ff42;font-size:clamp(30px,4vw,56px);font-variant-numeric:tabular-nums}.ending-title em{display:block;font-size:12px;font-style:normal;color:#c6cbd6}.credits-window{position:absolute;left:58%;right:4%;top:4%;bottom:105px;overflow:hidden;mask-image:linear-gradient(transparent,black 7%,black 92%,transparent)}#creditsRoll{text-align:center;padding-top:90%;animation:credits-scroll var(--roll-duration,60s) linear forwards}#creditsRoll.hold,.credits-window:hover #creditsRoll{animation-play-state:paused}#creditsRoll h3{color:#eff6ff;font-size:18px}#creditsRoll p{font-size:13px;color:#aebdd1;line-height:1.9}#creditsRoll .credit-label{color:#c5ff42;letter-spacing:3px}.credit-rule{height:1px;background:#7891b955;margin:35px 0}.credit-runner{padding:18px 10px;border-bottom:1px solid #5c6e832a}.credit-runner span,.credit-runner b,.credit-runner small{display:block}.credit-runner b{font-size:24px;color:#b4c9ed;letter-spacing:1px;margin:5px}.credit-runner small{font-size:10px;color:#95a6bd}.credit-runner.medal{border:1px solid #b7cbe244;margin:12px 0;background:#20344870}.credit-runner.medal-1 b{color:#ffdb7c}.credit-runner.medal-2 b{color:#d5e7ff}.credit-runner.medal-3 b{color:#f4b88f}#modal.ending>.actions{position:absolute;bottom:20px;left:0;right:0;background:transparent;padding:10px;justify-content:center}#modal.ending button{font-size:13px}.ending #creditsRoll h2 span{color:#c5ff42}
@keyframes credits-scroll{from{transform:translateY(0)}to{transform:translateY(calc(-100% + 270px))}}@keyframes ending-pan{from{transform:scale(1) translateX(0)}to{transform:scale(1.09) translateX(-1.5%)}}@keyframes down-in{from{transform:scale(1.18);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.ending-art,#creditsRoll,#modal.defeat>h2{animation:none}#creditsRoll{padding-top:15px}.credits-window{overflow:auto}}@media(max-width:700px){.ending-title{width:49%;left:3%;top:8%}.ending-title h2{letter-spacing:-1px}.credits-window{left:57%;right:3%;bottom:110px}.credit-runner b{font-size:17px}#creditsRoll h3{font-size:13px}.ending-title em{font-size:10px}.ending-title>span{letter-spacing:1px;font-size:8px}#modal.ending>.actions{bottom:5px}.ending-title p{font-size:11px}}
/* Mobile controls on V15: desktop visual design preserved. */
#moveStick{display:none}#touchControls{touch-action:none;z-index:3}#touchControls button{min-width:44px;min-height:44px;touch-action:none;-webkit-user-select:none;user-select:none}.touch-actions .attack-touch{border-color:#c5ff42;color:#d6ff87}
#arena:has(#menu:not(.hidden)) #touchControls,#arena:has(#modal:not(.hidden)) #touchControls{display:none}
@media(pointer:coarse){#touchControls{display:block;inset:auto 0 2%;height:110px;padding:0;pointer-events:none}#moveStick{display:block;position:absolute;bottom:0;left:3%;width:104px;height:104px;border-radius:50%;border:2px solid #adcedc70;background:radial-gradient(circle,#24485a55,#09162899);pointer-events:auto;touch-action:none}#stickKnob{position:absolute;left:50%;top:50%;width:44px;height:44px;border:2px solid #c1e6f5;border-radius:50%;background:#536d89b0;transform:translate(-50%,-50%);pointer-events:none}#touchControls .touch-actions{position:absolute;right:2%;bottom:0;display:grid;grid-template-columns:repeat(2,52px);gap:8px}#touchControls button{width:52px;height:48px;border-radius:12px;padding:3px;background:#0b1a2edb;font-size:11px}.skills{right:2%;bottom:calc(2% + 120px);gap:7px;z-index:4}.skills button{width:48px;min-height:44px;padding:4px;touch-action:none}.skills button b{display:none}.skills button small{font-size:9px}.skills kbd{font-size:11px}.player-panel{top:3%;bottom:auto;left:2%;width:24%;padding:7px}.player-panel strong{font-size:11px}.player-panel>span{font-size:10px}.player-panel small{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hp-track{height:7px;margin-top:5px}.energy-track{margin-top:4px}.boss-head{left:29%;right:19%;top:3%;font-size:10px;letter-spacing:0}.boss-track{left:29%;width:52%;top:9%;height:8px}#bossMove{left:29%;width:52%;top:13%;font-size:9px}#raceTimer{right:2%;top:3%;font-size:12px;padding:4px}#notice{top:22%;left:27%;width:50%;font-size:11px}#buffBar{left:2%;bottom:calc(2% + 115px);max-width:25%;gap:2px}#buffBar span{font-size:8px;padding:2px 3px}}
@media(orientation:landscape) and (max-height:600px) and (pointer:coarse){body{padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left)}header{height:34px;padding:0 10px}.brand{font-size:18px}.brand small,#sectorLabel{display:none}header button{font-size:11px;padding:4px 8px}main{width:min(100%,calc((100dvh - 38px)*16/9));margin:2px auto;padding:0}#arena{width:100%;aspect-ratio:16/9}footer,#padStatus,#stageInfo{display:none}.characters{grid-template-columns:repeat(4,1fr)}.character{min-height:220px;padding:8px}.portrait{height:80px}.character h2{font-size:17px}.character p{font-size:10px}.menu-intro h1{font-size:26px}.overlay{padding:2% 3%}}
@media(orientation:portrait) and (pointer:coarse){main::before{content:'หมุนมือถือเป็นแนวนอน เพื่อเล่นด้วยจอยสัมผัสแบบ 16:9';display:block;padding:10px;color:#c5ff42;text-align:center;font-size:13px}#arena{aspect-ratio:16/9}#touchControls{transform:scale(.7);transform-origin:bottom center;width:142.85%;left:-21.425%}.skills{bottom:calc(2% + 84px)}}
/* Touch assist only; keyboard/mouse and controller rules remain manual. */
.stick-arrow{position:absolute;transform:translate(-50%,-50%);color:#d0ebf8;font:16px monospace;pointer-events:none;text-shadow:0 1px 4px #000}
@media(pointer:coarse){#touchControls .touch-actions{display:none}.skills{bottom:3%;right:3%;gap:12px}.skills button{width:58px;min-height:58px;border-radius:50%;clip-path:none;text-align:center;background:#071224aa;opacity:.28;border:1px solid #617a9a;transition:opacity .2s,box-shadow .2s}.skills button.cool{opacity:.28;cursor:default}.skills button.skill-ready{opacity:1;border-color:#c5ff42;background:#254d37e8;box-shadow:0 0 15px #c5ff4266,inset 0 0 9px #c5ff4233}.skills button:last-child.skill-ready{border-color:#ad8bff;background:#392857ed;box-shadow:0 0 18px #ad8bff88}.skills kbd{border:0;background:transparent;font-size:17px;display:block;padding:0;margin:0}.skills button small{font-size:10px}.skills button:disabled{cursor:default}#game{touch-action:none}#moveStick{width:112px;height:112px}#stickKnob{z-index:1}}
/* V19: touch ending only. Desktop credits keep their original layout. */
@media(pointer:coarse){
 #arena{container-type:inline-size}
 #arena:has(#modal:not(.hidden)) #hud{visibility:hidden;pointer-events:none}
 #arena:has(#modal:not(.hidden)) #hud .skills{pointer-events:none}
 #modal.ending{isolation:isolate;text-size-adjust:100%;-webkit-text-size-adjust:100%}
 #modal.ending .ending-scene{z-index:0;bottom:60px;pointer-events:none}
 #modal.ending .ending-title{left:4%;top:5%;bottom:4%;width:44%;overflow:auto;pointer-events:auto}
 #modal.ending .ending-title>span{font:7px monospace;letter-spacing:1px;white-space:nowrap}
 #modal.ending .ending-title h2{font-size:clamp(20px,4.5cqw,38px);line-height:1.02;letter-spacing:-1px;margin:10px 0}
 #modal.ending .ending-title p{font-size:clamp(10px,1.7cqw,14px);line-height:1.4;margin:6px 0;max-width:100%}
 #modal.ending .ending-title small{font-size:10px}
 #modal.ending .ending-title strong{font:800 clamp(24px,5cqw,42px) monospace;line-height:1.15;margin:4px 0;color:#c5ff42}
 #modal.ending .ending-title em{font-size:9px;line-height:1.4}
 #modal.ending .credits-window{left:53%;right:3%;top:5%;bottom:3%;overflow:auto;pointer-events:auto;touch-action:pan-y;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#748ba5 transparent;-webkit-mask-image:none;mask-image:none;border-left:1px solid #a4c1df30;padding:0 8px}
 #modal.ending #creditsRoll{animation:none!important;transform:none;padding:8px 0 12px;overflow-wrap:anywhere}
 #modal.ending #creditsRoll h3{font-size:clamp(11px,1.9cqw,16px);line-height:1.4;margin:10px 0}
 #modal.ending #creditsRoll h2{font-size:24px;line-height:1.1;margin:10px 0}
 #modal.ending #creditsRoll p{font-size:clamp(9px,1.5cqw,12px);line-height:1.6;margin:6px 0}
 #modal.ending #creditsRoll .credit-label{font-size:9px;letter-spacing:1px}
 #modal.ending .credit-rule{margin:16px 0}
 #modal.ending .credit-runner{padding:9px 5px;font-size:11px}
 #modal.ending .credit-runner b{font-size:19px}
 #modal.ending .credit-runner small{font-size:9px}
 #modal.ending>.actions{z-index:2;position:absolute;left:0;right:0;bottom:0;height:60px;margin:0;padding:8px 3%;gap:10px;background:#080e1cf5;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
 #modal.ending>.actions button{min-height:44px;padding:5px 8px;font-size:12px;line-height:1.3;white-space:normal}
}
.mobile-fullscreen,#fullscreenTools{display:none}
@media(pointer:coarse){.mobile-fullscreen{display:inline-block}body.full-game{margin:0;padding:0;width:100%;height:100dvh;overflow:hidden;background:#000}body.full-game header,body.full-game footer,body.full-game #padStatus,body.full-game #stageInfo,body.full-game main::before{display:none}body.full-game main{position:absolute;inset:0;max-width:none;width:100%;height:100%;margin:0;padding:0;display:grid;place-items:center}body.full-game #arena{width:min(calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right)),calc((100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom))*16/9));aspect-ratio:16/9;border:0;border-radius:0}body.full-game #fullscreenTools{display:flex;position:fixed;z-index:30;bottom:max(3px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);gap:6px}#fullscreenTools button{min-height:36px;padding:5px 10px;font-size:10px;background:#081322b0;color:#bbd1e4;border-color:#637e9270}body.full-game:has(#modal.ending) #fullscreenTools{bottom:auto;top:max(2px,env(safe-area-inset-top));left:50%;opacity:.7}}
.wallet-field{position:relative;min-width:0}#walletSuggestions{position:absolute;top:66px;left:0;right:0;z-index:50;background:#101d30;border:1px solid #8bbd4d;border-radius:5px;box-shadow:0 10px 28px #000b;max-height:200px;overflow:auto}#walletSuggestions[hidden]{display:none}#walletSuggestions [role=option]{padding:11px 12px;min-height:48px;cursor:pointer;border-bottom:1px solid #2e405a;overflow-wrap:anywhere}#walletSuggestions [role=option]:hover,#walletSuggestions [aria-selected=true]{background:#263d43;color:#d7ff9c}#walletSuggestions strong{display:block;font:13px monospace}#walletSuggestions small{display:block;color:#a5b8cb;font-size:10px;margin-top:4px}.wallet-hint{font-size:10px;line-height:1.5;color:#91a6bd}
