Spring
Summer
Fall
Winter
.se-visual{display:flex;flex-direction:column;align-items:center;gap:0; margin-top:-30px;}
.se-stage{position:relative;width:100%;max-width:620px;aspect-ratio:1}
.se-halo{position:absolute;inset:6%;border-radius:50%;background:#f1e6f0}
.se-disc{position:absolute;inset:9%;border-radius:50%;overflow:hidden;background:#7d3b7a}
.se-houses{position:absolute;inset:0}
.se-house{position:absolute;left:50%;top:24%;width:113%;transform:translateX(-50%);filter:drop-shadow(0 30px 30px rgba(61,25,60,.25));opacity:0;animation:se-house 8s ease-in-out infinite;animation-delay:calc(var(--i) * 2s)}
.se-house:first-child{opacity:1;animation-name:se-house-first}
@keyframes se-house{0%{opacity:0}6%,25%{opacity:1}31%,100%{opacity:0}}
@keyframes se-house-first{0%,25%{opacity:1}31%,94%{opacity:0}100%{opacity:1}}
/* Glow: one layer per season, 8s loop, 2s each */
.se-glow{position:absolute;left:30%;top:0%;width:90%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--c) 0%,transparent 75%);opacity:0;animation:se-season 8s ease-in-out infinite,se-breathe 7s ease-in-out infinite;animation-delay:calc(var(--i) * 2s),0s}
.se-glow:first-child{opacity:.45;animation-name:se-season-first,se-breathe}
@keyframes se-season{0%{opacity:0}6%,25%{opacity:.45}31%,100%{opacity:0}}
@keyframes se-season-first{0%,25%{opacity:.45}31%,94%{opacity:0}100%{opacity:.45}}
@keyframes se-breathe{0%,100%{scale:1}50%{scale:1.08}}
/* Season labels: same loop and delays as the glow */
.se-pills{display:flex;justify-content:center;gap:32px;margin-top:-20px}
.se-pill{position:relative;padding:6px 0;font:700 13px/1 'Montserrat',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#8f7a8e;cursor:default;user-select:none;animation:se-pill 8s ease-in-out infinite;animation-delay:calc(var(--i) * 2s)}
.se-pill::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;border-radius:2px;background:#7d3b7a;transform:scaleX(0);animation:se-line 8s ease-in-out infinite;animation-delay:calc(var(--i) * 2s)}
.se-pill:first-child{color:#7d3b7a;animation-name:se-pill-first}
.se-pill:first-child::after{transform:scaleX(1);animation-name:se-line-first}
@keyframes se-pill{0%,31%,100%{color:#8f7a8e}6%,25%{color:#7d3b7a}}
@keyframes se-pill-first{0%,25%{color:#7d3b7a}31%,94%{color:#8f7a8e}100%{color:#7d3b7a}}
@keyframes se-line{0%,31%,100%{transform:scaleX(0)}6%,25%{transform:scaleX(1)}}
@keyframes se-line-first{0%,25%{transform:scaleX(1)}31%,94%{transform:scaleX(0)}100%{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){
.se-glow,.se-pill{animation:none!important}
.se-glow{opacity:0!important}
.se-glow:nth-child(2){opacity:.45!important}
.se-pill,.se-pill::after{animation:none!important}
.se-pill{color:#8f7a8e!important}
.se-pill::after{transform:scaleX(0)!important}
.se-pill:nth-child(2){color:#7d3b7a!important}
.se-pill:nth-child(2)::after{transform:scaleX(1)!important}
.se-house{animation:none!important;opacity:0!important}
.se-house:nth-child(2){opacity:1!important}
}
@media (max-width:1024px){
.se-visual{order:-1}
.se-stage{max-width:440px}
}