.hero .hero-art .phone .menu-season-stage{display:block;position:relative;isolation:isolate;overflow:visible;flex:0 0 94px;height:94px;pointer-events:none;z-index:5}
.season-character{position:absolute;left:7px;bottom:4px;width:92px;height:86px;display:block;padding:0;border:0;border-radius:18px;background:transparent;pointer-events:auto;cursor:pointer;animation:character-bob 4.4s ease-in-out infinite;isolation:isolate;touch-action:manipulation}
.season-character img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 4px #0002);transition:opacity .2s ease;pointer-events:none}.character-idle{opacity:1}.character-wave{opacity:0}
.season-character:hover .character-idle,.season-character:focus-visible .character-idle,.season-character.greeting .character-idle{opacity:0}.season-character:hover .character-wave,.season-character:focus-visible .character-wave,.season-character.greeting .character-wave{opacity:1;animation:character-greet .7s ease-in-out infinite;transform-origin:50% 85%}.season-character:focus-visible{outline:2px solid var(--season);outline-offset:2px}.hero-art[data-mode=dark] .season-character:focus-visible{outline-color:var(--dark-accent)}
@keyframes character-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes character-greet{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
.phone .season-effects{position:absolute;inset:30px 0 0;overflow:hidden;pointer-events:none;z-index:4;border-radius:0 0 28px 28px}.season-effects i{position:absolute;top:-22px;left:var(--x);width:7px;height:10px;border-radius:85% 20% 80% 20%;background:#e7a9bb;opacity:0;animation:season-fall var(--duration) linear var(--delay) infinite;will-change:transform}
@keyframes season-fall{0%{transform:translate(0,-20px) rotate(0);opacity:0}10%{opacity:.55}85%{opacity:.4}100%{transform:translate(var(--sway),650px) rotate(280deg);opacity:0}}
[data-season=spring] .season-effects i:nth-child(3n){background:#fff1f5;width:6px;height:8px}
[data-season=summer] .season-effects i{width:4px;height:4px;background:#e9b248;border-radius:50%;box-shadow:0 0 6px #f8cd6880;animation-name:summer-glint}
@keyframes summer-glint{0%,100%{transform:translateY(580px) scale(.4);opacity:0}45%{opacity:.65}85%{transform:translate(var(--sway),40px) scale(1);opacity:0}}
[data-season=autumn] .season-effects i{width:10px;height:13px;background:#bd6c29;clip-path:polygon(50% 0,65% 25%,93% 15%,82% 45%,100% 60%,65% 77%,52% 100%,42% 76%,9% 62%,25% 43%,8% 17%,38% 25%);border-radius:0}[data-season=autumn] .season-effects i:nth-child(3n){background:#d39b3c}
[data-season=winter] .season-effects i,[data-season=christmas] .season-effects i{width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 3px #85bdd8;animation-duration:calc(var(--duration) + 2s)}[data-season=winter] .season-effects i:nth-child(4n),[data-season=christmas] .season-effects i:nth-child(4n){width:8px;height:8px;clip-path:polygon(45% 0,55% 0,55% 35%,83% 16%,89% 25%,62% 45%,100% 45%,100% 55%,62% 55%,89% 78%,83% 85%,55% 65%,55% 100%,45% 100%,45% 65%,17% 85%,10% 78%,37% 55%,0 55%,0 45%,37% 45%,10% 25%,17% 16%,45% 35%);border-radius:0}
[data-season=nowruz] .season-effects i{background:#8eae51;width:5px;height:9px;border-radius:2px}[data-season=nowruz] .season-effects i:nth-child(2n){background:#e5b2be;border-radius:80% 10% 70% 20%}
[data-season=halloween] .season-effects i{width:13px;height:7px;background:#914bc1;border-radius:0;clip-path:polygon(0 0,25% 25%,38% 10%,50% 38%,62% 10%,75% 25%,100% 0,84% 74%,63% 66%,50% 100%,37% 66%,16% 74%)}[data-season=halloween] .season-effects i:nth-child(2n){width:4px;height:4px;background:#ee9b36;clip-path:none;border-radius:50%}
[data-season=valentine] .season-effects i{width:9px;height:9px;background:#d65c81;clip-path:polygon(50% 20%,65% 0,85% 0,100% 20%,100% 43%,50% 100%,0 43%,0 20%,15% 0,35% 0);border-radius:0}
@media(prefers-reduced-motion:reduce){.phone .season-effects{display:none}.season-character,.season-character .character-wave{animation:none!important}.season-character img{transition:none}}
