pds-dev-kit-web-test 2.3.4 → 2.3.6
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/src/sub/DynamicLayout/components/SectionMatcher/SectionMatcher.js +1 -7
- package/dist/src/sub/DynamicLayout/pagesPreviewMock.d.ts +709 -1375
- package/dist/src/sub/DynamicLayout/pagesPreviewMock.js +1124 -2381
- package/dist/src/sub/DynamicLayout/sectionActionTypes.d.ts +0 -10
- package/dist/src/sub/DynamicLayout/sections/CustomSection/CustomSection.d.ts +0 -6
- package/dist/src/sub/DynamicLayout/sections/CustomSection/CustomSection.js +64 -77
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/ComponentBlockMatcher.d.ts +1 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/ComponentBlockMatcher.js +3 -3
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Button/Button.js +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/Text.d.ts +1 -3
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/Text.js +1 -60
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/components/S_CB_Box.js +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/index.d.ts +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/index.js +3 -3
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/index.d.ts +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/index.js +2 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/newUtils/textUtil.js +1 -12
- package/dist/src/sub/SandollFontKit/api/getSandollFonts.d.ts +14 -0
- package/dist/src/sub/SandollFontKit/api/getSandollFonts.js +77 -0
- package/dist/src/sub/SandollFontKit/api/types.d.ts +47 -0
- package/dist/src/sub/SandollFontKit/api/types.js +2 -0
- package/dist/src/sub/SandollFontKit/constants.d.ts +9 -0
- package/dist/src/sub/SandollFontKit/constants.js +33 -0
- package/dist/src/sub/SandollFontKit/headless/SandollFontItem.d.ts +13 -0
- package/dist/src/sub/SandollFontKit/headless/SandollFontItem.js +93 -0
- package/dist/src/sub/SandollFontKit/headless/SandollFontsList.d.ts +18 -0
- package/dist/src/sub/SandollFontKit/headless/SandollFontsList.js +126 -0
- package/dist/src/sub/SandollFontKit/index.d.ts +5 -0
- package/dist/src/sub/SandollFontKit/index.js +28 -0
- package/dist/src/sub/SandollFontKit/types.d.ts +19 -0
- package/dist/src/sub/SandollFontKit/types.js +2 -0
- package/dist/src/sub/SandollFontKit/utils/createSandollFontLink.d.ts +2 -0
- package/dist/src/sub/SandollFontKit/utils/createSandollFontLink.js +16 -0
- package/dist/src/sub/SandollFontKit/utils/delay.d.ts +1 -0
- package/dist/src/sub/SandollFontKit/utils/delay.js +6 -0
- package/package.json +1 -4
- package/dist/src/sub/DynamicLayout/sections/CustomSection/NewCustomSection.d.ts +0 -3
- package/dist/src/sub/DynamicLayout/sections/CustomSection/NewCustomSection.js +0 -70
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/index.d.ts +0 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/index.js +0 -8
- package/dist/src/sub/DynamicLayout/sections/CustomSection/customSectionContext.d.ts +0 -10
- package/dist/src/sub/DynamicLayout/sections/CustomSection/customSectionContext.js +0 -21
- package/dist/src/sub/DynamicLayout/sections/TempCustomSection/FlexGridItem.d.ts +0 -11
- package/dist/src/sub/DynamicLayout/sections/TempCustomSection/FlexGridItem.js +0 -69
- package/dist/src/sub/DynamicLayout/sections/TempCustomSection/TempCustomSection.d.ts +0 -7
- package/dist/src/sub/DynamicLayout/sections/TempCustomSection/TempCustomSection.js +0 -87
- package/dist/src/sub/DynamicLayout/sections/TempCustomSection/useIsMounted.d.ts +0 -1
- package/dist/src/sub/DynamicLayout/sections/TempCustomSection/useIsMounted.js +0 -15
- package/dist/src/sub/DynamicLayout/sections/TempCustomSection/useResizableObserver.d.ts +0 -12
- package/dist/src/sub/DynamicLayout/sections/TempCustomSection/useResizableObserver.js +0 -74
@@ -50,7 +50,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
50
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
51
51
|
};
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
53
|
-
exports.S_gleStyles = exports.GUTTER = exports.GLE_MIN_WIDTH_MOBILE_PX = exports.GLE_MIN_WIDTH_DESKTOP_PX = exports.MOBILE_GRID_COLS = exports.DESKTOP_GRID_COLS = void 0;
|
54
53
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
55
54
|
var publ_echo_1 = require("publ-echo");
|
56
55
|
var ReactGridLayout_1 = __importDefault(require("publ-echo/dist/lib/GridLayoutEditor/ReactGridLayout"));
|
@@ -61,7 +60,6 @@ var deepCopy_1 = __importDefault(require("../../../DynamicLayout/utils/deepCopy"
|
|
61
60
|
var styled_components_1 = __importDefault(require("styled-components"));
|
62
61
|
var components_1 = require("../../components");
|
63
62
|
var ComponentBlockMatcher_1 = __importDefault(require("./components/ComponentBlock/ComponentBlockMatcher"));
|
64
|
-
var customSectionContext_1 = require("./customSectionContext");
|
65
63
|
var useGroupDrag_1 = require("./hooks/useGroupDrag");
|
66
64
|
var useGroupDrag_2 = require("./hooks/useGroupDrag/useGroupDrag");
|
67
65
|
var utils_1 = require("./hooks/useGroupDrag/utils");
|
@@ -70,11 +68,10 @@ var parseSectionPadding_1 = __importDefault(require("./util/layoutPropParsers/pa
|
|
70
68
|
var WidthProvidedRGL = (0, publ_echo_1.WidthProvider)(ReactGridLayout_1.default);
|
71
69
|
var Responsive = (0, publ_echo_1.WidthProvider)(publ_echo_1.ResponsiveGridEditor);
|
72
70
|
var GRID_CELL_MIN = 24;
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
exports.GUTTER = 10;
|
71
|
+
var DESKTOP_GRID_COLS = 24;
|
72
|
+
var MOBILE_GRID_COLS = 8;
|
73
|
+
var GLE_MIN_WIDTH_DESKTOP_PX = "".concat(GRID_CELL_MIN * DESKTOP_GRID_COLS, "px");
|
74
|
+
var GLE_MIN_WIDTH_MOBILE_PX = "".concat(GRID_CELL_MIN * MOBILE_GRID_COLS, "px");
|
78
75
|
var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
|
79
76
|
var _a = (0, react_1.useContext)(dynamicLayoutContext_1.dynamicLayoutContext), device = _a.device, editingSectionId = _a.editingSectionId, mode = _a.mode, shortcutKeyMode = _a.shortcutKeyMode, sectionActionHandler = _a.sectionActionHandler;
|
80
77
|
var componentBlocks = props.componentBlocks, jsonProperties = props.jsonProperties;
|
@@ -338,15 +335,6 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
|
|
338
335
|
type: '@CUSTOMSECTION/CB_RESIZE_STOP',
|
339
336
|
payload: props
|
340
337
|
});
|
341
|
-
setLayouts(function (prev) {
|
342
|
-
var copy = JSON.parse(JSON.stringify(prev));
|
343
|
-
var idx = copy[layoutByDevice].findIndex(function (each) { return each.i === item.i; });
|
344
|
-
if (idx) {
|
345
|
-
var resized = __assign(__assign({}, copy[layoutByDevice][idx]), item);
|
346
|
-
copy[layoutByDevice].splice(idx, 1, resized);
|
347
|
-
}
|
348
|
-
return copy;
|
349
|
-
});
|
350
338
|
}
|
351
339
|
};
|
352
340
|
var onClickSection = function () {
|
@@ -370,12 +358,12 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
|
|
370
358
|
// NOTE: local환경에서 CB_CONTENT_PROP_SECTION이 없는 경우가 있음.
|
371
359
|
!!(CB_CONTENT_PROP_SECTION === null || CB_CONTENT_PROP_SECTION === void 0 ? void 0 : CB_CONTENT_PROP_SECTION.CB_CONTENT_PROP_SECTION_SPEC_VARIABLEROOTFONTSIZE);
|
372
360
|
if (device === 'MOBILE') {
|
373
|
-
var cellWidth_1 = width /
|
361
|
+
var cellWidth_1 = width / MOBILE_GRID_COLS;
|
374
362
|
setRowHeight(cellWidth_1 * 0.56);
|
375
363
|
baseFontSize !== 16 && setBaseFontSize(16);
|
376
364
|
return;
|
377
365
|
}
|
378
|
-
var cellWidth = width /
|
366
|
+
var cellWidth = width / DESKTOP_GRID_COLS;
|
379
367
|
setRowHeight(cellWidth * 0.56);
|
380
368
|
responsiveFontMode ? setBaseFontSize(cellWidth / 2.35) : setBaseFontSize(16);
|
381
369
|
};
|
@@ -415,64 +403,63 @@ var CustomSection = (0, react_1.forwardRef)(function CustomSection(props, ref) {
|
|
415
403
|
}
|
416
404
|
makeCollisionOfBulk();
|
417
405
|
};
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
}) })) })) })) })) }) }));
|
406
|
+
return ((0, jsx_runtime_1.jsx)(ErrorBoundary_1.ErrorBoundary, { children: (0, jsx_runtime_1.jsx)(S_gleStyles, { children: (0, jsx_runtime_1.jsx)(S_SectionWrapper, __assign({ ref: gleRef, "x-dlayout-section-type": "NO_NAME", onClick: onClickSection }, { children: (0, jsx_runtime_1.jsx)(components_1.CustomSection, __assign({}, props, { isMobile: isMobile, overrideStyles: {
|
407
|
+
minHeight: customSectionStyles.minHeight,
|
408
|
+
paddingTop: padding.top,
|
409
|
+
paddingBottom: padding.bottom,
|
410
|
+
paddingRight: padding.right,
|
411
|
+
paddingLeft: padding.left
|
412
|
+
} }, { children: (0, jsx_runtime_1.jsx)(Responsive, __assign({ innerRef: innerRef, allowOverlap: true, layouts: layouts, resizeHandles: ['nw', 'e', 'n', 'ne', 's', 'se', 'sw', 'w'], breakpoints: breakpoints, breakpoint: breakpoint, cols: { lg: 24, sm: 8 }, rowHeight: rowHeight, margin: [10, 10], style: {
|
413
|
+
width: customSectionStyles.width,
|
414
|
+
maxWidth: customSectionStyles.maxWidth,
|
415
|
+
minWidth: isMobile ? GLE_MIN_WIDTH_MOBILE_PX : GLE_MIN_WIDTH_DESKTOP_PX,
|
416
|
+
fontSize: "".concat(baseFontSize, "px")
|
417
|
+
}, onLayoutChange: onLayoutChange, onDragStop: onDragStop, onResizeStop: onResizeStop, onWidthChange: onWidthChange, minNbRow: rows, isDraggable: isEditMode, isResizable: isEditMode }, { children: keepSimilarOrderToPreventRerender(layouts[layoutByDevice]).map(function (each, index) {
|
418
|
+
var _a;
|
419
|
+
if (each === null) {
|
420
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
421
|
+
}
|
422
|
+
var matchedCB = componentBlocks === null || componentBlocks === void 0 ? void 0 : componentBlocks.find(function (cb) { return cb.id.toString() === each.i; });
|
423
|
+
if (each.i === 'group' && each.groupLayouts) {
|
424
|
+
return ((0, jsx_runtime_1.jsx)("div", __assign({ className: "iamgroup", onClick: function (e) {
|
425
|
+
e.stopPropagation();
|
426
|
+
onClickBulk();
|
427
|
+
}, onContextMenu: function (e) {
|
428
|
+
e.stopPropagation();
|
429
|
+
e.preventDefault();
|
430
|
+
onContextMenuCB('group', e);
|
431
|
+
} }, { children: (0, jsx_runtime_1.jsx)(WidthProvidedRGL, __assign({ cols: each.w, allowOverlap: true, layout: each.groupLayouts, rowHeight: rowHeight, containerPadding: [0, 0], margin: [10, 10], isDraggable: false, isResizable: false, style: {
|
432
|
+
width: '100%'
|
433
|
+
} }, { children: (_a = each.groupLayouts) === null || _a === void 0 ? void 0 : _a.map(function (layoutItem, index, array) {
|
434
|
+
var matchedCB = componentBlocks === null || componentBlocks === void 0 ? void 0 : componentBlocks.find(function (cb) { return cb.id.toString() === layoutItem.i; });
|
435
|
+
if (!matchedCB) {
|
436
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
437
|
+
}
|
438
|
+
var cbCopy = (0, deepCopy_1.default)(matchedCB);
|
439
|
+
cbCopy.jsonProperties.data.CB_EFFECT_PROP_ENTANIM.CB_EFFECT_PROP_ENTANIM_SPEC_TYPE =
|
440
|
+
'NONE';
|
441
|
+
cbCopy.jsonProperties.data.CB_EFFECT_PROP_ENTANIM['CB_EFFECT_PROP_ENTANIM_SPEC_TYPE:MOBILE'] = 'NONE';
|
442
|
+
return ((0, jsx_runtime_1.jsx)("div", __assign({ className: "cb-box-in-group", onClick: function (e) {
|
443
|
+
e.stopPropagation();
|
444
|
+
clickOneCBInBulk(matchedCB.id, array);
|
445
|
+
} }, { children: (0, jsx_runtime_1.jsx)(ErrorBoundary_1.ErrorBoundary, { children: (0, jsx_runtime_1.jsx)(ComponentBlockMatcher_1.default, { cbProps: cbCopy, device: device, index: index }) }) }), matchedCB.id));
|
446
|
+
}) })) }), each.i));
|
447
|
+
}
|
448
|
+
if (!matchedCB) {
|
449
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
450
|
+
}
|
451
|
+
return ((0, jsx_runtime_1.jsx)("div", __assign({ className: selectedCB === matchedCB.id ? 'react-grid-item-selected' : '' }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: {
|
452
|
+
width: '100%',
|
453
|
+
height: '100%'
|
454
|
+
}, onClick: function (e) {
|
455
|
+
e.stopPropagation();
|
456
|
+
onClickCB(matchedCB.id);
|
457
|
+
}, onContextMenu: function (e) {
|
458
|
+
e.stopPropagation();
|
459
|
+
e.preventDefault();
|
460
|
+
onContextMenuCB(matchedCB.id, e);
|
461
|
+
} }, { children: (0, jsx_runtime_1.jsx)(ErrorBoundary_1.ErrorBoundary, { children: (0, jsx_runtime_1.jsx)(ComponentBlockMatcher_1.default, { cbProps: matchedCB, device: device, index: index }) }) })) }), each.i));
|
462
|
+
}) })) })) })) }) }));
|
476
463
|
});
|
477
464
|
function keepSimilarOrderToPreventRerender(arr) {
|
478
465
|
var _a;
|
@@ -496,7 +483,7 @@ function isLayoutPlacementSame(current, prev) {
|
|
496
483
|
prev.z === current.z &&
|
497
484
|
prev.i === current.i);
|
498
485
|
}
|
499
|
-
exports.S_gleStyles = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n * {\n box-sizing: border-box;\n }\n\n .iamgroup .cb-box-in-group:after {\n box-shadow: 0 0 0 3px #027aff;\n bottom: 0;\n box-sizing: border-box;\n content: '';\n display: block;\n height: 100%;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n .cb-box-in-group:hover:after {\n box-shadow: 0 0 0 3px #d902ff;\n bottom: 0;\n box-sizing: border-box;\n content: '';\n display: block;\n height: 100%;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n .iamgroup {\n box-shadow: 0 0 0 3px #027aff;\n opacity: 1;\n }\n\n .react-grid-layout {\n position: relative;\n z-index: 1;\n }\n\n .react-grid-layout .grid-placeholder {\n box-sizing: border-box;\n }\n\n .react-grid-item {\n left: 0;\n position: absolute;\n top: 0;\n z-index: 1;\n }\n\n .react-grid-item.react-draggable.react-resizable:not(.react-grid-item-selected):not(.iamgroup):hover {\n box-shadow: 0 0 0 3px #d902ff;\n }\n\n .react-grid-item-selected {\n box-shadow: 0 0 0 3px #027aff;\n }\n\n .react-grid-item img {\n pointer-events: none;\n user-select: none;\n }\n\n .react-grid-item.isResizing,\n .react-grid-item.isResizing .cb-layout-box,\n .react-grid-item.isResizing .cb-layout-box .cb-divider {\n /* visibility: hidden; */\n }\n\n .react-grid-item.react-draggable.isDragging,\n .react-grid-item.react-draggable.isDragging .cb-layout-box,\n .react-grid-item.react-draggable.isDragging .cb-layout-box .cb-divider {\n visibility: hidden;\n }\n\n /* .react-grid-item.react-draggable.isDragging .cb-layout-box .twitter-embed-container {\n visibility: hidden;\n } */\n\n .react-grid-item.isResizing > .react-resizable-handle,\n .react-grid-item.react-draggable.isDragging > .react-resizable-handle {\n /* visibility: hidden; */\n }\n\n .react-grid-item.dropping {\n visibility: hidden;\n }\n\n .react-grid-item.static::after {\n color: red;\n content: \"this is static, can't drag\";\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n .react-grid-item.placeholder {\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n z-index: 9999;\n }\n\n .react-grid-item > .react-resizable-handle::after {\n background: rgb(255, 255, 255);\n border: 3px solid rgb(2, 122, 255);\n content: '';\n height: 5px;\n position: absolute;\n width: 5px;\n }\n\n .react-resizable-handle {\n visibility: hidden;\n }\n\n .react-grid-item-selected > .react-resizable-handle {\n visibility: visible;\n }\n\n /* NOTE: Resizable related */\n .react-resizable {\n position: relative;\n }\n\n .react-resizable-handle {\n align-items: center;\n background-origin: content-box;\n background-repeat: no-repeat;\n box-sizing: border-box;\n display: flex;\n height: 20px;\n justify-content: center;\n position: absolute;\n width: 20px;\n }\n\n .react-resizable-handle-sw {\n bottom: 0;\n cursor: sw-resize;\n left: 0;\n transform: translate(-50%, 50%);\n }\n\n .react-resizable-handle-se {\n bottom: 0;\n cursor: se-resize;\n right: 0;\n transform: translate(50%, 50%);\n }\n\n .react-resizable-handle-nw {\n cursor: nw-resize;\n left: 0;\n top: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-ne {\n cursor: ne-resize;\n right: 0;\n top: 0;\n transform: translate(50%, -50%);\n }\n\n .react-resizable-handle-w,\n .react-resizable-handle-e {\n cursor: ew-resize;\n top: 50%;\n }\n\n .react-resizable-handle-w {\n left: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-e {\n right: 0;\n transform: translate(50%, -50%);\n }\n\n .react-resizable-handle-n,\n .react-resizable-handle-s {\n cursor: ns-resize;\n left: 50%;\n }\n\n .react-resizable-handle-n {\n top: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-s {\n bottom: 0;\n transform: translate(-50%, 50%);\n }\n\n .grid-placeholder {\n position: absolute;\n z-index: 0;\n }\n\n .grid-pattern-rect {\n fill: #0000001a;\n stroke: #ffffff33;\n }\n\n .react-grid-item.placeholder .cb-layout-box,\n .react-grid-item.placeholder .cb-layout-box .cb-divider {\n animation: none;\n }\n\n .react-grid-item.placeholder {\n box-shadow: 0 0 0 3px #027aff;\n }\n\n .react-grid-item.placeholder > .react-resizable-handle {\n visibility: hidden;\n }\n\n .grid-guide-line-center {\n border-color: #ff463aff;\n border-style: dashed;\n border-width: 1px;\n height: 100%;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n z-index: 99999;\n }\n\n /* NOTE: Effects */\n\n @-webkit-keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-fwd {\n 0% {\n -webkit-transform: translateZ(-80px);\n transform: translateZ(-80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @keyframes fade-in-fwd {\n 0% {\n -webkit-transform: translateZ(-80px);\n transform: translateZ(-80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-bck {\n 0% {\n -webkit-transform: translateZ(80px);\n transform: translateZ(80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-bck {\n 0% {\n -webkit-transform: translateZ(80px);\n transform: translateZ(80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-top {\n 0% {\n -webkit-transform: translateY(-50px);\n transform: translateY(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-top {\n 0% {\n -webkit-transform: translateY(-50px);\n transform: translateY(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-right {\n 0% {\n -webkit-transform: translateX(50px);\n transform: translateX(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-right {\n 0% {\n -webkit-transform: translateX(50px);\n transform: translateX(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:29:36\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation fade-in-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes fade-in-bottom {\n 0% {\n -webkit-transform: translateY(50px);\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-bottom {\n 0% {\n -webkit-transform: translateY(50px);\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:29:52\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation fade-in-left\n * ----------------------------------------\n */\n @-webkit-keyframes fade-in-left {\n 0% {\n -webkit-transform: translateX(-50px);\n transform: translateX(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-left {\n 0% {\n -webkit-transform: translateX(-50px);\n transform: translateX(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:53:50\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-top\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-top {\n 0% {\n -webkit-transform: translateY(-1000px);\n transform: translateY(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-top {\n 0% {\n -webkit-transform: translateY(-1000px);\n transform: translateY(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:47\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-right\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-right {\n 0% {\n -webkit-transform: translateX(1000px);\n transform: translateX(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-right {\n 0% {\n -webkit-transform: translateX(1000px);\n transform: translateX(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:1\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-bottom {\n 0% {\n -webkit-transform: translateY(1000px);\n transform: translateY(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-bottom {\n 0% {\n -webkit-transform: translateY(1000px);\n transform: translateY(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:28\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-left\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-left {\n 0% {\n -webkit-transform: translateX(-1000px);\n transform: translateX(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-left {\n 0% {\n -webkit-transform: translateX(-1000px);\n transform: translateX(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:52:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation tracking-in-contract\n * ----------------------------------------\n */\n @-webkit-keyframes tracking-in-contract {\n 0% {\n letter-spacing: 1em;\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n letter-spacing: normal;\n opacity: 1;\n }\n }\n @keyframes tracking-in-contract {\n 0% {\n letter-spacing: 1em;\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n letter-spacing: normal;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:47:57\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation rotate-in-2-cw\n * ----------------------------------------\n */\n @-webkit-keyframes rotate-in-2-cw {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n @keyframes rotate-in-2-cw {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:52:54\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation rotate-in-2-ccw\n * ----------------------------------------\n */\n @-webkit-keyframes rotate-in-2-ccw {\n 0% {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n @keyframes rotate-in-2-ccw {\n 0% {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:34:56\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-top-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n @keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:35:56\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-top-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-top-bck {\n 0% {\n -webkit-transform: rotateX(70deg);\n transform: rotateX(70deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n @keyframes swing-in-top-bck {\n 0% {\n -webkit-transform: rotateX(70deg);\n transform: rotateX(70deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:36:18\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-right-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-right-fwd {\n 0% {\n -webkit-transform: rotateY(-100deg);\n transform: rotateY(-100deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n @keyframes swing-in-right-fwd {\n 0% {\n -webkit-transform: rotateY(-100deg);\n transform: rotateY(-100deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:36:46\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-right-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-right-bck {\n 0% {\n -webkit-transform: rotateY(70deg);\n transform: rotateY(70deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n @keyframes swing-in-right-bck {\n 0% {\n -webkit-transform: rotateY(70deg);\n transform: rotateY(70deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:37:11\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-bottom-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-bottom-fwd {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0);\n transform: rotateX(0);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 1;\n }\n }\n\n @keyframes swing-in-bottom-fwd {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0);\n transform: rotateX(0);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:38:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-left-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-left-fwd {\n 0% {\n -webkit-transform: rotateY(100deg);\n transform: rotateY(100deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n @keyframes swing-in-left-fwd {\n 0% {\n -webkit-transform: rotateY(100deg);\n transform: rotateY(100deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:40:3\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-left-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-left-bck {\n 0% {\n -webkit-transform: rotateY(-70deg);\n transform: rotateY(-70deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n @keyframes swing-in-left-bck {\n 0% {\n -webkit-transform: rotateY(-70deg);\n transform: rotateY(-70deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:44:48\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation scale-in-center\n * ----------------------------------------\n */\n @-webkit-keyframes scale-in-center {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n }\n @keyframes scale-in-center {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:46:1\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-bck-center\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-bck-center {\n 0% {\n -webkit-transform: translateZ(600px);\n transform: translateZ(600px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-bck-center {\n 0% {\n -webkit-transform: translateZ(600px);\n transform: translateZ(600px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:13:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation tracking-in-contract-bck\n * ----------------------------------------\n */\n @-webkit-keyframes tracking-in-contract-bck {\n 0% {\n letter-spacing: 1em;\n -webkit-transform: translateZ(400px);\n transform: translateZ(400px);\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes tracking-in-contract-bck {\n 0% {\n letter-spacing: 1em;\n -webkit-transform: translateZ(400px);\n transform: translateZ(400px);\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:11:16\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation text-focus-in\n * ----------------------------------------\n */\n @-webkit-keyframes text-focus-in {\n 0% {\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes text-focus-in {\n 0% {\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:33:10\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation puff-in-center\n * ----------------------------------------\n */\n @-webkit-keyframes puff-in-center {\n 0% {\n -webkit-transform: scale(2);\n transform: scale(2);\n -webkit-filter: blur(4px);\n filter: blur(4px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes puff-in-center {\n 0% {\n -webkit-transform: scale(2);\n transform: scale(2);\n -webkit-filter: blur(4px);\n filter: blur(4px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:11:29\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation focus-in-contract\n * ----------------------------------------\n */\n @-webkit-keyframes focus-in-contract {\n 0% {\n letter-spacing: 1em;\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes focus-in-contract {\n 0% {\n letter-spacing: 1em;\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:22:44\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-horizontal\n * ----------------------------------------\n */\n @-webkit-keyframes shake-horizontal {\n 0%,\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n 80% {\n -webkit-transform: translateX(8px);\n transform: translateX(8px);\n }\n 90% {\n -webkit-transform: translateX(-8px);\n transform: translateX(-8px);\n }\n }\n @keyframes shake-horizontal {\n 0%,\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n 80% {\n -webkit-transform: translateX(8px);\n transform: translateX(8px);\n }\n 90% {\n -webkit-transform: translateX(-8px);\n transform: translateX(-8px);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:23:8\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-vertical\n * ----------------------------------------\n */\n @-webkit-keyframes shake-vertical {\n 0%,\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateY(-8px);\n transform: translateY(-8px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n }\n 80% {\n -webkit-transform: translateY(6.4px);\n transform: translateY(6.4px);\n }\n 90% {\n -webkit-transform: translateY(-6.4px);\n transform: translateY(-6.4px);\n }\n }\n @keyframes shake-vertical {\n 0%,\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateY(-8px);\n transform: translateY(-8px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n }\n 80% {\n -webkit-transform: translateY(6.4px);\n transform: translateY(6.4px);\n }\n 90% {\n -webkit-transform: translateY(-6.4px);\n transform: translateY(-6.4px);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:24:19\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-top\n * ----------------------------------------\n */\n @-webkit-keyframes shake-top {\n 0%,\n 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n -webkit-transform-origin: 50% 0;\n transform-origin: 50% 0;\n }\n 10% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: rotate(-4deg);\n transform: rotate(-4deg);\n }\n 30%,\n 50%,\n 70% {\n -webkit-transform: rotate(4deg);\n transform: rotate(4deg);\n }\n 80% {\n -webkit-transform: rotate(-2deg);\n transform: rotate(-2deg);\n }\n 90% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n }\n @keyframes shake-top {\n 0%,\n 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n -webkit-transform-origin: 50% 0;\n transform-origin: 50% 0;\n }\n 10% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: rotate(-4deg);\n transform: rotate(-4deg);\n }\n 30%,\n 50%,\n 70% {\n -webkit-transform: rotate(4deg);\n transform: rotate(4deg);\n }\n 80% {\n -webkit-transform: rotate(-2deg);\n transform: rotate(-2deg);\n }\n 90% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:21:6\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation vibrate-1\n * ----------------------------------------\n */\n @-webkit-keyframes vibrate-1 {\n 0% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n 20% {\n -webkit-transform: translate(-2px, 2px);\n transform: translate(-2px, 2px);\n }\n 40% {\n -webkit-transform: translate(-2px, -2px);\n transform: translate(-2px, -2px);\n }\n 60% {\n -webkit-transform: translate(2px, 2px);\n transform: translate(2px, 2px);\n }\n 80% {\n -webkit-transform: translate(2px, -2px);\n transform: translate(2px, -2px);\n }\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n }\n @keyframes vibrate-1 {\n 0% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n 20% {\n -webkit-transform: translate(-2px, 2px);\n transform: translate(-2px, 2px);\n }\n 40% {\n -webkit-transform: translate(-2px, -2px);\n transform: translate(-2px, -2px);\n }\n 60% {\n -webkit-transform: translate(2px, 2px);\n transform: translate(2px, 2px);\n }\n 80% {\n -webkit-transform: translate(2px, -2px);\n transform: translate(2px, -2px);\n }\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:27:38\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation blink-1\n * ----------------------------------------\n */\n @-webkit-keyframes blink-1 {\n 0%,\n 50%,\n 100% {\n opacity: 1;\n }\n 25%,\n 75% {\n opacity: 0;\n }\n }\n @keyframes blink-1 {\n 0%,\n 50%,\n 100% {\n opacity: 1;\n }\n 25%,\n 75% {\n opacity: 0;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:41:14\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * @animation flicker-in-2\n * ----------------------------------------\n */\n @-webkit-keyframes flicker-in-2 {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.1% {\n opacity: 1;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.2% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n }\n 20.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.5% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 50% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 100% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n }\n @keyframes flicker-in-2 {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.1% {\n opacity: 1;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.2% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n }\n 20.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.5% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 50% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 100% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-24 16:9:5\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bounce-top\n * ----------------------------------------\n */\n @-webkit-keyframes bounce-top {\n 0% {\n -webkit-transform: translateY(-45px);\n transform: translateY(-45px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 1;\n }\n 24% {\n opacity: 1;\n }\n 40% {\n -webkit-transform: translateY(-24px);\n transform: translateY(-24px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 65% {\n -webkit-transform: translateY(-12px);\n transform: translateY(-12px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 82% {\n -webkit-transform: translateY(-6px);\n transform: translateY(-6px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 93% {\n -webkit-transform: translateY(-4px);\n transform: translateY(-4px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 25%,\n 55%,\n 75%,\n 87% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n opacity: 1;\n }\n }\n @keyframes bounce-top {\n 0% {\n -webkit-transform: translateY(-45px);\n transform: translateY(-45px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 1;\n }\n 24% {\n opacity: 1;\n }\n 40% {\n -webkit-transform: translateY(-24px);\n transform: translateY(-24px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 65% {\n -webkit-transform: translateY(-12px);\n transform: translateY(-12px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 82% {\n -webkit-transform: translateY(-6px);\n transform: translateY(-6px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 93% {\n -webkit-transform: translateY(-4px);\n transform: translateY(-4px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 25%,\n 55%,\n 75%,\n 87% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:29:16\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation heartbeat\n * ----------------------------------------\n */\n @-webkit-keyframes heartbeat {\n from {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 10% {\n -webkit-transform: scale(0.91);\n transform: scale(0.91);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 17% {\n -webkit-transform: scale(0.98);\n transform: scale(0.98);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 33% {\n -webkit-transform: scale(0.87);\n transform: scale(0.87);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 45% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n }\n @keyframes heartbeat {\n from {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 10% {\n -webkit-transform: scale(0.91);\n transform: scale(0.91);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 17% {\n -webkit-transform: scale(0.98);\n transform: scale(0.98);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 33% {\n -webkit-transform: scale(0.87);\n transform: scale(0.87);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 45% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:30:57\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation kenburns-top\n * ----------------------------------------\n */\n @-webkit-keyframes kenburns-top {\n 0% {\n -webkit-transform: scale(1) translateY(0);\n transform: scale(1) translateY(0);\n -webkit-transform-origin: 50% 16%;\n transform-origin: 50% 16%;\n }\n 100% {\n -webkit-transform: scale(1.25) translateY(-15px);\n transform: scale(1.25) translateY(-15px);\n -webkit-transform-origin: top;\n transform-origin: top;\n }\n }\n @keyframes kenburns-top {\n 0% {\n -webkit-transform: scale(1) translateY(0);\n transform: scale(1) translateY(0);\n -webkit-transform-origin: 50% 16%;\n transform-origin: 50% 16%;\n }\n 100% {\n -webkit-transform: scale(1.25) translateY(-15px);\n transform: scale(1.25) translateY(-15px);\n -webkit-transform-origin: top;\n transform-origin: top;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:33:12\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-top\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-top {\n 0% {\n background-position: 50% 100%;\n }\n 100% {\n background-position: 50% 0%;\n }\n }\n @keyframes bg-pan-top {\n 0% {\n background-position: 50% 100%;\n }\n 100% {\n background-position: 50% 0%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:34:5\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-right\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-right {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n }\n @keyframes bg-pan-right {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:33:27\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-bottom {\n 0% {\n background-position: 50% 0%;\n }\n 100% {\n background-position: 50% 100%;\n }\n }\n @keyframes bg-pan-bottom {\n 0% {\n background-position: 50% 0%;\n }\n 100% {\n background-position: 50% 100%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:34:26\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-left\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n @keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n"], ["\n * {\n box-sizing: border-box;\n }\n\n .iamgroup .cb-box-in-group:after {\n box-shadow: 0 0 0 3px #027aff;\n bottom: 0;\n box-sizing: border-box;\n content: '';\n display: block;\n height: 100%;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n .cb-box-in-group:hover:after {\n box-shadow: 0 0 0 3px #d902ff;\n bottom: 0;\n box-sizing: border-box;\n content: '';\n display: block;\n height: 100%;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n .iamgroup {\n box-shadow: 0 0 0 3px #027aff;\n opacity: 1;\n }\n\n .react-grid-layout {\n position: relative;\n z-index: 1;\n }\n\n .react-grid-layout .grid-placeholder {\n box-sizing: border-box;\n }\n\n .react-grid-item {\n left: 0;\n position: absolute;\n top: 0;\n z-index: 1;\n }\n\n .react-grid-item.react-draggable.react-resizable:not(.react-grid-item-selected):not(.iamgroup):hover {\n box-shadow: 0 0 0 3px #d902ff;\n }\n\n .react-grid-item-selected {\n box-shadow: 0 0 0 3px #027aff;\n }\n\n .react-grid-item img {\n pointer-events: none;\n user-select: none;\n }\n\n .react-grid-item.isResizing,\n .react-grid-item.isResizing .cb-layout-box,\n .react-grid-item.isResizing .cb-layout-box .cb-divider {\n /* visibility: hidden; */\n }\n\n .react-grid-item.react-draggable.isDragging,\n .react-grid-item.react-draggable.isDragging .cb-layout-box,\n .react-grid-item.react-draggable.isDragging .cb-layout-box .cb-divider {\n visibility: hidden;\n }\n\n /* .react-grid-item.react-draggable.isDragging .cb-layout-box .twitter-embed-container {\n visibility: hidden;\n } */\n\n .react-grid-item.isResizing > .react-resizable-handle,\n .react-grid-item.react-draggable.isDragging > .react-resizable-handle {\n /* visibility: hidden; */\n }\n\n .react-grid-item.dropping {\n visibility: hidden;\n }\n\n .react-grid-item.static::after {\n color: red;\n content: \"this is static, can't drag\";\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n .react-grid-item.placeholder {\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n z-index: 9999;\n }\n\n .react-grid-item > .react-resizable-handle::after {\n background: rgb(255, 255, 255);\n border: 3px solid rgb(2, 122, 255);\n content: '';\n height: 5px;\n position: absolute;\n width: 5px;\n }\n\n .react-resizable-handle {\n visibility: hidden;\n }\n\n .react-grid-item-selected > .react-resizable-handle {\n visibility: visible;\n }\n\n /* NOTE: Resizable related */\n .react-resizable {\n position: relative;\n }\n\n .react-resizable-handle {\n align-items: center;\n background-origin: content-box;\n background-repeat: no-repeat;\n box-sizing: border-box;\n display: flex;\n height: 20px;\n justify-content: center;\n position: absolute;\n width: 20px;\n }\n\n .react-resizable-handle-sw {\n bottom: 0;\n cursor: sw-resize;\n left: 0;\n transform: translate(-50%, 50%);\n }\n\n .react-resizable-handle-se {\n bottom: 0;\n cursor: se-resize;\n right: 0;\n transform: translate(50%, 50%);\n }\n\n .react-resizable-handle-nw {\n cursor: nw-resize;\n left: 0;\n top: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-ne {\n cursor: ne-resize;\n right: 0;\n top: 0;\n transform: translate(50%, -50%);\n }\n\n .react-resizable-handle-w,\n .react-resizable-handle-e {\n cursor: ew-resize;\n top: 50%;\n }\n\n .react-resizable-handle-w {\n left: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-e {\n right: 0;\n transform: translate(50%, -50%);\n }\n\n .react-resizable-handle-n,\n .react-resizable-handle-s {\n cursor: ns-resize;\n left: 50%;\n }\n\n .react-resizable-handle-n {\n top: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-s {\n bottom: 0;\n transform: translate(-50%, 50%);\n }\n\n .grid-placeholder {\n position: absolute;\n z-index: 0;\n }\n\n .grid-pattern-rect {\n fill: #0000001a;\n stroke: #ffffff33;\n }\n\n .react-grid-item.placeholder .cb-layout-box,\n .react-grid-item.placeholder .cb-layout-box .cb-divider {\n animation: none;\n }\n\n .react-grid-item.placeholder {\n box-shadow: 0 0 0 3px #027aff;\n }\n\n .react-grid-item.placeholder > .react-resizable-handle {\n visibility: hidden;\n }\n\n .grid-guide-line-center {\n border-color: #ff463aff;\n border-style: dashed;\n border-width: 1px;\n height: 100%;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n z-index: 99999;\n }\n\n /* NOTE: Effects */\n\n @-webkit-keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-fwd {\n 0% {\n -webkit-transform: translateZ(-80px);\n transform: translateZ(-80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @keyframes fade-in-fwd {\n 0% {\n -webkit-transform: translateZ(-80px);\n transform: translateZ(-80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-bck {\n 0% {\n -webkit-transform: translateZ(80px);\n transform: translateZ(80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-bck {\n 0% {\n -webkit-transform: translateZ(80px);\n transform: translateZ(80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-top {\n 0% {\n -webkit-transform: translateY(-50px);\n transform: translateY(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-top {\n 0% {\n -webkit-transform: translateY(-50px);\n transform: translateY(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-right {\n 0% {\n -webkit-transform: translateX(50px);\n transform: translateX(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-right {\n 0% {\n -webkit-transform: translateX(50px);\n transform: translateX(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:29:36\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation fade-in-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes fade-in-bottom {\n 0% {\n -webkit-transform: translateY(50px);\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-bottom {\n 0% {\n -webkit-transform: translateY(50px);\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:29:52\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation fade-in-left\n * ----------------------------------------\n */\n @-webkit-keyframes fade-in-left {\n 0% {\n -webkit-transform: translateX(-50px);\n transform: translateX(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-left {\n 0% {\n -webkit-transform: translateX(-50px);\n transform: translateX(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:53:50\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-top\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-top {\n 0% {\n -webkit-transform: translateY(-1000px);\n transform: translateY(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-top {\n 0% {\n -webkit-transform: translateY(-1000px);\n transform: translateY(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:47\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-right\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-right {\n 0% {\n -webkit-transform: translateX(1000px);\n transform: translateX(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-right {\n 0% {\n -webkit-transform: translateX(1000px);\n transform: translateX(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:1\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-bottom {\n 0% {\n -webkit-transform: translateY(1000px);\n transform: translateY(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-bottom {\n 0% {\n -webkit-transform: translateY(1000px);\n transform: translateY(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:28\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-left\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-left {\n 0% {\n -webkit-transform: translateX(-1000px);\n transform: translateX(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-left {\n 0% {\n -webkit-transform: translateX(-1000px);\n transform: translateX(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:52:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation tracking-in-contract\n * ----------------------------------------\n */\n @-webkit-keyframes tracking-in-contract {\n 0% {\n letter-spacing: 1em;\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n letter-spacing: normal;\n opacity: 1;\n }\n }\n @keyframes tracking-in-contract {\n 0% {\n letter-spacing: 1em;\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n letter-spacing: normal;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:47:57\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation rotate-in-2-cw\n * ----------------------------------------\n */\n @-webkit-keyframes rotate-in-2-cw {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n @keyframes rotate-in-2-cw {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:52:54\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation rotate-in-2-ccw\n * ----------------------------------------\n */\n @-webkit-keyframes rotate-in-2-ccw {\n 0% {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n @keyframes rotate-in-2-ccw {\n 0% {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:34:56\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-top-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n @keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:35:56\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-top-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-top-bck {\n 0% {\n -webkit-transform: rotateX(70deg);\n transform: rotateX(70deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n @keyframes swing-in-top-bck {\n 0% {\n -webkit-transform: rotateX(70deg);\n transform: rotateX(70deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:36:18\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-right-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-right-fwd {\n 0% {\n -webkit-transform: rotateY(-100deg);\n transform: rotateY(-100deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n @keyframes swing-in-right-fwd {\n 0% {\n -webkit-transform: rotateY(-100deg);\n transform: rotateY(-100deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:36:46\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-right-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-right-bck {\n 0% {\n -webkit-transform: rotateY(70deg);\n transform: rotateY(70deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n @keyframes swing-in-right-bck {\n 0% {\n -webkit-transform: rotateY(70deg);\n transform: rotateY(70deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:37:11\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-bottom-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-bottom-fwd {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0);\n transform: rotateX(0);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 1;\n }\n }\n\n @keyframes swing-in-bottom-fwd {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0);\n transform: rotateX(0);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:38:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-left-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-left-fwd {\n 0% {\n -webkit-transform: rotateY(100deg);\n transform: rotateY(100deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n @keyframes swing-in-left-fwd {\n 0% {\n -webkit-transform: rotateY(100deg);\n transform: rotateY(100deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:40:3\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-left-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-left-bck {\n 0% {\n -webkit-transform: rotateY(-70deg);\n transform: rotateY(-70deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n @keyframes swing-in-left-bck {\n 0% {\n -webkit-transform: rotateY(-70deg);\n transform: rotateY(-70deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:44:48\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation scale-in-center\n * ----------------------------------------\n */\n @-webkit-keyframes scale-in-center {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n }\n @keyframes scale-in-center {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:46:1\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-bck-center\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-bck-center {\n 0% {\n -webkit-transform: translateZ(600px);\n transform: translateZ(600px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-bck-center {\n 0% {\n -webkit-transform: translateZ(600px);\n transform: translateZ(600px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:13:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation tracking-in-contract-bck\n * ----------------------------------------\n */\n @-webkit-keyframes tracking-in-contract-bck {\n 0% {\n letter-spacing: 1em;\n -webkit-transform: translateZ(400px);\n transform: translateZ(400px);\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes tracking-in-contract-bck {\n 0% {\n letter-spacing: 1em;\n -webkit-transform: translateZ(400px);\n transform: translateZ(400px);\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:11:16\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation text-focus-in\n * ----------------------------------------\n */\n @-webkit-keyframes text-focus-in {\n 0% {\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes text-focus-in {\n 0% {\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:33:10\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation puff-in-center\n * ----------------------------------------\n */\n @-webkit-keyframes puff-in-center {\n 0% {\n -webkit-transform: scale(2);\n transform: scale(2);\n -webkit-filter: blur(4px);\n filter: blur(4px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes puff-in-center {\n 0% {\n -webkit-transform: scale(2);\n transform: scale(2);\n -webkit-filter: blur(4px);\n filter: blur(4px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:11:29\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation focus-in-contract\n * ----------------------------------------\n */\n @-webkit-keyframes focus-in-contract {\n 0% {\n letter-spacing: 1em;\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes focus-in-contract {\n 0% {\n letter-spacing: 1em;\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:22:44\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-horizontal\n * ----------------------------------------\n */\n @-webkit-keyframes shake-horizontal {\n 0%,\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n 80% {\n -webkit-transform: translateX(8px);\n transform: translateX(8px);\n }\n 90% {\n -webkit-transform: translateX(-8px);\n transform: translateX(-8px);\n }\n }\n @keyframes shake-horizontal {\n 0%,\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n 80% {\n -webkit-transform: translateX(8px);\n transform: translateX(8px);\n }\n 90% {\n -webkit-transform: translateX(-8px);\n transform: translateX(-8px);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:23:8\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-vertical\n * ----------------------------------------\n */\n @-webkit-keyframes shake-vertical {\n 0%,\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateY(-8px);\n transform: translateY(-8px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n }\n 80% {\n -webkit-transform: translateY(6.4px);\n transform: translateY(6.4px);\n }\n 90% {\n -webkit-transform: translateY(-6.4px);\n transform: translateY(-6.4px);\n }\n }\n @keyframes shake-vertical {\n 0%,\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateY(-8px);\n transform: translateY(-8px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n }\n 80% {\n -webkit-transform: translateY(6.4px);\n transform: translateY(6.4px);\n }\n 90% {\n -webkit-transform: translateY(-6.4px);\n transform: translateY(-6.4px);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:24:19\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-top\n * ----------------------------------------\n */\n @-webkit-keyframes shake-top {\n 0%,\n 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n -webkit-transform-origin: 50% 0;\n transform-origin: 50% 0;\n }\n 10% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: rotate(-4deg);\n transform: rotate(-4deg);\n }\n 30%,\n 50%,\n 70% {\n -webkit-transform: rotate(4deg);\n transform: rotate(4deg);\n }\n 80% {\n -webkit-transform: rotate(-2deg);\n transform: rotate(-2deg);\n }\n 90% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n }\n @keyframes shake-top {\n 0%,\n 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n -webkit-transform-origin: 50% 0;\n transform-origin: 50% 0;\n }\n 10% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: rotate(-4deg);\n transform: rotate(-4deg);\n }\n 30%,\n 50%,\n 70% {\n -webkit-transform: rotate(4deg);\n transform: rotate(4deg);\n }\n 80% {\n -webkit-transform: rotate(-2deg);\n transform: rotate(-2deg);\n }\n 90% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:21:6\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation vibrate-1\n * ----------------------------------------\n */\n @-webkit-keyframes vibrate-1 {\n 0% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n 20% {\n -webkit-transform: translate(-2px, 2px);\n transform: translate(-2px, 2px);\n }\n 40% {\n -webkit-transform: translate(-2px, -2px);\n transform: translate(-2px, -2px);\n }\n 60% {\n -webkit-transform: translate(2px, 2px);\n transform: translate(2px, 2px);\n }\n 80% {\n -webkit-transform: translate(2px, -2px);\n transform: translate(2px, -2px);\n }\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n }\n @keyframes vibrate-1 {\n 0% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n 20% {\n -webkit-transform: translate(-2px, 2px);\n transform: translate(-2px, 2px);\n }\n 40% {\n -webkit-transform: translate(-2px, -2px);\n transform: translate(-2px, -2px);\n }\n 60% {\n -webkit-transform: translate(2px, 2px);\n transform: translate(2px, 2px);\n }\n 80% {\n -webkit-transform: translate(2px, -2px);\n transform: translate(2px, -2px);\n }\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:27:38\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation blink-1\n * ----------------------------------------\n */\n @-webkit-keyframes blink-1 {\n 0%,\n 50%,\n 100% {\n opacity: 1;\n }\n 25%,\n 75% {\n opacity: 0;\n }\n }\n @keyframes blink-1 {\n 0%,\n 50%,\n 100% {\n opacity: 1;\n }\n 25%,\n 75% {\n opacity: 0;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:41:14\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * @animation flicker-in-2\n * ----------------------------------------\n */\n @-webkit-keyframes flicker-in-2 {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.1% {\n opacity: 1;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.2% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n }\n 20.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.5% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 50% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 100% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n }\n @keyframes flicker-in-2 {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.1% {\n opacity: 1;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.2% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n }\n 20.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.5% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 50% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 100% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-24 16:9:5\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bounce-top\n * ----------------------------------------\n */\n @-webkit-keyframes bounce-top {\n 0% {\n -webkit-transform: translateY(-45px);\n transform: translateY(-45px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 1;\n }\n 24% {\n opacity: 1;\n }\n 40% {\n -webkit-transform: translateY(-24px);\n transform: translateY(-24px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 65% {\n -webkit-transform: translateY(-12px);\n transform: translateY(-12px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 82% {\n -webkit-transform: translateY(-6px);\n transform: translateY(-6px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 93% {\n -webkit-transform: translateY(-4px);\n transform: translateY(-4px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 25%,\n 55%,\n 75%,\n 87% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n opacity: 1;\n }\n }\n @keyframes bounce-top {\n 0% {\n -webkit-transform: translateY(-45px);\n transform: translateY(-45px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 1;\n }\n 24% {\n opacity: 1;\n }\n 40% {\n -webkit-transform: translateY(-24px);\n transform: translateY(-24px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 65% {\n -webkit-transform: translateY(-12px);\n transform: translateY(-12px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 82% {\n -webkit-transform: translateY(-6px);\n transform: translateY(-6px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 93% {\n -webkit-transform: translateY(-4px);\n transform: translateY(-4px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 25%,\n 55%,\n 75%,\n 87% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:29:16\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation heartbeat\n * ----------------------------------------\n */\n @-webkit-keyframes heartbeat {\n from {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 10% {\n -webkit-transform: scale(0.91);\n transform: scale(0.91);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 17% {\n -webkit-transform: scale(0.98);\n transform: scale(0.98);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 33% {\n -webkit-transform: scale(0.87);\n transform: scale(0.87);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 45% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n }\n @keyframes heartbeat {\n from {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 10% {\n -webkit-transform: scale(0.91);\n transform: scale(0.91);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 17% {\n -webkit-transform: scale(0.98);\n transform: scale(0.98);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 33% {\n -webkit-transform: scale(0.87);\n transform: scale(0.87);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 45% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:30:57\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation kenburns-top\n * ----------------------------------------\n */\n @-webkit-keyframes kenburns-top {\n 0% {\n -webkit-transform: scale(1) translateY(0);\n transform: scale(1) translateY(0);\n -webkit-transform-origin: 50% 16%;\n transform-origin: 50% 16%;\n }\n 100% {\n -webkit-transform: scale(1.25) translateY(-15px);\n transform: scale(1.25) translateY(-15px);\n -webkit-transform-origin: top;\n transform-origin: top;\n }\n }\n @keyframes kenburns-top {\n 0% {\n -webkit-transform: scale(1) translateY(0);\n transform: scale(1) translateY(0);\n -webkit-transform-origin: 50% 16%;\n transform-origin: 50% 16%;\n }\n 100% {\n -webkit-transform: scale(1.25) translateY(-15px);\n transform: scale(1.25) translateY(-15px);\n -webkit-transform-origin: top;\n transform-origin: top;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:33:12\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-top\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-top {\n 0% {\n background-position: 50% 100%;\n }\n 100% {\n background-position: 50% 0%;\n }\n }\n @keyframes bg-pan-top {\n 0% {\n background-position: 50% 100%;\n }\n 100% {\n background-position: 50% 0%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:34:5\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-right\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-right {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n }\n @keyframes bg-pan-right {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:33:27\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-bottom {\n 0% {\n background-position: 50% 0%;\n }\n 100% {\n background-position: 50% 100%;\n }\n }\n @keyframes bg-pan-bottom {\n 0% {\n background-position: 50% 0%;\n }\n 100% {\n background-position: 50% 100%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:34:26\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-left\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n @keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n"])));
|
486
|
+
var S_gleStyles = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n * {\n box-sizing: border-box;\n }\n\n .iamgroup .cb-box-in-group:after {\n box-shadow: 0 0 0 3px #027aff;\n bottom: 0;\n box-sizing: border-box;\n content: '';\n display: block;\n height: 100%;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n .cb-box-in-group:hover:after {\n box-shadow: 0 0 0 3px #d902ff;\n bottom: 0;\n box-sizing: border-box;\n content: '';\n display: block;\n height: 100%;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n .iamgroup {\n box-shadow: 0 0 0 3px #027aff;\n opacity: 1;\n }\n\n .react-grid-layout {\n position: relative;\n z-index: 1;\n }\n\n .react-grid-layout .grid-placeholder {\n box-sizing: border-box;\n }\n\n .react-grid-item {\n left: 0;\n position: absolute;\n top: 0;\n z-index: 1;\n }\n\n .react-grid-item.react-draggable.react-resizable:not(.react-grid-item-selected):not(.iamgroup):hover {\n box-shadow: 0 0 0 3px #d902ff;\n }\n\n .react-grid-item-selected {\n box-shadow: 0 0 0 3px #027aff;\n }\n\n .react-grid-item img {\n pointer-events: none;\n user-select: none;\n }\n\n .react-grid-item.isResizing,\n .react-grid-item.isResizing .cb-layout-box,\n .react-grid-item.isResizing .cb-layout-box .cb-divider {\n visibility: hidden;\n }\n\n .react-grid-item.react-draggable.isDragging,\n .react-grid-item.react-draggable.isDragging .cb-layout-box,\n .react-grid-item.react-draggable.isDragging .cb-layout-box .cb-divider {\n visibility: hidden;\n }\n\n /* .react-grid-item.react-draggable.isDragging .cb-layout-box .twitter-embed-container {\n visibility: hidden;\n } */\n\n .react-grid-item.isResizing > .react-resizable-handle,\n .react-grid-item.react-draggable.isDragging > .react-resizable-handle {\n visibility: hidden;\n }\n\n .react-grid-item.dropping {\n visibility: hidden;\n }\n\n .react-grid-item.static::after {\n color: red;\n content: \"this is static, can't drag\";\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n .react-grid-item.placeholder {\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n z-index: 9999;\n }\n\n .react-grid-item > .react-resizable-handle::after {\n background: rgb(255, 255, 255);\n border: 3px solid rgb(2, 122, 255);\n content: '';\n height: 5px;\n position: absolute;\n width: 5px;\n }\n\n .react-resizable-handle {\n visibility: hidden;\n }\n\n .react-grid-item-selected > .react-resizable-handle {\n visibility: visible;\n }\n\n /* NOTE: Resizable related */\n .react-resizable {\n position: relative;\n }\n\n .react-resizable-handle {\n align-items: center;\n background-origin: content-box;\n background-repeat: no-repeat;\n box-sizing: border-box;\n display: flex;\n height: 20px;\n justify-content: center;\n position: absolute;\n width: 20px;\n }\n\n .react-resizable-handle-sw {\n bottom: 0;\n cursor: sw-resize;\n left: 0;\n transform: translate(-50%, 50%);\n }\n\n .react-resizable-handle-se {\n bottom: 0;\n cursor: se-resize;\n right: 0;\n transform: translate(50%, 50%);\n }\n\n .react-resizable-handle-nw {\n cursor: nw-resize;\n left: 0;\n top: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-ne {\n cursor: ne-resize;\n right: 0;\n top: 0;\n transform: translate(50%, -50%);\n }\n\n .react-resizable-handle-w,\n .react-resizable-handle-e {\n cursor: ew-resize;\n top: 50%;\n }\n\n .react-resizable-handle-w {\n left: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-e {\n right: 0;\n transform: translate(50%, -50%);\n }\n\n .react-resizable-handle-n,\n .react-resizable-handle-s {\n cursor: ns-resize;\n left: 50%;\n }\n\n .react-resizable-handle-n {\n top: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-s {\n bottom: 0;\n transform: translate(-50%, 50%);\n }\n\n .grid-placeholder {\n position: absolute;\n z-index: 0;\n }\n\n .grid-pattern-rect {\n fill: #0000001a;\n stroke: #ffffff33;\n }\n\n .react-grid-item.placeholder .cb-layout-box,\n .react-grid-item.placeholder .cb-layout-box .cb-divider {\n animation: none;\n }\n\n .react-grid-item.placeholder {\n box-shadow: 0 0 0 3px #027aff;\n }\n\n .react-grid-item.placeholder > .react-resizable-handle {\n visibility: hidden;\n }\n\n .grid-guide-line-center {\n border-color: #ff463aff;\n border-style: dashed;\n border-width: 1px;\n height: 100%;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n z-index: 99999;\n }\n\n /* NOTE: Effects */\n\n @-webkit-keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-fwd {\n 0% {\n -webkit-transform: translateZ(-80px);\n transform: translateZ(-80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @keyframes fade-in-fwd {\n 0% {\n -webkit-transform: translateZ(-80px);\n transform: translateZ(-80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-bck {\n 0% {\n -webkit-transform: translateZ(80px);\n transform: translateZ(80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-bck {\n 0% {\n -webkit-transform: translateZ(80px);\n transform: translateZ(80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-top {\n 0% {\n -webkit-transform: translateY(-50px);\n transform: translateY(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-top {\n 0% {\n -webkit-transform: translateY(-50px);\n transform: translateY(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-right {\n 0% {\n -webkit-transform: translateX(50px);\n transform: translateX(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-right {\n 0% {\n -webkit-transform: translateX(50px);\n transform: translateX(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:29:36\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation fade-in-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes fade-in-bottom {\n 0% {\n -webkit-transform: translateY(50px);\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-bottom {\n 0% {\n -webkit-transform: translateY(50px);\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:29:52\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation fade-in-left\n * ----------------------------------------\n */\n @-webkit-keyframes fade-in-left {\n 0% {\n -webkit-transform: translateX(-50px);\n transform: translateX(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-left {\n 0% {\n -webkit-transform: translateX(-50px);\n transform: translateX(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:53:50\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-top\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-top {\n 0% {\n -webkit-transform: translateY(-1000px);\n transform: translateY(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-top {\n 0% {\n -webkit-transform: translateY(-1000px);\n transform: translateY(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:47\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-right\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-right {\n 0% {\n -webkit-transform: translateX(1000px);\n transform: translateX(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-right {\n 0% {\n -webkit-transform: translateX(1000px);\n transform: translateX(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:1\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-bottom {\n 0% {\n -webkit-transform: translateY(1000px);\n transform: translateY(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-bottom {\n 0% {\n -webkit-transform: translateY(1000px);\n transform: translateY(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:28\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-left\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-left {\n 0% {\n -webkit-transform: translateX(-1000px);\n transform: translateX(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-left {\n 0% {\n -webkit-transform: translateX(-1000px);\n transform: translateX(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:52:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation tracking-in-contract\n * ----------------------------------------\n */\n @-webkit-keyframes tracking-in-contract {\n 0% {\n letter-spacing: 1em;\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n letter-spacing: normal;\n opacity: 1;\n }\n }\n @keyframes tracking-in-contract {\n 0% {\n letter-spacing: 1em;\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n letter-spacing: normal;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:47:57\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation rotate-in-2-cw\n * ----------------------------------------\n */\n @-webkit-keyframes rotate-in-2-cw {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n @keyframes rotate-in-2-cw {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:52:54\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation rotate-in-2-ccw\n * ----------------------------------------\n */\n @-webkit-keyframes rotate-in-2-ccw {\n 0% {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n @keyframes rotate-in-2-ccw {\n 0% {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:34:56\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-top-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n @keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:35:56\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-top-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-top-bck {\n 0% {\n -webkit-transform: rotateX(70deg);\n transform: rotateX(70deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n @keyframes swing-in-top-bck {\n 0% {\n -webkit-transform: rotateX(70deg);\n transform: rotateX(70deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:36:18\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-right-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-right-fwd {\n 0% {\n -webkit-transform: rotateY(-100deg);\n transform: rotateY(-100deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n @keyframes swing-in-right-fwd {\n 0% {\n -webkit-transform: rotateY(-100deg);\n transform: rotateY(-100deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:36:46\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-right-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-right-bck {\n 0% {\n -webkit-transform: rotateY(70deg);\n transform: rotateY(70deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n @keyframes swing-in-right-bck {\n 0% {\n -webkit-transform: rotateY(70deg);\n transform: rotateY(70deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:37:11\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-bottom-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-bottom-fwd {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0);\n transform: rotateX(0);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 1;\n }\n }\n\n @keyframes swing-in-bottom-fwd {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0);\n transform: rotateX(0);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:38:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-left-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-left-fwd {\n 0% {\n -webkit-transform: rotateY(100deg);\n transform: rotateY(100deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n @keyframes swing-in-left-fwd {\n 0% {\n -webkit-transform: rotateY(100deg);\n transform: rotateY(100deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:40:3\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-left-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-left-bck {\n 0% {\n -webkit-transform: rotateY(-70deg);\n transform: rotateY(-70deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n @keyframes swing-in-left-bck {\n 0% {\n -webkit-transform: rotateY(-70deg);\n transform: rotateY(-70deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:44:48\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation scale-in-center\n * ----------------------------------------\n */\n @-webkit-keyframes scale-in-center {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n }\n @keyframes scale-in-center {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:46:1\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-bck-center\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-bck-center {\n 0% {\n -webkit-transform: translateZ(600px);\n transform: translateZ(600px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-bck-center {\n 0% {\n -webkit-transform: translateZ(600px);\n transform: translateZ(600px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:13:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation tracking-in-contract-bck\n * ----------------------------------------\n */\n @-webkit-keyframes tracking-in-contract-bck {\n 0% {\n letter-spacing: 1em;\n -webkit-transform: translateZ(400px);\n transform: translateZ(400px);\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes tracking-in-contract-bck {\n 0% {\n letter-spacing: 1em;\n -webkit-transform: translateZ(400px);\n transform: translateZ(400px);\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:11:16\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation text-focus-in\n * ----------------------------------------\n */\n @-webkit-keyframes text-focus-in {\n 0% {\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes text-focus-in {\n 0% {\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:33:10\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation puff-in-center\n * ----------------------------------------\n */\n @-webkit-keyframes puff-in-center {\n 0% {\n -webkit-transform: scale(2);\n transform: scale(2);\n -webkit-filter: blur(4px);\n filter: blur(4px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes puff-in-center {\n 0% {\n -webkit-transform: scale(2);\n transform: scale(2);\n -webkit-filter: blur(4px);\n filter: blur(4px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:11:29\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation focus-in-contract\n * ----------------------------------------\n */\n @-webkit-keyframes focus-in-contract {\n 0% {\n letter-spacing: 1em;\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes focus-in-contract {\n 0% {\n letter-spacing: 1em;\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:22:44\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-horizontal\n * ----------------------------------------\n */\n @-webkit-keyframes shake-horizontal {\n 0%,\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n 80% {\n -webkit-transform: translateX(8px);\n transform: translateX(8px);\n }\n 90% {\n -webkit-transform: translateX(-8px);\n transform: translateX(-8px);\n }\n }\n @keyframes shake-horizontal {\n 0%,\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n 80% {\n -webkit-transform: translateX(8px);\n transform: translateX(8px);\n }\n 90% {\n -webkit-transform: translateX(-8px);\n transform: translateX(-8px);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:23:8\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-vertical\n * ----------------------------------------\n */\n @-webkit-keyframes shake-vertical {\n 0%,\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateY(-8px);\n transform: translateY(-8px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n }\n 80% {\n -webkit-transform: translateY(6.4px);\n transform: translateY(6.4px);\n }\n 90% {\n -webkit-transform: translateY(-6.4px);\n transform: translateY(-6.4px);\n }\n }\n @keyframes shake-vertical {\n 0%,\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateY(-8px);\n transform: translateY(-8px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n }\n 80% {\n -webkit-transform: translateY(6.4px);\n transform: translateY(6.4px);\n }\n 90% {\n -webkit-transform: translateY(-6.4px);\n transform: translateY(-6.4px);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:24:19\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-top\n * ----------------------------------------\n */\n @-webkit-keyframes shake-top {\n 0%,\n 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n -webkit-transform-origin: 50% 0;\n transform-origin: 50% 0;\n }\n 10% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: rotate(-4deg);\n transform: rotate(-4deg);\n }\n 30%,\n 50%,\n 70% {\n -webkit-transform: rotate(4deg);\n transform: rotate(4deg);\n }\n 80% {\n -webkit-transform: rotate(-2deg);\n transform: rotate(-2deg);\n }\n 90% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n }\n @keyframes shake-top {\n 0%,\n 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n -webkit-transform-origin: 50% 0;\n transform-origin: 50% 0;\n }\n 10% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: rotate(-4deg);\n transform: rotate(-4deg);\n }\n 30%,\n 50%,\n 70% {\n -webkit-transform: rotate(4deg);\n transform: rotate(4deg);\n }\n 80% {\n -webkit-transform: rotate(-2deg);\n transform: rotate(-2deg);\n }\n 90% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:21:6\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation vibrate-1\n * ----------------------------------------\n */\n @-webkit-keyframes vibrate-1 {\n 0% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n 20% {\n -webkit-transform: translate(-2px, 2px);\n transform: translate(-2px, 2px);\n }\n 40% {\n -webkit-transform: translate(-2px, -2px);\n transform: translate(-2px, -2px);\n }\n 60% {\n -webkit-transform: translate(2px, 2px);\n transform: translate(2px, 2px);\n }\n 80% {\n -webkit-transform: translate(2px, -2px);\n transform: translate(2px, -2px);\n }\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n }\n @keyframes vibrate-1 {\n 0% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n 20% {\n -webkit-transform: translate(-2px, 2px);\n transform: translate(-2px, 2px);\n }\n 40% {\n -webkit-transform: translate(-2px, -2px);\n transform: translate(-2px, -2px);\n }\n 60% {\n -webkit-transform: translate(2px, 2px);\n transform: translate(2px, 2px);\n }\n 80% {\n -webkit-transform: translate(2px, -2px);\n transform: translate(2px, -2px);\n }\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:27:38\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation blink-1\n * ----------------------------------------\n */\n @-webkit-keyframes blink-1 {\n 0%,\n 50%,\n 100% {\n opacity: 1;\n }\n 25%,\n 75% {\n opacity: 0;\n }\n }\n @keyframes blink-1 {\n 0%,\n 50%,\n 100% {\n opacity: 1;\n }\n 25%,\n 75% {\n opacity: 0;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:41:14\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * @animation flicker-in-2\n * ----------------------------------------\n */\n @-webkit-keyframes flicker-in-2 {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.1% {\n opacity: 1;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.2% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n }\n 20.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.5% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 50% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 100% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n }\n @keyframes flicker-in-2 {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.1% {\n opacity: 1;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.2% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n }\n 20.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.5% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 50% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 100% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-24 16:9:5\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bounce-top\n * ----------------------------------------\n */\n @-webkit-keyframes bounce-top {\n 0% {\n -webkit-transform: translateY(-45px);\n transform: translateY(-45px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 1;\n }\n 24% {\n opacity: 1;\n }\n 40% {\n -webkit-transform: translateY(-24px);\n transform: translateY(-24px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 65% {\n -webkit-transform: translateY(-12px);\n transform: translateY(-12px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 82% {\n -webkit-transform: translateY(-6px);\n transform: translateY(-6px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 93% {\n -webkit-transform: translateY(-4px);\n transform: translateY(-4px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 25%,\n 55%,\n 75%,\n 87% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n opacity: 1;\n }\n }\n @keyframes bounce-top {\n 0% {\n -webkit-transform: translateY(-45px);\n transform: translateY(-45px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 1;\n }\n 24% {\n opacity: 1;\n }\n 40% {\n -webkit-transform: translateY(-24px);\n transform: translateY(-24px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 65% {\n -webkit-transform: translateY(-12px);\n transform: translateY(-12px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 82% {\n -webkit-transform: translateY(-6px);\n transform: translateY(-6px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 93% {\n -webkit-transform: translateY(-4px);\n transform: translateY(-4px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 25%,\n 55%,\n 75%,\n 87% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:29:16\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation heartbeat\n * ----------------------------------------\n */\n @-webkit-keyframes heartbeat {\n from {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 10% {\n -webkit-transform: scale(0.91);\n transform: scale(0.91);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 17% {\n -webkit-transform: scale(0.98);\n transform: scale(0.98);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 33% {\n -webkit-transform: scale(0.87);\n transform: scale(0.87);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 45% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n }\n @keyframes heartbeat {\n from {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 10% {\n -webkit-transform: scale(0.91);\n transform: scale(0.91);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 17% {\n -webkit-transform: scale(0.98);\n transform: scale(0.98);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 33% {\n -webkit-transform: scale(0.87);\n transform: scale(0.87);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 45% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:30:57\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation kenburns-top\n * ----------------------------------------\n */\n @-webkit-keyframes kenburns-top {\n 0% {\n -webkit-transform: scale(1) translateY(0);\n transform: scale(1) translateY(0);\n -webkit-transform-origin: 50% 16%;\n transform-origin: 50% 16%;\n }\n 100% {\n -webkit-transform: scale(1.25) translateY(-15px);\n transform: scale(1.25) translateY(-15px);\n -webkit-transform-origin: top;\n transform-origin: top;\n }\n }\n @keyframes kenburns-top {\n 0% {\n -webkit-transform: scale(1) translateY(0);\n transform: scale(1) translateY(0);\n -webkit-transform-origin: 50% 16%;\n transform-origin: 50% 16%;\n }\n 100% {\n -webkit-transform: scale(1.25) translateY(-15px);\n transform: scale(1.25) translateY(-15px);\n -webkit-transform-origin: top;\n transform-origin: top;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:33:12\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-top\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-top {\n 0% {\n background-position: 50% 100%;\n }\n 100% {\n background-position: 50% 0%;\n }\n }\n @keyframes bg-pan-top {\n 0% {\n background-position: 50% 100%;\n }\n 100% {\n background-position: 50% 0%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:34:5\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-right\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-right {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n }\n @keyframes bg-pan-right {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:33:27\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-bottom {\n 0% {\n background-position: 50% 0%;\n }\n 100% {\n background-position: 50% 100%;\n }\n }\n @keyframes bg-pan-bottom {\n 0% {\n background-position: 50% 0%;\n }\n 100% {\n background-position: 50% 100%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:34:26\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-left\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n @keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n"], ["\n * {\n box-sizing: border-box;\n }\n\n .iamgroup .cb-box-in-group:after {\n box-shadow: 0 0 0 3px #027aff;\n bottom: 0;\n box-sizing: border-box;\n content: '';\n display: block;\n height: 100%;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n .cb-box-in-group:hover:after {\n box-shadow: 0 0 0 3px #d902ff;\n bottom: 0;\n box-sizing: border-box;\n content: '';\n display: block;\n height: 100%;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n .iamgroup {\n box-shadow: 0 0 0 3px #027aff;\n opacity: 1;\n }\n\n .react-grid-layout {\n position: relative;\n z-index: 1;\n }\n\n .react-grid-layout .grid-placeholder {\n box-sizing: border-box;\n }\n\n .react-grid-item {\n left: 0;\n position: absolute;\n top: 0;\n z-index: 1;\n }\n\n .react-grid-item.react-draggable.react-resizable:not(.react-grid-item-selected):not(.iamgroup):hover {\n box-shadow: 0 0 0 3px #d902ff;\n }\n\n .react-grid-item-selected {\n box-shadow: 0 0 0 3px #027aff;\n }\n\n .react-grid-item img {\n pointer-events: none;\n user-select: none;\n }\n\n .react-grid-item.isResizing,\n .react-grid-item.isResizing .cb-layout-box,\n .react-grid-item.isResizing .cb-layout-box .cb-divider {\n visibility: hidden;\n }\n\n .react-grid-item.react-draggable.isDragging,\n .react-grid-item.react-draggable.isDragging .cb-layout-box,\n .react-grid-item.react-draggable.isDragging .cb-layout-box .cb-divider {\n visibility: hidden;\n }\n\n /* .react-grid-item.react-draggable.isDragging .cb-layout-box .twitter-embed-container {\n visibility: hidden;\n } */\n\n .react-grid-item.isResizing > .react-resizable-handle,\n .react-grid-item.react-draggable.isDragging > .react-resizable-handle {\n visibility: hidden;\n }\n\n .react-grid-item.dropping {\n visibility: hidden;\n }\n\n .react-grid-item.static::after {\n color: red;\n content: \"this is static, can't drag\";\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n .react-grid-item.placeholder {\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n z-index: 9999;\n }\n\n .react-grid-item > .react-resizable-handle::after {\n background: rgb(255, 255, 255);\n border: 3px solid rgb(2, 122, 255);\n content: '';\n height: 5px;\n position: absolute;\n width: 5px;\n }\n\n .react-resizable-handle {\n visibility: hidden;\n }\n\n .react-grid-item-selected > .react-resizable-handle {\n visibility: visible;\n }\n\n /* NOTE: Resizable related */\n .react-resizable {\n position: relative;\n }\n\n .react-resizable-handle {\n align-items: center;\n background-origin: content-box;\n background-repeat: no-repeat;\n box-sizing: border-box;\n display: flex;\n height: 20px;\n justify-content: center;\n position: absolute;\n width: 20px;\n }\n\n .react-resizable-handle-sw {\n bottom: 0;\n cursor: sw-resize;\n left: 0;\n transform: translate(-50%, 50%);\n }\n\n .react-resizable-handle-se {\n bottom: 0;\n cursor: se-resize;\n right: 0;\n transform: translate(50%, 50%);\n }\n\n .react-resizable-handle-nw {\n cursor: nw-resize;\n left: 0;\n top: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-ne {\n cursor: ne-resize;\n right: 0;\n top: 0;\n transform: translate(50%, -50%);\n }\n\n .react-resizable-handle-w,\n .react-resizable-handle-e {\n cursor: ew-resize;\n top: 50%;\n }\n\n .react-resizable-handle-w {\n left: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-e {\n right: 0;\n transform: translate(50%, -50%);\n }\n\n .react-resizable-handle-n,\n .react-resizable-handle-s {\n cursor: ns-resize;\n left: 50%;\n }\n\n .react-resizable-handle-n {\n top: 0;\n transform: translate(-50%, -50%);\n }\n\n .react-resizable-handle-s {\n bottom: 0;\n transform: translate(-50%, 50%);\n }\n\n .grid-placeholder {\n position: absolute;\n z-index: 0;\n }\n\n .grid-pattern-rect {\n fill: #0000001a;\n stroke: #ffffff33;\n }\n\n .react-grid-item.placeholder .cb-layout-box,\n .react-grid-item.placeholder .cb-layout-box .cb-divider {\n animation: none;\n }\n\n .react-grid-item.placeholder {\n box-shadow: 0 0 0 3px #027aff;\n }\n\n .react-grid-item.placeholder > .react-resizable-handle {\n visibility: hidden;\n }\n\n .grid-guide-line-center {\n border-color: #ff463aff;\n border-style: dashed;\n border-width: 1px;\n height: 100%;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n z-index: 99999;\n }\n\n /* NOTE: Effects */\n\n @-webkit-keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-fwd {\n 0% {\n -webkit-transform: translateZ(-80px);\n transform: translateZ(-80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @keyframes fade-in-fwd {\n 0% {\n -webkit-transform: translateZ(-80px);\n transform: translateZ(-80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-bck {\n 0% {\n -webkit-transform: translateZ(80px);\n transform: translateZ(80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-bck {\n 0% {\n -webkit-transform: translateZ(80px);\n transform: translateZ(80px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-top {\n 0% {\n -webkit-transform: translateY(-50px);\n transform: translateY(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-top {\n 0% {\n -webkit-transform: translateY(-50px);\n transform: translateY(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fade-in-right {\n 0% {\n -webkit-transform: translateX(50px);\n transform: translateX(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-right {\n 0% {\n -webkit-transform: translateX(50px);\n transform: translateX(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:29:36\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation fade-in-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes fade-in-bottom {\n 0% {\n -webkit-transform: translateY(50px);\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-bottom {\n 0% {\n -webkit-transform: translateY(50px);\n transform: translateY(50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:29:52\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation fade-in-left\n * ----------------------------------------\n */\n @-webkit-keyframes fade-in-left {\n 0% {\n -webkit-transform: translateX(-50px);\n transform: translateX(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes fade-in-left {\n 0% {\n -webkit-transform: translateX(-50px);\n transform: translateX(-50px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:53:50\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-top\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-top {\n 0% {\n -webkit-transform: translateY(-1000px);\n transform: translateY(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-top {\n 0% {\n -webkit-transform: translateY(-1000px);\n transform: translateY(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:47\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-right\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-right {\n 0% {\n -webkit-transform: translateX(1000px);\n transform: translateX(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-right {\n 0% {\n -webkit-transform: translateX(1000px);\n transform: translateX(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:1\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-bottom {\n 0% {\n -webkit-transform: translateY(1000px);\n transform: translateY(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-bottom {\n 0% {\n -webkit-transform: translateY(1000px);\n transform: translateY(1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:54:28\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-left\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-left {\n 0% {\n -webkit-transform: translateX(-1000px);\n transform: translateX(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-left {\n 0% {\n -webkit-transform: translateX(-1000px);\n transform: translateX(-1000px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:52:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation tracking-in-contract\n * ----------------------------------------\n */\n @-webkit-keyframes tracking-in-contract {\n 0% {\n letter-spacing: 1em;\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n letter-spacing: normal;\n opacity: 1;\n }\n }\n @keyframes tracking-in-contract {\n 0% {\n letter-spacing: 1em;\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n letter-spacing: normal;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:47:57\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation rotate-in-2-cw\n * ----------------------------------------\n */\n @-webkit-keyframes rotate-in-2-cw {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n @keyframes rotate-in-2-cw {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:52:54\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation rotate-in-2-ccw\n * ----------------------------------------\n */\n @-webkit-keyframes rotate-in-2-ccw {\n 0% {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n @keyframes rotate-in-2-ccw {\n 0% {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:34:56\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-top-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n @keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:35:56\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-top-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-top-bck {\n 0% {\n -webkit-transform: rotateX(70deg);\n transform: rotateX(70deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n @keyframes swing-in-top-bck {\n 0% {\n -webkit-transform: rotateX(70deg);\n transform: rotateX(70deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:36:18\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-right-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-right-fwd {\n 0% {\n -webkit-transform: rotateY(-100deg);\n transform: rotateY(-100deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n @keyframes swing-in-right-fwd {\n 0% {\n -webkit-transform: rotateY(-100deg);\n transform: rotateY(-100deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:36:46\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-right-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-right-bck {\n 0% {\n -webkit-transform: rotateY(70deg);\n transform: rotateY(70deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n @keyframes swing-in-right-bck {\n 0% {\n -webkit-transform: rotateY(70deg);\n transform: rotateY(70deg);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: right;\n transform-origin: right;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:37:11\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-bottom-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-bottom-fwd {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0);\n transform: rotateX(0);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 1;\n }\n }\n\n @keyframes swing-in-bottom-fwd {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0);\n transform: rotateX(0);\n -webkit-transform-origin: bottom;\n transform-origin: bottom;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:38:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-left-fwd\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-left-fwd {\n 0% {\n -webkit-transform: rotateY(100deg);\n transform: rotateY(100deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n @keyframes swing-in-left-fwd {\n 0% {\n -webkit-transform: rotateY(100deg);\n transform: rotateY(100deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:40:3\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation swing-in-left-bck\n * ----------------------------------------\n */\n @-webkit-keyframes swing-in-left-bck {\n 0% {\n -webkit-transform: rotateY(-70deg);\n transform: rotateY(-70deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n @keyframes swing-in-left-bck {\n 0% {\n -webkit-transform: rotateY(-70deg);\n transform: rotateY(-70deg);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateY(0);\n transform: rotateY(0);\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:44:48\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation scale-in-center\n * ----------------------------------------\n */\n @-webkit-keyframes scale-in-center {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n }\n @keyframes scale-in-center {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:46:1\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation slide-in-bck-center\n * ----------------------------------------\n */\n @-webkit-keyframes slide-in-bck-center {\n 0% {\n -webkit-transform: translateZ(600px);\n transform: translateZ(600px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes slide-in-bck-center {\n 0% {\n -webkit-transform: translateZ(600px);\n transform: translateZ(600px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:13:59\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation tracking-in-contract-bck\n * ----------------------------------------\n */\n @-webkit-keyframes tracking-in-contract-bck {\n 0% {\n letter-spacing: 1em;\n -webkit-transform: translateZ(400px);\n transform: translateZ(400px);\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n @keyframes tracking-in-contract-bck {\n 0% {\n letter-spacing: 1em;\n -webkit-transform: translateZ(400px);\n transform: translateZ(400px);\n opacity: 0;\n }\n 40% {\n opacity: 0.6;\n }\n 100% {\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:11:16\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation text-focus-in\n * ----------------------------------------\n */\n @-webkit-keyframes text-focus-in {\n 0% {\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes text-focus-in {\n 0% {\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:33:10\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation puff-in-center\n * ----------------------------------------\n */\n @-webkit-keyframes puff-in-center {\n 0% {\n -webkit-transform: scale(2);\n transform: scale(2);\n -webkit-filter: blur(4px);\n filter: blur(4px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes puff-in-center {\n 0% {\n -webkit-transform: scale(2);\n transform: scale(2);\n -webkit-filter: blur(4px);\n filter: blur(4px);\n opacity: 0;\n }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:11:29\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation focus-in-contract\n * ----------------------------------------\n */\n @-webkit-keyframes focus-in-contract {\n 0% {\n letter-spacing: 1em;\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n @keyframes focus-in-contract {\n 0% {\n letter-spacing: 1em;\n -webkit-filter: blur(12px);\n filter: blur(12px);\n opacity: 0;\n }\n 100% {\n -webkit-filter: blur(0px);\n filter: blur(0px);\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:22:44\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-horizontal\n * ----------------------------------------\n */\n @-webkit-keyframes shake-horizontal {\n 0%,\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n 80% {\n -webkit-transform: translateX(8px);\n transform: translateX(8px);\n }\n 90% {\n -webkit-transform: translateX(-8px);\n transform: translateX(-8px);\n }\n }\n @keyframes shake-horizontal {\n 0%,\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n 80% {\n -webkit-transform: translateX(8px);\n transform: translateX(8px);\n }\n 90% {\n -webkit-transform: translateX(-8px);\n transform: translateX(-8px);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:23:8\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-vertical\n * ----------------------------------------\n */\n @-webkit-keyframes shake-vertical {\n 0%,\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateY(-8px);\n transform: translateY(-8px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n }\n 80% {\n -webkit-transform: translateY(6.4px);\n transform: translateY(6.4px);\n }\n 90% {\n -webkit-transform: translateY(-6.4px);\n transform: translateY(-6.4px);\n }\n }\n @keyframes shake-vertical {\n 0%,\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n 10%,\n 30%,\n 50%,\n 70% {\n -webkit-transform: translateY(-8px);\n transform: translateY(-8px);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n }\n 80% {\n -webkit-transform: translateY(6.4px);\n transform: translateY(6.4px);\n }\n 90% {\n -webkit-transform: translateY(-6.4px);\n transform: translateY(-6.4px);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:24:19\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation shake-top\n * ----------------------------------------\n */\n @-webkit-keyframes shake-top {\n 0%,\n 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n -webkit-transform-origin: 50% 0;\n transform-origin: 50% 0;\n }\n 10% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: rotate(-4deg);\n transform: rotate(-4deg);\n }\n 30%,\n 50%,\n 70% {\n -webkit-transform: rotate(4deg);\n transform: rotate(4deg);\n }\n 80% {\n -webkit-transform: rotate(-2deg);\n transform: rotate(-2deg);\n }\n 90% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n }\n @keyframes shake-top {\n 0%,\n 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n -webkit-transform-origin: 50% 0;\n transform-origin: 50% 0;\n }\n 10% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n 20%,\n 40%,\n 60% {\n -webkit-transform: rotate(-4deg);\n transform: rotate(-4deg);\n }\n 30%,\n 50%,\n 70% {\n -webkit-transform: rotate(4deg);\n transform: rotate(4deg);\n }\n 80% {\n -webkit-transform: rotate(-2deg);\n transform: rotate(-2deg);\n }\n 90% {\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:21:6\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation vibrate-1\n * ----------------------------------------\n */\n @-webkit-keyframes vibrate-1 {\n 0% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n 20% {\n -webkit-transform: translate(-2px, 2px);\n transform: translate(-2px, 2px);\n }\n 40% {\n -webkit-transform: translate(-2px, -2px);\n transform: translate(-2px, -2px);\n }\n 60% {\n -webkit-transform: translate(2px, 2px);\n transform: translate(2px, 2px);\n }\n 80% {\n -webkit-transform: translate(2px, -2px);\n transform: translate(2px, -2px);\n }\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n }\n @keyframes vibrate-1 {\n 0% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n 20% {\n -webkit-transform: translate(-2px, 2px);\n transform: translate(-2px, 2px);\n }\n 40% {\n -webkit-transform: translate(-2px, -2px);\n transform: translate(-2px, -2px);\n }\n 60% {\n -webkit-transform: translate(2px, 2px);\n transform: translate(2px, 2px);\n }\n 80% {\n -webkit-transform: translate(2px, -2px);\n transform: translate(2px, -2px);\n }\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:27:38\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation blink-1\n * ----------------------------------------\n */\n @-webkit-keyframes blink-1 {\n 0%,\n 50%,\n 100% {\n opacity: 1;\n }\n 25%,\n 75% {\n opacity: 0;\n }\n }\n @keyframes blink-1 {\n 0%,\n 50%,\n 100% {\n opacity: 1;\n }\n 25%,\n 75% {\n opacity: 0;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 0:41:14\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * @animation flicker-in-2\n * ----------------------------------------\n */\n @-webkit-keyframes flicker-in-2 {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.1% {\n opacity: 1;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.2% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n }\n 20.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.5% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 50% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 100% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n }\n @keyframes flicker-in-2 {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.1% {\n opacity: 1;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 10.2% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 20.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.25);\n }\n 20.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 30.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.5% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 30.6% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 45.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 50% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.45), 0 0 60px rgba(255, 255, 255, 0.25);\n }\n 55.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 57.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3);\n }\n 60.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 65.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.55), 0 0 60px rgba(255, 255, 255, 0.3),\n 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 75.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 77.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.4),\n 0 0 110px rgba(255, 255, 255, 0.2), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 85.1% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86% {\n opacity: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n 86.1% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n 100% {\n opacity: 1;\n -webkit-box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.6), 0 0 60px rgba(255, 255, 255, 0.45),\n 0 0 110px rgba(255, 255, 255, 0.25), 0 0 100px rgba(255, 255, 255, 0.1);\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-24 16:9:5\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bounce-top\n * ----------------------------------------\n */\n @-webkit-keyframes bounce-top {\n 0% {\n -webkit-transform: translateY(-45px);\n transform: translateY(-45px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 1;\n }\n 24% {\n opacity: 1;\n }\n 40% {\n -webkit-transform: translateY(-24px);\n transform: translateY(-24px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 65% {\n -webkit-transform: translateY(-12px);\n transform: translateY(-12px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 82% {\n -webkit-transform: translateY(-6px);\n transform: translateY(-6px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 93% {\n -webkit-transform: translateY(-4px);\n transform: translateY(-4px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 25%,\n 55%,\n 75%,\n 87% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n opacity: 1;\n }\n }\n @keyframes bounce-top {\n 0% {\n -webkit-transform: translateY(-45px);\n transform: translateY(-45px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 1;\n }\n 24% {\n opacity: 1;\n }\n 40% {\n -webkit-transform: translateY(-24px);\n transform: translateY(-24px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 65% {\n -webkit-transform: translateY(-12px);\n transform: translateY(-12px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 82% {\n -webkit-transform: translateY(-6px);\n transform: translateY(-6px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 93% {\n -webkit-transform: translateY(-4px);\n transform: translateY(-4px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 25%,\n 55%,\n 75%,\n 87% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n opacity: 1;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:29:16\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation heartbeat\n * ----------------------------------------\n */\n @-webkit-keyframes heartbeat {\n from {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 10% {\n -webkit-transform: scale(0.91);\n transform: scale(0.91);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 17% {\n -webkit-transform: scale(0.98);\n transform: scale(0.98);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 33% {\n -webkit-transform: scale(0.87);\n transform: scale(0.87);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 45% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n }\n @keyframes heartbeat {\n from {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 10% {\n -webkit-transform: scale(0.91);\n transform: scale(0.91);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 17% {\n -webkit-transform: scale(0.98);\n transform: scale(0.98);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n 33% {\n -webkit-transform: scale(0.87);\n transform: scale(0.87);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 45% {\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:30:57\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation kenburns-top\n * ----------------------------------------\n */\n @-webkit-keyframes kenburns-top {\n 0% {\n -webkit-transform: scale(1) translateY(0);\n transform: scale(1) translateY(0);\n -webkit-transform-origin: 50% 16%;\n transform-origin: 50% 16%;\n }\n 100% {\n -webkit-transform: scale(1.25) translateY(-15px);\n transform: scale(1.25) translateY(-15px);\n -webkit-transform-origin: top;\n transform-origin: top;\n }\n }\n @keyframes kenburns-top {\n 0% {\n -webkit-transform: scale(1) translateY(0);\n transform: scale(1) translateY(0);\n -webkit-transform-origin: 50% 16%;\n transform-origin: 50% 16%;\n }\n 100% {\n -webkit-transform: scale(1.25) translateY(-15px);\n transform: scale(1.25) translateY(-15px);\n -webkit-transform-origin: top;\n transform-origin: top;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:33:12\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-top\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-top {\n 0% {\n background-position: 50% 100%;\n }\n 100% {\n background-position: 50% 0%;\n }\n }\n @keyframes bg-pan-top {\n 0% {\n background-position: 50% 100%;\n }\n 100% {\n background-position: 50% 0%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:34:5\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-right\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-right {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n }\n @keyframes bg-pan-right {\n 0% {\n background-position: 0% 50%;\n }\n 100% {\n background-position: 100% 50%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:33:27\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-bottom\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-bottom {\n 0% {\n background-position: 50% 0%;\n }\n 100% {\n background-position: 50% 100%;\n }\n }\n @keyframes bg-pan-bottom {\n 0% {\n background-position: 50% 0%;\n }\n 100% {\n background-position: 50% 100%;\n }\n }\n\n /* ----------------------------------------------\n * Generated by Animista on 2023-7-4 1:34:26\n * Licensed under FreeBSD License.\n * See http://animista.net/license for more info. \n * w: http://animista.net, t: @cssanimista\n * ---------------------------------------------- */\n\n /**\n * ----------------------------------------\n * animation bg-pan-left\n * ----------------------------------------\n */\n @-webkit-keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n @keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n"])));
|
500
487
|
var S_SectionWrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: relative;\n"], ["\n position: relative;\n"])));
|
501
488
|
exports.default = react_1.default.memo(CustomSection);
|
502
489
|
var templateObject_1, templateObject_2;
|