@duskmoon-dev/css-art 0.2.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -2291,5 +2291,899 @@
2291
2291
  }
2292
2292
  }
2293
2293
 
2294
+ @layer css-art {
2295
+ /* ── Keyframes ── */
2296
+
2297
+ @keyframes art-flower-animation-moving-flower-1 {
2298
+ 0%, 100% { transform: rotate(3deg); }
2299
+ 50% { transform: rotate(0deg); }
2300
+ }
2301
+
2302
+ @keyframes art-flower-animation-moving-flower-2 {
2303
+ 0%, 100% { transform: rotate(20deg); }
2304
+ 50% { transform: rotate(23deg); }
2305
+ }
2306
+
2307
+ @keyframes art-flower-animation-moving-flower-3 {
2308
+ 0%, 100% { transform: rotate(-15deg); }
2309
+ 50% { transform: rotate(-18deg); }
2310
+ }
2311
+
2312
+ @keyframes art-flower-animation-blooming-leaf-right {
2313
+ 0% { transform-origin: left; transform: rotate(70deg) rotateY(30deg) scaleX(0); }
2314
+ }
2315
+
2316
+ @keyframes art-flower-animation-blooming-leaf-left {
2317
+ 0% { transform-origin: right; transform: rotate(-70deg) rotateY(30deg) scaleX(0); }
2318
+ }
2319
+
2320
+ @keyframes art-flower-animation-blooming-flower {
2321
+ 0% { transform: scale(0); opacity: 0; }
2322
+ }
2323
+
2324
+ @keyframes art-flower-animation-light-ans {
2325
+ 0% { opacity: 0; transform: translateY(0); }
2326
+ 25% { opacity: 1; }
2327
+ 100% { opacity: 0; transform: translateY(-15em) translateX(3em); }
2328
+ }
2329
+
2330
+ @keyframes art-flower-animation-grow-flower-tree {
2331
+ 0% { transform: scaleY(0); transform-origin: bottom center; }
2332
+ }
2333
+
2334
+ @keyframes art-flower-animation-grow-ans {
2335
+ 0% { transform: scaleY(0); transform-origin: bottom center; }
2336
+ }
2337
+
2338
+ @keyframes art-flower-animation-moving-grass {
2339
+ 0%, 100% { transform: rotate(-48deg) rotateY(40deg); }
2340
+ 50% { transform: rotate(-50deg) rotateY(40deg); }
2341
+ }
2342
+
2343
+ @keyframes art-flower-animation-moving-grass--2 {
2344
+ 0%, 100% { transform: scale(0.5) rotate(75deg) rotateX(10deg) rotateY(-200deg); }
2345
+ 50% { transform: scale(0.5) rotate(80deg) rotateX(10deg) rotateY(-200deg); }
2346
+ }
2347
+
2348
+ @keyframes art-flower-animation-flower-g-long-ans {
2349
+ 0%, 100% { transform: rotate(-30deg) rotateY(-20deg); }
2350
+ 50% { transform: rotate(-32deg) rotateY(-20deg); }
2351
+ }
2352
+
2353
+ @keyframes art-flower-animation-flower-g-right-ans {
2354
+ 0%, 100% { transform: rotate(20deg); }
2355
+ 50% { transform: rotate(24deg) rotateX(-20deg); }
2356
+ }
2357
+
2358
+ @keyframes art-flower-animation-flower-g-right-ans--2 {
2359
+ 0%, 100% { transform: rotateY(-180deg) rotate(0deg) rotateX(-20deg); }
2360
+ 50% { transform: rotateY(-180deg) rotate(6deg) rotateX(-20deg); }
2361
+ }
2362
+
2363
+ @keyframes art-flower-animation-flower-g-front-ans {
2364
+ 0%, 100% { transform: rotate(-28deg) rotateY(30deg) scale(1.04); }
2365
+ 50% { transform: rotate(-35deg) rotateY(40deg) scale(1.04); }
2366
+ }
2367
+
2368
+ @keyframes art-flower-animation-flower-g-front-leaf-ans {
2369
+ 0% { transform: rotate(10deg) scale(0); }
2370
+ }
2371
+
2372
+ @keyframes art-flower-animation-flower-g-front-leaf-left-ans {
2373
+ 0% { transform: rotateY(-180deg) rotate(5deg) scale(0); }
2374
+ }
2375
+
2376
+ @keyframes art-flower-animation-flower-g-front-leaf-left-ans-2 {
2377
+ 0% { transform: rotateY(-180deg) scale(0); }
2378
+ }
2379
+
2380
+ @keyframes art-flower-animation-flower-g-fr-ans {
2381
+ 0%, 100% { transform: rotate(2deg); }
2382
+ 50% { transform: rotate(4deg); }
2383
+ }
2384
+
2385
+ @keyframes art-flower-animation-flower-g-fr-leaf-ans-1 {
2386
+ 0% { transform-origin: left; transform: rotate(45deg) scale(0); }
2387
+ }
2388
+
2389
+ @keyframes art-flower-animation-flower-g-fr-leaf-ans-5 {
2390
+ 0% { transform-origin: left; transform: rotate(55deg) scale(0); }
2391
+ }
2392
+
2393
+ @keyframes art-flower-animation-flower-g-fr-leaf-ans-6 {
2394
+ 0% { transform-origin: right; transform: rotate(25deg) rotateY(-180deg) scale(0); }
2395
+ }
2396
+
2397
+ @keyframes art-flower-animation-flower-g-fr-leaf-ans-7 {
2398
+ 0% { transform-origin: left; transform: rotate(45deg) scale(0); }
2399
+ }
2400
+
2401
+ @keyframes art-flower-animation-flower-g-fr-leaf-ans-8 {
2402
+ 0% { transform-origin: right; transform: rotate(15deg) rotateY(-180deg) scale(0); }
2403
+ }
2404
+
2405
+ @keyframes art-flower-animation-growing-grass-1 {
2406
+ 0% { transform-origin: bottom left; transform: rotate(-20deg) scale(0); }
2407
+ }
2408
+ @keyframes art-flower-animation-growing-grass-2 {
2409
+ 0% { transform-origin: bottom right; transform: rotate(10deg) scale(0); }
2410
+ }
2411
+ @keyframes art-flower-animation-growing-grass-3 {
2412
+ 0% { transform-origin: bottom left; transform: rotate(-18deg) rotateX(-20deg) scale(0); }
2413
+ }
2414
+ @keyframes art-flower-animation-growing-grass-4 {
2415
+ 0% { transform-origin: bottom right; transform: rotate(2deg) scale(0); }
2416
+ }
2417
+ @keyframes art-flower-animation-growing-grass-5 {
2418
+ 0% { transform-origin: bottom left; transform: rotate(-24deg) rotateX(-20deg) scale(0); }
2419
+ }
2420
+ @keyframes art-flower-animation-growing-grass-6 {
2421
+ 0% { transform-origin: bottom right; transform: rotate(10deg) scale(0); }
2422
+ }
2423
+ @keyframes art-flower-animation-growing-grass-7 {
2424
+ 0% { transform-origin: bottom left; transform: rotate(-10deg) scale(0); }
2425
+ }
2426
+ @keyframes art-flower-animation-growing-grass-8 {
2427
+ 0% { transform-origin: bottom right; transform: rotate(10deg) scale(0); }
2428
+ }
2429
+
2430
+ /* Bubble float-up (replaces original JS animation) */
2431
+ @keyframes art-flower-animation-bubble {
2432
+ 0% { transform: translateY(0) scale(0.3); opacity: 0; }
2433
+ 10% { opacity: 1; }
2434
+ 80% { opacity: 0.6; }
2435
+ 100% { transform: translateY(-70em) scale(1); opacity: 0; }
2436
+ }
2437
+
2438
+ /* ── Root container ── */
2439
+
2440
+ .art-flower-animation {
2441
+ --art-flower-animation-size: 600px;
2442
+ --art-flower-animation-bg: #010113;
2443
+
2444
+ position: relative;
2445
+ font-size: calc(var(--art-flower-animation-size) / 100);
2446
+ width: var(--art-flower-animation-size);
2447
+ height: calc(var(--art-flower-animation-size) * 1.1);
2448
+ overflow: hidden;
2449
+ background-color: var(--art-flower-animation-bg);
2450
+ perspective: 1000px;
2451
+ display: flex;
2452
+ align-items: flex-end;
2453
+ justify-content: center;
2454
+ }
2455
+
2456
+ .art-flower-animation-sm { --art-flower-animation-size: 300px; }
2457
+ .art-flower-animation-lg { --art-flower-animation-size: 900px; }
2458
+
2459
+ /* ── Night sky background ── */
2460
+
2461
+ .art-flower-animation .night {
2462
+ position: absolute;
2463
+ left: 50%;
2464
+ top: 0;
2465
+ transform: translateX(-50%);
2466
+ width: 100%;
2467
+ height: 100%;
2468
+ filter: blur(0.1em);
2469
+ background-image:
2470
+ radial-gradient(ellipse at top, transparent 0%, var(--art-flower-animation-bg)),
2471
+ radial-gradient(ellipse at bottom, var(--art-flower-animation-bg), rgba(145, 233, 255, 0.2)),
2472
+ repeating-linear-gradient(220deg, rgb(0, 0, 0) 0px, rgb(0, 0, 0) 19px, transparent 19px, transparent 22px),
2473
+ repeating-linear-gradient(189deg, rgb(0, 0, 0) 0px, rgb(0, 0, 0) 19px, transparent 19px, transparent 22px),
2474
+ repeating-linear-gradient(148deg, rgb(0, 0, 0) 0px, rgb(0, 0, 0) 19px, transparent 19px, transparent 22px),
2475
+ linear-gradient(90deg, rgb(255, 94, 0), rgb(240, 240, 240));
2476
+ }
2477
+
2478
+ /* ── Flowers container ── */
2479
+
2480
+ .art-flower-animation .flowers {
2481
+ position: relative;
2482
+ transform: scale(0.9);
2483
+ }
2484
+
2485
+ /* ── Individual flowers ── */
2486
+
2487
+ .art-flower-animation .flower {
2488
+ position: absolute;
2489
+ bottom: 10em;
2490
+ transform-origin: bottom center;
2491
+ z-index: 10;
2492
+ --fl-speed: 0.8s;
2493
+ }
2494
+
2495
+ .art-flower-animation .flower--1 {
2496
+ animation: art-flower-animation-moving-flower-1 4s linear infinite;
2497
+ }
2498
+ .art-flower-animation .flower--1 .flower__line {
2499
+ height: 70em;
2500
+ animation-delay: 0.3s;
2501
+ }
2502
+ .art-flower-animation .flower--1 .flower__line__leaf--1 {
2503
+ animation: art-flower-animation-blooming-leaf-right var(--fl-speed) 1.6s backwards;
2504
+ }
2505
+ .art-flower-animation .flower--1 .flower__line__leaf--2 {
2506
+ animation: art-flower-animation-blooming-leaf-right var(--fl-speed) 1.4s backwards;
2507
+ }
2508
+ .art-flower-animation .flower--1 .flower__line__leaf--3 {
2509
+ animation: art-flower-animation-blooming-leaf-left var(--fl-speed) 1.2s backwards;
2510
+ }
2511
+ .art-flower-animation .flower--1 .flower__line__leaf--4 {
2512
+ animation: art-flower-animation-blooming-leaf-left var(--fl-speed) 1s backwards;
2513
+ }
2514
+ .art-flower-animation .flower--1 .flower__line__leaf--5 {
2515
+ animation: art-flower-animation-blooming-leaf-right var(--fl-speed) 1.8s backwards;
2516
+ }
2517
+ .art-flower-animation .flower--1 .flower__line__leaf--6 {
2518
+ animation: art-flower-animation-blooming-leaf-left var(--fl-speed) 2s backwards;
2519
+ }
2520
+
2521
+ .art-flower-animation .flower--2 {
2522
+ left: 50%;
2523
+ transform: rotate(20deg);
2524
+ animation: art-flower-animation-moving-flower-2 4s linear infinite;
2525
+ }
2526
+ .art-flower-animation .flower--2 .flower__line {
2527
+ height: 60em;
2528
+ animation-delay: 0.6s;
2529
+ }
2530
+ .art-flower-animation .flower--2 .flower__line__leaf--1 {
2531
+ animation: art-flower-animation-blooming-leaf-right var(--fl-speed) 1.9s backwards;
2532
+ }
2533
+ .art-flower-animation .flower--2 .flower__line__leaf--2 {
2534
+ animation: art-flower-animation-blooming-leaf-right var(--fl-speed) 1.7s backwards;
2535
+ }
2536
+ .art-flower-animation .flower--2 .flower__line__leaf--3 {
2537
+ animation: art-flower-animation-blooming-leaf-left var(--fl-speed) 1.5s backwards;
2538
+ }
2539
+ .art-flower-animation .flower--2 .flower__line__leaf--4 {
2540
+ animation: art-flower-animation-blooming-leaf-left var(--fl-speed) 1.3s backwards;
2541
+ }
2542
+
2543
+ .art-flower-animation .flower--3 {
2544
+ left: 50%;
2545
+ transform: rotate(-15deg);
2546
+ animation: art-flower-animation-moving-flower-3 4s linear infinite;
2547
+ }
2548
+ .art-flower-animation .flower--3 .flower__line {
2549
+ animation-delay: 0.9s;
2550
+ }
2551
+ .art-flower-animation .flower--3 .flower__line__leaf--1 {
2552
+ animation: art-flower-animation-blooming-leaf-right var(--fl-speed) 2.5s backwards;
2553
+ }
2554
+ .art-flower-animation .flower--3 .flower__line__leaf--2 {
2555
+ animation: art-flower-animation-blooming-leaf-right var(--fl-speed) 2.3s backwards;
2556
+ }
2557
+ .art-flower-animation .flower--3 .flower__line__leaf--3 {
2558
+ animation: art-flower-animation-blooming-leaf-left var(--fl-speed) 2.1s backwards;
2559
+ }
2560
+ .art-flower-animation .flower--3 .flower__line__leaf--4 {
2561
+ animation: art-flower-animation-blooming-leaf-left var(--fl-speed) 1.9s backwards;
2562
+ }
2563
+
2564
+ .art-flower-animation .flower--4 {
2565
+ left: -30%;
2566
+ transform: rotate(-15deg) scaleX(-1);
2567
+ animation: art-flower-animation-moving-flower-3 4s linear infinite;
2568
+ }
2569
+ .art-flower-animation .flower--4 .flower__line {
2570
+ animation-delay: 1.2s;
2571
+ }
2572
+ .art-flower-animation .flower--4 .flower__line__leaf--1 {
2573
+ animation: art-flower-animation-blooming-leaf-right var(--fl-speed) 2.8s backwards;
2574
+ }
2575
+ .art-flower-animation .flower--4 .flower__line__leaf--2 {
2576
+ animation: art-flower-animation-blooming-leaf-right var(--fl-speed) 2.6s backwards;
2577
+ }
2578
+ .art-flower-animation .flower--4 .flower__line__leaf--3 {
2579
+ animation: art-flower-animation-blooming-leaf-left var(--fl-speed) 2.4s backwards;
2580
+ }
2581
+ .art-flower-animation .flower--4 .flower__line__leaf--4 {
2582
+ animation: art-flower-animation-blooming-leaf-left var(--fl-speed) 2.2s backwards;
2583
+ }
2584
+
2585
+ /* ── Petals ── */
2586
+
2587
+ .art-flower-animation .flower__leafs {
2588
+ position: relative;
2589
+ animation: art-flower-animation-blooming-flower 2s backwards;
2590
+ }
2591
+ .art-flower-animation .flower__leafs--1 { animation-delay: 1.1s; }
2592
+ .art-flower-animation .flower__leafs--2 { animation-delay: 1.4s; }
2593
+ .art-flower-animation .flower__leafs--3 { animation-delay: 1.7s; }
2594
+
2595
+ .art-flower-animation .flower__leafs::after {
2596
+ content: "";
2597
+ position: absolute;
2598
+ left: 0;
2599
+ top: 0;
2600
+ transform: translate(-50%, -100%);
2601
+ width: 8em;
2602
+ height: 8em;
2603
+ background-color: #e7b201;
2604
+ filter: blur(10em);
2605
+ }
2606
+
2607
+ .art-flower-animation .flower__leaf {
2608
+ position: absolute;
2609
+ bottom: 0;
2610
+ left: 50%;
2611
+ width: 8em;
2612
+ height: 11em;
2613
+ border-radius: 51% 49% 47% 53% / 44% 45% 55% 69%;
2614
+ background-color: #e6f331;
2615
+ background-image: linear-gradient(to top, #e6f331, #e6f331);
2616
+ transform-origin: bottom center;
2617
+ opacity: 0.9;
2618
+ box-shadow: inset 0 0 2em rgba(255, 255, 255, 0.5);
2619
+ }
2620
+ .art-flower-animation .flower__leaf--1 { transform: translate(-10%, 1%) rotateY(40deg) rotateX(-50deg); }
2621
+ .art-flower-animation .flower__leaf--2 { transform: translate(-50%, -4%) rotateX(40deg); }
2622
+ .art-flower-animation .flower__leaf--3 { transform: translate(-90%, 0%) rotateY(45deg) rotateX(50deg); }
2623
+ .art-flower-animation .flower__leaf--4 {
2624
+ width: 8em;
2625
+ height: 8em;
2626
+ transform-origin: bottom left;
2627
+ border-radius: 4em 10em 4em 4em;
2628
+ transform: translate(0%, 18%) rotateX(70deg) rotate(-43deg);
2629
+ background-image: linear-gradient(to top, #e6f331, #e6f331);
2630
+ z-index: 1;
2631
+ opacity: 0.8;
2632
+ }
2633
+
2634
+ /* ── Flower center ── */
2635
+
2636
+ .art-flower-animation .flower__white-circle {
2637
+ position: absolute;
2638
+ left: -3.5em;
2639
+ top: -3em;
2640
+ width: 9em;
2641
+ height: 4em;
2642
+ border-radius: 50%;
2643
+ background-color: #fff;
2644
+ }
2645
+ .art-flower-animation .flower__white-circle::after {
2646
+ content: "";
2647
+ position: absolute;
2648
+ left: 50%;
2649
+ top: 45%;
2650
+ transform: translate(-50%, -50%);
2651
+ width: 60%;
2652
+ height: 60%;
2653
+ border-radius: inherit;
2654
+ background-image:
2655
+ repeating-linear-gradient(135deg, rgba(0,0,0,0.03) 0px, rgba(0,0,0,0.03) 1px, transparent 1px, transparent 12px),
2656
+ repeating-linear-gradient(45deg, rgba(0,0,0,0.03) 0px, rgba(0,0,0,0.03) 1px, transparent 1px, transparent 12px),
2657
+ repeating-linear-gradient(67.5deg, rgba(0,0,0,0.03) 0px, rgba(0,0,0,0.03) 1px, transparent 1px, transparent 12px),
2658
+ repeating-linear-gradient(112.5deg, rgba(0,0,0,0.03) 0px, rgba(0,0,0,0.03) 1px, transparent 1px, transparent 12px),
2659
+ repeating-linear-gradient(157.5deg, rgba(0,0,0,0.03) 0px, rgba(0,0,0,0.03) 1px, transparent 1px, transparent 12px),
2660
+ repeating-linear-gradient(22.5deg, rgba(0,0,0,0.03) 0px, rgba(0,0,0,0.03) 1px, transparent 1px, transparent 12px),
2661
+ linear-gradient(90deg, rgb(255, 235, 18), rgb(255, 206, 0));
2662
+ }
2663
+
2664
+ /* ── Stem ── */
2665
+
2666
+ .art-flower-animation .flower__line {
2667
+ height: 55em;
2668
+ width: 1.5em;
2669
+ background-image:
2670
+ linear-gradient(to left, rgba(0,0,0,0.2), transparent, rgba(255,255,255,0.2)),
2671
+ linear-gradient(to top, transparent 10%, #056d24, #028137);
2672
+ box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.5);
2673
+ animation: art-flower-animation-grow-flower-tree 4s backwards;
2674
+ }
2675
+
2676
+ .art-flower-animation .flower__line__leaf {
2677
+ --w: 7em;
2678
+ --h: calc(var(--w) + 2em);
2679
+ position: absolute;
2680
+ top: 20%;
2681
+ left: 90%;
2682
+ width: var(--w);
2683
+ height: var(--h);
2684
+ border-top-right-radius: var(--h);
2685
+ border-bottom-left-radius: var(--h);
2686
+ background-image: linear-gradient(to top, rgba(12, 94, 32, 0.4), #028137);
2687
+ }
2688
+ .art-flower-animation .flower__line__leaf--1 { transform: rotate(70deg) rotateY(30deg); }
2689
+ .art-flower-animation .flower__line__leaf--2 { top: 45%; transform: rotate(70deg) rotateY(30deg); }
2690
+ .art-flower-animation .flower__line__leaf--3,
2691
+ .art-flower-animation .flower__line__leaf--4,
2692
+ .art-flower-animation .flower__line__leaf--6 {
2693
+ border-top-right-radius: 0;
2694
+ border-bottom-left-radius: 0;
2695
+ border-top-left-radius: var(--h);
2696
+ border-bottom-right-radius: var(--h);
2697
+ left: -460%;
2698
+ top: 12%;
2699
+ transform: rotate(-70deg) rotateY(30deg);
2700
+ }
2701
+ .art-flower-animation .flower__line__leaf--4 { top: 40%; }
2702
+ .art-flower-animation .flower__line__leaf--5 {
2703
+ top: 0;
2704
+ transform-origin: left;
2705
+ transform: rotate(70deg) rotateY(30deg) scale(0.6);
2706
+ }
2707
+ .art-flower-animation .flower__line__leaf--6 {
2708
+ top: -2%;
2709
+ left: -450%;
2710
+ transform-origin: right;
2711
+ transform: rotate(-70deg) rotateY(30deg) scale(0.6);
2712
+ }
2713
+
2714
+ /* ── Light particles ── */
2715
+
2716
+ .art-flower-animation .flower__light {
2717
+ position: absolute;
2718
+ bottom: 0;
2719
+ width: 1em;
2720
+ height: 1em;
2721
+ background-color: rgb(255, 251, 0);
2722
+ border-radius: 50%;
2723
+ filter: blur(0.2em);
2724
+ animation: art-flower-animation-light-ans 4s linear infinite backwards;
2725
+ }
2726
+ .art-flower-animation .flower__light:nth-child(odd) { background-color: #028137; }
2727
+ .art-flower-animation .flower__light--1 { left: -2em; animation-delay: 1s; }
2728
+ .art-flower-animation .flower__light--2 { left: 3em; animation-delay: 0.5s; }
2729
+ .art-flower-animation .flower__light--3 { left: -6em; animation-delay: 0.3s; }
2730
+ .art-flower-animation .flower__light--4 { left: 6em; animation-delay: 0.9s; }
2731
+ .art-flower-animation .flower__light--5 { left: -1em; animation-delay: 1.5s; }
2732
+ .art-flower-animation .flower__light--6 { left: -4em; animation-delay: 3s; }
2733
+ .art-flower-animation .flower__light--7 { left: 3em; animation-delay: 2s; }
2734
+ .art-flower-animation .flower__light--8 { left: -6em; animation-delay: 3.5s; }
2735
+
2736
+ /* ── Grass ── */
2737
+
2738
+ .art-flower-animation .flower__grass {
2739
+ --c: #028137;
2740
+ --line-w: 1.5em;
2741
+ position: absolute;
2742
+ bottom: 12em;
2743
+ left: -7em;
2744
+ display: flex;
2745
+ flex-direction: column;
2746
+ align-items: flex-end;
2747
+ z-index: 20;
2748
+ transform-origin: bottom center;
2749
+ transform: rotate(-48deg) rotateY(40deg);
2750
+ }
2751
+ .art-flower-animation .flower__grass--1 {
2752
+ animation: art-flower-animation-moving-grass 2s linear infinite;
2753
+ }
2754
+ .art-flower-animation .flower__grass--2 {
2755
+ left: 2em;
2756
+ bottom: 10em;
2757
+ transform: scale(0.5) rotate(75deg) rotateX(10deg) rotateY(-200deg);
2758
+ opacity: 0.8;
2759
+ z-index: 0;
2760
+ animation: art-flower-animation-moving-grass--2 1.5s linear infinite;
2761
+ }
2762
+ .art-flower-animation .flower__grass--top {
2763
+ width: 7em;
2764
+ height: 10em;
2765
+ border-top-right-radius: 100%;
2766
+ border-right: var(--line-w) solid var(--c);
2767
+ transform-origin: bottom center;
2768
+ transform: rotate(-2deg);
2769
+ }
2770
+ .art-flower-animation .flower__grass--bottom {
2771
+ margin-top: -2px;
2772
+ width: var(--line-w);
2773
+ height: 25em;
2774
+ background-image: linear-gradient(to top, transparent, var(--c));
2775
+ }
2776
+
2777
+ .art-flower-animation .flower__grass__leaf {
2778
+ --size: 10em;
2779
+ position: absolute;
2780
+ width: calc(var(--size) * 2.1);
2781
+ height: var(--size);
2782
+ border-top-left-radius: var(--size);
2783
+ border-top-right-radius: var(--size);
2784
+ background-image: linear-gradient(to top, transparent, transparent 30%, var(--c));
2785
+ z-index: 100;
2786
+ }
2787
+ .art-flower-animation .flower__grass__leaf--1 {
2788
+ top: -6%; left: 30%; --size: 6em;
2789
+ transform: rotate(-20deg);
2790
+ animation: art-flower-animation-growing-grass-1 2s 2.6s backwards;
2791
+ }
2792
+ .art-flower-animation .flower__grass__leaf--2 {
2793
+ top: -5%; left: -110%; --size: 6em;
2794
+ transform: rotate(10deg);
2795
+ animation: art-flower-animation-growing-grass-2 2s 2.4s linear backwards;
2796
+ }
2797
+ .art-flower-animation .flower__grass__leaf--3 {
2798
+ top: 5%; left: 60%; --size: 8em;
2799
+ transform: rotate(-18deg) rotateX(-20deg);
2800
+ animation: art-flower-animation-growing-grass-3 2s 2.2s linear backwards;
2801
+ }
2802
+ .art-flower-animation .flower__grass__leaf--4 {
2803
+ top: 6%; left: -135%; --size: 8em;
2804
+ transform: rotate(2deg);
2805
+ animation: art-flower-animation-growing-grass-4 2s 2s linear backwards;
2806
+ }
2807
+ .art-flower-animation .flower__grass__leaf--5 {
2808
+ top: 20%; left: 60%; --size: 10em;
2809
+ transform: rotate(-24deg) rotateX(-20deg);
2810
+ animation: art-flower-animation-growing-grass-5 2s 1.8s linear backwards;
2811
+ }
2812
+ .art-flower-animation .flower__grass__leaf--6 {
2813
+ top: 22%; left: -180%; --size: 10em;
2814
+ transform: rotate(10deg);
2815
+ animation: art-flower-animation-growing-grass-6 2s 1.6s linear backwards;
2816
+ }
2817
+ .art-flower-animation .flower__grass__leaf--7 {
2818
+ top: 39%; left: 70%; --size: 10em;
2819
+ transform: rotate(-10deg);
2820
+ animation: art-flower-animation-growing-grass-7 2s 1.4s linear backwards;
2821
+ }
2822
+ .art-flower-animation .flower__grass__leaf--8 {
2823
+ top: 40%; left: -215%; --size: 11em;
2824
+ transform: rotate(10deg);
2825
+ animation: art-flower-animation-growing-grass-8 2s 1.2s linear backwards;
2826
+ }
2827
+ .art-flower-animation .flower__grass__overlay {
2828
+ position: absolute;
2829
+ top: -10%; right: 0%;
2830
+ width: 100%; height: 100%;
2831
+ background-color: rgba(0, 0, 0, 0.6);
2832
+ filter: blur(1.5em);
2833
+ z-index: 100;
2834
+ }
2835
+
2836
+ /* ── Long grass stem ── */
2837
+
2838
+ .art-flower-animation .flower__g-long {
2839
+ --w: 2em;
2840
+ --h: 6em;
2841
+ --c: #0d6632;
2842
+ position: absolute;
2843
+ bottom: 10em;
2844
+ left: -3em;
2845
+ transform-origin: bottom center;
2846
+ transform: rotate(-30deg) rotateY(-20deg);
2847
+ display: flex;
2848
+ flex-direction: column;
2849
+ align-items: flex-end;
2850
+ animation: art-flower-animation-flower-g-long-ans 3s linear infinite;
2851
+ }
2852
+ .art-flower-animation .flower__g-long__top {
2853
+ width: calc(var(--w) + 1em);
2854
+ height: var(--h);
2855
+ border-top-right-radius: 100%;
2856
+ border-right: 0.7em solid var(--c);
2857
+ transform: translate(-0.7em, 1em);
2858
+ }
2859
+ .art-flower-animation .flower__g-long__bottom {
2860
+ width: var(--w);
2861
+ height: 50em;
2862
+ transform-origin: bottom center;
2863
+ background-image: linear-gradient(to top, transparent 30%, var(--c));
2864
+ box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.5);
2865
+ clip-path: polygon(35% 0, 65% 1%, 100% 100%, 0% 100%);
2866
+ }
2867
+
2868
+ /* ── Right grass ── */
2869
+
2870
+ .art-flower-animation .flower__g-right {
2871
+ position: absolute;
2872
+ bottom: 6em;
2873
+ left: -2em;
2874
+ transform-origin: bottom left;
2875
+ transform: rotate(20deg);
2876
+ }
2877
+ .art-flower-animation .flower__g-right .leaf {
2878
+ width: 30em;
2879
+ height: 50em;
2880
+ border-top-left-radius: 100%;
2881
+ border-left: 2em solid #028137;
2882
+ background-image: linear-gradient(to bottom, transparent, var(--art-flower-animation-bg) 60%);
2883
+ -webkit-mask-image: linear-gradient(to top, transparent 30%, #028137 60%);
2884
+ mask-image: linear-gradient(to top, transparent 30%, #028137 60%);
2885
+ }
2886
+ .art-flower-animation .flower__g-right--1 {
2887
+ animation: art-flower-animation-flower-g-right-ans 2.5s linear infinite;
2888
+ }
2889
+ .art-flower-animation .flower__g-right--2 {
2890
+ left: 5em;
2891
+ transform: rotateY(-180deg);
2892
+ animation: art-flower-animation-flower-g-right-ans--2 3s linear infinite;
2893
+ }
2894
+ .art-flower-animation .flower__g-right--2 .leaf {
2895
+ height: 75em;
2896
+ filter: blur(0.3em);
2897
+ opacity: 0.8;
2898
+ }
2899
+
2900
+ /* ── Front grass ── */
2901
+
2902
+ .art-flower-animation .flower__g-front {
2903
+ position: absolute;
2904
+ bottom: 6em;
2905
+ left: 2.5em;
2906
+ z-index: 100;
2907
+ transform-origin: bottom center;
2908
+ transform: rotate(-28deg) rotateY(30deg) scale(1.04);
2909
+ animation: art-flower-animation-flower-g-front-ans 2s linear infinite;
2910
+ }
2911
+ .art-flower-animation .flower__g-front__line {
2912
+ width: 0.3em;
2913
+ height: 20em;
2914
+ background-image: linear-gradient(to top, transparent, #028137, transparent 100%);
2915
+ position: relative;
2916
+ }
2917
+ .art-flower-animation .flower__g-front__leaf-wrapper {
2918
+ position: absolute;
2919
+ top: 0;
2920
+ left: 0;
2921
+ transform-origin: bottom left;
2922
+ transform: rotate(10deg);
2923
+ }
2924
+ .art-flower-animation .flower__g-front__leaf-wrapper:nth-child(even) {
2925
+ left: 0;
2926
+ transform: rotateY(-180deg) rotate(5deg);
2927
+ animation: art-flower-animation-flower-g-front-leaf-left-ans 1s ease-in backwards;
2928
+ }
2929
+ .art-flower-animation .flower__g-front__leaf-wrapper:nth-child(odd) {
2930
+ animation: art-flower-animation-flower-g-front-leaf-ans 1s ease-in backwards;
2931
+ }
2932
+ .art-flower-animation .flower__g-front__leaf-wrapper--1 {
2933
+ top: -8em;
2934
+ transform: scale(0.7);
2935
+ animation: art-flower-animation-flower-g-front-leaf-ans 1s 5.5s ease-in backwards !important;
2936
+ }
2937
+ .art-flower-animation .flower__g-front__leaf-wrapper--2 {
2938
+ top: -8em;
2939
+ transform: rotateY(-180deg) scale(0.7) !important;
2940
+ animation: art-flower-animation-flower-g-front-leaf-left-ans-2 1s 5.2s ease-in backwards !important;
2941
+ }
2942
+ .art-flower-animation .flower__g-front__leaf-wrapper--3 {
2943
+ top: -3em;
2944
+ animation: art-flower-animation-flower-g-front-leaf-ans 1s 4.9s ease-in backwards !important;
2945
+ }
2946
+ .art-flower-animation .flower__g-front__leaf-wrapper--4 {
2947
+ top: -3em;
2948
+ transform: rotateY(-180deg) scale(0.9) !important;
2949
+ animation: art-flower-animation-flower-g-front-leaf-left-ans-2 1s 4.6s ease-in backwards !important;
2950
+ }
2951
+ .art-flower-animation .flower__g-front__leaf-wrapper--5,
2952
+ .art-flower-animation .flower__g-front__leaf-wrapper--6 { top: 2em; }
2953
+ .art-flower-animation .flower__g-front__leaf-wrapper--7,
2954
+ .art-flower-animation .flower__g-front__leaf-wrapper--8 { top: 6.5em; }
2955
+ .art-flower-animation .flower__g-front__leaf-wrapper--5 { animation-delay: 4.3s !important; }
2956
+ .art-flower-animation .flower__g-front__leaf-wrapper--6 { animation-delay: 4.1s !important; }
2957
+ .art-flower-animation .flower__g-front__leaf-wrapper--7 { animation-delay: 3.8s !important; }
2958
+ .art-flower-animation .flower__g-front__leaf-wrapper--8 { animation-delay: 3.5s !important; }
2959
+
2960
+ .art-flower-animation .flower__g-front__leaf {
2961
+ width: 10em;
2962
+ height: 10em;
2963
+ border-radius: 100% 0% 0% 100% / 100% 100% 0% 0%;
2964
+ box-shadow: inset 0 2px 1em hsla(150, 97%, 14%, 0.2);
2965
+ background-image:
2966
+ linear-gradient(to bottom left, transparent, var(--art-flower-animation-bg)),
2967
+ linear-gradient(to bottom right, #028137 50%, transparent 50%, transparent);
2968
+ -webkit-mask-image: linear-gradient(to bottom right, #028137 50%, transparent 50%, transparent);
2969
+ mask-image: linear-gradient(to bottom right, #028137 50%, transparent 50%, transparent);
2970
+ }
2971
+
2972
+ /* ── Front-right grass ── */
2973
+
2974
+ .art-flower-animation .flower__g-fr {
2975
+ position: absolute;
2976
+ bottom: -4em;
2977
+ left: 0;
2978
+ transform-origin: bottom left;
2979
+ z-index: 10;
2980
+ animation: art-flower-animation-flower-g-fr-ans 2s linear infinite;
2981
+ }
2982
+ .art-flower-animation .flower__g-fr .leaf {
2983
+ width: 30em;
2984
+ height: 50em;
2985
+ border-top-left-radius: 100%;
2986
+ border-left: 2em solid #028137;
2987
+ -webkit-mask-image: linear-gradient(to top, transparent 25%, #028137 50%);
2988
+ mask-image: linear-gradient(to top, transparent 25%, #028137 50%);
2989
+ position: relative;
2990
+ z-index: 1;
2991
+ }
2992
+ .art-flower-animation .flower__g-fr__leaf {
2993
+ position: absolute;
2994
+ top: 0;
2995
+ left: 0;
2996
+ width: 10em;
2997
+ height: 10em;
2998
+ border-radius: 100% 0% 0% 100% / 100% 100% 0% 0%;
2999
+ box-shadow: inset 0 2px 1em hsla(184deg, 97%, 58%, 0.2);
3000
+ background-image:
3001
+ linear-gradient(to bottom left, transparent, var(--art-flower-animation-bg) 98%),
3002
+ linear-gradient(to bottom right, #028137 45%, transparent 50%, transparent);
3003
+ -webkit-mask-image: linear-gradient(135deg, #028137 40%, transparent 50%, transparent);
3004
+ mask-image: linear-gradient(135deg, #028137 40%, transparent 50%, transparent);
3005
+ }
3006
+ .art-flower-animation .flower__g-fr__leaf--1 {
3007
+ left: 20em; transform: rotate(45deg);
3008
+ animation: art-flower-animation-flower-g-fr-leaf-ans-1 0.5s 5.2s linear backwards;
3009
+ }
3010
+ .art-flower-animation .flower__g-fr__leaf--2 {
3011
+ left: 12em; top: -7em;
3012
+ transform: rotate(25deg) rotateY(-180deg);
3013
+ animation: art-flower-animation-flower-g-fr-leaf-ans-6 0.5s 5s linear backwards;
3014
+ }
3015
+ .art-flower-animation .flower__g-fr__leaf--3 {
3016
+ left: 15em; top: 6em;
3017
+ transform: rotate(55deg);
3018
+ animation: art-flower-animation-flower-g-fr-leaf-ans-5 0.5s 4.8s linear backwards;
3019
+ }
3020
+ .art-flower-animation .flower__g-fr__leaf--4 {
3021
+ left: 6em; top: -2em;
3022
+ transform: rotate(25deg) rotateY(-180deg);
3023
+ animation: art-flower-animation-flower-g-fr-leaf-ans-6 0.5s 4.6s linear backwards;
3024
+ }
3025
+ .art-flower-animation .flower__g-fr__leaf--5 {
3026
+ left: 10em; top: 14em;
3027
+ transform: rotate(55deg);
3028
+ animation: art-flower-animation-flower-g-fr-leaf-ans-5 0.5s 4.4s linear backwards;
3029
+ }
3030
+ .art-flower-animation .flower__g-fr__leaf--6 {
3031
+ left: 0; top: 6em;
3032
+ transform: rotate(25deg) rotateY(-180deg);
3033
+ animation: art-flower-animation-flower-g-fr-leaf-ans-6 0.5s 4.2s linear backwards;
3034
+ }
3035
+ .art-flower-animation .flower__g-fr__leaf--7 {
3036
+ left: 5em; top: 22em;
3037
+ transform: rotate(45deg);
3038
+ animation: art-flower-animation-flower-g-fr-leaf-ans-7 0.5s 4s linear backwards;
3039
+ }
3040
+ .art-flower-animation .flower__g-fr__leaf--8 {
3041
+ left: -4em; top: 15em;
3042
+ transform: rotate(15deg) rotateY(-180deg);
3043
+ animation: art-flower-animation-flower-g-fr-leaf-ans-8 0.5s 3.8s linear backwards;
3044
+ }
3045
+
3046
+ /* ── Tall background grasses ── */
3047
+
3048
+ .art-flower-animation .long-g {
3049
+ position: absolute;
3050
+ bottom: 25em;
3051
+ left: -42em;
3052
+ transform-origin: bottom left;
3053
+ }
3054
+ .art-flower-animation .long-g .leaf {
3055
+ --w: 3em;
3056
+ --h: 40em;
3057
+ position: absolute;
3058
+ bottom: 0;
3059
+ left: 0;
3060
+ width: var(--w);
3061
+ background-image: linear-gradient(to top, transparent 10%, #056d24 60%, #028137);
3062
+ clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
3063
+ transform-origin: bottom center;
3064
+ height: var(--h);
3065
+ }
3066
+ .art-flower-animation .long-g .leaf--0 {
3067
+ --h: 40em;
3068
+ transform: rotate(-5deg) rotateX(5deg);
3069
+ }
3070
+ .art-flower-animation .long-g .leaf--1 {
3071
+ --h: 45em;
3072
+ left: 2em;
3073
+ transform: rotate(3deg) rotateX(5deg);
3074
+ }
3075
+ .art-flower-animation .long-g .leaf--2 {
3076
+ --h: 38em;
3077
+ left: 1em;
3078
+ transform: rotate(-8deg) rotateX(5deg);
3079
+ }
3080
+ .art-flower-animation .long-g .leaf--3 {
3081
+ --h: 35em;
3082
+ left: 3em;
3083
+ transform: rotate(6deg) rotateX(5deg);
3084
+ }
3085
+ .art-flower-animation .long-g--1 {
3086
+ bottom: 0;
3087
+ transform: scale(0.8) rotate(-5deg);
3088
+ }
3089
+ .art-flower-animation .long-g--1 .leaf {
3090
+ -webkit-mask-image: linear-gradient(to top, transparent 40%, #028137 80%) !important;
3091
+ mask-image: linear-gradient(to top, transparent 40%, #028137 80%) !important;
3092
+ }
3093
+ .art-flower-animation .long-g--1 .leaf--1 {
3094
+ --w: 5em;
3095
+ --h: 60em;
3096
+ left: -2em;
3097
+ transform: rotate(3deg) rotateY(-180deg);
3098
+ }
3099
+ .art-flower-animation .long-g--2 {
3100
+ bottom: -3em;
3101
+ left: -35em;
3102
+ transform: rotate(3deg);
3103
+ }
3104
+ .art-flower-animation .long-g--3 {
3105
+ bottom: -3em;
3106
+ left: -25em;
3107
+ transform: rotate(0deg);
3108
+ }
3109
+ .art-flower-animation .long-g--4 {
3110
+ bottom: 0;
3111
+ left: -23em;
3112
+ transform: rotate(-3deg);
3113
+ }
3114
+ .art-flower-animation .long-g--5 {
3115
+ bottom: -3em;
3116
+ left: -17em;
3117
+ transform: scale(0.8) rotate(-5deg);
3118
+ }
3119
+ .art-flower-animation .long-g--6 {
3120
+ bottom: 0;
3121
+ left: -12em;
3122
+ transform: rotate(-4deg);
3123
+ }
3124
+ .art-flower-animation .long-g--7 {
3125
+ bottom: 0;
3126
+ left: -5em;
3127
+ transform: rotate(2deg);
3128
+ }
3129
+
3130
+ /* ── grow-ans utility ── */
3131
+
3132
+ .art-flower-animation .grow-ans {
3133
+ animation: art-flower-animation-grow-ans 2s var(--d, 0s) backwards;
3134
+ }
3135
+
3136
+ /* ── Growing grass wrapper ── */
3137
+
3138
+ .art-flower-animation .growing-grass {
3139
+ position: absolute;
3140
+ bottom: 0;
3141
+ }
3142
+
3143
+ /* ── Bubbles (floating hearts) ── */
3144
+
3145
+ .art-flower-animation .bubbles {
3146
+ position: absolute;
3147
+ bottom: 10em;
3148
+ left: 50%;
3149
+ transform: translateX(-50%);
3150
+ width: 40em;
3151
+ height: 0;
3152
+ z-index: 20;
3153
+ }
3154
+ .art-flower-animation .bubble {
3155
+ position: absolute;
3156
+ bottom: 0;
3157
+ animation: art-flower-animation-bubble 8s ease-in infinite;
3158
+ opacity: 0;
3159
+ }
3160
+ .art-flower-animation .bubble .heart {
3161
+ width: 2em;
3162
+ height: 2em;
3163
+ fill: rgba(255, 100, 150, 0.8);
3164
+ filter: drop-shadow(0 0 0.5em rgba(255, 100, 150, 0.5));
3165
+ }
3166
+ .art-flower-animation .bubble:nth-child(1) { left: 5%; animation-delay: 0s; animation-duration: 7s; }
3167
+ .art-flower-animation .bubble:nth-child(2) { left: 10%; animation-delay: 0.5s; animation-duration: 8s; }
3168
+ .art-flower-animation .bubble:nth-child(3) { left: 20%; animation-delay: 1s; animation-duration: 6.5s; }
3169
+ .art-flower-animation .bubble:nth-child(4) { left: 30%; animation-delay: 1.5s; animation-duration: 9s; }
3170
+ .art-flower-animation .bubble:nth-child(5) { left: 40%; animation-delay: 2s; animation-duration: 7.5s; }
3171
+ .art-flower-animation .bubble:nth-child(6) { left: 50%; animation-delay: 2.5s; animation-duration: 8.5s; }
3172
+ .art-flower-animation .bubble:nth-child(7) { left: 60%; animation-delay: 3s; animation-duration: 7s; }
3173
+ .art-flower-animation .bubble:nth-child(8) { left: 70%; animation-delay: 3.5s; animation-duration: 9.5s; }
3174
+ .art-flower-animation .bubble:nth-child(9) { left: 75%; animation-delay: 4s; animation-duration: 6s; }
3175
+ .art-flower-animation .bubble:nth-child(10) { left: 80%; animation-delay: 4.5s; animation-duration: 8s; }
3176
+ .art-flower-animation .bubble:nth-child(11) { left: 15%; animation-delay: 5s; animation-duration: 7.5s; }
3177
+ .art-flower-animation .bubble:nth-child(12) { left: 25%; animation-delay: 5.5s; animation-duration: 9s; }
3178
+ .art-flower-animation .bubble:nth-child(13) { left: 35%; animation-delay: 6s; animation-duration: 8s; }
3179
+ .art-flower-animation .bubble:nth-child(14) { left: 45%; animation-delay: 6.5s; animation-duration: 7s; }
3180
+ .art-flower-animation .bubble:nth-child(15) { left: 55%; animation-delay: 0.3s; animation-duration: 9.5s; }
3181
+ .art-flower-animation .bubble:nth-child(16) { left: 65%; animation-delay: 1.3s; animation-duration: 6.5s; }
3182
+ .art-flower-animation .bubble:nth-child(17) { left: 72%; animation-delay: 2.2s; animation-duration: 8.5s; }
3183
+ .art-flower-animation .bubble:nth-child(18) { left: 8%; animation-delay: 3.3s; animation-duration: 7.5s; }
3184
+ .art-flower-animation .bubble:nth-child(19) { left: 88%; animation-delay: 4.2s; animation-duration: 9s; }
3185
+ .art-flower-animation .bubble:nth-child(20) { left: 93%; animation-delay: 5.8s; animation-duration: 6s; }
3186
+ }
3187
+
2294
3188
 
2295
3189