/* Desktop characters peek over the search card against the existing hero. */
#search>.wrap { position:relative; }
.character-welcome { position:absolute; right:26px; bottom:100%; z-index:1; width:396px; max-width:calc(100% - 52px); color:var(--theme-ink); }
.character-welcome__stage { --character-height:106px; --character-visible:80px; position:relative; width:100%; height:134px; isolation:isolate; }
.character-welcome__row { position:absolute; inset:auto 0 0; display:flex; align-items:flex-end; justify-content:center; gap:4px; }
.character-welcome__character { position:relative; display:block; flex:none; min-width:44px; height:var(--character-visible); padding:0; border:0; background:transparent; border-radius:8px; color:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.character-welcome__character:focus-visible { outline:2px solid var(--theme-accent); outline-offset:4px; }
.character-welcome__crop { display:block; width:max-content; height:var(--character-visible); clip-path:inset(-24px -4px 0 -4px); }
.character-welcome__image { display:block; height:var(--character-height); width:auto; max-width:none; margin:auto; transform-origin:50% 100%; filter:drop-shadow(0 2px 1px #27162C22); animation:character-idle 9s ease-in-out infinite; animation-delay:calc(var(--character-index,0) * .2s); pointer-events:none; }
.character-welcome__character.is-popping .character-welcome__image { animation:character-pop .55s cubic-bezier(.3,1.4,.5,1); }
.character-welcome__character.is-speaking { z-index:2; }
.character-welcome__bubble { position:absolute; bottom:calc(100% + 7px); left:0; z-index:3; width:max-content; max-width:248px; padding:7px 12px; border:2px solid var(--theme-accent); border-radius:18px; background:var(--theme-surface); color:var(--theme-ink); box-shadow:0 3px 0 var(--theme-gold); font-size:12px; font-weight:800; line-height:1.3; white-space:normal; text-align:center; opacity:0; transform:translate(var(--bubble-offset,0px),8px) scale(.7); transform-origin:var(--bubble-tail,50%) 100%; transition:opacity .18s,transform .24s cubic-bezier(.3,1.4,.5,1); pointer-events:none; }
.character-welcome__bubble::after { content:""; position:absolute; top:100%; left:var(--bubble-tail,50%); margin-left:-6px; border:6px solid transparent; border-top-color:var(--theme-accent); }
.character-welcome__character.is-speaking .character-welcome__bubble { opacity:1; transform:translate(var(--bubble-offset,0px),0) scale(1); }
.character-welcome__stage[data-visible="false"] .character-welcome__image,
html[data-halloween-motion="paused"] .character-welcome__image { animation:none; }
@keyframes character-idle { 0%,4%,100% { transform:translateY(0); } 2% { transform:translateY(-4px); } }
@keyframes character-pop { 0%,100% { transform:translateY(0) scale(1); } 25% { transform:translateY(0) scale(1.06,.94); } 58% { transform:translateY(-12px) scale(.97,1.04); } }
@media (max-width:767px),(hover:none) and (pointer:coarse) {
  .character-welcome { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .character-welcome__image { animation:none!important; }
  .character-welcome__bubble { transition:none; }
}
