@bendyline/squisq-react 1.3.2 → 1.4.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.
@@ -214,6 +214,1243 @@
214
214
  }
215
215
  }
216
216
 
217
+ @keyframes slideInTop {
218
+ from {
219
+ transform: translateY(-100%);
220
+ }
221
+ to {
222
+ transform: translateY(0);
223
+ }
224
+ }
225
+
226
+ @keyframes slideInBottom {
227
+ from {
228
+ transform: translateY(100%);
229
+ }
230
+ to {
231
+ transform: translateY(0);
232
+ }
233
+ }
234
+
235
+ @keyframes slideOutTop {
236
+ from {
237
+ transform: translateY(0);
238
+ }
239
+ to {
240
+ transform: translateY(-100%);
241
+ }
242
+ }
243
+
244
+ @keyframes slideOutBottom {
245
+ from {
246
+ transform: translateY(0);
247
+ }
248
+ to {
249
+ transform: translateY(100%);
250
+ }
251
+ }
252
+
253
+ @keyframes transitionZoomIn {
254
+ from {
255
+ opacity: 0;
256
+ transform: scale(0.82);
257
+ }
258
+ to {
259
+ opacity: 1;
260
+ transform: scale(1);
261
+ }
262
+ }
263
+
264
+ @keyframes transitionZoomOut {
265
+ from {
266
+ opacity: 1;
267
+ transform: scale(1);
268
+ }
269
+ to {
270
+ opacity: 0;
271
+ transform: scale(1.08);
272
+ }
273
+ }
274
+
275
+ @keyframes transitionFlipIn {
276
+ from {
277
+ opacity: 0;
278
+ transform: perspective(1400px) rotateY(-72deg) scale(0.96);
279
+ }
280
+ to {
281
+ opacity: 1;
282
+ transform: perspective(1400px) rotateY(0deg) scale(1);
283
+ }
284
+ }
285
+
286
+ @keyframes transitionFlipOut {
287
+ from {
288
+ opacity: 1;
289
+ transform: perspective(1400px) rotateY(0deg) scale(1);
290
+ }
291
+ to {
292
+ opacity: 0;
293
+ transform: perspective(1400px) rotateY(56deg) scale(0.96);
294
+ }
295
+ }
296
+
297
+ @keyframes transitionRotateIn {
298
+ from {
299
+ opacity: 0;
300
+ transform: rotate(-8deg) scale(0.88);
301
+ }
302
+ to {
303
+ opacity: 1;
304
+ transform: rotate(0deg) scale(1);
305
+ }
306
+ }
307
+
308
+ @keyframes transitionRotateOut {
309
+ from {
310
+ opacity: 1;
311
+ transform: rotate(0deg) scale(1);
312
+ }
313
+ to {
314
+ opacity: 0;
315
+ transform: rotate(8deg) scale(1.04);
316
+ }
317
+ }
318
+
319
+ @keyframes transitionDissolveIn {
320
+ 0% {
321
+ opacity: 0;
322
+ filter: blur(10px);
323
+ }
324
+ 60% {
325
+ opacity: 0.72;
326
+ }
327
+ 100% {
328
+ opacity: 1;
329
+ filter: blur(0);
330
+ }
331
+ }
332
+
333
+ @keyframes transitionDissolveOut {
334
+ 0% {
335
+ opacity: 1;
336
+ filter: blur(0);
337
+ }
338
+ 100% {
339
+ opacity: 0;
340
+ filter: blur(12px);
341
+ }
342
+ }
343
+
344
+ @keyframes transitionMorphIn {
345
+ from {
346
+ opacity: 0;
347
+ filter: blur(16px) saturate(0.8);
348
+ transform: scale(1.025);
349
+ }
350
+ to {
351
+ opacity: 1;
352
+ filter: blur(0) saturate(1);
353
+ transform: scale(1);
354
+ }
355
+ }
356
+
357
+ @keyframes transitionMorphOut {
358
+ from {
359
+ opacity: 1;
360
+ filter: blur(0) saturate(1);
361
+ transform: scale(1);
362
+ }
363
+ to {
364
+ opacity: 0;
365
+ filter: blur(16px) saturate(0.85);
366
+ transform: scale(0.985);
367
+ }
368
+ }
369
+
370
+ @keyframes transitionHold {
371
+ from,
372
+ to {
373
+ opacity: 1;
374
+ transform: none;
375
+ }
376
+ }
377
+
378
+ @keyframes transitionWipeLeftIn {
379
+ from {
380
+ clip-path: inset(0 100% 0 0);
381
+ }
382
+ to {
383
+ clip-path: inset(0);
384
+ }
385
+ }
386
+
387
+ @keyframes transitionWipeLeftOut {
388
+ from {
389
+ clip-path: inset(0);
390
+ }
391
+ to {
392
+ clip-path: inset(0 0 0 100%);
393
+ }
394
+ }
395
+
396
+ @keyframes transitionWipeRightIn {
397
+ from {
398
+ clip-path: inset(0 0 0 100%);
399
+ }
400
+ to {
401
+ clip-path: inset(0);
402
+ }
403
+ }
404
+
405
+ @keyframes transitionWipeRightOut {
406
+ from {
407
+ clip-path: inset(0);
408
+ }
409
+ to {
410
+ clip-path: inset(0 100% 0 0);
411
+ }
412
+ }
413
+
414
+ @keyframes transitionWipeUpIn {
415
+ from {
416
+ clip-path: inset(100% 0 0 0);
417
+ }
418
+ to {
419
+ clip-path: inset(0);
420
+ }
421
+ }
422
+
423
+ @keyframes transitionWipeUpOut {
424
+ from {
425
+ clip-path: inset(0);
426
+ }
427
+ to {
428
+ clip-path: inset(0 0 100% 0);
429
+ }
430
+ }
431
+
432
+ @keyframes transitionWipeDownIn {
433
+ from {
434
+ clip-path: inset(0 0 100% 0);
435
+ }
436
+ to {
437
+ clip-path: inset(0);
438
+ }
439
+ }
440
+
441
+ @keyframes transitionWipeDownOut {
442
+ from {
443
+ clip-path: inset(0);
444
+ }
445
+ to {
446
+ clip-path: inset(100% 0 0 0);
447
+ }
448
+ }
449
+
450
+ @keyframes transitionSplitHorizontalIn {
451
+ from {
452
+ clip-path: inset(0 50% 0 50%);
453
+ }
454
+ to {
455
+ clip-path: inset(0);
456
+ }
457
+ }
458
+
459
+ @keyframes transitionSplitHorizontalOut {
460
+ from {
461
+ clip-path: inset(0);
462
+ }
463
+ to {
464
+ clip-path: inset(0 50% 0 50%);
465
+ }
466
+ }
467
+
468
+ @keyframes transitionSplitVerticalIn {
469
+ from {
470
+ clip-path: inset(50% 0 50% 0);
471
+ }
472
+ to {
473
+ clip-path: inset(0);
474
+ }
475
+ }
476
+
477
+ @keyframes transitionSplitVerticalOut {
478
+ from {
479
+ clip-path: inset(0);
480
+ }
481
+ to {
482
+ clip-path: inset(50% 0 50% 0);
483
+ }
484
+ }
485
+
486
+ @keyframes transitionCircleIn {
487
+ from {
488
+ clip-path: circle(0% at 50% 50%);
489
+ opacity: 0.4;
490
+ }
491
+ to {
492
+ clip-path: circle(75% at 50% 50%);
493
+ opacity: 1;
494
+ }
495
+ }
496
+
497
+ @keyframes transitionCircleOut {
498
+ from {
499
+ clip-path: circle(75% at 50% 50%);
500
+ opacity: 1;
501
+ }
502
+ to {
503
+ clip-path: circle(0% at 50% 50%);
504
+ opacity: 0;
505
+ }
506
+ }
507
+
508
+ @keyframes transitionDiamondIn {
509
+ from {
510
+ clip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%);
511
+ opacity: 0.35;
512
+ }
513
+ to {
514
+ clip-path: polygon(50% -30%, 130% 50%, 50% 130%, -30% 50%);
515
+ opacity: 1;
516
+ }
517
+ }
518
+
519
+ @keyframes transitionDiamondOut {
520
+ from {
521
+ clip-path: polygon(50% -30%, 130% 50%, 50% 130%, -30% 50%);
522
+ opacity: 1;
523
+ }
524
+ to {
525
+ clip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%);
526
+ opacity: 0;
527
+ }
528
+ }
529
+
530
+ @keyframes transitionPlusIn {
531
+ 0% {
532
+ clip-path: polygon(
533
+ 50% 50%,
534
+ 50% 50%,
535
+ 50% 50%,
536
+ 50% 50%,
537
+ 50% 50%,
538
+ 50% 50%,
539
+ 50% 50%,
540
+ 50% 50%,
541
+ 50% 50%,
542
+ 50% 50%,
543
+ 50% 50%,
544
+ 50% 50%
545
+ );
546
+ opacity: 0.45;
547
+ }
548
+ 70% {
549
+ clip-path: polygon(
550
+ 43% 0,
551
+ 57% 0,
552
+ 57% 43%,
553
+ 100% 43%,
554
+ 100% 57%,
555
+ 57% 57%,
556
+ 57% 100%,
557
+ 43% 100%,
558
+ 43% 57%,
559
+ 0 57%,
560
+ 0 43%,
561
+ 43% 43%
562
+ );
563
+ opacity: 1;
564
+ }
565
+ 100% {
566
+ clip-path: inset(0);
567
+ opacity: 1;
568
+ }
569
+ }
570
+
571
+ @keyframes transitionPlusOut {
572
+ 0% {
573
+ clip-path: inset(0);
574
+ opacity: 1;
575
+ }
576
+ 100% {
577
+ clip-path: polygon(
578
+ 50% 50%,
579
+ 50% 50%,
580
+ 50% 50%,
581
+ 50% 50%,
582
+ 50% 50%,
583
+ 50% 50%,
584
+ 50% 50%,
585
+ 50% 50%,
586
+ 50% 50%,
587
+ 50% 50%,
588
+ 50% 50%,
589
+ 50% 50%
590
+ );
591
+ opacity: 0;
592
+ }
593
+ }
594
+
595
+ @keyframes transitionFlashIn {
596
+ 0% {
597
+ opacity: 0;
598
+ filter: brightness(2.8) contrast(1.5);
599
+ transform: scale(1.04);
600
+ }
601
+ 42% {
602
+ opacity: 1;
603
+ filter: brightness(3.5) contrast(1.8);
604
+ }
605
+ 100% {
606
+ opacity: 1;
607
+ filter: brightness(1) contrast(1);
608
+ transform: scale(1);
609
+ }
610
+ }
611
+
612
+ @keyframes transitionFlashOut {
613
+ 0% {
614
+ opacity: 1;
615
+ filter: brightness(1) contrast(1);
616
+ }
617
+ 55% {
618
+ opacity: 0.9;
619
+ filter: brightness(3) contrast(1.6);
620
+ }
621
+ 100% {
622
+ opacity: 0;
623
+ filter: brightness(0.4) contrast(1);
624
+ }
625
+ }
626
+
627
+ @keyframes transitionNewsflashIn {
628
+ 0% {
629
+ opacity: 0;
630
+ filter: brightness(3) contrast(1.8);
631
+ transform: scale(0.72) rotate(-2deg);
632
+ }
633
+ 45% {
634
+ opacity: 1;
635
+ filter: brightness(2.8) contrast(1.6);
636
+ transform: scale(1.08) rotate(1deg);
637
+ }
638
+ 100% {
639
+ opacity: 1;
640
+ filter: brightness(1) contrast(1);
641
+ transform: scale(1) rotate(0deg);
642
+ }
643
+ }
644
+
645
+ @keyframes transitionNewsflashOut {
646
+ from {
647
+ opacity: 1;
648
+ filter: brightness(1) contrast(1);
649
+ transform: scale(1);
650
+ }
651
+ to {
652
+ opacity: 0;
653
+ filter: brightness(2.4) contrast(1.6);
654
+ transform: scale(1.18) rotate(2deg);
655
+ }
656
+ }
657
+
658
+ @keyframes transitionFallOverIn {
659
+ from {
660
+ opacity: 0;
661
+ transform: perspective(1200px) rotateX(-72deg) translateY(-8%);
662
+ transform-origin: 50% 100%;
663
+ }
664
+ to {
665
+ opacity: 1;
666
+ transform: perspective(1200px) rotateX(0deg) translateY(0);
667
+ transform-origin: 50% 100%;
668
+ }
669
+ }
670
+
671
+ @keyframes transitionFallOverOut {
672
+ from {
673
+ opacity: 1;
674
+ transform: perspective(1200px) rotateX(0deg) translateY(0);
675
+ transform-origin: 50% 100%;
676
+ }
677
+ to {
678
+ opacity: 0;
679
+ transform: perspective(1200px) rotateX(76deg) translateY(8%);
680
+ transform-origin: 50% 100%;
681
+ }
682
+ }
683
+
684
+ @keyframes transitionDrapeIn {
685
+ from {
686
+ opacity: 0;
687
+ transform: perspective(1200px) rotateX(-42deg) skewX(-8deg) scaleY(0.82);
688
+ transform-origin: 50% 0;
689
+ }
690
+ to {
691
+ opacity: 1;
692
+ transform: perspective(1200px) rotateX(0deg) skewX(0deg) scaleY(1);
693
+ transform-origin: 50% 0;
694
+ }
695
+ }
696
+
697
+ @keyframes transitionDrapeOut {
698
+ from {
699
+ opacity: 1;
700
+ transform: perspective(1200px) rotateX(0deg) skewX(0deg) scaleY(1);
701
+ transform-origin: 50% 0;
702
+ }
703
+ to {
704
+ opacity: 0;
705
+ transform: perspective(1200px) rotateX(48deg) skewX(7deg) scaleY(0.74);
706
+ transform-origin: 50% 0;
707
+ }
708
+ }
709
+
710
+ @keyframes transitionCurtainsIn {
711
+ from {
712
+ opacity: 0.4;
713
+ transform: scaleX(0.04);
714
+ filter: brightness(0.75);
715
+ }
716
+ to {
717
+ opacity: 1;
718
+ transform: scaleX(1);
719
+ filter: brightness(1);
720
+ }
721
+ }
722
+
723
+ @keyframes transitionCurtainsOut {
724
+ from {
725
+ opacity: 1;
726
+ transform: scaleX(1);
727
+ filter: brightness(1);
728
+ }
729
+ to {
730
+ opacity: 0.35;
731
+ transform: scaleX(0.04);
732
+ filter: brightness(0.55);
733
+ }
734
+ }
735
+
736
+ @keyframes transitionWindIn {
737
+ from {
738
+ opacity: 0;
739
+ filter: blur(14px);
740
+ transform: translateX(24%) skewX(-14deg);
741
+ }
742
+ to {
743
+ opacity: 1;
744
+ filter: blur(0);
745
+ transform: translateX(0) skewX(0);
746
+ }
747
+ }
748
+
749
+ @keyframes transitionWindOut {
750
+ from {
751
+ opacity: 1;
752
+ filter: blur(0);
753
+ transform: translateX(0) skewX(0);
754
+ }
755
+ to {
756
+ opacity: 0;
757
+ filter: blur(14px);
758
+ transform: translateX(-24%) skewX(14deg);
759
+ }
760
+ }
761
+
762
+ @keyframes transitionPrestigeIn {
763
+ from {
764
+ opacity: 0;
765
+ filter: brightness(1.8) saturate(0.7);
766
+ transform: perspective(1200px) translateZ(-180px) scale(0.82);
767
+ }
768
+ to {
769
+ opacity: 1;
770
+ filter: brightness(1) saturate(1);
771
+ transform: perspective(1200px) translateZ(0) scale(1);
772
+ }
773
+ }
774
+
775
+ @keyframes transitionPrestigeOut {
776
+ from {
777
+ opacity: 1;
778
+ filter: brightness(1) saturate(1);
779
+ transform: perspective(1200px) translateZ(0) scale(1);
780
+ }
781
+ to {
782
+ opacity: 0;
783
+ filter: brightness(1.6) saturate(0.75);
784
+ transform: perspective(1200px) translateZ(140px) scale(1.06);
785
+ }
786
+ }
787
+
788
+ @keyframes transitionFractureIn {
789
+ 0% {
790
+ opacity: 0;
791
+ filter: contrast(1.8) brightness(1.4);
792
+ clip-path: polygon(0 0, 48% 0, 52% 24%, 100% 0, 100% 100%, 55% 78%, 45% 100%, 0 100%);
793
+ transform: skewX(-6deg) scale(1.03);
794
+ }
795
+ 100% {
796
+ opacity: 1;
797
+ filter: contrast(1) brightness(1);
798
+ clip-path: inset(0);
799
+ transform: skewX(0) scale(1);
800
+ }
801
+ }
802
+
803
+ @keyframes transitionFractureOut {
804
+ from {
805
+ opacity: 1;
806
+ filter: contrast(1) brightness(1);
807
+ clip-path: inset(0);
808
+ transform: skewX(0) scale(1);
809
+ }
810
+ to {
811
+ opacity: 0;
812
+ filter: contrast(1.8) brightness(1.2);
813
+ clip-path: polygon(0 0, 42% 8%, 56% 28%, 100% 0, 100% 100%, 58% 72%, 40% 94%, 0 100%);
814
+ transform: skewX(8deg) scale(1.05);
815
+ }
816
+ }
817
+
818
+ @keyframes transitionCrushIn {
819
+ from {
820
+ opacity: 0;
821
+ transform: scaleX(1.22) scaleY(0.08);
822
+ filter: contrast(1.4);
823
+ }
824
+ to {
825
+ opacity: 1;
826
+ transform: scaleX(1) scaleY(1);
827
+ filter: contrast(1);
828
+ }
829
+ }
830
+
831
+ @keyframes transitionCrushOut {
832
+ from {
833
+ opacity: 1;
834
+ transform: scaleX(1) scaleY(1);
835
+ filter: contrast(1);
836
+ }
837
+ to {
838
+ opacity: 0;
839
+ transform: scaleX(1.28) scaleY(0.04);
840
+ filter: contrast(1.5);
841
+ }
842
+ }
843
+
844
+ @keyframes transitionPeelIn {
845
+ from {
846
+ opacity: 0;
847
+ transform: perspective(1400px) rotateY(-78deg) skewY(8deg);
848
+ transform-origin: 0 50%;
849
+ }
850
+ to {
851
+ opacity: 1;
852
+ transform: perspective(1400px) rotateY(0deg) skewY(0deg);
853
+ transform-origin: 0 50%;
854
+ }
855
+ }
856
+
857
+ @keyframes transitionPeelOut {
858
+ from {
859
+ opacity: 1;
860
+ transform: perspective(1400px) rotateY(0deg) skewY(0deg);
861
+ transform-origin: 100% 50%;
862
+ }
863
+ to {
864
+ opacity: 0;
865
+ transform: perspective(1400px) rotateY(82deg) skewY(-8deg);
866
+ transform-origin: 100% 50%;
867
+ }
868
+ }
869
+
870
+ @keyframes transitionPageCurlIn {
871
+ from {
872
+ opacity: 0;
873
+ transform: perspective(1400px) rotateY(-64deg) rotateZ(-2deg);
874
+ transform-origin: 0 50%;
875
+ filter: brightness(0.85);
876
+ }
877
+ to {
878
+ opacity: 1;
879
+ transform: perspective(1400px) rotateY(0deg) rotateZ(0deg);
880
+ transform-origin: 0 50%;
881
+ filter: brightness(1);
882
+ }
883
+ }
884
+
885
+ @keyframes transitionPageCurlOut {
886
+ from {
887
+ opacity: 1;
888
+ transform: perspective(1400px) rotateY(0deg) rotateZ(0deg);
889
+ transform-origin: 100% 50%;
890
+ filter: brightness(1);
891
+ }
892
+ to {
893
+ opacity: 0;
894
+ transform: perspective(1400px) rotateY(68deg) rotateZ(2deg);
895
+ transform-origin: 100% 50%;
896
+ filter: brightness(0.8);
897
+ }
898
+ }
899
+
900
+ @keyframes transitionAirplaneIn {
901
+ from {
902
+ opacity: 0;
903
+ transform: translate(-40%, 30%) rotate(-18deg) scale(0.72);
904
+ filter: blur(2px);
905
+ }
906
+ to {
907
+ opacity: 1;
908
+ transform: translate(0, 0) rotate(0deg) scale(1);
909
+ filter: blur(0);
910
+ }
911
+ }
912
+
913
+ @keyframes transitionAirplaneOut {
914
+ from {
915
+ opacity: 1;
916
+ transform: translate(0, 0) rotate(0deg) scale(1);
917
+ filter: blur(0);
918
+ }
919
+ to {
920
+ opacity: 0;
921
+ transform: translate(42%, -28%) rotate(18deg) scale(0.72);
922
+ filter: blur(2px);
923
+ }
924
+ }
925
+
926
+ @keyframes transitionOrigamiIn {
927
+ from {
928
+ opacity: 0;
929
+ transform: perspective(1400px) rotateX(58deg) rotateY(-42deg) scale(0.86);
930
+ filter: brightness(0.85);
931
+ }
932
+ to {
933
+ opacity: 1;
934
+ transform: perspective(1400px) rotateX(0deg) rotateY(0deg) scale(1);
935
+ filter: brightness(1);
936
+ }
937
+ }
938
+
939
+ @keyframes transitionOrigamiOut {
940
+ from {
941
+ opacity: 1;
942
+ transform: perspective(1400px) rotateX(0deg) rotateY(0deg) scale(1);
943
+ filter: brightness(1);
944
+ }
945
+ to {
946
+ opacity: 0;
947
+ transform: perspective(1400px) rotateX(-58deg) rotateY(42deg) scale(0.82);
948
+ filter: brightness(0.82);
949
+ }
950
+ }
951
+
952
+ @keyframes transitionRippleIn {
953
+ 0% {
954
+ opacity: 0;
955
+ filter: blur(10px);
956
+ transform: scale(0.86);
957
+ clip-path: circle(0% at 50% 50%);
958
+ }
959
+ 60% {
960
+ opacity: 0.88;
961
+ filter: blur(3px);
962
+ transform: scale(1.035);
963
+ clip-path: circle(65% at 50% 50%);
964
+ }
965
+ 100% {
966
+ opacity: 1;
967
+ filter: blur(0);
968
+ transform: scale(1);
969
+ clip-path: circle(75% at 50% 50%);
970
+ }
971
+ }
972
+
973
+ @keyframes transitionRippleOut {
974
+ from {
975
+ opacity: 1;
976
+ filter: blur(0);
977
+ transform: scale(1);
978
+ clip-path: circle(75% at 50% 50%);
979
+ }
980
+ to {
981
+ opacity: 0;
982
+ filter: blur(10px);
983
+ transform: scale(1.08);
984
+ clip-path: circle(0% at 50% 50%);
985
+ }
986
+ }
987
+
988
+ @keyframes transitionTexturedIn {
989
+ 0% {
990
+ opacity: 0.12;
991
+ filter: contrast(1.6);
992
+ }
993
+ 88% {
994
+ opacity: 1;
995
+ filter: contrast(1.05);
996
+ }
997
+ 100% {
998
+ opacity: 1;
999
+ filter: contrast(1);
1000
+ -webkit-mask-image: none;
1001
+ mask-image: none;
1002
+ }
1003
+ }
1004
+
1005
+ @keyframes transitionTexturedOut {
1006
+ from {
1007
+ opacity: 1;
1008
+ filter: contrast(1);
1009
+ }
1010
+ to {
1011
+ opacity: 0;
1012
+ filter: contrast(1.7);
1013
+ }
1014
+ }
1015
+
1016
+ @keyframes transitionVortexIn {
1017
+ from {
1018
+ opacity: 0;
1019
+ transform: rotate(-110deg) scale(0.28);
1020
+ filter: blur(8px);
1021
+ }
1022
+ to {
1023
+ opacity: 1;
1024
+ transform: rotate(0deg) scale(1);
1025
+ filter: blur(0);
1026
+ }
1027
+ }
1028
+
1029
+ @keyframes transitionVortexOut {
1030
+ from {
1031
+ opacity: 1;
1032
+ transform: rotate(0deg) scale(1);
1033
+ filter: blur(0);
1034
+ }
1035
+ to {
1036
+ opacity: 0;
1037
+ transform: rotate(120deg) scale(0.2);
1038
+ filter: blur(10px);
1039
+ }
1040
+ }
1041
+
1042
+ @keyframes transitionShredIn {
1043
+ from {
1044
+ opacity: 0;
1045
+ clip-path: inset(0 42% 0 42%);
1046
+ transform: translateY(-9%) skewX(-8deg);
1047
+ filter: contrast(1.7);
1048
+ }
1049
+ to {
1050
+ opacity: 1;
1051
+ clip-path: inset(0);
1052
+ transform: translateY(0) skewX(0);
1053
+ filter: contrast(1);
1054
+ }
1055
+ }
1056
+
1057
+ @keyframes transitionShredOut {
1058
+ from {
1059
+ opacity: 1;
1060
+ clip-path: inset(0);
1061
+ transform: translateY(0) skewX(0);
1062
+ filter: contrast(1);
1063
+ }
1064
+ to {
1065
+ opacity: 0;
1066
+ clip-path: inset(0 44% 0 44%);
1067
+ transform: translateY(11%) skewX(8deg);
1068
+ filter: contrast(1.8);
1069
+ }
1070
+ }
1071
+
1072
+ @keyframes transitionSwitchIn {
1073
+ from {
1074
+ opacity: 0;
1075
+ transform: perspective(1400px) rotateY(-48deg) translateX(18%);
1076
+ }
1077
+ to {
1078
+ opacity: 1;
1079
+ transform: perspective(1400px) rotateY(0deg) translateX(0);
1080
+ }
1081
+ }
1082
+
1083
+ @keyframes transitionSwitchOut {
1084
+ from {
1085
+ opacity: 1;
1086
+ transform: perspective(1400px) rotateY(0deg) translateX(0);
1087
+ }
1088
+ to {
1089
+ opacity: 0;
1090
+ transform: perspective(1400px) rotateY(48deg) translateX(-18%);
1091
+ }
1092
+ }
1093
+
1094
+ @keyframes transitionCubeIn {
1095
+ from {
1096
+ opacity: 0;
1097
+ transform: perspective(1200px) rotateY(-86deg) translateX(44%);
1098
+ transform-origin: 0 50%;
1099
+ }
1100
+ to {
1101
+ opacity: 1;
1102
+ transform: perspective(1200px) rotateY(0deg) translateX(0);
1103
+ transform-origin: 0 50%;
1104
+ }
1105
+ }
1106
+
1107
+ @keyframes transitionCubeOut {
1108
+ from {
1109
+ opacity: 1;
1110
+ transform: perspective(1200px) rotateY(0deg) translateX(0);
1111
+ transform-origin: 100% 50%;
1112
+ }
1113
+ to {
1114
+ opacity: 0;
1115
+ transform: perspective(1200px) rotateY(86deg) translateX(-44%);
1116
+ transform-origin: 100% 50%;
1117
+ }
1118
+ }
1119
+
1120
+ @keyframes transitionDoorsIn {
1121
+ from {
1122
+ opacity: 0.2;
1123
+ transform: perspective(1200px) scaleX(0.04);
1124
+ filter: brightness(0.7);
1125
+ }
1126
+ to {
1127
+ opacity: 1;
1128
+ transform: perspective(1200px) scaleX(1);
1129
+ filter: brightness(1);
1130
+ }
1131
+ }
1132
+
1133
+ @keyframes transitionDoorsOut {
1134
+ from {
1135
+ opacity: 1;
1136
+ transform: perspective(1200px) scaleX(1);
1137
+ filter: brightness(1);
1138
+ }
1139
+ to {
1140
+ opacity: 0.2;
1141
+ transform: perspective(1200px) scaleX(0.04);
1142
+ filter: brightness(0.65);
1143
+ }
1144
+ }
1145
+
1146
+ @keyframes transitionBoxIn {
1147
+ from {
1148
+ opacity: 0.2;
1149
+ transform: scale(0.18);
1150
+ clip-path: inset(38%);
1151
+ }
1152
+ to {
1153
+ opacity: 1;
1154
+ transform: scale(1);
1155
+ clip-path: inset(0);
1156
+ }
1157
+ }
1158
+
1159
+ @keyframes transitionBoxOut {
1160
+ from {
1161
+ opacity: 1;
1162
+ transform: scale(1);
1163
+ clip-path: inset(0);
1164
+ }
1165
+ to {
1166
+ opacity: 0;
1167
+ transform: scale(0.18);
1168
+ clip-path: inset(38%);
1169
+ }
1170
+ }
1171
+
1172
+ @keyframes transitionGalleryIn {
1173
+ from {
1174
+ opacity: 0;
1175
+ transform: translateX(28%) scale(0.84);
1176
+ filter: brightness(0.82);
1177
+ }
1178
+ to {
1179
+ opacity: 1;
1180
+ transform: translateX(0) scale(1);
1181
+ filter: brightness(1);
1182
+ }
1183
+ }
1184
+
1185
+ @keyframes transitionGalleryOut {
1186
+ from {
1187
+ opacity: 1;
1188
+ transform: translateX(0) scale(1);
1189
+ filter: brightness(1);
1190
+ }
1191
+ to {
1192
+ opacity: 0;
1193
+ transform: translateX(-28%) scale(0.84);
1194
+ filter: brightness(0.82);
1195
+ }
1196
+ }
1197
+
1198
+ @keyframes transitionFerrisIn {
1199
+ from {
1200
+ opacity: 0;
1201
+ transform: translateY(42%) rotate(-34deg) scale(0.78);
1202
+ transform-origin: 50% 140%;
1203
+ }
1204
+ to {
1205
+ opacity: 1;
1206
+ transform: translateY(0) rotate(0deg) scale(1);
1207
+ transform-origin: 50% 140%;
1208
+ }
1209
+ }
1210
+
1211
+ @keyframes transitionFerrisOut {
1212
+ from {
1213
+ opacity: 1;
1214
+ transform: translateY(0) rotate(0deg) scale(1);
1215
+ transform-origin: 50% 140%;
1216
+ }
1217
+ to {
1218
+ opacity: 0;
1219
+ transform: translateY(-42%) rotate(34deg) scale(0.78);
1220
+ transform-origin: 50% 140%;
1221
+ }
1222
+ }
1223
+
1224
+ @keyframes transitionWindowIn {
1225
+ from {
1226
+ opacity: 0.35;
1227
+ clip-path: inset(50% 50% 50% 50%);
1228
+ transform: scale(1.08);
1229
+ }
1230
+ to {
1231
+ opacity: 1;
1232
+ clip-path: inset(0);
1233
+ transform: scale(1);
1234
+ }
1235
+ }
1236
+
1237
+ @keyframes transitionWindowOut {
1238
+ from {
1239
+ opacity: 1;
1240
+ clip-path: inset(0);
1241
+ transform: scale(1);
1242
+ }
1243
+ to {
1244
+ opacity: 0;
1245
+ clip-path: inset(50% 50% 50% 50%);
1246
+ transform: scale(1.08);
1247
+ }
1248
+ }
1249
+
1250
+ @keyframes transitionOrbitIn {
1251
+ from {
1252
+ opacity: 0;
1253
+ transform: rotate(-42deg) translateX(18%) scale(0.76);
1254
+ transform-origin: 50% 50%;
1255
+ }
1256
+ to {
1257
+ opacity: 1;
1258
+ transform: rotate(0deg) translateX(0) scale(1);
1259
+ transform-origin: 50% 50%;
1260
+ }
1261
+ }
1262
+
1263
+ @keyframes transitionOrbitOut {
1264
+ from {
1265
+ opacity: 1;
1266
+ transform: rotate(0deg) translateX(0) scale(1);
1267
+ transform-origin: 50% 50%;
1268
+ }
1269
+ to {
1270
+ opacity: 0;
1271
+ transform: rotate(42deg) translateX(-18%) scale(0.76);
1272
+ transform-origin: 50% 50%;
1273
+ }
1274
+ }
1275
+
1276
+ @keyframes transitionFlyThroughIn {
1277
+ from {
1278
+ opacity: 0;
1279
+ transform: perspective(1200px) translateZ(-520px) scale(0.56);
1280
+ filter: blur(4px);
1281
+ }
1282
+ to {
1283
+ opacity: 1;
1284
+ transform: perspective(1200px) translateZ(0) scale(1);
1285
+ filter: blur(0);
1286
+ }
1287
+ }
1288
+
1289
+ @keyframes transitionFlyThroughOut {
1290
+ from {
1291
+ opacity: 1;
1292
+ transform: perspective(1200px) translateZ(0) scale(1);
1293
+ filter: blur(0);
1294
+ }
1295
+ to {
1296
+ opacity: 0;
1297
+ transform: perspective(1200px) translateZ(420px) scale(1.28);
1298
+ filter: blur(5px);
1299
+ }
1300
+ }
1301
+
1302
+ @keyframes transitionWheelIn {
1303
+ from {
1304
+ opacity: 0;
1305
+ transform: rotate(-58deg) scale(0.7);
1306
+ clip-path: circle(0% at 50% 50%);
1307
+ }
1308
+ to {
1309
+ opacity: 1;
1310
+ transform: rotate(0deg) scale(1);
1311
+ clip-path: circle(75% at 50% 50%);
1312
+ }
1313
+ }
1314
+
1315
+ @keyframes transitionWheelOut {
1316
+ from {
1317
+ opacity: 1;
1318
+ transform: rotate(0deg) scale(1);
1319
+ clip-path: circle(75% at 50% 50%);
1320
+ }
1321
+ to {
1322
+ opacity: 0;
1323
+ transform: rotate(58deg) scale(0.7);
1324
+ clip-path: circle(0% at 50% 50%);
1325
+ }
1326
+ }
1327
+
1328
+ @keyframes transitionWheelReverseIn {
1329
+ from {
1330
+ opacity: 0;
1331
+ transform: rotate(58deg) scale(0.7);
1332
+ clip-path: circle(0% at 50% 50%);
1333
+ }
1334
+ to {
1335
+ opacity: 1;
1336
+ transform: rotate(0deg) scale(1);
1337
+ clip-path: circle(75% at 50% 50%);
1338
+ }
1339
+ }
1340
+
1341
+ @keyframes transitionWheelReverseOut {
1342
+ from {
1343
+ opacity: 1;
1344
+ transform: rotate(0deg) scale(1);
1345
+ clip-path: circle(75% at 50% 50%);
1346
+ }
1347
+ to {
1348
+ opacity: 0;
1349
+ transform: rotate(-58deg) scale(0.7);
1350
+ clip-path: circle(0% at 50% 50%);
1351
+ }
1352
+ }
1353
+
1354
+ @keyframes transitionWedgeIn {
1355
+ from {
1356
+ opacity: 0.4;
1357
+ clip-path: polygon(50% 50%, 50% 0, 50% 0);
1358
+ }
1359
+ to {
1360
+ opacity: 1;
1361
+ clip-path: polygon(50% 50%, -30% -30%, 130% -30%, 130% 130%, -30% 130%);
1362
+ }
1363
+ }
1364
+
1365
+ @keyframes transitionWedgeOut {
1366
+ from {
1367
+ opacity: 1;
1368
+ clip-path: polygon(50% 50%, -30% -30%, 130% -30%, 130% 130%, -30% 130%);
1369
+ }
1370
+ to {
1371
+ opacity: 0;
1372
+ clip-path: polygon(50% 50%, 50% 0, 50% 0);
1373
+ }
1374
+ }
1375
+
1376
+ @keyframes transitionPrismIn {
1377
+ from {
1378
+ opacity: 0;
1379
+ transform: perspective(1200px) rotateY(-28deg) skewX(-12deg) scale(0.9);
1380
+ filter: hue-rotate(24deg) saturate(1.6);
1381
+ }
1382
+ to {
1383
+ opacity: 1;
1384
+ transform: perspective(1200px) rotateY(0deg) skewX(0) scale(1);
1385
+ filter: hue-rotate(0deg) saturate(1);
1386
+ }
1387
+ }
1388
+
1389
+ @keyframes transitionPrismOut {
1390
+ from {
1391
+ opacity: 1;
1392
+ transform: perspective(1200px) rotateY(0deg) skewX(0) scale(1);
1393
+ filter: hue-rotate(0deg) saturate(1);
1394
+ }
1395
+ to {
1396
+ opacity: 0;
1397
+ transform: perspective(1200px) rotateY(28deg) skewX(12deg) scale(0.9);
1398
+ filter: hue-rotate(-24deg) saturate(1.6);
1399
+ }
1400
+ }
1401
+
1402
+ @keyframes transitionWarpIn {
1403
+ from {
1404
+ opacity: 0;
1405
+ transform: scaleX(0.72) scaleY(1.18) skewX(-14deg);
1406
+ filter: blur(8px);
1407
+ }
1408
+ to {
1409
+ opacity: 1;
1410
+ transform: scaleX(1) scaleY(1) skewX(0deg);
1411
+ filter: blur(0);
1412
+ }
1413
+ }
1414
+
1415
+ @keyframes transitionWarpOut {
1416
+ from {
1417
+ opacity: 1;
1418
+ transform: scaleX(1) scaleY(1) skewX(0deg);
1419
+ filter: blur(0);
1420
+ }
1421
+ to {
1422
+ opacity: 0;
1423
+ transform: scaleX(1.2) scaleY(0.72) skewX(14deg);
1424
+ filter: blur(8px);
1425
+ }
1426
+ }
1427
+
1428
+ @keyframes transitionClockIn {
1429
+ from {
1430
+ opacity: 0.35;
1431
+ transform: rotate(-90deg) scale(0.84);
1432
+ clip-path: circle(0% at 50% 50%);
1433
+ }
1434
+ to {
1435
+ opacity: 1;
1436
+ transform: rotate(0deg) scale(1);
1437
+ clip-path: circle(75% at 50% 50%);
1438
+ }
1439
+ }
1440
+
1441
+ @keyframes transitionClockOut {
1442
+ from {
1443
+ opacity: 1;
1444
+ transform: rotate(0deg) scale(1);
1445
+ clip-path: circle(75% at 50% 50%);
1446
+ }
1447
+ to {
1448
+ opacity: 0;
1449
+ transform: rotate(90deg) scale(0.84);
1450
+ clip-path: circle(0% at 50% 50%);
1451
+ }
1452
+ }
1453
+
217
1454
  /* ============================================
218
1455
  Text Animations
219
1456
  ============================================ */
@@ -253,29 +1490,622 @@
253
1490
  }
254
1491
 
255
1492
  .transition-dissolve-enter {
256
- animation: fadeIn var(--transition-duration, 2s) ease-in-out forwards;
1493
+ animation: transitionDissolveIn var(--transition-duration, 0.8s) ease-in-out forwards;
257
1494
  }
258
1495
 
259
1496
  .transition-dissolve-exit {
260
- animation: fadeOut var(--transition-duration, 2s) ease-in-out forwards;
1497
+ animation: transitionDissolveOut var(--transition-duration, 0.8s) ease-in-out forwards;
1498
+ }
1499
+
1500
+ .transition-morph-enter {
1501
+ animation: transitionMorphIn var(--transition-duration, 0.9s) ease-in-out forwards;
1502
+ }
1503
+
1504
+ .transition-morph-exit {
1505
+ animation: transitionMorphOut var(--transition-duration, 0.9s) ease-in-out forwards;
261
1506
  }
262
1507
 
1508
+ .transition-pushLeft-enter,
263
1509
  .transition-slideLeft-enter {
264
1510
  animation: slideInRight var(--transition-duration, 0.8s) ease-out forwards;
265
1511
  }
266
1512
 
1513
+ .transition-pushLeft-exit,
267
1514
  .transition-slideLeft-exit {
268
1515
  animation: slideOutLeft var(--transition-duration, 0.8s) ease-out forwards;
269
1516
  }
270
1517
 
1518
+ .transition-pushRight-enter,
271
1519
  .transition-slideRight-enter {
272
1520
  animation: slideInLeft var(--transition-duration, 0.8s) ease-out forwards;
273
1521
  }
274
1522
 
1523
+ .transition-pushRight-exit,
275
1524
  .transition-slideRight-exit {
276
1525
  animation: slideOutRight var(--transition-duration, 0.8s) ease-out forwards;
277
1526
  }
278
1527
 
1528
+ .transition-pushUp-enter,
1529
+ .transition-slideUp-enter {
1530
+ animation: slideInBottom var(--transition-duration, 0.8s) ease-out forwards;
1531
+ }
1532
+
1533
+ .transition-pushUp-exit,
1534
+ .transition-slideUp-exit {
1535
+ animation: slideOutTop var(--transition-duration, 0.8s) ease-out forwards;
1536
+ }
1537
+
1538
+ .transition-pushDown-enter,
1539
+ .transition-slideDown-enter {
1540
+ animation: slideInTop var(--transition-duration, 0.8s) ease-out forwards;
1541
+ }
1542
+
1543
+ .transition-pushDown-exit,
1544
+ .transition-slideDown-exit {
1545
+ animation: slideOutBottom var(--transition-duration, 0.8s) ease-out forwards;
1546
+ }
1547
+
1548
+ .transition-zoom-enter {
1549
+ animation: transitionZoomIn var(--transition-duration, 0.7s) ease-out forwards;
1550
+ }
1551
+
1552
+ .transition-zoom-exit {
1553
+ animation: transitionZoomOut var(--transition-duration, 0.7s) ease-in forwards;
1554
+ }
1555
+
1556
+ .transition-flip-enter {
1557
+ animation: transitionFlipIn var(--transition-duration, 0.8s) ease-out forwards;
1558
+ }
1559
+
1560
+ .transition-flip-exit {
1561
+ animation: transitionFlipOut var(--transition-duration, 0.8s) ease-in forwards;
1562
+ }
1563
+
1564
+ .transition-rotate-enter {
1565
+ animation: transitionRotateIn var(--transition-duration, 0.8s) ease-out forwards;
1566
+ }
1567
+
1568
+ .transition-rotate-exit {
1569
+ animation: transitionRotateOut var(--transition-duration, 0.8s) ease-in forwards;
1570
+ }
1571
+
1572
+ .transition-wipeLeft-enter,
1573
+ .transition-revealLeft-enter {
1574
+ animation: transitionWipeLeftIn var(--transition-duration, 0.75s) ease-out forwards;
1575
+ }
1576
+
1577
+ .transition-wipeLeft-exit {
1578
+ animation: transitionWipeLeftOut var(--transition-duration, 0.75s) ease-in forwards;
1579
+ }
1580
+
1581
+ .transition-wipeRight-enter,
1582
+ .transition-revealRight-enter {
1583
+ animation: transitionWipeRightIn var(--transition-duration, 0.75s) ease-out forwards;
1584
+ }
1585
+
1586
+ .transition-wipeRight-exit {
1587
+ animation: transitionWipeRightOut var(--transition-duration, 0.75s) ease-in forwards;
1588
+ }
1589
+
1590
+ .transition-wipeUp-enter,
1591
+ .transition-revealUp-enter {
1592
+ animation: transitionWipeUpIn var(--transition-duration, 0.75s) ease-out forwards;
1593
+ }
1594
+
1595
+ .transition-wipeUp-exit {
1596
+ animation: transitionWipeUpOut var(--transition-duration, 0.75s) ease-in forwards;
1597
+ }
1598
+
1599
+ .transition-wipeDown-enter,
1600
+ .transition-revealDown-enter {
1601
+ animation: transitionWipeDownIn var(--transition-duration, 0.75s) ease-out forwards;
1602
+ }
1603
+
1604
+ .transition-wipeDown-exit {
1605
+ animation: transitionWipeDownOut var(--transition-duration, 0.75s) ease-in forwards;
1606
+ }
1607
+
1608
+ .transition-revealLeft-exit,
1609
+ .transition-revealRight-exit,
1610
+ .transition-revealUp-exit,
1611
+ .transition-revealDown-exit {
1612
+ animation: fadeOut var(--transition-duration, 0.75s) ease-in forwards;
1613
+ }
1614
+
1615
+ .transition-splitHorizontal-enter {
1616
+ animation: transitionSplitHorizontalIn var(--transition-duration, 0.8s) ease-out forwards;
1617
+ }
1618
+
1619
+ .transition-splitHorizontal-exit {
1620
+ animation: transitionSplitHorizontalOut var(--transition-duration, 0.8s) ease-in forwards;
1621
+ }
1622
+
1623
+ .transition-splitVertical-enter {
1624
+ animation: transitionSplitVerticalIn var(--transition-duration, 0.8s) ease-out forwards;
1625
+ }
1626
+
1627
+ .transition-splitVertical-exit {
1628
+ animation: transitionSplitVerticalOut var(--transition-duration, 0.8s) ease-in forwards;
1629
+ }
1630
+
1631
+ .transition-coverLeft-enter,
1632
+ .transition-pullLeft-enter {
1633
+ animation: slideInRight var(--transition-duration, 0.75s) ease-out forwards;
1634
+ }
1635
+
1636
+ .transition-coverRight-enter,
1637
+ .transition-pullRight-enter {
1638
+ animation: slideInLeft var(--transition-duration, 0.75s) ease-out forwards;
1639
+ }
1640
+
1641
+ .transition-coverUp-enter,
1642
+ .transition-pullUp-enter {
1643
+ animation: slideInBottom var(--transition-duration, 0.75s) ease-out forwards;
1644
+ }
1645
+
1646
+ .transition-coverDown-enter,
1647
+ .transition-pullDown-enter {
1648
+ animation: slideInTop var(--transition-duration, 0.75s) ease-out forwards;
1649
+ }
1650
+
1651
+ .transition-coverLeft-exit,
1652
+ .transition-coverRight-exit,
1653
+ .transition-coverUp-exit,
1654
+ .transition-coverDown-exit,
1655
+ .transition-pullLeft-exit,
1656
+ .transition-pullRight-exit,
1657
+ .transition-pullUp-exit,
1658
+ .transition-pullDown-exit {
1659
+ animation: transitionHold var(--transition-duration, 0.75s) linear forwards;
1660
+ }
1661
+
1662
+ .transition-uncoverLeft-enter,
1663
+ .transition-uncoverRight-enter,
1664
+ .transition-uncoverUp-enter,
1665
+ .transition-uncoverDown-enter {
1666
+ animation: fadeIn var(--transition-duration, 0.75s) ease-out forwards;
1667
+ }
1668
+
1669
+ .transition-uncoverLeft-exit {
1670
+ animation: slideOutLeft var(--transition-duration, 0.75s) ease-in forwards;
1671
+ }
1672
+
1673
+ .transition-uncoverRight-exit {
1674
+ animation: slideOutRight var(--transition-duration, 0.75s) ease-in forwards;
1675
+ }
1676
+
1677
+ .transition-uncoverUp-exit {
1678
+ animation: slideOutTop var(--transition-duration, 0.75s) ease-in forwards;
1679
+ }
1680
+
1681
+ .transition-uncoverDown-exit {
1682
+ animation: slideOutBottom var(--transition-duration, 0.75s) ease-in forwards;
1683
+ }
1684
+
1685
+ .transition-shapeCircle-enter {
1686
+ animation: transitionCircleIn var(--transition-duration, 0.75s) ease-out forwards;
1687
+ }
1688
+
1689
+ .transition-shapeCircle-exit {
1690
+ animation: transitionCircleOut var(--transition-duration, 0.75s) ease-in forwards;
1691
+ }
1692
+
1693
+ .transition-shapeDiamond-enter {
1694
+ animation: transitionDiamondIn var(--transition-duration, 0.75s) ease-out forwards;
1695
+ }
1696
+
1697
+ .transition-shapeDiamond-exit {
1698
+ animation: transitionDiamondOut var(--transition-duration, 0.75s) ease-in forwards;
1699
+ }
1700
+
1701
+ .transition-shapePlus-enter {
1702
+ animation: transitionPlusIn var(--transition-duration, 0.8s) ease-out forwards;
1703
+ }
1704
+
1705
+ .transition-shapePlus-exit {
1706
+ animation: transitionPlusOut var(--transition-duration, 0.8s) ease-in forwards;
1707
+ }
1708
+
1709
+ .transition-flash-enter {
1710
+ animation: transitionFlashIn var(--transition-duration, 0.7s) ease-out forwards;
1711
+ }
1712
+
1713
+ .transition-flash-exit {
1714
+ animation: transitionFlashOut var(--transition-duration, 0.7s) ease-in forwards;
1715
+ }
1716
+
1717
+ .transition-newsflash-enter {
1718
+ animation: transitionNewsflashIn var(--transition-duration, 0.75s) ease-out forwards;
1719
+ }
1720
+
1721
+ .transition-newsflash-exit {
1722
+ animation: transitionNewsflashOut var(--transition-duration, 0.75s) ease-in forwards;
1723
+ }
1724
+
1725
+ .transition-fallOver-enter {
1726
+ animation: transitionFallOverIn var(--transition-duration, 0.85s) ease-out forwards;
1727
+ }
1728
+
1729
+ .transition-fallOver-exit {
1730
+ animation: transitionFallOverOut var(--transition-duration, 0.85s) ease-in forwards;
1731
+ }
1732
+
1733
+ .transition-drape-enter {
1734
+ animation: transitionDrapeIn var(--transition-duration, 0.85s) ease-out forwards;
1735
+ }
1736
+
1737
+ .transition-drape-exit {
1738
+ animation: transitionDrapeOut var(--transition-duration, 0.85s) ease-in forwards;
1739
+ }
1740
+
1741
+ .transition-curtains-enter {
1742
+ animation: transitionCurtainsIn var(--transition-duration, 0.85s) ease-out forwards;
1743
+ }
1744
+
1745
+ .transition-curtains-exit {
1746
+ animation: transitionCurtainsOut var(--transition-duration, 0.85s) ease-in forwards;
1747
+ }
1748
+
1749
+ .transition-wind-enter {
1750
+ animation: transitionWindIn var(--transition-duration, 0.8s) ease-out forwards;
1751
+ }
1752
+
1753
+ .transition-wind-exit {
1754
+ animation: transitionWindOut var(--transition-duration, 0.8s) ease-in forwards;
1755
+ }
1756
+
1757
+ .transition-prestige-enter {
1758
+ animation: transitionPrestigeIn var(--transition-duration, 0.85s) ease-out forwards;
1759
+ }
1760
+
1761
+ .transition-prestige-exit {
1762
+ animation: transitionPrestigeOut var(--transition-duration, 0.85s) ease-in forwards;
1763
+ }
1764
+
1765
+ .transition-fracture-enter {
1766
+ animation: transitionFractureIn var(--transition-duration, 0.8s) ease-out forwards;
1767
+ }
1768
+
1769
+ .transition-fracture-exit {
1770
+ animation: transitionFractureOut var(--transition-duration, 0.8s) ease-in forwards;
1771
+ }
1772
+
1773
+ .transition-crush-enter {
1774
+ animation: transitionCrushIn var(--transition-duration, 0.75s) ease-out forwards;
1775
+ }
1776
+
1777
+ .transition-crush-exit {
1778
+ animation: transitionCrushOut var(--transition-duration, 0.75s) ease-in forwards;
1779
+ }
1780
+
1781
+ .transition-peelOff-enter {
1782
+ animation: transitionPeelIn var(--transition-duration, 0.85s) ease-out forwards;
1783
+ }
1784
+
1785
+ .transition-peelOff-exit {
1786
+ animation: transitionPeelOut var(--transition-duration, 0.85s) ease-in forwards;
1787
+ }
1788
+
1789
+ .transition-pageCurl-enter,
1790
+ .transition-pageCurlDouble-enter,
1791
+ .transition-pageCurlSingle-enter {
1792
+ animation: transitionPageCurlIn var(--transition-duration, 0.9s) ease-out forwards;
1793
+ }
1794
+
1795
+ .transition-pageCurl-exit,
1796
+ .transition-pageCurlDouble-exit,
1797
+ .transition-pageCurlSingle-exit {
1798
+ animation: transitionPageCurlOut var(--transition-duration, 0.9s) ease-in forwards;
1799
+ }
1800
+
1801
+ .transition-airplane-enter {
1802
+ animation: transitionAirplaneIn var(--transition-duration, 0.85s) ease-out forwards;
1803
+ }
1804
+
1805
+ .transition-airplane-exit {
1806
+ animation: transitionAirplaneOut var(--transition-duration, 0.85s) ease-in forwards;
1807
+ }
1808
+
1809
+ .transition-origami-enter {
1810
+ animation: transitionOrigamiIn var(--transition-duration, 0.85s) ease-out forwards;
1811
+ }
1812
+
1813
+ .transition-origami-exit {
1814
+ animation: transitionOrigamiOut var(--transition-duration, 0.85s) ease-in forwards;
1815
+ }
1816
+
1817
+ .transition-ripple-enter {
1818
+ animation: transitionRippleIn var(--transition-duration, 0.85s) ease-out forwards;
1819
+ }
1820
+
1821
+ .transition-ripple-exit {
1822
+ animation: transitionRippleOut var(--transition-duration, 0.85s) ease-in forwards;
1823
+ }
1824
+
1825
+ .transition-checkerboard-enter,
1826
+ .transition-random-enter {
1827
+ -webkit-mask-image:
1828
+ linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%),
1829
+ linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%);
1830
+ -webkit-mask-size: 12% 12%;
1831
+ -webkit-mask-position:
1832
+ 0 0,
1833
+ 6% 6%;
1834
+ mask-image:
1835
+ linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%),
1836
+ linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%);
1837
+ mask-size: 12% 12%;
1838
+ mask-position:
1839
+ 0 0,
1840
+ 6% 6%;
1841
+ animation: transitionTexturedIn var(--transition-duration, 0.85s) steps(8, end) forwards;
1842
+ }
1843
+
1844
+ .transition-checkerboard-exit,
1845
+ .transition-random-exit {
1846
+ -webkit-mask-image:
1847
+ linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%),
1848
+ linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%);
1849
+ -webkit-mask-size: 12% 12%;
1850
+ -webkit-mask-position:
1851
+ 0 0,
1852
+ 6% 6%;
1853
+ mask-image:
1854
+ linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%),
1855
+ linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%);
1856
+ mask-size: 12% 12%;
1857
+ mask-position:
1858
+ 0 0,
1859
+ 6% 6%;
1860
+ animation: transitionTexturedOut var(--transition-duration, 0.85s) steps(8, end) forwards;
1861
+ }
1862
+
1863
+ .transition-randomBarsHorizontal-enter,
1864
+ .transition-blindsHorizontal-enter,
1865
+ .transition-combHorizontal-enter,
1866
+ .transition-stripsLeft-enter,
1867
+ .transition-stripsRight-enter {
1868
+ -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 6%, transparent 6% 12%);
1869
+ mask-image: repeating-linear-gradient(0deg, #000 0 6%, transparent 6% 12%);
1870
+ animation: transitionTexturedIn var(--transition-duration, 0.8s) steps(9, end) forwards;
1871
+ }
1872
+
1873
+ .transition-randomBarsHorizontal-exit,
1874
+ .transition-blindsHorizontal-exit,
1875
+ .transition-combHorizontal-exit,
1876
+ .transition-stripsLeft-exit,
1877
+ .transition-stripsRight-exit {
1878
+ -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 6%, transparent 6% 12%);
1879
+ mask-image: repeating-linear-gradient(0deg, #000 0 6%, transparent 6% 12%);
1880
+ animation: transitionTexturedOut var(--transition-duration, 0.8s) steps(9, end) forwards;
1881
+ }
1882
+
1883
+ .transition-randomBarsVertical-enter,
1884
+ .transition-blindsVertical-enter,
1885
+ .transition-combVertical-enter,
1886
+ .transition-stripsUp-enter,
1887
+ .transition-stripsDown-enter {
1888
+ -webkit-mask-image: repeating-linear-gradient(90deg, #000 0 6%, transparent 6% 12%);
1889
+ mask-image: repeating-linear-gradient(90deg, #000 0 6%, transparent 6% 12%);
1890
+ animation: transitionTexturedIn var(--transition-duration, 0.8s) steps(9, end) forwards;
1891
+ }
1892
+
1893
+ .transition-randomBarsVertical-exit,
1894
+ .transition-blindsVertical-exit,
1895
+ .transition-combVertical-exit,
1896
+ .transition-stripsUp-exit,
1897
+ .transition-stripsDown-exit {
1898
+ -webkit-mask-image: repeating-linear-gradient(90deg, #000 0 6%, transparent 6% 12%);
1899
+ mask-image: repeating-linear-gradient(90deg, #000 0 6%, transparent 6% 12%);
1900
+ animation: transitionTexturedOut var(--transition-duration, 0.8s) steps(9, end) forwards;
1901
+ }
1902
+
1903
+ .transition-honeycomb-enter {
1904
+ -webkit-mask-image: radial-gradient(circle, #000 0 34%, transparent 35% 48%, #000 49%);
1905
+ -webkit-mask-size: 10% 17%;
1906
+ mask-image: radial-gradient(circle, #000 0 34%, transparent 35% 48%, #000 49%);
1907
+ mask-size: 10% 17%;
1908
+ animation: transitionTexturedIn var(--transition-duration, 0.85s) steps(8, end) forwards;
1909
+ }
1910
+
1911
+ .transition-honeycomb-exit {
1912
+ -webkit-mask-image: radial-gradient(circle, #000 0 34%, transparent 35% 48%, #000 49%);
1913
+ -webkit-mask-size: 10% 17%;
1914
+ mask-image: radial-gradient(circle, #000 0 34%, transparent 35% 48%, #000 49%);
1915
+ mask-size: 10% 17%;
1916
+ animation: transitionTexturedOut var(--transition-duration, 0.85s) steps(8, end) forwards;
1917
+ }
1918
+
1919
+ .transition-glitter-enter {
1920
+ -webkit-mask-image: radial-gradient(circle, #000 0 18%, transparent 20% 36%, #000 38%);
1921
+ -webkit-mask-size: 7% 7%;
1922
+ mask-image: radial-gradient(circle, #000 0 18%, transparent 20% 36%, #000 38%);
1923
+ mask-size: 7% 7%;
1924
+ animation: transitionFlashIn var(--transition-duration, 0.85s) steps(10, end) forwards;
1925
+ }
1926
+
1927
+ .transition-glitter-exit {
1928
+ -webkit-mask-image: radial-gradient(circle, #000 0 18%, transparent 20% 36%, #000 38%);
1929
+ -webkit-mask-size: 7% 7%;
1930
+ mask-image: radial-gradient(circle, #000 0 18%, transparent 20% 36%, #000 38%);
1931
+ mask-size: 7% 7%;
1932
+ animation: transitionFlashOut var(--transition-duration, 0.85s) steps(10, end) forwards;
1933
+ }
1934
+
1935
+ .transition-vortex-enter {
1936
+ animation: transitionVortexIn var(--transition-duration, 0.85s) ease-out forwards;
1937
+ }
1938
+
1939
+ .transition-vortex-exit {
1940
+ animation: transitionVortexOut var(--transition-duration, 0.85s) ease-in forwards;
1941
+ }
1942
+
1943
+ .transition-shred-enter {
1944
+ -webkit-mask-image: repeating-linear-gradient(90deg, #000 0 5%, transparent 5% 8%);
1945
+ mask-image: repeating-linear-gradient(90deg, #000 0 5%, transparent 5% 8%);
1946
+ animation: transitionShredIn var(--transition-duration, 0.85s) ease-out forwards;
1947
+ }
1948
+
1949
+ .transition-shred-exit {
1950
+ -webkit-mask-image: repeating-linear-gradient(90deg, #000 0 5%, transparent 5% 8%);
1951
+ mask-image: repeating-linear-gradient(90deg, #000 0 5%, transparent 5% 8%);
1952
+ animation: transitionShredOut var(--transition-duration, 0.85s) ease-in forwards;
1953
+ }
1954
+
1955
+ .transition-switch-enter {
1956
+ animation: transitionSwitchIn var(--transition-duration, 0.8s) ease-out forwards;
1957
+ }
1958
+
1959
+ .transition-switch-exit {
1960
+ animation: transitionSwitchOut var(--transition-duration, 0.8s) ease-in forwards;
1961
+ }
1962
+
1963
+ .transition-cube-enter {
1964
+ animation: transitionCubeIn var(--transition-duration, 0.85s) ease-out forwards;
1965
+ }
1966
+
1967
+ .transition-cube-exit {
1968
+ animation: transitionCubeOut var(--transition-duration, 0.85s) ease-in forwards;
1969
+ }
1970
+
1971
+ .transition-doors-enter {
1972
+ animation: transitionDoorsIn var(--transition-duration, 0.85s) ease-out forwards;
1973
+ }
1974
+
1975
+ .transition-doors-exit {
1976
+ animation: transitionDoorsOut var(--transition-duration, 0.85s) ease-in forwards;
1977
+ }
1978
+
1979
+ .transition-box-enter {
1980
+ animation: transitionBoxIn var(--transition-duration, 0.75s) ease-out forwards;
1981
+ }
1982
+
1983
+ .transition-box-exit {
1984
+ animation: transitionBoxOut var(--transition-duration, 0.75s) ease-in forwards;
1985
+ }
1986
+
1987
+ .transition-gallery-enter {
1988
+ animation: transitionGalleryIn var(--transition-duration, 0.8s) ease-out forwards;
1989
+ }
1990
+
1991
+ .transition-gallery-exit {
1992
+ animation: transitionGalleryOut var(--transition-duration, 0.8s) ease-in forwards;
1993
+ }
1994
+
1995
+ .transition-conveyor-enter,
1996
+ .transition-panLeft-enter {
1997
+ animation: slideInRight var(--transition-duration, 0.8s) ease-out forwards;
1998
+ }
1999
+
2000
+ .transition-conveyor-exit,
2001
+ .transition-panLeft-exit {
2002
+ animation: slideOutLeft var(--transition-duration, 0.8s) ease-in forwards;
2003
+ }
2004
+
2005
+ .transition-panRight-enter {
2006
+ animation: slideInLeft var(--transition-duration, 0.8s) ease-out forwards;
2007
+ }
2008
+
2009
+ .transition-panRight-exit {
2010
+ animation: slideOutRight var(--transition-duration, 0.8s) ease-in forwards;
2011
+ }
2012
+
2013
+ .transition-panUp-enter {
2014
+ animation: slideInBottom var(--transition-duration, 0.8s) ease-out forwards;
2015
+ }
2016
+
2017
+ .transition-panUp-exit {
2018
+ animation: slideOutTop var(--transition-duration, 0.8s) ease-in forwards;
2019
+ }
2020
+
2021
+ .transition-panDown-enter {
2022
+ animation: slideInTop var(--transition-duration, 0.8s) ease-out forwards;
2023
+ }
2024
+
2025
+ .transition-panDown-exit {
2026
+ animation: slideOutBottom var(--transition-duration, 0.8s) ease-in forwards;
2027
+ }
2028
+
2029
+ .transition-ferrisWheel-enter {
2030
+ animation: transitionFerrisIn var(--transition-duration, 0.85s) ease-out forwards;
2031
+ }
2032
+
2033
+ .transition-ferrisWheel-exit {
2034
+ animation: transitionFerrisOut var(--transition-duration, 0.85s) ease-in forwards;
2035
+ }
2036
+
2037
+ .transition-window-enter {
2038
+ animation: transitionWindowIn var(--transition-duration, 0.8s) ease-out forwards;
2039
+ }
2040
+
2041
+ .transition-window-exit {
2042
+ animation: transitionWindowOut var(--transition-duration, 0.8s) ease-in forwards;
2043
+ }
2044
+
2045
+ .transition-orbit-enter {
2046
+ animation: transitionOrbitIn var(--transition-duration, 0.85s) ease-out forwards;
2047
+ }
2048
+
2049
+ .transition-orbit-exit {
2050
+ animation: transitionOrbitOut var(--transition-duration, 0.85s) ease-in forwards;
2051
+ }
2052
+
2053
+ .transition-flyThrough-enter {
2054
+ animation: transitionFlyThroughIn var(--transition-duration, 0.85s) ease-out forwards;
2055
+ }
2056
+
2057
+ .transition-flyThrough-exit {
2058
+ animation: transitionFlyThroughOut var(--transition-duration, 0.85s) ease-in forwards;
2059
+ }
2060
+
2061
+ .transition-wheel-enter {
2062
+ animation: transitionWheelIn var(--transition-duration, 0.85s) ease-out forwards;
2063
+ }
2064
+
2065
+ .transition-wheel-exit {
2066
+ animation: transitionWheelOut var(--transition-duration, 0.85s) ease-in forwards;
2067
+ }
2068
+
2069
+ .transition-wheelReverse-enter {
2070
+ animation: transitionWheelReverseIn var(--transition-duration, 0.85s) ease-out forwards;
2071
+ }
2072
+
2073
+ .transition-wheelReverse-exit {
2074
+ animation: transitionWheelReverseOut var(--transition-duration, 0.85s) ease-in forwards;
2075
+ }
2076
+
2077
+ .transition-wedge-enter {
2078
+ animation: transitionWedgeIn var(--transition-duration, 0.8s) ease-out forwards;
2079
+ }
2080
+
2081
+ .transition-wedge-exit {
2082
+ animation: transitionWedgeOut var(--transition-duration, 0.8s) ease-in forwards;
2083
+ }
2084
+
2085
+ .transition-prism-enter {
2086
+ animation: transitionPrismIn var(--transition-duration, 0.85s) ease-out forwards;
2087
+ }
2088
+
2089
+ .transition-prism-exit {
2090
+ animation: transitionPrismOut var(--transition-duration, 0.85s) ease-in forwards;
2091
+ }
2092
+
2093
+ .transition-warp-enter {
2094
+ animation: transitionWarpIn var(--transition-duration, 0.85s) ease-out forwards;
2095
+ }
2096
+
2097
+ .transition-warp-exit {
2098
+ animation: transitionWarpOut var(--transition-duration, 0.85s) ease-in forwards;
2099
+ }
2100
+
2101
+ .transition-clock-enter {
2102
+ animation: transitionClockIn var(--transition-duration, 0.8s) ease-out forwards;
2103
+ }
2104
+
2105
+ .transition-clock-exit {
2106
+ animation: transitionClockOut var(--transition-duration, 0.8s) ease-in forwards;
2107
+ }
2108
+
279
2109
  /* ============================================
280
2110
  Animation Utility Classes
281
2111
  Applied dynamically based on layer.animation
@@ -419,6 +2249,13 @@
419
2249
  width: 100%;
420
2250
  height: 100%;
421
2251
  display: block;
2252
+ transform-origin: center;
2253
+ transform-box: fill-box;
2254
+ }
2255
+
2256
+ .block-svg[class*='transition-'] {
2257
+ backface-visibility: hidden;
2258
+ will-change: transform, opacity, filter, clip-path;
422
2259
  }
423
2260
 
424
2261
  /* Layer containers within SVG */
@@ -492,3 +2329,21 @@
492
2329
  display: block;
493
2330
  width: 100%;
494
2331
  }
2332
+
2333
+ /* ============================================
2334
+ Reduced motion
2335
+ Freeze ambient/Ken Burns motion when the user asks for calm. Entrance
2336
+ fades and block transitions are brief and purposeful, so they stay;
2337
+ the long-running spatial loops are the vestibular offenders.
2338
+ Player-only by construction: headless export renders with no
2339
+ reduced-motion preference, so videos are unaffected.
2340
+ ============================================ */
2341
+ @media (prefers-reduced-motion: reduce) {
2342
+ .anim-slowZoom-in,
2343
+ .anim-slowZoom-out,
2344
+ .anim-slowZoom-panLeft,
2345
+ .anim-slowZoom-panRight,
2346
+ .anim-drift {
2347
+ animation: none;
2348
+ }
2349
+ }