.christmas-greeting{position:fixed;right:20px;bottom:16px;width:min(250px,32vw);z-index:45;pointer-events:none;opacity:0;transform:translateY(28px) scale(.95);transition:opacity .4s ease,transform .4s ease}
.christmas-greeting[hidden]{display:none!important}.christmas-greeting.is-visible{opacity:1;transform:translateY(0) scale(1)}
.christmas-greeting img{display:block;width:100%;height:auto;animation:christmas-bob 2.5s ease-in-out infinite;filter:drop-shadow(3px 5px 0 #17151c30)}
.christmas-speech{position:relative;margin:0 0 16px;padding:14px;background:#ffe663;color:#17151c;border:2px solid #17151c;border-radius:16px;box-shadow:4px 4px 0 #17151c;text-align:center;font:800 16px/1.35 system-ui,sans-serif;animation:christmas-speech .35s ease-out}
.christmas-speech:after{content:'';position:absolute;bottom:-10px;right:40px;width:16px;height:16px;background:#ffe663;border-right:2px solid #17151c;border-bottom:2px solid #17151c;transform:rotate(45deg)}
.christmas-speech.speech-pop{animation:christmas-speech .35s ease-out}
body:has(dialog[open]) .christmas-greeting,body:has([aria-modal=true]) .christmas-greeting{visibility:hidden}
@keyframes christmas-bob{50%{transform:translateY(-6px) rotate(1deg)}}@keyframes christmas-speech{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}
@media(max-width:600px){.christmas-greeting{width:180px;right:12px;bottom:12px}.christmas-speech{font-size:14px;padding:10px}}
@media(prefers-reduced-motion:reduce){.christmas-greeting{transition:none;transform:none}.christmas-greeting img,.christmas-speech,.christmas-speech.speech-pop{animation:none}}
