#endDialog { --result-color:#b7f20c; width:min(880px,94vw); max-height:94dvh; overflow:auto; padding:30px 36px; border:1px solid #537080; border-top:4px solid var(--result-color); color:#eaf6ff; background:radial-gradient(ellipse at 50% 0,#254e4f80,transparent 60%),repeating-linear-gradient(120deg,transparent 0 38px,#ffffff03 39px 40px),#0a121d; box-shadow:0 30px 100px #000b; }
#endDialog[data-result="lose"] { --result-color:#ff315f; }
#endDialog::backdrop { background:#020810d9; backdrop-filter:blur(8px); }
#endDialog[open] { animation:result-arrive .35s ease-out both; }
#endDialog .eyebrow { color:#88a9be; letter-spacing:.2em; font-size:10px; }
#endDialog h2 { margin:8px 0; font-size:clamp(44px,7vw,76px); line-height:1; letter-spacing:.07em; text-shadow:0 0 40px color-mix(in srgb,var(--result-color) 35%,transparent); }
#endText { margin:12px 0 24px; color:#bbcfdb; }
.end-locations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.end-terrain { --terrain-color:#9babbc; border:1px solid color-mix(in srgb,var(--terrain-color) 55%,transparent); border-bottom:3px solid var(--terrain-color); padding:16px 10px 10px; background:linear-gradient(160deg,color-mix(in srgb,var(--terrain-color) 10%,transparent),#0a131b); }
.end-terrain.won { --terrain-color:#b7f20c; }.end-terrain.lost { --terrain-color:#ff547e; }
[open] .end-terrain { animation:result-arrive .4s ease-out both; animation-delay:var(--delay); }
.end-sector-code { font:10px var(--display); letter-spacing:.16em; color:#8da4b6; }
.end-terrain h3 { font:900 clamp(13px,2vw,19px) var(--display); margin:8px 0; min-height:2.2em; }
.end-outcome { color:var(--terrain-color); font:900 13px var(--display); letter-spacing:.12em; }
.end-duel { display:flex; justify-content:center; align-items:center; gap:20px; margin-top:12px; }
.end-duel span { display:flex; flex-direction:column; }.end-duel small { font-size:9px; color:#94abba; }.end-duel b { font:900 34px var(--display); }.end-duel i { font:10px var(--display); color:#688597; }
.end-terrain p { margin:4px 0; font-size:10px; color:#9fb2c0; }
.end-totals { font-size:10px; color:#8ea9bc; margin:14px 0; }
#endReward { display:flex; justify-content:center; gap:50px; margin:20px 0; padding:16px; background:#ffffff05; border-block:1px solid #ffffff12; }
#endReward span { display:flex; flex-direction:column; gap:5px; }#endReward small { font-size:10px; color:#9eb5c7; letter-spacing:.1em; }#endReward b { color:#ffdc38; font:900 30px var(--display); }
[open] #endReward { animation:result-arrive .45s .45s ease-out both; }
.end-progress { max-width:480px; margin:0 auto 24px; }.end-progress>div:first-child { display:flex; justify-content:space-between; gap:10px; font-size:11px; margin-bottom:8px; }.end-progress strong { color:#12d9f4; }
.end-xp-track { height:7px; background:#263442; overflow:hidden; }.end-xp-track i { display:block; height:100%; background:linear-gradient(90deg,#12d9f4,#b7f20c); transform-origin:left; }[open] #endXpFill { animation:result-xp .85s .55s ease-out both; }
.end-actions { display:flex; justify-content:center; gap:14px; }.end-actions button { min-width:180px; min-height:46px; }
@keyframes result-arrive { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@keyframes result-xp { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media(max-width:600px) { #endDialog { padding:20px 14px; }.end-locations { gap:6px; }.end-duel { gap:8px; }.end-actions button { min-width:0; flex:1; }.end-terrain { padding:12px 5px; } }
@media(prefers-reduced-motion:reduce) { #endDialog[open],[open] .end-terrain,[open] #endReward,[open] #endXpFill { animation:none; } }

/* Full-screen outcome: the verdict leads, the tactical report follows. */
#endDialog { width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:clamp(24px,4vh,56px) 24px; border:0; background:#07111b; isolation:isolate; box-sizing:border-box; }
#endDialog::backdrop { background:#03070c; backdrop-filter:none; }
#endDialog[open] { animation:result-arrive .35s ease-out both; }
.result-scene { position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; background:linear-gradient(180deg,#05101b40,#05101bf5 90%),linear-gradient(90deg,#07111baf,#07111b55),url('assets/home-neon-city.png') center/cover; }
.result-scene::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 18%,#b7f20c32,transparent 62%); }
[data-result="lose"] .result-scene { background:linear-gradient(180deg,#190b24a6,#0b101af7 85%),url('assets/battle-table-balanced.png') center/cover; }
[data-result="lose"] .result-scene::after { background:radial-gradient(ellipse at 50% 20%,#ff315f30,transparent 60%); }
.result-content { max-width:1000px; margin:auto; }
.result-hero { position:relative; padding:12px 0 22px; }
#endDialog .eyebrow { font-size:12px; color:var(--result-color); letter-spacing:.3em; }
#endDialog #endTitle { font-size:clamp(68px,13vw,174px); margin:18px 0 8px; letter-spacing:.035em; line-height:.94; transform:skew(-5deg); text-shadow:4px 5px 0 #07111b,0 0 70px color-mix(in srgb,var(--result-color) 30%,transparent); }
.result-verdict { font:900 clamp(16px,2.2vw,26px) var(--display); letter-spacing:.26em; color:#f2f7fa; }
#endText { max-width:760px; margin:18px auto 0; font-size:14px; line-height:1.5; }
.result-bilan { max-width:820px; margin:auto; }
.result-rings { position:absolute; width:70vmin; height:70vmin; left:50%; top:20%; border:1px solid #b7f20c55; border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 0 35px #b7f20c08,0 0 0 80px #b7f20c05; }
[data-result="lose"] .result-rings { border-color:#ff315f60; border-radius:0; width:85vw; height:2px; box-shadow:0 14px #ff315f18,0 -14px #ff315f18; }
.result-streak { position:absolute; top:28%; left:-20%; width:140%; height:2px; background:var(--result-color); transform:rotate(-8deg); opacity:.35; }
#endDialog .end-terrain { padding:12px; background:#09131ddd; }
#endDialog .end-terrain h3 { font-size:18px; min-height:0; margin:6px 0; }
#endDialog .end-sector-code,#endDialog .end-duel small,#endDialog .end-terrain p,#endDialog .end-totals,#endDialog #endReward small { font-size:12px; }
#endDialog .end-duel { margin-top:8px; }
#endDialog #endReward { margin:14px 0; padding:12px; gap:32px; flex-wrap:wrap; }
#endDialog .end-progress { margin-bottom:18px; }
#endDialog .end-progress>div:first-child { font-size:13px; }
#endDialog .end-actions { flex-wrap:wrap; gap:10px; }
#endDialog .end-actions button { min-height:52px; min-width:150px; font-size:16px; }
#endDialog #playAgain { background:var(--result-color); color:#08121c; border-color:var(--result-color); }
#endDialog[open] #endTitle { animation:verdict-impact .8s cubic-bezier(.16,1,.3,1) both; }
#endDialog[data-result="lose"][open] #endTitle { animation:verdict-fall 1s ease-out both; }
#endDialog[open] .result-rings { animation:verdict-wave 1.4s ease-out both; }
#endDialog[open] .result-bilan { animation:result-arrive .6s .8s both; }
#endDialog[open] .end-terrain { animation-delay:calc(.85s + var(--delay)); }
#endDialog[open] #endReward { animation-delay:1.15s; }
#endDialog[open] #endXpFill { animation-delay:1.3s; }
@keyframes verdict-impact { from { opacity:0; transform:scale(1.55) skew(-5deg); } to { opacity:1; transform:scale(1) skew(-5deg); } }
@keyframes verdict-fall { from { opacity:0; transform:translateY(-24px) skew(-5deg); } to { opacity:1; transform:translateY(0) skew(-5deg); } }
@keyframes verdict-wave { from { opacity:0; transform:translate(-50%,-50%) scale(.55); } 30% { opacity:1; } to { opacity:.45; transform:translate(-50%,-50%) scale(1.2); } }
@media(max-height:760px) and (min-width:700px) { #endDialog { padding:18px 24px; } #endDialog #endTitle { font-size:100px; margin:10px 0; } .result-hero { padding:0 0 14px; } #endText { margin-top:10px; } }
@media(max-width:600px) { #endDialog { padding:28px 14px; } #endDialog .end-terrain { padding:10px 5px; } #endDialog .end-terrain h3 { font-size:14px; min-height:2.4em; } .result-verdict { letter-spacing:.12em; } #endDialog .end-actions button { flex:1 1 42%; min-width:0; } #endDialog .end-duel { gap:8px; } }
@media(prefers-reduced-motion:reduce) { #endDialog[open] *,#endDialog[open] { animation:none!important; } }
