.corner-companions{position:fixed;inset:0;z-index:8;pointer-events:none!important;overflow:hidden;contain:layout style;--portrait-width:clamp(460px,39vw,660px);--portrait-opacity:.84;--portrait-bottom:-36px;--bigfoot-left:calc(var(--portrait-width) * -.29);--scorch-right:calc(var(--portrait-width) * -.31)}
.corner-companion{position:absolute;bottom:var(--portrait-bottom);width:var(--portrait-width);height:auto;aspect-ratio:3/2;opacity:0;transform:translateY(85%);transform-origin:50% 100%;transition:opacity .65s ease,transform 1.1s cubic-bezier(.2,.75,.2,1),width .45s ease,left .45s ease,right .45s ease;pointer-events:none!important;filter:drop-shadow(0 7px 12px #0009)}
.corner-bigfoot{left:var(--bigfoot-left)}
.corner-scorch{right:var(--scorch-right)}
.corner-companions.ready.entered:not(.suppressed) .corner-bigfoot{opacity:var(--portrait-opacity);transform:translateY(0)}
.corner-companions.ready.entered[data-apparition="visible"] .corner-scorch{opacity:var(--portrait-opacity);transform:translateY(0)}
.corner-companions.ready.entered[data-apparition="appearing"] .corner-scorch{animation:scorch-materialize 1.4s ease-out both}
.corner-companions.ready.entered[data-apparition="vanishing"] .corner-scorch{animation:scorch-evaporate 1.1s ease-in-out both}
.corner-companions[data-apparition="gone"] .corner-scorch{opacity:0;transform:translateY(-12px);transition:none}
.corner-smoke{position:absolute;right:calc(var(--scorch-right) - 60px);bottom:-42px;width:calc(var(--portrait-width) + 120px);height:auto;aspect-ratio:4/3;opacity:0;pointer-events:none!important}
.corner-companions.ready.entered.smoke-active .corner-smoke{opacity:1}
.corner-companions.suppressed :is(.corner-companion,.corner-smoke){visibility:hidden;animation-play-state:paused}
@keyframes scorch-materialize{0%,10%{opacity:0;transform:translateY(18px) scale(.97);filter:blur(6px) drop-shadow(0 7px 12px #0009)}38%{opacity:var(--portrait-opacity);transform:translateY(-3px) scale(1.01);filter:blur(0) drop-shadow(0 7px 12px #0009)}100%{opacity:var(--portrait-opacity);transform:translateY(0);filter:drop-shadow(0 7px 12px #0009)}}
@keyframes scorch-evaporate{0%{opacity:var(--portrait-opacity);transform:translateY(0);filter:blur(0) drop-shadow(0 7px 12px #0009)}60%,100%{opacity:0;transform:translateY(-28px) scale(.97);filter:blur(5px)}}
@media(max-width:1100px){.corner-companions{--portrait-width:420px;--portrait-bottom:-35px;--portrait-opacity:.76}}
@media(max-width:700px){.corner-companions{--portrait-width:clamp(270px,75vw,360px);--portrait-bottom:-28px;--portrait-opacity:.66;--bigfoot-left:calc(var(--portrait-width) * -.34);--scorch-right:calc(var(--portrait-width) * -.36)}}
@media(max-height:520px) and (min-aspect-ratio:1/1){.corner-companions{--portrait-width:min(310px,67vh);--portrait-bottom:-28px;--portrait-opacity:.68}}
@media(prefers-reduced-motion:reduce){.corner-companion{transition:none!important;animation:none!important}.corner-companions.ready.entered:not(.suppressed) .corner-bigfoot,.corner-companions.ready.entered[data-apparition="visible"] .corner-scorch{transform:none}.corner-smoke{display:none}}

/* Tuck the remaining companion into the corner so centered footer text stays clear. */
.corner-companions.at-footer{--portrait-width:clamp(140px,22vw,300px)}

/* Match the reserved reading lane; silhouettes live beside the cards. */
.corner-companions { --portrait-width:clamp(210px,24vw,360px); }
@media(max-width:1100px){.corner-companions{--portrait-width:24vw;--bigfoot-left:calc(var(--portrait-width) * -.48);--scorch-right:calc(var(--portrait-width) * -.48)}}
@media(max-width:700px){.corner-companions{--portrait-width:160px;--portrait-bottom:-18px;--bigfoot-left:calc(var(--portrait-width) * -.77);--scorch-right:calc(var(--portrait-width) * -.77);--portrait-opacity:.85}}
.corner-companions.at-footer { --portrait-width:clamp(140px,22vw,300px); }
@media(min-width:1101px){.corner-companions{--bigfoot-left:calc(var(--portrait-width) * -.34);--scorch-right:calc(var(--portrait-width) * -.36)}}
