.cp-noel{position:fixed;inset:0;z-index:80;overflow:hidden;pointer-events:none;contain:strict}
.cp-noel-flake{position:absolute;top:-20px;left:var(--x);color:white;text-shadow:0 0 3px #766457;font-size:var(--size);opacity:.75;animation:cp-noel-fall var(--time) linear var(--delay) infinite}
.cp-noel-sleigh{position:absolute;top:clamp(96px,17vh,170px);left:0;display:flex;align-items:center;gap:.1em;white-space:nowrap;font-size:clamp(24px,4vw,44px);transform:translateX(105vw);animation:cp-noel-fly 5s ease-in-out .45s 1 both}
.cp-noel-wave{display:inline-block;font-size:.64em;transform-origin:bottom center;animation:cp-noel-wave .48s ease-in-out alternate 9}
.cp-noel-greeting{position:absolute;top:100%;left:0;background:#a71829;color:white;border-radius:18px;padding:.25em .7em;font:700 clamp(11px,1.6vw,15px)/1.4 system-ui,sans-serif}
@keyframes cp-noel-fall{to{transform:translate3d(22px,105vh,0);opacity:.24}}
@keyframes cp-noel-fly{0%{transform:translate3d(105vw,20px,0)} 48%{transform:translate3d(calc(51vw - 50%),-14px,0)} 100%{transform:translate3d(-120%,-40px,0)}}
@keyframes cp-noel-wave{from{transform:rotate(-17deg)}to{transform:rotate(19deg)}}
@media(prefers-reduced-motion:reduce){.cp-noel{display:none}}
