/* An outcome settles immediately; only its presentation takes a breath. */
.result-transition{position:absolute;inset:0;z-index:24;display:grid;place-items:center;pointer-events:auto;background:transparent;animation:result-veil 1.2s ease both;border-radius:inherit;overflow:hidden}
.result-transition[hidden],.outfit-intro[hidden]{display:none}
.result-transition[data-kind=defeat]{animation-duration:.9s}
.result-transition-message{display:grid;justify-items:center;gap:5px;padding:18px 24px;color:#654b3c;text-align:center;background:#fff8e9ed;border:2px solid #b69876;border-radius:18px;box-shadow:0 5px 0 #72533e21;max-width:calc(100% - 34px);opacity:0;animation:result-caption 1.2s ease both}
.result-transition-message strong{font-size:clamp(20px,4vw,28px);line-height:1.2}.result-transition-message small{font-size:12px}.result-transition-mark{color:#dba151;font-size:32px;line-height:1}
.result-transition[data-kind=defeat] .result-transition-message{animation-duration:.9s;background:#f2eafaed}
.result-transition[data-kind=defeat] .result-transition-mark{color:#ab91c1}
.game-shell[data-result-phase] .compact-hud-left,.game-shell[data-result-phase] .compact-hud-right,.game-shell[data-result-phase] .battle-toolbar,.game-shell[data-result-phase] #fire-btn,.game-shell[data-result-phase] #joystick,.game-shell[data-result-phase] .compact-hud-help,.game-shell[data-result-phase] .outfit-intro{opacity:0;pointer-events:none;transition:opacity .22s}
.campaign-result.result-entering{animation:result-card-in .32s cubic-bezier(.2,.8,.2,1) both}
.combat-failure.result-entering{animation:result-opacity-in .25s ease both}
.combat-failure.result-entering .combat-failure-card{animation:failure-card-in .3s ease both}
.honor-icon{display:block;width:42px;height:42px;flex:none;overflow:hidden;object-fit:contain}
.result-honor{display:flex;align-items:center;justify-content:center;gap:10px;background:#f7ead1;border:1px solid #d5b891;border-radius:10px;padding:4px 10px;margin:0 0 9px;text-align:left}
.result-honor span{display:grid;gap:2px}.result-honor small{font-size:10px;color:#957656}.result-honor strong{font-size:14px}.result-honor .honor-icon{width:34px;height:34px}
.honor-collection{margin-top:24px}.honor-collection>p{font-size:13px;line-height:1.6}.honor-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.honor-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:16px 6px;background:#fff2d8;border:1px solid #d6bd98;border-radius:12px}.honor-item .honor-icon{width:70px;height:70px}.honor-item strong{font-size:12px;line-height:1.35}.honor-item small{font-size:11px}.honor-item.unearned{background:#efede6;color:#80786c}.honor-item.unearned .honor-icon{filter:grayscale(1);opacity:.45}.honor-note{color:#967c63}
.outfit-intro{position:absolute;right:78px;top:95px;z-index:12;max-width:220px;display:flex;align-items:center;gap:7px;padding:8px;background:#fff6df;border:2px solid #b59b7b;border-radius:12px;color:#72573f;box-shadow:0 3px #765b3826}.outfit-intro img{height:42px;width:42px;object-fit:contain}.outfit-intro span{display:grid;gap:4px}.outfit-intro strong{font-size:12px}.outfit-intro a{font-size:11px;color:inherit}.outfit-intro button{border:0;background:none;min-width:32px;min-height:44px;font-size:20px;color:inherit;padding:0}
@keyframes result-veil{0%,32%{background:#57443800}100%{background:#57443842}}
@keyframes result-caption{0%,20%{opacity:0;transform:translateY(10px) scale(.97)}40%,87%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-4px)}}
@keyframes result-card-in{from{opacity:0;transform:translate(-50%,calc(-50% + 14px)) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes result-opacity-in{from{opacity:0}to{opacity:1}}
@keyframes failure-card-in{from{transform:translateY(10px)}to{transform:translateY(0)}}
.result-transition.reduced-motion{animation:result-opacity-in .18s ease both;background:#57443820}.result-transition.reduced-motion .result-transition-message{animation:none;opacity:0}
@media(max-width:730px){.honor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.honor-item .honor-icon{width:60px;height:60px}.outfit-intro{right:76px;top:100px;max-width:calc(100% - 150px);padding:6px;gap:3px}.outfit-intro img{width:30px;height:36px}.outfit-intro strong{font-size:11px}.outfit-intro a{font-size:10px}.outfit-intro button{min-width:25px}.result-honor{padding:3px 7px;margin-bottom:7px}}
@media(max-height:500px){.outfit-intro{top:72px;right:78px}.result-honor{padding:2px 8px;margin-bottom:5px}.result-honor .honor-icon{width:26px;height:26px}.result-honor span{display:flex;align-items:center;gap:6px}.result-honor strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.result-transition,.result-transition-message,.campaign-result.result-entering,.combat-failure.result-entering,.combat-failure.result-entering .combat-failure-card{animation:result-opacity-in .18s ease both;transform:none}.campaign-result.result-entering{transform:translate(-50%,-50%)}.result-transition-message{opacity:0;animation:none}.game-shell[data-result-phase] .compact-hud-left,.game-shell[data-result-phase] .compact-hud-right,.game-shell[data-result-phase] .battle-toolbar{transition:none}}
/* Keep the one-time outfit tip easy to dismiss on touch screens. */
.outfit-intro button{min-width:44px;min-height:44px}
.outfit-intro a{display:flex;align-items:center;min-height:44px;font-size:11px}
