        \n

        /* ========= MAGICAL GARDEN CSS ========= */
        \n *,
        *::after,
        *::before {
            padding: 0;
            margin: 0;
            box-sizing: border-box;
        }

        .night {
            position: fixed;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            filter: blur(0.1vmin);
            pointer-events: none;
            background-image: radial-gradient(ellipse at top,
                    transparent 0%,
                    var(--dark-color, #000)),
                radial-gradient(ellipse at bottom,
                    var(--dark-color, #000),
                    rgba(145, 233, 255, 0.2)),
                repeating-linear-gradient(220deg,
                    rgb(0, 0, 0) 0px,
                    rgb(0, 0, 0) 19px,
                    transparent 19px,
                    transparent 22px),
                repeating-linear-gradient(189deg,
                    rgb(0, 0, 0) 0px,
                    rgb(0, 0, 0) 19px,
                    transparent 19px,
                    transparent 22px),
                repeating-linear-gradient(148deg,
                    rgb(0, 0, 0) 0px,
                    rgb(0, 0, 0) 19px,
                    transparent 19px,
                    transparent 22px),
                linear-gradient(90deg, rgb(0, 255, 250), rgb(240, 240, 240));
            z-index: -10;
        }

        .magical-flowers {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            height: 100vh;
            z-index: 0;
            pointer-events: none;
            display: flex;
            justify-content: center;
            align-items: flex-end;
        }

        .flowers {
            position: relative;
            transform: scale(0.6) translateY(20vmin);
            z-index: 1;
        }

        .flower {
            position: absolute;
            bottom: -10vmin;
            transform-origin: bottom center;
            z-index: 10;
            --fl-speed: 0.8s;
        }

        .flower--1 {
            animation: moving-flower-1 4s linear infinite;
        }

        .flower--1 .flower__line {
            height: 70vmin;
            animation-delay: 0.3s;
        }

        .flower--1 .flower__line__leaf--1 {
            animation: blooming-leaf-right var(--fl-speed) 1.6s backwards;
        }

        .flower--1 .flower__line__leaf--2 {
            animation: blooming-leaf-right var(--fl-speed) 1.4s backwards;
        }

        .flower--1 .flower__line__leaf--3 {
            animation: blooming-leaf-left var(--fl-speed) 1.2s backwards;
        }

        .flower--1 .flower__line__leaf--4 {
            animation: blooming-leaf-left var(--fl-speed) 1s backwards;
        }

        .flower--1 .flower__line__leaf--5 {
            animation: blooming-leaf-right var(--fl-speed) 1.8s backwards;
        }

        .flower--1 .flower__line__leaf--6 {
            animation: blooming-leaf-left var(--fl-speed) 2s backwards;
        }

        .flower--2 {
            left: 50%;
            transform: rotate(20deg);
            animation: moving-flower-2 4s linear infinite;
        }

        .flower--2 .flower__line {
            height: 60vmin;
            animation-delay: 0.6s;
        }

        .flower--2 .flower__line__leaf--1 {
            animation: blooming-leaf-right var(--fl-speed) 1.9s backwards;
        }

        .flower--2 .flower__line__leaf--2 {
            animation: blooming-leaf-right var(--fl-speed) 1.7s backwards;
        }

        .flower--2 .flower__line__leaf--3 {
            animation: blooming-leaf-left var(--fl-speed) 1.5s backwards;
        }

        .flower--2 .flower__line__leaf--4 {
            animation: blooming-leaf-left var(--fl-speed) 1.3s backwards;
        }

        .flower--3 {
            left: 50%;
            transform: rotate(-15deg);
            animation: moving-flower-3 4s linear infinite;
        }

        .flower--3 .flower__line {
            animation-delay: 0.9s;
        }

        .flower--3 .flower__line__leaf--1 {
            animation: blooming-leaf-right var(--fl-speed) 2.5s backwards;
        }

        .flower--3 .flower__line__leaf--2 {
            animation: blooming-leaf-right var(--fl-speed) 2.3s backwards;
        }

        .flower--3 .flower__line__leaf--3 {
            animation: blooming-leaf-left var(--fl-speed) 2.1s backwards;
        }

        .flower--3 .flower__line__leaf--4 {
            animation: blooming-leaf-left var(--fl-speed) 1.9s backwards;
        }

        .flower__leafs {
            position: relative;
            animation: blooming-flower 2s backwards;
        }

        .flower__leafs--1 {
            animation-delay: 1.1s;
        }

        .flower__leafs--2 {
            animation-delay: 1.4s;
        }

        .flower__leafs--3 {
            animation-delay: 1.7s;
        }

        .flower__leafs::after {
            content: "";
            position: absolute;
            left: 0;
            top: 0;
            transform: translate(-50%, -100%);
            width: 8vmin;
            height: 8vmin;
            background-color: #6bf0ff;
            filter: blur(10vmin);
        }

        .flower__leaf {
            position: absolute;
            bottom: 0;
            left: 50%;
            width: 8vmin;
            height: 11vmin;
            border-radius: 51% 49% 47% 53% / 44% 45% 55% 69%;
            background-color: #a7ffee;
            background-image: linear-gradient(to top, #54b8aa, #a7ffee);
            transform-origin: bottom center;
            opacity: 0.9;
            box-shadow: inset 0 0 2vmin rgba(255, 255, 255, 0.5);
        }

        .flower__leaf--1 {
            transform: translate(-10%, 1%) rotateY(40deg) rotateX(-50deg);
        }

        .flower__leaf--2 {
            transform: translate(-50%, -4%) rotateX(40deg);
        }

        .flower__leaf--3 {
            transform: translate(-90%, 0%) rotateY(45deg) rotateX(50deg);
        }

        .flower__leaf--4 {
            width: 8vmin;
            height: 8vmin;
            transform-origin: bottom left;
            border-radius: 4vmin 10vmin 4vmin 4vmin;
            transform: translate(-0%, 18%) rotateX(70deg) rotate(-43deg);
            background-image: linear-gradient(to top, #39c6d6, #a7ffee);
            z-index: 1;
            opacity: 0.8;
        }

        .flower__white-circle {
            position: absolute;
            left: -3.5vmin;
            top: -3vmin;
            width: 9vmin;
            height: 4vmin;
            border-radius: 50%;
            background-color: #fff;
        }

        .flower__white-circle::after {
            content: "";
            position: absolute;
            left: 50%;
            top: 45%;
            transform: translate(-50%, -50%);
            width: 60%;
            height: 60%;
            border-radius: inherit;
            background-image: repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(67.5deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(112.5deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(112.5deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(22.5deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(22.5deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(157.5deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(67.5deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(67.5deg, rgba(0, 0, 0, 0.03) 0px, rgba(0, 0, 0, 0.03) 1px, transparent 1px, transparent 12px), linear-gradient(90deg, rgb(255, 235, 18), rgb(255, 206, 0));
        }

        .flower__line {
            height: 55vmin;
            width: 1.5vmin;
            background-image: linear-gradient(to left, rgb(0, 0, 0, 0.2), transparent, rgba(255, 255, 255, 0.2)), linear-gradient(to top, transparent 10%, #14757a, #39c6d6);
            box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.5);
            animation: grow-flower-tree 4s backwards;
        }

        .flower__line__leaf {
            --w: 7vmin;
            --h: calc(var(--w) + 2vmin);
            position: absolute;
            top: 20%;
            left: 90%;
            width: var(--w);
            height: var(--h);
            border-top-right-radius: var(--h);
            border-bottom-left-radius: var(--h);
            background-image: linear-gradient(to top, rgba(20, 117, 122, 0.4), #39c6d6);
        }

        .flower__line__leaf--1 {
            transform: rotate(70deg) rotateY(30deg);
        }

        .flower__line__leaf--2 {
            top: 45%;
            transform: rotate(70deg) rotateY(30deg);
        }

        .flower__line__leaf--3,
        .flower__line__leaf--4,
        .flower__line__leaf--6 {
            border-top-right-radius: 0;
            border-bottom-left-radius: 0;
            border-top-left-radius: var(--h);
            border-bottom-right-radius: var(--h);
            left: -460%;
            top: 12%;
            transform: rotate(-70deg) rotateY(30deg);
        }

        .flower__line__leaf--4 {
            top: 40%;
        }

        .flower__line__leaf--5 {
            top: 0;
            transform-origin: left;
            transform: rotate(70deg) rotateY(30deg) scale(0.6);
        }

        .flower__line__leaf--6 {
            top: -2%;
            left: -450%;
            transform-origin: right;
            transform: rotate(-70deg) rotateY(30deg) scale(0.6);
        }

        .flower__light {
            position: absolute;
            bottom: 0vmin;
            width: 1vmin;
            height: 1vmin;
            background-color: rgb(255, 251, 0);
            border-radius: 50%;
            filter: blur(0.2vmin);
            animation: light-ans 4s linear infinite backwards;
        }

        .flower__light:nth-child(odd) {
            background-color: #23f0ff;
        }

        .flower__light--1 {
            left: -2vmin;
            animation-delay: 1s;
        }

        .flower__light--2 {
            left: 3vmin;
            animation-delay: 0.5s;
        }

        .flower__light--3 {
            left: -6vmin;
            animation-delay: 0.3s;
        }

        .flower__light--4 {
            left: 6vmin;
            animation-delay: 0.9s;
        }

        .flower__light--5 {
            left: -1vmin;
            animation-delay: 1.5s;
        }

        .flower__light--6 {
            left: -4vmin;
            animation-delay: 3s;
        }

        .flower__light--7 {
            left: 3vmin;
            animation-delay: 2s;
        }

        .flower__light--8 {
            left: -6vmin;
            animation-delay: 3.5s;
        }

        .flower__grass {
            --c: #159faa;
            --line-w: 1.5vmin;
            position: absolute;
            bottom: 12vmin;
            left: -7vmin;
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            z-index: 20;
            transform-origin: bottom center;
            transform: rotate(-48deg) rotateY(40deg);
        }

        .flower__grass--1 {
            animation: moving-grass 2s linear infinite;
        }

        .flower__grass--2 {
            left: 2vmin;
            bottom: 10vmin;
            transform: scale(0.5) rotate(75deg) rotateX(10deg) rotateY(-200deg);
            opacity: 0.8;
            z-index: 0;
            animation: moving-grass--2 1.5s linear infinite;
        }

        .flower__grass--top {
            width: 7vmin;
            height: 10vmin;
            border-top-right-radius: 100%;
            border-right: var(--line-w) solid var(--c);
            transform-origin: bottom center;
            transform: rotate(-2deg);
        }

        .flower__grass--bottom {
            margin-top: -2px;
            width: var(--line-w);
            height: 25vmin;
            background-image: linear-gradient(to top, transparent, var(--c));
        }

        .flower__grass__leaf {
            --size: 10vmin;
            position: absolute;
            width: calc(var(--size) * 2.1);
            height: var(--size);
            border-top-left-radius: var(--size);
            border-top-right-radius: var(--size);
            background-image: linear-gradient(to top, transparent, transparent 30%, var(--c));
            z-index: 100;
        }

        .flower__grass__leaf--1 {
            top: -6%;
            left: 30%;
            --size: 6vmin;
            transform: rotate(-20deg);
            animation: growing-grass-ans--1 2s 2.6s backwards;
        }

        .flower__grass__leaf--2 {
            top: -5%;
            left: -110%;
            --size: 6vmin;
            transform: rotate(10deg);
            animation: growing-grass-ans--2 2s 2.4s linear backwards;
        }

        .flower__grass__leaf--3 {
            top: 5%;
            left: 60%;
            --size: 8vmin;
            transform: rotate(-18deg) rotateX(-20deg);
            animation: growing-grass-ans--3 2s 2.2s linear backwards;
        }

        .flower__grass__leaf--4 {
            top: 6%;
            left: -135%;
            --size: 8vmin;
            transform: rotate(2deg);
            animation: growing-grass-ans--4 2s 2s linear backwards;
        }

        .flower__grass__leaf--5 {
            top: 20%;
            left: 60%;
            --size: 10vmin;
            transform: rotate(-24deg) rotateX(-20deg);
            animation: growing-grass-ans--5 2s 1.8s linear backwards;
        }

        .flower__grass__leaf--6 {
            top: 22%;
            left: -180%;
            --size: 10vmin;
            transform: rotate(10deg);
            animation: growing-grass-ans--6 2s 1.6s linear backwards;
        }

        .flower__grass__leaf--7 {
            top: 39%;
            left: 70%;
            --size: 10vmin;
            transform: rotate(-10deg);
            animation: growing-grass-ans--7 2s 1.4s linear backwards;
        }

        .flower__grass__leaf--8 {
            top: 40%;
            left: -215%;
            --size: 11vmin;
            transform: rotate(10deg);
            animation: growing-grass-ans--8 2s 1.2s linear backwards;
        }

        .flower__grass__overlay {
            position: absolute;
            top: -10%;
            right: 0%;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.6);
            filter: blur(1.5vmin);
            z-index: 100;
            pointer-events: none;
        }

        .flower__g-long {
            --w: 2vmin;
            --h: 6vmin;
            --c: #159faa;
            position: absolute;
            bottom: 10vmin;
            left: -3vmin;
            transform-origin: bottom center;
            transform: rotate(-30deg) rotateY(-20deg);
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            animation: flower-g-long-ans 3s linear infinite;
        }

        .flower__g-long__top {
            top: calc(var(--h) * -1);
            width: calc(var(--w) + 1vmin);
            height: var(--h);
            border-top-right-radius: 100%;
            border-right: 0.7vmin solid var(--c);
            transform: translate(-0.7vmin, 1vmin);
        }

        .flower__g-long__bottom {
            width: var(--w);
            height: 50vmin;
            transform-origin: bottom center;
            background-image: linear-gradient(to top, transparent 30%, var(--c));
            box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.5);
            clip-path: polygon(35% 0, 65% 1%, 100% 100%, 0% 100%);
        }

        .flower__g-right {
            position: absolute;
            bottom: 6vmin;
            left: -2vmin;
            transform-origin: bottom left;
            transform: rotate(20deg);
        }

        .flower__g-right .leaf {
            width: 30vmin;
            height: 50vmin;
            border-top-left-radius: 100%;
            border-left: 2vmin solid #079097;
            background-image: linear-gradient(to bottom, transparent, var(--dark-color, #000) 60%);
            -webkit-mask-image: linear-gradient(to top, transparent 30%, #079097 60%);
            mask-image: linear-gradient(to top, transparent 30%, #079097 60%);
        }

        .flower__g-right--1 {
            animation: flower-g-right-ans 2.5s linear infinite;
        }

        .flower__g-right--2 {
            left: 5vmin;
            transform: rotateY(-180deg);
            animation: flower-g-right-ans--2 3s linear infinite;
        }

        .flower__g-right--2 .leaf {
            height: 75vmin;
            filter: blur(0.3vmin);
            opacity: 0.8;
        }

        .flower__g-front {
            position: absolute;
            bottom: 6vmin;
            left: 2.5vmin;
            z-index: 100;
            transform-origin: bottom center;
            transform: rotate(-28deg) rotateY(30deg) scale(1.04);
            animation: flower__g-front-ans 2s linear infinite;
        }

        @keyframes flower__g-front-ans {

            0%,
            100% {
                transform: rotate(-28deg) rotateY(30deg) scale(1.04);
            }

            50% {
                transform: rotate(-35deg) rotateY(40deg) scale(1.04);
            }
        }

        .flower__g-front__line {
            width: 0.3vmin;
            height: 20vmin;
            background-image: linear-gradient(to top, transparent, #079097, transparent 100%);
            position: relative;
        }

        .flower__g-front__leaf-wrapper {
            position: absolute;
            top: 0;
            left: 0;
            transform-origin: bottom left;
            transform: rotate(10deg);
        }

        .flower__g-front__leaf-wrapper:nth-child(even) {
            left: 0vmin;
            transform: rotateY(-180deg) rotate(5deg);
            animation: flower__g-front__leaf-left-ans 1s ease-in backwards;
        }

        .flower__g-front__leaf-wrapper:nth-child(odd) {
            animation: flower__g-front__leaf-ans 1s ease-in backwards;
        }

        .flower__g-front__leaf-wrapper--1 {
            top: -8vmin;
            transform: scale(0.7);
            animation: flower__g-front__leaf-ans 1s 5.5s ease-in backwards !important;
        }

        .flower__g-front__leaf-wrapper--2 {
            top: -8vmin;
            transform: rotateY(-180deg) scale(0.7) !important;
            animation: flower__g-front__leaf-left-ans-2 1s 4.6s ease-in backwards !important;
        }

        .flower__g-front__leaf-wrapper--3 {
            top: -3vmin;
            animation: flower__g-front__leaf-ans 1s 4.6s ease-in backwards;
        }

        .flower__g-front__leaf-wrapper--4 {
            top: -3vmin;
            transform: rotateY(-180deg) scale(0.9) !important;
            animation: flower__g-front__leaf-left-ans-2 1s 4.6s ease-in backwards !important;
        }

        .flower__g-front__leaf-wrapper--5,
        .flower__g-front__leaf-wrapper--6 {
            top: 2vmin;
        }

        .flower__g-front__leaf-wrapper--7,
        .flower__g-front__leaf-wrapper--8 {
            top: 6.5vmin;
        }

        .flower__g-front__leaf-wrapper--2 {
            animation-delay: 5.2s !important;
        }

        .flower__g-front__leaf-wrapper--3 {
            animation-delay: 4.9s !important;
        }

        .flower__g-front__leaf-wrapper--5 {
            animation-delay: 4.3s !important;
        }

        .flower__g-front__leaf-wrapper--6 {
            animation-delay: 4.1s !important;
        }

        .flower__g-front__leaf-wrapper--7 {
            animation-delay: 3.8s !important;
        }

        .flower__g-front__leaf-wrapper--8 {
            animation-delay: 3.5s !important;
        }

        .flower__g-front__leaf {
            width: 10vmin;
            height: 10vmin;
            border-radius: 100% 0% 0% 100% / 100% 100% 0% 0%;
            box-shadow: inset 0 2px 1vmin hsla(184, 97%, 58%, 0.2);
            background-image: linear-gradient(to bottom left, transparent, var(--dark-color, #000)), linear-gradient(to bottom right, #159faa 50%, transparent 50%, transparent);
            -webkit-mask-image: linear-gradient(to bottom right, #159faa 50%, transparent 50%, transparent);
            mask-image: linear-gradient(to bottom right, #159faa 50%, transparent 50%, transparent);
        }

        .flower__g-fr {
            position: absolute;
            bottom: -4vmin;
            left: 2vmin;
            transform-origin: bottom left;
            z-index: 10;
            animation: flower__g-fr-ans 2s linear infinite;
        }

        @keyframes flower__g-fr-ans {

            0%,
            100% {
                transform: rotate(2deg);
            }

            50% {
                transform: rotate(4deg);
            }
        }

        .flower__g-fr .leaf {
            width: 30vmin;
            height: 50vmin;
            border-top-left-radius: 100%;
            border-left: 2vmin solid #079097;
            -webkit-mask-image: linear-gradient(to top, transparent 25%, #079097 50%);
            mask-image: linear-gradient(to top, transparent 25%, #079097 50%);
            position: relative;
            z-index: 1;
        }

        .flower__g-fr__leaf {
            position: absolute;
            top: 0;
            left: 0;
            width: 10vmin;
            height: 10vmin;
            border-radius: 100% 0% 0% 100% / 100% 100% 0% 0%;
            box-shadow: inset 0 2px 1vmin hsla(184, 97%, 58%, 0.2);
            background-image: linear-gradient(to bottom left, transparent, var(--dark-color, #000) 98%), linear-gradient(to bottom right, #23f0ff 45%, transparent 50%, transparent);
            -webkit-mask-image: linear-gradient(135deg, #159faa 40%, transparent 50%, transparent);
            mask-image: linear-gradient(135deg, #159faa 40%, transparent 50%, transparent);
        }

        .flower__g-fr__leaf--1 {
            left: 20vmin;
            transform: rotate(45deg);
            animation: flower__g-fr-leaft-ans-1 0.5s 5.2s linear backwards;
        }

        .flower__g-fr__leaf--2 {
            left: 12vmin;
            top: -7vmin;
            transform: rotate(25deg) rotateY(-180deg);
            animation: flower__g-fr-leaft-ans-6 0.5s 5s linear backwards;
        }

        .flower__g-fr__leaf--3 {
            left: 15vmin;
            top: 6vmin;
            transform: rotate(55deg);
            animation: flower__g-fr-leaft-ans-5 0.5s 4.8s linear backwards;
        }

        .flower__g-fr__leaf--4 {
            left: 6vmin;
            top: -2vmin;
            transform: rotate(25deg) rotateY(-180deg);
            animation: flower__g-fr-leaft-ans-6 0.5s 4.6s linear backwards;
        }

        .flower__g-fr__leaf--5 {
            left: 10vmin;
            top: 14vmin;
            transform: rotate(55deg);
            animation: flower__g-fr-leaft-ans-5 0.5s 4.4s linear backwards;
        }

        .flower__g-fr__leaf--6 {
            left: 0vmin;
            top: 6vmin;
            transform: rotate(25deg) rotateY(-180deg);
            animation: flower__g-fr-leaft-ans-6 0.5s 4.2s linear backwards;
        }

        .flower__g-fr__leaf--7 {
            left: 5vmin;
            top: 22vmin;
            transform: rotate(45deg);
            animation: flower__g-fr-leaft-ans-7 0.5s 4s linear backwards;
        }

        .flower__g-fr__leaf--8 {
            left: -4vmin;
            top: 15vmin;
            transform: rotate(15deg) rotateY(-180deg);
            animation: flower__g-fr-leaft-ans-8 0.5s 3.8s linear backwards;
        }

        .long-g {
            position: absolute;
            bottom: 25vmin;
            left: -42vmin;
            transform-origin: bottom left;
        }

        .long-g--1 {
            bottom: 0vmin;
            transform: scale(0.8) rotate(-5deg);
        }

        .long-g--1 .leaf {
            -webkit-mask-image: linear-gradient(to top, transparent 40%, #079097 80%) !important;
            mask-image: linear-gradient(to top, transparent 40%, #079097 80%) !important;
        }

        .long-g--1 .leaf--1 {
            --w: 5vmin;
            --h: 60vmin;
            left: -2vmin;
            transform: rotate(3deg) rotateY(-180deg);
        }

        .long-g--2,
        .long-g--3 {
            bottom: -3vmin;
            left: -35vmin;
            transform-origin: center;
            transform: scale(0.6) rotateX(60deg);
        }

        .long-g--2 .leaf,
        .long-g--3 .leaf {
            -webkit-mask-image: linear-gradient(to top, transparent 50%, #079097 80%) !important;
            mask-image: linear-gradient(to top, transparent 50%, #079097 80%) !important;
        }

        .long-g--2 .leaf--1,
        .long-g--3 .leaf--1 {
            left: -1vmin;
            transform: rotateY(-180deg);
        }

        .long-g--3 {
            left: -17vmin;
            bottom: 0vmin;
        }

        .long-g--3 .leaf {
            -webkit-mask-image: linear-gradient(to top, transparent 40%, #079097 80%) !important;
            mask-image: linear-gradient(to top, transparent 40%, #079097 80%) !important;
        }

        .long-g--4 {
            left: 25vmin;
            bottom: -3vmin;
            transform-origin: center;
            transform: scale(0.6) rotateX(60deg);
        }

        .long-g--4 .leaf {
            -webkit-mask-image: linear-gradient(to top, transparent 50%, #079097 80%) !important;
            mask-image: linear-gradient(to top, transparent 50%, #079097 80%) !important;
        }

        .long-g--5 {
            left: 42vmin;
            bottom: 0vmin;
            transform: scale(0.8) rotate(2deg);
        }

        .long-g--6 {
            left: 0vmin;
            bottom: -20vmin;
            z-index: 100;
            filter: blur(0.3vmin);
            transform: scale(0.8) rotate(2deg);
        }

        .long-g--7 {
            left: 35vmin;
            bottom: 20vmin;
            z-index: -1;
            filter: blur(0.3vmin);
            transform: scale(0.6) rotate(2deg);
            opacity: 0.7;
        }

        .long-g .leaf {
            --w: 15vmin;
            --h: 40vmin;
            --c: #1aaa15;
            position: absolute;
            bottom: 0;
            width: var(--w);
            height: var(--h);
            border-top-left-radius: 100%;
            border-left: 2vmin solid var(--c);
            -webkit-mask-image: linear-gradient(to top, transparent 20%, var(--dark-color, #000));
            mask-image: linear-gradient(to top, transparent 20%, var(--dark-color, #000));
            transform-origin: bottom center;
        }

        .long-g .leaf--0 {
            left: 2vmin;
            animation: leaf-ans-1 4s linear infinite;
        }

        .long-g .leaf--1 {
            --w: 5vmin;
            --h: 60vmin;
            animation: leaf-ans-1 4s linear infinite;
        }

        .long-g .leaf--2 {
            --w: 10vmin;
            --h: 40vmin;
            left: -0.5vmin;
            bottom: 5vmin;
            transform-origin: bottom left;
            transform: rotateY(-180deg);
            animation: leaf-ans-2 3s linear infinite;
        }

        .long-g .leaf--3 {
            --w: 5vmin;
            --h: 30vmin;
            left: -1vmin;
            bottom: 3.2vmin;
            transform-origin: bottom left;
            transform: rotate(-10deg) rotateY(-180deg);
            animation: leaf-ans-3 3s linear infinite;
        }

        @keyframes flower__g-front__leaf-left-ans-2 {
            0% {
                transform: rotateY(-180deg) scale(0);
            }
        }

        @keyframes flower__g-front__leaf-ans {
            0% {
                transform: rotate(10deg) scale(0);
            }
        }

        @keyframes flower__g-front__leaf-left-ans {
            0% {
                transform: rotateY(-180deg) rotate(5deg) scale(0);
            }
        }

        @keyframes flower__g-fr-leaft-ans-1 {
            0% {
                transform-origin: left;
                transform: rotate(45deg) scale(0);
            }
        }

        @keyframes flower__g-fr-leaft-ans-5 {
            0% {
                transform-origin: left;
                transform: rotate(55deg) scale(0);
            }
        }

        @keyframes flower__g-fr-leaft-ans-6 {
            0% {
                transform-origin: right;
                transform: rotate(25deg) rotateY(-180deg) scale(0);
            }
        }

        @keyframes flower__g-fr-leaft-ans-7 {
            0% {
                transform-origin: left;
                transform: rotate(45deg) scale(0);
            }
        }

        @keyframes flower__g-fr-leaft-ans-8 {
            0% {
                transform-origin: right;
                transform: rotate(15deg) rotateY(-180deg) scale(0);
            }
        }

        @keyframes growing-grass-ans--1 {
            0% {
                transform-origin: bottom left;
                transform: rotate(-20deg) scale(0);
            }
        }

        @keyframes growing-grass-ans--2 {
            0% {
                transform-origin: bottom right;
                transform: rotate(10deg) scale(0);
            }
        }

        @keyframes growing-grass-ans--3 {
            0% {
                transform-origin: bottom left;
                transform: rotate(-18deg) rotateX(-20deg) scale(0);
            }
        }

        @keyframes growing-grass-ans--4 {
            0% {
                transform-origin: bottom right;
                transform: rotate(2deg) scale(0);
            }
        }

        @keyframes growing-grass-ans--5 {
            0% {
                transform-origin: bottom left;
                transform: rotate(-24deg) rotateX(-20deg) scale(0);
            }
        }

        @keyframes growing-grass-ans--6 {
            0% {
                transform-origin: bottom right;
                transform: rotate(10deg) scale(0);
            }
        }

        @keyframes growing-grass-ans--7 {
            0% {
                transform-origin: bottom left;
                transform: rotate(-10deg) scale(0);
            }
        }

        @keyframes growing-grass-ans--8 {
            0% {
                transform-origin: bottom right;
                transform: rotate(10deg) scale(0);
            }
        }

        @keyframes flower-g-long-ans {

            0%,
            100% {
                transform: rotate(-30deg) rotateY(-20deg);
            }

            50% {
                transform: rotate(-32deg) rotateY(-20deg);
            }
        }

        @keyframes flower-g-right-ans {

            0%,
            100% {
                transform: rotate(20deg);
            }

            50% {
                transform: rotate(24deg) rotateX(-20deg);
            }
        }

        @keyframes flower-g-right-ans--2 {

            0%,
            100% {
                transform: rotateY(-180deg) rotate(0deg) rotateX(-20deg);
            }

            50% {
                transform: rotateY(-180deg) rotate(6deg) rotateX(-20deg);
            }
        }

        @keyframes leaf-ans-1 {

            0%,
            100% {
                transform: rotate(-5deg) scale(1);
            }

            50% {
                transform: rotate(5deg) scale(1.1);
            }
        }

        @keyframes leaf-ans-2 {

            0%,
            100% {
                transform: rotateY(-180deg) rotate(5deg);
            }

            50% {
                transform: rotateY(-180deg) rotate(0deg) scale(1.1);
            }
        }

        @keyframes leaf-ans-3 {

            0%,
            100% {
                transform: rotate(-10deg) rotateY(-180deg);
            }

            50% {
                transform: rotate(-20deg) rotateY(-180deg);
            }
        }

        .grow-ans {
            animation: grow-ans 2s var(--d) backwards;
        }

        @keyframes grow-ans {
            0% {
                transform: scale(0);
                opacity: 0;
            }
        }

        @keyframes light-ans {
            0% {
                opacity: 0;
                transform: translateY(0vmin);
            }

            25% {
                opacity: 1;
                transform: translateY(-5vmin) translateX(-2vmin);
            }

            50% {
                opacity: 1;
                transform: translateY(-15vmin) translateX(2vmin);
                filter: blur(0.2vmin);
            }

            75% {
                transform: translateY(-20vmin) translateX(-2vmin);
                filter: blur(0.2vmin);
            }

            100% {
                transform: translateY(-30vmin);
                opacity: 0;
                filter: blur(1vmin);
            }
        }

        @keyframes moving-flower-1 {

            0%,
            100% {
                transform: rotate(2deg);
            }

            50% {
                transform: rotate(-2deg);
            }
        }

        @keyframes moving-flower-2 {

            0%,
            100% {
                transform: rotate(18deg);
            }

            50% {
                transform: rotate(14deg);
            }
        }

        @keyframes moving-flower-3 {

            0%,
            100% {
                transform: rotate(-18deg);
            }

            50% {
                transform: rotate(-20deg) rotateY(-10deg);
            }
        }

        @keyframes blooming-leaf-right {
            0% {
                transform-origin: left;
                transform: rotate(70deg) rotateY(30deg) scale(0);
            }
        }

        @keyframes blooming-leaf-left {
            0% {
                transform-origin: right;
                transform: rotate(-70deg) rotateY(30deg) scale(0);
            }
        }

        @keyframes grow-flower-tree {
            0% {
                height: 0;
                border-radius: 1vmin;
            }
        }

        @keyframes blooming-flower {
            0% {
                transform: scale(0);
            }
        }

        @keyframes moving-grass {

            0%,
            100% {
                transform: rotate(-48deg) rotateY(40deg);
            }

            50% {
                transform: rotate(-50deg) rotateY(40deg);
            }
        }

        @keyframes moving-grass--2 {

            0%,
            100% {
                transform: scale(0.5) rotate(75deg) rotateX(10deg) rotateY(-200deg);
            }

            50% {
                transform: scale(0.5) rotate(79deg) rotateX(10deg) rotateY(-200deg);
            }
        }

        .growing-grass {
            animation: growing-grass-ans 1s 2s backwards;
        }

        @keyframes growing-grass-ans {
            0% {
                transform: scale(0);
            }
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box
        }

        body {
            overflow: hidden;
            font-family: 'Quicksand', sans-serif;
            height: 100vh;
            background-color: var(--dark-color, #000);
            /* Managed by .night gradient */
        }

        body.creator-only-mode {
            overflow: auto !important;
            height: auto !important;
            min-height: 100vh;
            background: linear-gradient(135deg, #ffe4e1, #ffc0cb) !important;
            padding: 0;
            margin: 0;
            display: block !important;
        }

        /* Fully hide all background interactive elements and animations */
        body.creator-only-mode>*:not(#setup-modal):not(script):not(style):not(link) {
            display: none !important;
        }

        body.creator-only-mode .night,
        body.creator-only-mode .magical-flowers,
        body.creator-only-mode .envelope-wrapper,
        body.creator-only-mode #garden,
        body.creator-only-mode #universe,
        body.creator-only-mode .music-btn {
            display: none !important;
        }

        /* Make modal natively scrollable block instead of fixed flex overlay */
        body.creator-only-mode #setup-modal {
            display: block !important;
            position: relative !important;
            top: 0 !important;
            left: 0 !important;
            height: auto !important;
            min-height: 100vh;
            width: 100% !important;
            background: transparent !important;
            backdrop-filter: none !important;
            padding: 40px 20px;
            overflow: visible !important;
            z-index: 1 !important;
        }

        body.creator-only-mode .creator-card {
            margin: 0 auto;
        }

        /* ========= PERSISTENT GARDEN ========= */
        #garden {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            height: 45vh;
            z-index: 1;
            pointer-events: none
        }

        .grass-blade {
            position: absolute;
            bottom: 0;
            border-radius: 80% 80% 0 0;
            transform-origin: bottom center
        }

        .leaf {
            position: absolute;
            border-radius: 0 70% 0 70%;
            background: linear-gradient(135deg, #1a6b30, #0d4520);
            box-shadow: inset -3px -3px 10px rgba(0, 0, 0, .3)
        }

        .flower {
            position: absolute;
            bottom: 0
        }

        .f-stem {
            position: absolute;
            bottom: 0;
            left: 50%;
            width: 4px;
            transform: translateX(-50%);
            border-radius: 3px;
            background: linear-gradient(to top, #7a5e1a, #9a7e2a)
        }

        .f-head {
            position: absolute;
            top: -25px;
            left: 50%;
            transform: translateX(-50%);
            width: 48px;
            height: 48px
        }

        .f-petal {
            position: absolute;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background: linear-gradient(180deg, #ff8fbf, #f06292);
            box-shadow: inset 0 -3px 6px rgba(180, 40, 80, .3), 0 0 8px rgba(255, 105, 180, .2);
        }

        .f-petal:nth-child(1) {
            left: 14px;
            top: -2px;
        }

        .f-petal:nth-child(2) {
            left: 27px;
            top: 4px;
        }

        .f-petal:nth-child(3) {
            left: 30px;
            top: 18px;
        }

        .f-petal:nth-child(4) {
            left: 22px;
            top: 29px;
        }

        .f-petal:nth-child(5) {
            left: 8px;
            top: 29px;
        }

        .f-petal:nth-child(6) {
            left: -2px;
            top: 18px;
        }

        .f-petal:nth-child(7) {
            left: 0px;
            top: 4px;
        }

        .f-petal:nth-child(8) {
            left: 14px;
            top: -2px;
            display: none;
        }

        .f-center {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 14px;
            height: 14px;
            border-radius: 50%;
            background: radial-gradient(circle, #ffe066, #ffcc00);
            box-shadow: 0 0 8px rgba(255, 200, 0, .4);
            z-index: 2;
        }

        /* ---- TULIP ---- */
        .tulip-head {
            position: absolute;
            top: -30px;
            left: 50%;
            transform: translateX(-50%);
            width: 24px;
            height: 34px;
        }

        .tulip-petal {
            position: absolute;
            bottom: 0;
        }

        /* Left petal - curves inward */
        .tulip-petal:nth-child(1) {
            width: 14px;
            height: 30px;
            left: -1px;
            border-radius: 50% 0 40% 50%;
        }

        /* Right petal - curves inward */
        .tulip-petal:nth-child(2) {
            width: 14px;
            height: 30px;
            right: -1px;
            border-radius: 0 50% 50% 40%;
        }

        /* Center petal - taller, overlaps */
        .tulip-petal:nth-child(3) {
            width: 16px;
            height: 33px;
            left: 50%;
            transform: translateX(-50%);
            border-radius: 50% 50% 40% 40%;
            z-index: 1;
        }

        /* ---- ROSE ---- */
        .rose-head {
            position: absolute;
            top: -22px;
            left: 50%;
            transform: translateX(-50%);
            width: 36px;
            height: 36px;
        }

        .rose-petal {
            position: absolute;
            border-radius: 50%;
        }

        .rose-petal:nth-child(1) {
            width: 20px;
            height: 20px;
            top: 2px;
            left: 50%;
            transform: translateX(-50%);
        }

        .rose-petal:nth-child(2) {
            width: 18px;
            height: 18px;
            top: 6px;
            left: 2px;
            transform: rotate(-20deg);
        }

        .rose-petal:nth-child(3) {
            width: 18px;
            height: 18px;
            top: 6px;
            right: 2px;
            transform: rotate(20deg);
        }

        .rose-petal:nth-child(4) {
            width: 14px;
            height: 14px;
            top: 10px;
            left: 50%;
            transform: translateX(-50%);
        }

        .rose-center {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background: radial-gradient(circle, #fff5, transparent);
        }

        /* ---- DAISY ---- */
        .daisy-head {
            position: absolute;
            top: -18px;
            left: 50%;
            transform: translateX(-50%);
            width: 40px;
            height: 40px;
        }

        .daisy-petal {
            position: absolute;
            width: 8px;
            height: 16px;
            border-radius: 50%;
            background: #fff;
            top: 50%;
            left: 50%;
            transform-origin: center bottom;
            box-shadow: inset 0 -2px 4px rgba(0, 0, 0, 0.05);
        }

        .daisy-center {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 12px;
            height: 12px;
            border-radius: 50%;
            background: radial-gradient(circle, #ffb74d, #ff9800);
            box-shadow: 0 0 6px rgba(255, 152, 0, .4);
            z-index: 1;
        }

        /* Canvases */
        #fireflies,
        #petals {
            position: fixed;
            inset: 0;
            z-index: 2;
            pointer-events: none
        }

        /* ========= PHASE 1: INTRO ========= */
        #phase1 {
            position: fixed;
            inset: 0;
            z-index: 10;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
            transition: opacity 1.2s, visibility 1.2s;
            padding: 0 20px;
            cursor: pointer;
        }

        #phase1.out {
            opacity: 0;
            visibility: hidden;
            pointer-events: none
        }

        .intro-badge {
            padding: 8px 24px;
            border-radius: 30px;
            font-size: .85rem;
            font-weight: 600;
            background: rgba(255, 255, 255, .1);
            backdrop-filter: blur(8px);
            color: rgba(255, 200, 220, .9);
            letter-spacing: 2px;
            border: 1px solid rgba(255, 255, 255, .15);
            margin-bottom: 20px;
            opacity: 0;
            animation: fadeUp .8s .3s forwards
        }

        .intro-title {
            font-family: 'Playfair Display', serif;
            font-size: clamp(50px, 14vw, 100px);
            font-weight: 700;
            color: #fff;
            text-shadow: 0 4px 30px rgba(255, 105, 180, .4), 0 0 60px rgba(255, 105, 180, .15);
            line-height: 1;
            margin-bottom: 10px;
            opacity: 0;
            animation: fadeUp .8s .6s forwards
        }

        .intro-sub {
            font-family: 'Dancing Script', cursive;
            font-size: clamp(20px, 5vw, 30px);
            color: rgba(255, 200, 220, .85);
            text-shadow: 0 2px 15px rgba(0, 0, 0, .3);
            opacity: 0;
            animation: fadeUp .8s .9s forwards
        }

        .intro-hint {
            margin-top: 40px;
            font-size: 14px;
            color: rgba(255, 200, 220, .5);
            opacity: 0;
            animation: fadeUp .8s 1.2s forwards
        }

        @keyframes fadeUp {
            to {
                opacity: 1;
                transform: translateY(0)
            }
        }

        .intro-badge,
        .intro-title,
        .intro-sub,
        .intro-hint {
            transform: translateY(20px)
        }

        /* ========= PHASE 2: ENVELOPE (gift_letterv2 style) ========= */
        #phase2 {
            position: fixed;
            inset: 0;
            z-index: 8;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            opacity: 0;
            visibility: hidden;
            transition: opacity 1s, visibility 1s;
        }

        #phase2.show {
            opacity: 1;
            visibility: visible
        }

        :root {
            --bg-env: #f5edd1;
            --env-tab: #ecdeb8;
            --env-cover: #e6cfa7;
            --shadow: rgba(0, 0, 0, .2)
        }

        .envelope-wrapper {
            background: var(--bg-env);
            box-shadow: 0 0 40px var(--shadow);
            animation: floating 3s ease-in-out infinite;
            position: relative;
            z-index: 5;
            overflow: hidden;
            /* Prevent letter from peeking out on load */
        }

        .envelope-wrapper.flap {
            overflow: visible;
            /* Allow letter to slide out when flap opens */
        }

        @keyframes floating {
            0% {
                transform: translateY(0) rotate(0deg)
            }

            50% {
                transform: translateY(-20px) rotate(1deg)
            }

            100% {
                transform: translateY(0) rotate(0deg)
            }
        }

        .envelope2 {
            position: relative;
            width: min(90vw, 420px);
            height: min(55vw, 210px)
        }

        .envelope2::before {
            content: "";
            position: absolute;
            top: 0;
            z-index: 2;
            border-top: min(28vw, 130px) solid var(--env-tab);
            border-right: min(45vw, 210px) solid transparent;
            border-left: min(45vw, 210px) solid transparent;
            transform-origin: top;
            transition: all .5s ease-in-out .7s;
        }

        .envelope2::after {
            content: "";
            position: absolute;
            z-index: 2;
            width: 0;
            height: 0;
            border-top: min(28vw, 130px) solid transparent;
            border-right: min(45vw, 210px) solid var(--env-cover);
            border-bottom: min(24vw, 80px) solid var(--env-cover);
            border-left: min(45vw, 210px) solid var(--env-cover);
        }

        /* Letter inside envelope */
        .env-letter {
            position: absolute;
            left: 50%;
            bottom: 0;
            transform: translateX(-50%);
            width: 76%;
            height: 90%;
            background: #fff;
            text-align: center;
            transition: all 1s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            box-shadow: 0 0 5px var(--shadow);
            padding: 20px 15px 40px;
            overflow-y: auto;
            overflow-x: hidden;
            z-index: 1;
            border: 2px dashed #fce4ec;
            border-radius: 8px;
            box-sizing: border-box;
            opacity: 0;
            /* HIDDEN inside closed envelope */
        }

        .env-letter.expanded {
            position: fixed !important;
            left: 50% !important;
            top: 50% !important;
            bottom: auto !important;
            transform: translate(-50%, -50%) !important;
            width: min(92vw, 480px) !important;
            height: min(85vh, 600px) !important;
            z-index: 9999 !important;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5) !important;
            padding: 35px 25px 60px !important;
            border: 2px solid #f8bbd0 !important;
            border-radius: 12px !important;
            transition: all 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
        }

        .env-letter.expanded .text {
            font-size: clamp(16px, 4vw, 18px);
        }

        .env-letter::-webkit-scrollbar {
            width: 3px
        }

        .env-letter::-webkit-scrollbar-thumb {
            background: rgba(0, 0, 0, .1);
            border-radius: 10px
        }

        .env-letter .text {
            font-family: 'Comic Neue', cursive;
            color: #444;
            text-align: left;
            font-size: clamp(14px, 3.5vw, 16px);
            position: relative
        }

        .typing-cursor {
            display: inline;
            animation: blink .7s infinite;
            font-weight: bold;
            color: #d81b60;
        }

        @keyframes blink {

            0%,
            100% {
                opacity: 1
            }

            50% {
                opacity: 0
            }
        }

        /* Seal */
        .seal {
            position: absolute;
            top: 50%;
            left: 50%;
            width: min(14vw, 55px);
            height: min(14vw, 55px);
            z-index: 4;
            transform: translate(-50%, -20%);
            transition: transform .5s ease-in-out 1s, opacity .5s ease-in-out 1s;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background: radial-gradient(circle at 35% 35%, #ef5350, #c2185b);
            box-shadow: 0 4px 15px rgba(194, 24, 91, .5);
            font-size: clamp(16px, 4vw, 22px);
            color: #fff;
        }

        /* Envelope flowers */
        .env-flower {
            position: absolute;
            width: min(35vw, 150px);
            bottom: 5%;
            left: 50%;
            transform: translateX(-50%);
            z-index: -1;
            transition: all 1s ease-in-out 1s;
            opacity: 0;
            pointer-events: none;
            font-size: clamp(40px, 10vw, 80px);
            text-align: center;
        }

        /* Flap open states */
        .flap .envelope2::before {
            transform: rotateX(180deg);
            z-index: 0
        }

        .flap .env-flower.fl1 {
            transform: translateX(-195%) translateY(-90%) rotate(-30deg) scale(1.3);
            opacity: 1
        }

        .flap .env-flower.fl2 {
            transform: translateX(95%) translateY(-90%) rotate(30deg) scale(1.3);
            opacity: 1
        }

        .flap .env-letter {
            opacity: 1;
            /* SHOW when flap opens */
            bottom: min(35vw, 120px);
            height: 160%;
            /* Tall enough to read */
            padding-bottom: 80px;
            transition-delay: 1s;
            z-index: 1;
        }

        .flap .seal {
            transform: translate(-50%, 80%) rotate(10deg);
            transition-delay: .4s
        }

        /* Gift button */
        .gift-btn {
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 15px auto;
            padding: 6px 12px;
            background: linear-gradient(135deg, #ff6b6b, #ff8787);
            border: 3px solid #fff;
            border-radius: 15%;
            cursor: pointer;
            font-size: 22px;
            box-shadow: 0 4px 15px rgba(255, 107, 107, .4);
            transition: all .3s;
            opacity: 0;
            transform: scale(0);
            pointer-events: none;
            z-index: 999;
        }

        .gift-btn.show {
            opacity: 1;
            transform: scale(1);
            pointer-events: auto;
            animation: gBounce 2s infinite
        }

        @keyframes gBounce {

            0%,
            100% {
                transform: scale(1)
            }

            50% {
                transform: scale(1.15);
                box-shadow: 0 8px 25px rgba(255, 107, 107, .6)
            }
        }

        .phase2-hint {
            margin-top: 20px;
            font-family: 'Dancing Script', cursive;
            font-size: clamp(14px, 3.5vw, 20px);
            color: rgba(255, 180, 200, .7);
            text-shadow: 0 2px 8px rgba(0, 0, 0, .3);
            opacity: 0;
            animation: fadeUp .8s .5s forwards;
            transform: translateY(15px)
        }

        /* ========= UNIVERSE ========= */
        #universe {
            position: fixed;
            inset: 0;
            z-index: 100;
            display: none;
            background: #160016;
            opacity: 0;
            transition: opacity 2s
        }

        #universe.show {
            display: block;
            opacity: 1
        }

        #universe canvas {
            display: block;
            width: 100% !important;
            height: 100% !important
        }

        /* ========= MUSIC ========= */
        .music-btn {
            position: fixed;
            bottom: 20px;
            right: 20px;
            z-index: 200;
            width: 46px;
            height: 46px;
            border-radius: 50%;
            border: 1px solid rgba(255, 255, 255, .2);
            cursor: pointer;
            background: rgba(255, 255, 255, .1);
            backdrop-filter: blur(5px);
            color: #fff;
            font-size: 17px;
            display: flex;
            justify-content: center;
            align-items: center;
            box-shadow: 0 4px 15px rgba(0, 0, 0, .2);
            transition: .3s
        }

        .music-btn:hover {
            transform: scale(1.1)
        }

        .music-btn.playing {
            animation: pulse 2s infinite
        }

        @keyframes pulse {

            0%,
            100% {
                box-shadow: 0 0 0 0 rgba(255, 105, 180, .3)
            }

            50% {
                box-shadow: 0 0 0 12px rgba(255, 105, 180, 0)
            }
        }

        @media(max-width:500px) {
            .flap .env-letter {
                bottom: min(28vw, 100px);
                height: 130%;
            }

            .env-letter.expanded {
                width: 96vw !important;
                height: 88vh !important;
                padding: 25px 15px 50px !important;
            }

            .env-flower {
                width: min(25vw, 80px);
                font-size: clamp(30px, 8vw, 50px)
            }

            .flap .env-flower.fl1 {
                transform: translateX(-200%) translateY(-100%) rotate(-30deg) scale(1.1)
            }

            .flap .env-flower.fl2 {
                transform: translateX(100%) translateY(-100%) rotate(30deg) scale(1.1)
            }
        }

        /* ========= CREATOR MODE UI (Ported Exact Verbatim) ========= */
        :root {
            --primary-color: #ff4d6d;
            --primary-light: #ff758f;
            --primary-dark: #ff2a51;
            --text-color: #590d22;
            --text-light: #883e53;
            --glass-bg: rgba(255, 255, 255, 0.25);
            --glass-border: rgba(255, 255, 255, 0.5);
            --glass-blur: 20px;
            --shadow-sm: 0 4px 15px rgba(0, 0, 0, 0.1);
            --shadow-lg: 0 15px 50px rgba(255, 77, 109, 0.3);
            --shadow-glow: 0 0 40px rgba(255, 77, 109, 0.4);
            --transition-normal: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            --radius-md: 15px;
            --radius-lg: 20px;
            --radius-full: 50px;
            --z-content: 10;
            --spacing-xs: 0.5rem;
            --spacing-sm: 1rem;
            --spacing-md: 1.5rem;
            --spacing-lg: 2rem;
            --spacing-xl: 3rem;
        }

        .creator-toggle-btn {
            position: fixed;
            bottom: 25px;
            left: 25px;
            z-index: 200;
            width: 50px;
            height: 50px;
            border-radius: 50%;
            border: 1px solid var(--glass-border);
            cursor: pointer;
            background: linear-gradient(135deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.1));
            backdrop-filter: blur(8px);
            font-size: 22px;
            display: flex;
            justify-content: center;
            align-items: center;
            box-shadow: 0 4px 20px rgba(255, 77, 109, 0.25), inset 0 0 10px rgba(255, 255, 255, 0.2);
            transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }

        .creator-toggle-btn:hover {
            transform: translateY(-5px) scale(1.05);
            background: linear-gradient(135deg, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.2));
            box-shadow: 0 8px 25px rgba(255, 105, 180, 0.5), inset 0 0 15px rgba(255, 255, 255, 0.5);
        }

        /* ========== CARDS & CONTAINERS ========== */
        .container,
        .modal {
            position: relative;
            z-index: var(--z-content);
            padding: var(--spacing-md);
            width: 100%;
            display: flex;
            justify-content: center;
        }

        .modal {
            display: none;
            position: fixed;
            z-index: 10000;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            align-items: flex-start;
            background: rgba(0, 0, 0, 0.15);
            backdrop-filter: blur(5px);
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            /* Enable vertical scroll */
            padding-top: 40px;
            /* Space for top scroll */
            padding-bottom: 40px;
            /* Space for bottom scroll */
        }

        .modal.show {
            display: flex;
            flex-direction: column;
        }

        /* Ensure modal content doesn't get cut off when scrolling flex container */
        .modal::before {
            content: '';
            display: block;
            height: 20px;
            /* Helper for top spacing */
            flex-shrink: 0;
        }

        .card {
            background: var(--glass-bg);
            backdrop-filter: blur(var(--glass-blur));
            -webkit-backdrop-filter: blur(var(--glass-blur));
            border-radius: var(--radius-lg);
            border: 1px solid var(--glass-border);
            padding: var(--spacing-xl) clamp(1.5rem, 5vw, 4rem);
            text-align: center;
            box-shadow: var(--shadow-lg), inset 0 0 20px rgba(255, 255, 255, 0.15);
            max-width: 500px;
            width: 100%;
            transition: box-shadow var(--transition-normal), transform var(--transition-normal);
            position: relative;
            overflow: hidden;
            box-sizing: border-box;
            margin: auto;
        }

        .card::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
            transition: 0.5s;
        }

        .card:hover::before {
            left: 100%;
        }

        .card:hover {
            box-shadow: var(--shadow-glow), inset 0 0 30px rgba(255, 255, 255, 0.2);
        }

        /* ========== TYPOGRAPHY & CREATOR SPECIFIC DECOR ========== */
        .creator-card {
            padding: 30px 40px;
            max-width: 600px;
            background: rgba(255, 255, 255, 0.85);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            border: 1px solid rgba(255, 255, 255, 0.6);
            border-radius: 24px;
            box-shadow: 0 15px 35px rgba(255, 77, 109, 0.15), inset 0 0 20px rgba(255, 255, 255, 0.5);
            text-align: left;
            /* Align to left to support steps nicely */
        }

        .creator-header {
            text-align: center;
            margin-bottom: 25px;
        }

        .title-icon-wrapper {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 60px;
            height: 60px;
            background: linear-gradient(135deg, #ff758f, #ff4d6d);
            border-radius: 50%;
            margin-bottom: 15px;
            box-shadow: 0 8px 20px rgba(255, 77, 109, 0.3);
            color: white;
            font-size: 24px;
        }

        .creator-header h1 {
            font-size: 2rem;
            color: #b71c1c;
            margin-bottom: 8px;
            font-weight: 800;
        }

        .creator-header .subtitle {
            color: #666;
            font-size: 1rem;
            margin: 0;
            line-height: 1.5;
        }

        .creator-step {
            background: rgba(255, 255, 255, 0.6);
            border-radius: 16px;
            padding: 20px;
            margin-bottom: 20px;
            border: 1px dashed rgba(255, 77, 109, 0.4);
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .creator-step:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 25px rgba(255, 77, 109, 0.08);
            border-color: rgba(255, 77, 109, 0.8);
        }

        .step-header {
            display: flex;
            align-items: center;
            margin-bottom: 15px;
            border-bottom: 1px solid rgba(255, 77, 109, 0.15);
            padding-bottom: 12px;
        }

        .step-number {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 28px;
            height: 28px;
            background: linear-gradient(135deg, #ff4d6d, #ff758f);
            color: white;
            border-radius: 50%;
            font-weight: bold;
            font-size: 1rem;
            margin-right: 12px;
            box-shadow: 0 4px 10px rgba(255, 77, 109, 0.3);
        }

        .step-title {
            font-size: 1.2rem;
            color: #b71c1c;
            font-weight: 700;
            margin: 0;
        }

        .input-section {
            margin-bottom: 15px;
        }

        .modern-label {
            display: block;
            font-weight: 600;
            color: #555;
            margin-bottom: 10px;
            font-size: 0.95rem;
        }

        .modern-label i {
            color: var(--primary-color);
            margin-right: 6px;
        }

        .modern-input-group {
            margin-bottom: 15px;
        }

        .modern-input {
            width: 100%;
            padding: 14px 18px;
            border-radius: 12px;
            border: 2px solid rgba(255, 77, 109, 0.2);
            background: rgba(255, 255, 255, 0.8);
            font-size: 1rem;
            font-family: inherit;
            color: #333;
            transition: all 0.3s ease;
            box-sizing: border-box;
        }

        .modern-input:focus {
            outline: none;
            border-color: var(--primary-color);
            background: #fff;
            box-shadow: 0 0 0 4px rgba(255, 77, 109, 0.15);
        }

        textarea.modern-input {
            resize: vertical;
            min-height: 100px;
        }

        .btn-glow-magic {
            width: 100%;
            padding: 16px;
            background: linear-gradient(45deg, #ff4d6d, #ff758f);
            color: white;
            border: none;
            border-radius: 16px;
            font-size: 1.2rem;
            font-weight: bold;
            cursor: pointer;
            transition: all 0.3s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            box-shadow: 0 10px 25px rgba(255, 77, 109, 0.4);
            margin-top: 15px;
        }

        .btn-glow-magic:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 35px rgba(255, 77, 109, 0.5);
            background: linear-gradient(45deg, #ff3355, #ff4d6d);
        }

        .btn-glow-magic:active {
            transform: translateY(1px);
        }

        .mt-3 {
            margin-top: 15px;
        }

        .template-chips {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-top: 5px;
            margin-bottom: 10px;
        }

        .chip {
            background: rgba(255, 255, 255, 0.4);
            border: 1px solid rgba(255, 77, 109, 0.3);
            border-radius: 20px;
            padding: 8px 16px;
            color: #333;
            cursor: pointer;
            transition: all var(--transition-normal);
            font-family: inherit;
            font-size: 0.95rem;
            font-weight: 600;
        }

        .chip:hover {
            background: rgba(255, 255, 255, 0.8);
            border-color: var(--primary-color);
            transform: translateY(-2px);
        }

        .chip.active {
            background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
            color: white;
            border-color: transparent;
            box-shadow: 0 4px 15px rgba(255, 77, 109, 0.3);
        }

        .paper-chip.active {
            background: rgba(255, 255, 255, 0.9);
            color: var(--primary-color);
            border-color: var(--primary-color);
            box-shadow: 0 4px 12px rgba(255, 77, 109, 0.15);
        }

        /* ========== BUTTONS ========== */
        .btn {
            padding: 14px 36px;
            border: none;
            border-radius: var(--radius-full);
            font-size: 1.1rem;
            font-weight: 700;
            font-family: inherit;
            cursor: pointer;
            transition: var(--transition-normal);
            box-shadow: var(--shadow-sm);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
        }

        .btn-large {
            width: 100%;
            padding: 16px;
            font-size: 1.15rem;
        }

        .btn-yes {
            background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
            color: white;
            animation: pulse 2s infinite;
        }

        .btn-yes:hover {
            background: linear-gradient(135deg, var(--primary-dark), var(--primary-color));
            animation: none;
            transform: translateY(-3px) scale(1.02);
            box-shadow: 0 10px 30px rgba(255, 77, 109, 0.5);
        }

        /* ========== LINK BOX - IMPROVED ========== */
        .result-label {
            color: var(--text-color);
            font-weight: 600;
            margin-top: 25px;
            margin-bottom: 12px;
            font-size: 1rem;
            text-align: left;
        }

        #result-area {
            display: flex;
            flex-direction: column;
            align-items: center;
            width: 100%;
            margin-top: 10px;
        }

        #result-area .link-box {
            width: 100%;
        }

        .link-box {
            display: flex;
            gap: 0;
            margin-bottom: var(--spacing-md);
            background: rgba(255, 255, 255, 0.6);
            border-radius: var(--radius-full);
            border: 2px solid var(--primary-light);
            overflow: hidden;
            box-shadow: 0 4px 20px rgba(255, 77, 109, 0.15);
        }

        #generated-link {
            flex: 1;
            padding: 14px 18px;
            border: none;
            background: transparent;
            font-size: 0.9rem;
            font-family: inherit;
            color: var(--text-color);
            outline: none;
            min-width: 0;
        }

        #copy-btn {
            padding: 14px 20px;
            border: none;
            background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
            color: white;
            font-size: 1.1rem;
            cursor: pointer;
            transition: var(--transition-normal);
            display: flex;
            align-items: center;
            justify-content: center;
        }

        #copy-btn:hover {
            background: linear-gradient(135deg, var(--primary-dark), var(--primary-color));
            padding-left: 25px;
            padding-right: 25px;
        }

        /* QR Code Styles */
        #qr-code-container {
            margin-top: 1.5rem;
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: center;
            gap: 1rem;
            animation: fadeIn 0.5s ease;
            flex-wrap: wrap;
            margin-bottom: 20px;
        }

        #qr-code {
            background: white;
            padding: 8px;
            border-radius: 12px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
            max-width: 150px;
        }

        #qr-code img,
        #qr-code canvas {
            border-radius: 8px;
            display: block;
            width: 100%;
            height: auto;
        }

        .btn-sm {
            padding: 8px 16px;
            font-size: 0.9rem;
            background: rgba(255, 255, 255, 0.2);
            border: 1px solid rgba(255, 255, 255, 0.3);
            color: var(--text-color);
            border-radius: 50px;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .btn-sm:hover {
            background: rgba(255, 255, 255, 0.3);
            transform: translateY(-2px);
        }

        /* ========== SHARE BUTTONS ========== */
        .action-buttons {
            display: flex;
            justify-content: center;
            gap: 12px;
            margin-bottom: var(--spacing-md);
        }

        .action-btn {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            border: none;
            cursor: pointer;
            font-size: 1.2rem;
            color: white;
            transition: var(--transition-normal);
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .action-btn:hover {
            transform: translateY(-5px) scale(1.1);
        }

        .action-fb {
            background: linear-gradient(135deg, #1877f2, #3b5998);
        }

        .action-messenger {
            background: linear-gradient(135deg, #00b2ff, #006aff);
        }

        .action-zalo {
            background: linear-gradient(135deg, #0068ff, #0044cc);
        }

        .zalo-icon {
            font-weight: 800;
            font-size: 1.3rem;
        }

        .action-native {
            background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
        }

        /* ========== HIDDEN UTILITY ========== */
        .hidden {
            display: none !important;
        }