.ge-star-field{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ge-star{position:absolute;background:white;border-radius:50%;animation:geTwinkle linear infinite}
@keyframes geTwinkle{0%,100%{opacity:.15;transform:scale(1)}50%{opacity:.55;transform:scale(1.4)}}

.ge-cloud{position:fixed;background:white;border-radius:50px;opacity:.85;z-index:0;pointer-events:none;animation:geCloudDrift linear infinite;box-shadow:0 4px 20px rgba(255,255,255,.4)}
.ge-cloud::before,.ge-cloud::after{content:'';position:absolute;background:white;border-radius:50%}
.ge-cloud::before{width:60%;height:120%;top:-60%;left:12%}
.ge-cloud::after{width:45%;height:95%;top:-40%;left:48%}
@keyframes geCloudDrift{0%{transform:translateX(-120%)}100%{transform:translateX(110vw)}}

.ge-cute-field{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.ge-cute-float{position:absolute;opacity:.75;animation:geCuteFloat linear infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}
@keyframes geCuteFloat{0%{transform:translateY(110vh) rotate(0) scale(1)}50%{transform:translateY(50vh) rotate(180deg) scale(1.1)}100%{transform:translateY(-10vh) rotate(360deg) scale(1)}}

.rgb-led{position:relative;background:linear-gradient(90deg,#ff004c,#ff8a00,#ffe600,#00f5d4,#00bbf9,#c77dff,#ff004c);-webkit-background-clip:text;-webkit-text-fill-color:transparent !important;color:transparent !important;will-change:filter;animation:rgbHue 10s linear infinite;filter:drop-shadow(0 0 4px rgba(255,255,255,0.22)) drop-shadow(0 0 10px rgba(78,205,196,0.18))}
.rgb-led::after{content:attr(data-text);position:absolute;inset:0;background:inherit;-webkit-background-clip:text;-webkit-text-fill-color:transparent !important;color:transparent !important;filter:blur(8px);opacity:.65;pointer-events:none;animation:rgbHue 10s linear infinite}
@keyframes rgbHue{0%{filter:hue-rotate(0deg) saturate(1.2)}100%{filter:hue-rotate(360deg) saturate(1.2)}}
@media (prefers-reduced-motion: reduce){.rgb-led,.rgb-led::after{animation:none}}
