/* v471 — history losses + fast/smooth interaction polish */
:root{--k471-fast:130ms;--k471-med:180ms;--k471-ease:cubic-bezier(.2,.78,.2,1)}
html{scroll-behavior:smooth}
button,a,[role="button"],input,select{touch-action:manipulation}

/* Keep persistent chrome sharp and compositor-backed during SPA redraws. */
:root[data-visual-style="2040"] .k2040-rail,
:root[data-visual-style="2040"] .korzh-shared-header,
:root[data-visual-style="2040"] .k2040-stage>main{
  backface-visibility:hidden;
  -webkit-font-smoothing:antialiased;
}
:root[data-visual-style="2040"] .k2040-rail,
:root[data-visual-style="2040"] .korzh-shared-header{transform:translateZ(0)}

/* Fast controls without touching roulette/gameplay transform timings. */
:root[data-visual-style="2040"] .k2040-nav button,
:root[data-visual-style="2040"] .k2040-orb,
:root[data-visual-style="2040"] .nav-icon-button,
:root[data-visual-style="2040"] .case-card,
:root[data-visual-style="2040"] [data-case],
:root[data-visual-style="2040"] .collection-toggle,
:root[data-visual-style="2040"] .profile-v81-replay-btn,
:root[data-visual-style="2040"] .profile-history-pagination button{
  transition-duration:var(--k471-fast)!important;
  transition-timing-function:var(--k471-ease)!important;
}
:root[data-visual-style="2040"] button:active,
:root[data-visual-style="2040"] a:active{transition-duration:70ms!important}

/* Small, quick page mount instead of a hard visual cut. */
html[data-visual-style="2040"].k398-case-entering .k2040-stage>main,
:root[data-visual-style="2040"] .k286-soft-mounted{
  animation:k471-page-in var(--k471-med) var(--k471-ease) both;
}
@keyframes k471-page-in{from{opacity:.82;transform:translate3d(0,5px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

/* History: failed upgrades are explicitly red, successful remain green. */
.history-origin-visual.origin-upgrade.is-loss .u-win,
:root[data-theme="hub"] .history-origin-visual.origin-upgrade.is-loss .u-win,
:root[data-visual-style="2040"][data-theme="hub"] .k414-drop-source .origin-upgrade.is-loss .u-win{
  stroke:#ff626a!important;
  filter:drop-shadow(0 0 6px rgba(255,76,88,.24));
}
.history-origin-visual.origin-upgrade.is-win .u-win{stroke:#73d69a!important}
.history-origin-visual.origin-plane.is-loss svg,
:root[data-theme="hub"] .history-origin-visual.origin-plane.is-loss svg{
  stroke:#ff626a!important;
  filter:drop-shadow(0 5px 10px rgba(255,76,88,.20))!important;
}
.profile-history-row.is-loss{--k471-loss:#ff626a;position:relative!important}
.profile-history-row.is-loss::after{
  content:"";position:absolute;inset:5px;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,98,106,.10);
}
.k471-history-outcome{
  display:inline-flex;align-items:center;justify-content:center;margin-top:5px;padding:4px 7px;border-radius:999px;
  font-style:normal;font-size:8px;line-height:1;font-weight:900;letter-spacing:.08em;color:#ff8a90;
  border:1px solid rgba(255,98,106,.28);background:rgba(255,98,106,.08);
}

/* Replay must show the same loss colour as the history row. */
:root[data-theme="hub"] .k233-upgrade-replay.is-lose .k233-upgrade-wheel .k244-upgrade-ring{
  background:conic-gradient(from 0deg,#ff626a 0deg var(--replay-chance-deg),#2a3039 var(--replay-chance-deg) 360deg)!important;
  filter:drop-shadow(0 0 5px rgba(255,98,106,.12))!important;
}
.k471-plane-loss-replay .profile-v229-activity-stage{align-items:center!important}
.k471-plane-crash-mark{
  min-width:190px;min-height:128px;padding:20px;border-radius:20px;display:grid;place-content:center;justify-items:center;gap:8px;
  border:1px solid rgba(255,98,106,.28);background:radial-gradient(circle at 50% 25%,rgba(255,98,106,.15),rgba(22,9,10,.82) 68%);
  box-shadow:0 18px 50px rgba(0,0,0,.30),inset 0 0 34px rgba(255,80,90,.05);
}
.k471-plane-crash-mark span{font-size:11px;font-weight:900;letter-spacing:.11em;color:#ff858b}
.k471-plane-crash-mark strong{font-size:30px;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.k471-plane-loss-replay .profile-v229-activity-meta b,
.k471-plane-loss-replay .profile-v229-activity-meta span{color:#ff7b82!important}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html[data-visual-style="2040"].k398-case-entering .k2040-stage>main,
  :root[data-visual-style="2040"] .k286-soft-mounted{animation:none!important}
}
