/* Presentation only: no HUD, grid, card sizing or control placement overrides. */
.red-presentation{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:7;contain:strict}
.red-presentation>canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.game-overlay.red-presence{background-image:radial-gradient(ellipse at 50% 90%,#650e2526,transparent 70%)}
.upgrade-card.red{--red-accent:#d4b481;border-color:#ba455c;box-shadow:0 0 20px #a11b373b,inset 0 0 20px #b6423210;animation:red-aura 4.6s ease-in-out infinite}
.upgrade-card.red::before{inset:0;background:linear-gradient(115deg,transparent 25%,#cda4600b 42%,#efc0821c 48%,transparent 58%);transform:translateX(-100%);animation:red-travel 6s ease-in-out infinite;z-index:-1}
.upgrade-card.red::after{content:'';inset:5px;border:1px solid #be80582b;border-radius:2px;background:linear-gradient(90deg,transparent,var(--red-accent),transparent) top center/45% 1px no-repeat;opacity:.65;animation:none}
.upgrade-card.red .rarity{color:#ef9f9f}.upgrade-card.red .upgrade-icon{color:var(--red-accent);text-shadow:0 0 20px #c9424e66}
.upgrade-card.red.red-reveal{animation:red-arrival .65s cubic-bezier(.2,.7,.2,1) both,red-aura 4.6s .65s ease-in-out infinite}
.upgrade-card.red.red-acquired{pointer-events:none;transform-origin:center;z-index:1;animation:red-claim .82s cubic-bezier(.16,.72,.28,1) both;will-change:transform,opacity}
.upgrade-card.red.red-acquired::before{animation:red-travel .65s ease-out both}
@keyframes red-arrival{0%{opacity:.35;box-shadow:0 0 0 #8e123500,inset 0 0 0 #bd875900}30%{opacity:1;box-shadow:0 0 34px #9c173777,inset 0 0 36px #bd875922}100%{opacity:1;box-shadow:0 0 20px #a11b373b,inset 0 0 20px #b6423210}}
@keyframes red-aura{0%,100%{border-color:#ae3b53;box-shadow:0 0 16px #a11b3733,inset 0 0 20px #b6423210}50%{border-color:#cc796c;box-shadow:0 0 24px #9d1a4144,inset 0 0 24px #b6423218}}
@keyframes red-travel{0%,20%{transform:translateX(-110%)}75%,100%{transform:translateX(110%)}}
@keyframes red-claim{0%{opacity:1;transform:scale(1);box-shadow:0 0 26px #be2b4966}30%{opacity:1;transform:scale(1.075);border-color:var(--red-accent);box-shadow:0 0 45px #9c173780,inset 0 0 38px #c4996020}58%{opacity:.95;transform:scale(1.045)}100%{opacity:0;transform:scale(1.015)}}
@keyframes red-claim-quiet{0%,45%{opacity:1}100%{opacity:0}}
[data-presentation-quality=low] .upgrade-card.red,[data-presentation-quality=low] .upgrade-card.red::before{animation:none}
[data-presentation-quality=low] .upgrade-card.red.red-reveal{animation:red-arrival .5s ease-out both}
[data-presentation-quality=low] .upgrade-card.red.red-acquired{animation:red-claim-quiet .6s both}
@media(max-width:600px){.upgrade-card.red.red-acquired{animation-name:red-claim-mobile}.upgrade-card.red{box-shadow:0 0 12px #a11b3733}}
@keyframes red-claim-mobile{0%{opacity:1;transform:scale(1)}30%{opacity:1;transform:scale(1.05);border-color:var(--red-accent)}65%{opacity:.9}100%{opacity:0;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.upgrade-card.red,.upgrade-card.red::before{animation:none!important}.upgrade-card.red.red-acquired{animation:red-claim-quiet .4s both!important}}

/* Ominous Mystery treatment preserves the existing notification geometry. */
.omen-negative{background:linear-gradient(120deg,#100d19f5,#29121ef2);border-color:#92556f;box-shadow:0 8px 32px #0a031cbb}.omen-negative .omen-sigil,.omen-negative .omen-kicker{color:#d690aa}.omen-negative strong{color:#f2c5d5}
