/* A small illustrated stage, never a full-page overlay. */
.cp-season-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none!important;z-index:2;contain:layout paint;color:var(--cp-season-accent)}
.cp-season-scene *{pointer-events:none!important}
.cp-v10__hero>.cp-season-scene{z-index:2;opacity:.8;mask-image:linear-gradient(#000 0 50%,transparent 90%)}
.cp-season-scene__glow{position:absolute;inset:-20%;background:radial-gradient(ellipse at 60% 25%,color-mix(in srgb,var(--cp-season-accent) 13%,transparent),transparent 60%)}
.cp-season-snow{position:absolute;top:-15px;left:var(--x);width:var(--size);height:var(--size);border-radius:50%;background:#fff;box-shadow:0 0 5px #fff5;opacity:.65;animation:cp-snow-fall var(--duration) linear infinite;animation-delay:var(--delay)}
.cp-season-spider{position:absolute;top:0;left:4%;width:40px;color:#e7b28a;transform-origin:50% 0;animation:cp-spider-sway 9s ease-in-out infinite;animation-delay:calc(var(--i)*-2s)}
.cp-season-spider:nth-of-type(3){left:auto;right:5%;width:31px;animation-duration:12s}
.cp-season-spider:nth-of-type(4){left:auto;right:14%;width:23px;animation-duration:11s}
.cp-season-spider__thread{display:block;margin:auto;width:1px;height:95px;background:linear-gradient(#ffffff08,#dfba9090)}
.cp-season-spider:nth-of-type(3) .cp-season-spider__thread{height:145px}
.cp-season-spider:nth-of-type(4) .cp-season-spider__thread{height:52px}
.cp-season-spider svg{display:block;width:100%;height:auto;overflow:visible}
.cp-season-starburst{position:absolute;top:9%;left:8%;width:110px;opacity:.4;animation:cp-star-bloom 10s ease-in-out infinite;animation-delay:calc(var(--i)*-3s)}
.cp-season-starburst:nth-of-type(3){left:auto;right:6%;top:55%;width:90px}.cp-season-starburst:nth-of-type(4){left:40%;top:4%;width:60px}
.cp-season-starburst svg{width:100%;height:auto}
.cp-season-orbit{position:absolute;inset:10%;border:1px solid #e8ca7940;border-radius:50%;transform:rotate(-28deg) scaleY(.68);box-shadow:0 0 0 20px #e8ca7905,0 0 0 40px #e8ca7905}
.cp-season-sheen{position:absolute;inset:-60%;background:linear-gradient(105deg,transparent 44%,#f4d68c12 49%,#f4d68c25 50%,transparent 56%);animation:cp-gold-sweep 15s ease-in-out infinite}
.cp-season-sun{position:absolute;right:-50px;top:-50px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,#f3c66d12 0 34%,#f3c66d55 35% 35.5%,transparent 36% 49%,#f3c66d33 50% 50.5%,transparent 51% 69%,#f3c66d22 70% 70.5%,transparent 71%)}
.cp-season-wave{position:absolute;left:-30%;bottom:-75%;width:160%;height:95%;border:1px solid #a3e4e54d;border-radius:43%;background:#86d4db0a;animation:cp-tidal-drift 20s linear infinite}
.cp-season-wave--back{bottom:-82%;animation-duration:28s;animation-direction:reverse;border-color:#d6c78655}
.cp-season-petal{position:absolute;left:var(--x);top:12%;width:14px;height:22px;background:#e6b5bd;opacity:.25;border-radius:70% 0 70% 0;transform:rotate(calc(var(--i)*37deg));animation:cp-petal-drift 16s ease-in-out infinite;animation-delay:var(--delay)}
.cp-season-petal:nth-of-type(3n){top:60%;background:#c6d4a3}.cp-season-petal:nth-of-type(2n){top:80%;width:9px;height:15px}
.cp-season-scene--easter .cp-season-petal{width:19px;height:27px;border-radius:50% 50% 44% 44%;border:1px solid #eed7bb99;background:repeating-linear-gradient(25deg,#eed7bb10 0 5px,#eed7bb60 6px 7px);opacity:.5}
.cp-season-scene--valentines .cp-season-petal{border-radius:2px 9px 2px 9px;background:#e6a0ae;opacity:.2}
.cp-season-frieze--lights{position:relative;gap:0;height:48px;background:radial-gradient(ellipse at top,#d4ae5818,transparent 75%),#0d3025}
.cp-season-frieze--lights:before{content:"";position:absolute;inset:4px -2% auto;height:15px;border-bottom:1px solid #a08a53;border-radius:0 0 50% 50%}
.cp-season-frieze--lights>span{position:relative;width:10px;flex-basis:10px;height:19px;border-radius:4px 4px 8px 8px;background:#f7d68d;box-shadow:0 0 9px #f5ce89aa,0 0 20px #f5ce8925;opacity:.9;transform:none}
.cp-season-frieze--lights>span:before{content:"";position:absolute;top:-5px;width:8px;height:6px;background:#b69c64;border-radius:2px}
.cp-season-frieze--lights>span:nth-child(3n){background:#d2e6d1;box-shadow:0 0 10px #d2e6d199}
.cp-season-frieze--lights>span:nth-child(4n){background:#efaaa3;box-shadow:0 0 10px #efaaa399}
.cp-seasonal--motion .cp-season-frieze--lights>span{animation:cp-light-glow 4.8s ease-in-out infinite;animation-delay:calc(var(--cp-ornament)*-.7s)}
.cp-seasonal-ribbon{flex-wrap:wrap}.cp-season-motion-button{font:inherit;font-size:11px;line-height:1.4;min-height:32px;padding:5px 10px;border:1px solid currentColor;border-radius:3px;color:inherit;background:transparent;cursor:pointer;opacity:.85;white-space:nowrap}.cp-season-motion-button:hover{opacity:1}.cp-season-motion-button:focus-visible{outline:2px solid currentColor;outline-offset:3px}.cp-season-motion-button[hidden]{display:none}
.cp-seasonal--motion .cp-season-story__art .cp-season-story__seal{animation:cp-season-breathe 8s ease-in-out infinite}
/* Default to still artwork. JavaScript only grants motion when all gates agree. */
.cp-season-scene *,.cp-seasonal--motion .cp-season-frieze span,.cp-seasonal--motion .cp-season-story__seal{animation-play-state:paused!important}
.cp-season-fx-running .cp-season-scene.is-in-view *,.cp-season-fx-running .cp-season-frieze.is-in-view span,.cp-season-fx-running .cp-season-story__art.is-in-view .cp-season-story__seal{animation-play-state:running!important}
@keyframes cp-snow-fall{0%{transform:translate3d(0,-15px,0);opacity:0}8%{opacity:.65}90%{opacity:.65}100%{transform:translate3d(45px,650px,0);opacity:0}}
@keyframes cp-spider-sway{0%,100%{transform:rotate(-4deg) translateY(-18px)}50%{transform:rotate(5deg) translateY(14px)}}
@keyframes cp-star-bloom{0%,100%{transform:scale(.72) rotate(-5deg);opacity:.2}50%{transform:scale(1.05) rotate(5deg);opacity:.55}}
@keyframes cp-gold-sweep{0%,30%{transform:translateX(-28%);opacity:.1}60%{opacity:.6}100%{transform:translateX(28%);opacity:.1}}
@keyframes cp-tidal-drift{to{transform:rotate(360deg)}}
@keyframes cp-petal-drift{0%,100%{translate:0 0;rotate:-7deg}50%{translate:14px -18px;rotate:18deg}}
@keyframes cp-light-glow{0%,100%{opacity:.65;filter:brightness(.85)}50%{opacity:1;filter:brightness(1.2)}}
@media(max-width:749px){.cp-season-spider{width:28px;left:3%}.cp-season-spider__thread{height:55px}.cp-season-spider:nth-of-type(3) .cp-season-spider__thread{height:95px}.cp-season-spider:nth-of-type(4){display:none}.cp-season-starburst{width:80px}.cp-season-snow:nth-of-type(n+12){display:none}.cp-season-frieze--lights{height:38px}.cp-season-frieze--lights>span{flex-basis:8px;width:8px;height:15px}.cp-season-motion-button{font-size:10px;min-height:30px}.cp-seasonal-ribbon p{flex:1 1 190px}.cp-seasonal-ribbon{gap:6px 12px}}
@media(prefers-reduced-motion:reduce){.cp-season-scene *,.cp-season-frieze *,.cp-season-story__seal{animation:none!important;transition:none!important}.cp-season-snow{top:calc(var(--i)*5%)}.cp-season-motion-button{display:none!important}}

.cp-season-motion-button--floating{position:fixed;bottom:20px;left:14px;z-index:30;background:var(--cp-season-deep);color:var(--cp-season-cream);box-shadow:0 3px 12px #0002}
