|
260 | 260 | .reveal.visible .social-link, .reveal.visible .fact { animation: chipIn 0.6s cubic-bezier(0.34, 1.6, 0.64, 1) backwards; animation-delay: calc(0.5s + var(--ci, 0) * 120ms); } |
261 | 261 | @media (prefers-reduced-motion: reduce) { .hero-tag, .social-link, .fact { animation: none !important; } .g-sway { transform: none; } } |
262 | 262 |
|
| 263 | + |
| 264 | +/* rain cloud click cycle: soft flash, plants perk up, lingering dew, a pale rainbow that fades away */ |
| 265 | +.g-cloud.g-flash { animation: gCloudGlow 1.1s ease-out; } |
| 266 | +.g-cloud.g-flash .cl-body { animation: gCloudDim 1.1s ease-out; } |
| 267 | +@keyframes gCloudGlow { 0%, 100% { filter: drop-shadow(0 4px 6px rgba(120, 140, 170, 0.16)); } 35% { filter: drop-shadow(0 0 16px rgba(255, 246, 214, 0.95)); } } |
| 268 | +@keyframes gCloudDim { 35% { fill: #cdd7ea; stroke: #8fa8cf; } } |
| 269 | +.g-plant.g-perk .g-life { animation: gPerk 2.6s ease-in-out; } |
| 270 | +.g-plant.g-perk .g-head { transform-box: fill-box; transform-origin: 50% 60%; animation: gOpen 2.6s ease-in-out; } |
| 271 | +@keyframes gPerk { 0%, 100% { transform: none; } 35% { transform: translateY(-4px) scale(1.05, 1.09); } } |
| 272 | +@keyframes gOpen { 0%, 100% { transform: scale(1); } 35%, 60% { transform: scale(1.14); } } |
| 273 | +.g-dew { width: 5px; height: 6px; margin: -3px 0 0 -2.5px; border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; background: radial-gradient(circle at 35% 30%, #fff 0 22%, rgba(190, 228, 246, 0.85) 45%, rgba(130, 186, 224, 0.5)); box-shadow: 0 1px 2px rgba(110, 160, 200, 0.3); opacity: 0; animation: gDew 6.2s ease-in-out forwards; } |
| 274 | +@keyframes gDew { 0% { opacity: 0; transform: scale(0.4); } 12% { opacity: 1; transform: scale(1); } 70% { opacity: 0.9; } 100% { opacity: 0; transform: translateY(5px) scale(0.8); } } |
| 275 | +.g-rainbow { position: absolute; bottom: 24px; z-index: 0; pointer-events: none; opacity: 0; filter: blur(2.5px); animation: gRainbow 7.6s ease-in-out forwards; |
| 276 | + background: radial-gradient(ellipse 50% 100% at 50% 100%, transparent 0 56%, rgba(247, 156, 175, 0.5) 59%, rgba(250, 190, 150, 0.5) 62%, rgba(252, 232, 150, 0.5) 65%, rgba(190, 226, 170, 0.5) 68%, rgba(160, 204, 238, 0.5) 71%, rgba(196, 174, 232, 0.5) 74%, transparent 78%); |
| 277 | + -webkit-mask-image: linear-gradient(transparent 0, #000 35%); mask-image: linear-gradient(transparent 0, #000 35%); } |
| 278 | +@keyframes gRainbow { 0% { opacity: 0; } 25%, 65% { opacity: 0.85; } 100% { opacity: 0; } } |
| 279 | +@media (prefers-reduced-motion: reduce) { .g-cloud.g-flash, .g-cloud.g-flash .cl-body, .g-plant.g-perk .g-life, .g-plant.g-perk .g-head { animation: none; } .g-rainbow { animation-duration: 7.6s; filter: none; } } |
0 commit comments