/* -----------------------------
   GREETING BOX
------------------------------ */
.holidify-greeting-board {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 99999;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 18px;
    max-width: 260px;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
    animation: holidify-greeting-pop 0.4s ease-out, holidify-greeting-float 3.5s ease-in-out infinite;
    font-size: 15px;
}

.holidify-greeting-emoji {
    font-size: 20px;
}

.holidify-greeting-text {
    font-weight: 600;
    color: #333;
}

.holidify-greeting-close {
    margin-left: auto;
    background: transparent;
    border: none;
    color: #666;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
}

.holidify-greeting-close:hover {
    color: #000;
}

.holidify-greeting-close:focus {
    outline: 2px solid #666;
    outline-offset: 2px;
}

@keyframes holidify-greeting-pop {
    0% { transform: scale(0.8) translateY(10px); opacity: 0; }
    100% { transform: scale(1) translateY(0); opacity: 1; }
}

@keyframes holidify-greeting-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}

@media (max-width: 600px) {
    .holidify-greeting-board {
        left: 10px;
        bottom: 10px;
        right: 10px;
        max-width: none;
    }
}


/* -----------------------------
   ICON WRAPPER
------------------------------ */

#holidify-icons-wrapper {
    position: fixed;
    pointer-events: none;
    inset: 0;
    z-index: 9998;
}

.holidify-snowflake {
    position: absolute;
    top: -10vh;
    background: #fff;
    border: 1px solid #bfc5cc;
    border-radius: 50%;
    box-shadow: 0 0 2px rgba(191, 197, 204, 0.8);
    opacity: 0.7;
    animation-name: holidify-snow-fall;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    will-change: transform;
}

.holidify-snowflake::after {
    content: '';
    position: absolute;
    inset: 35%;
    border-radius: 50%;
    border: 1px solid rgba(160, 166, 172, 0.6);
}

.holidify-floating-icon {
    position: absolute;
    font-size: 40px;
    filter: drop-shadow(0 2px 5px rgba(0,0,0,0.25));
    /* removed default animation */
}

/* Icon default positions */
.holidify-floating-icon.pos-1 {
    top: 15%;
    left: 8%;
}

.holidify-floating-icon.pos-2 {
    top: 50%;
    right: 10%;
}

.holidify-floating-icon.pos-3 {
    bottom: 18%;
    left: 18%;
}

/* Original floating animation (now under anim-floating) */
@keyframes holidify-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-14px); }
}

/* -----------------------------
   ANIMATION CLASSES
------------------------------ */

/* 0️⃣ MOVING AROUND (DEFAULT) */
.anim-moving-around {
    animation-timing-function: ease-in-out !important;
    animation-iteration-count: infinite !important;
    animation-fill-mode: both !important;
}
.anim-moving-around.pos-1 {
    animation-duration: 18s !important;
    animation-delay: -3s !important;
}
.anim-moving-around.pos-2 {
    animation-duration: 20s !important;
    animation-delay: -9s !important;
}
.anim-moving-around.pos-3 {
    animation-duration: 22s !important;
    animation-delay: -6s !important;
}
.anim-moving-around-a {
    animation-name: holidify-move-ltr !important;
}
.anim-moving-around-b {
    animation-name: holidify-move-rtl !important;
}
.anim-moving-around-c {
    animation-name: holidify-move-btt !important;
}
.anim-moving-around-d {
    animation-name: holidify-move-ttb !important;
}
.anim-moving-around-e {
    animation-name: holidify-move-diag-1 !important;
}
.anim-moving-around-f {
    animation-name: holidify-move-diag-2 !important;
}
.anim-moving-around-g {
    animation-name: holidify-move-curve-ltr !important;
}
.anim-moving-around-h {
    animation-name: holidify-move-curve-rtl !important;
}
.anim-moving-around-i {
    animation-name: holidify-move-diag-3 !important;
}
.anim-moving-around-j {
    animation-name: holidify-move-diag-4 !important;
}
@keyframes holidify-move-ltr {
    0%   { transform: translate3d(-140vw, -6vh, 0); }
    50%  { transform: translate3d(0, 8vh, 0); }
    100% { transform: translate3d(140vw, -4vh, 0); }
}
@keyframes holidify-move-rtl {
    0%   { transform: translate3d(140vw, 6vh, 0); }
    50%  { transform: translate3d(0, -8vh, 0); }
    100% { transform: translate3d(-140vw, 4vh, 0); }
}
@keyframes holidify-move-btt {
    0%   { transform: translate3d(-10vw, 130vh, 0); }
    50%  { transform: translate3d(12vw, 0, 0); }
    100% { transform: translate3d(-8vw, -130vh, 0); }
}
@keyframes holidify-move-ttb {
    0%   { transform: translate3d(10vw, -130vh, 0); }
    50%  { transform: translate3d(-12vw, 0, 0); }
    100% { transform: translate3d(8vw, 130vh, 0); }
}
@keyframes holidify-move-diag-1 {
    0%   { transform: translate3d(-140vw, -140vh, 0); }
    50%  { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(140vw, 140vh, 0); }
}
@keyframes holidify-move-diag-2 {
    0%   { transform: translate3d(-140vw, 140vh, 0); }
    50%  { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(140vw, -140vh, 0); }
}
@keyframes holidify-move-curve-ltr {
    0%   { transform: translate3d(-140vw, 20vh, 0); }
    25%  { transform: translate3d(-40vw, -8vh, 0); }
    50%  { transform: translate3d(10vw, 12vh, 0); }
    75%  { transform: translate3d(70vw, -18vh, 0); }
    100% { transform: translate3d(140vw, 10vh, 0); }
}
@keyframes holidify-move-curve-rtl {
    0%   { transform: translate3d(140vw, -16vh, 0); }
    25%  { transform: translate3d(60vw, 10vh, 0); }
    50%  { transform: translate3d(0, -12vh, 0); }
    75%  { transform: translate3d(-60vw, 18vh, 0); }
    100% { transform: translate3d(-140vw, -6vh, 0); }
}
@keyframes holidify-move-diag-3 {
    0%   { transform: translate3d(140vw, -140vh, 0); }
    50%  { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-140vw, 140vh, 0); }
}
@keyframes holidify-move-diag-4 {
    0%   { transform: translate3d(140vw, 140vh, 0); }
    50%  { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-140vw, -140vh, 0); }
}

/* 1️⃣ FLOATING (DEFAULT ORIGINAL ANIMATION) */
.anim-floating {
    animation: holidify-float 3s ease-in-out infinite !important;
}

/* 2️⃣ BOUNCING */
.anim-bouncing {
    animation: holidify-bounce 1.2s ease-in-out infinite !important;
}
@keyframes holidify-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-20px); }
}

/* 3️⃣ SPIN */
.anim-spin {
    animation: holidify-spin 2s linear infinite !important;
}
@keyframes holidify-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* 4️⃣ SWAY LEFT/RIGHT */
.anim-sway {
    animation: holidify-sway 2.5s ease-in-out infinite !important;
}
@keyframes holidify-sway {
    0% { transform: translateX(0px); }
    50% { transform: translateX(12px); }
    100% { transform: translateX(0px); }
}

/* 5️⃣ WOBBLE (TILT SIDE-TO-SIDE) */
.anim-wobble {
    animation: holidify-wobble 1.8s ease-in-out infinite !important;
}
@keyframes holidify-wobble {
    0% { transform: rotate(0deg); }
    50% { transform: rotate(10deg); }
    100% { transform: rotate(0deg); }
}


/* -----------------------------
   ANIMATION LAYER (for future effects)
------------------------------ */
.holidify-animation {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9997;
    overflow: hidden;
}

.holidify-particle {
    position: absolute;
}

@keyframes holidify-snow-fall {
    0%   { transform: translate3d(0, -10vh, 0); }
    100% { transform: translate3d(var(--drift, 0vw), 110vh, 0); }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .holidify-floating-icon,
    .holidify-particle,
    .holidify-snowflake {
        animation: none !important;
    }
}
