/* Gift Collector styles */
.gc-gift{opacity:0; transform:scale(0.8); transition:transform .2s ease, opacity .2s ease; pointer-events:auto;}
.gc-gift--in{opacity:1; transform:scale(1);} 
.gc-gift:hover{transform:scale(1.08);} 
.gc-gift--out{opacity:0; transform:scale(0.9);} 
.gc-gift--collected{opacity:0; transform:scale(0.6);} 
.gc-gift__anim{width:100%; height:100%; position:relative;}
.gc-gift__anim img{width:100%; height:100%; object-fit:contain; display:block;}

/* Лёгкая «болтанка» для статичных иконок, чтобы придать им жизнь */
@keyframes gc-bob { 0%{ transform: translateY(0) } 50%{ transform: translateY(-4px) } 100%{ transform: translateY(0) } }
.gc-gift__anim img{ animation: gc-bob 3s ease-in-out infinite; }

/* Hover flash for fake gifts (soft hint) */
@keyframes gc-flash { 0%{opacity:0} 20%{opacity:1} 100%{opacity:0} }
.gc-hints-soft .gc-gift--fake:hover .gc-gift__anim:after,
.gc-hints-explicit .gc-gift--fake:hover .gc-gift__anim:after{ content:""; position:absolute; inset:-3px; border-radius:12px; box-shadow:0 0 0 2px #ff4d4d; pointer-events:none; opacity:0; animation: gc-flash 280ms ease-out 1; }

/* Puff effect on fake click */
@keyframes gc-puff { 0%{ transform:translate(-50%,-50%) scale(0.7); opacity:.95 } 100%{ transform:translate(-50%,-50%) scale(2.1); opacity:0 } }
.gc-puff{ position:fixed; width:24px; height:24px; left:0; top:0; border-radius:50%; box-shadow:0 0 0 2px #ff6 inset, 0 0 12px #ffcf7a; pointer-events:none; z-index:10060; transform:translate(-50%,-50%) scale(0.7); opacity:.95; animation: gc-puff 450ms ease-out forwards; }

/* Micro toast for fake click */
.gc-toast{ position:fixed; background:#111; color:#fff; padding:6px 8px; border-radius:6px; font-size:12px; line-height:1.1; box-shadow:0 6px 20px #0006; z-index:10061; opacity:0; transform:translate(-50%,8px) scale(.96); transition:opacity .12s ease, transform .12s ease; pointer-events:none; }
.gc-toast.gc-toast--show{ opacity:1; transform:translate(-50%,0) scale(1); }

/* Basket (three bottom positions) */
.gc-basket{
    position:fixed; 
    z-index:10000; 
    background:rgba(17,17,17,0.85); 
    color:#fff; 
    border-radius:20px; 
    display:flex; 
    align-items:center; 
    justify-content:center;
    gap:8px; 
    padding:10px 16px; 
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    box-shadow:0 4px 12px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.1);
    transition:all 0.3s ease;
    min-width:120px;
} 
.gc-basket.gc-basket--pos-center-bottom{left:50%; bottom:20px; transform:translateX(-50%);} 
.gc-basket.gc-basket--pos-right-bottom{right:20px; bottom:20px; transform:none;} 
.gc-basket.gc-basket--pos-left-bottom{left:20px; bottom:20px; transform:none;} 
.gc-basket__icon{font-size:20px; line-height:1; flex-shrink:0;} 
.gc-basket__count{font-weight:700; font-size:15px; white-space:nowrap;}
.gc-basket__help{
    margin-left:4px; 
    width:24px; 
    height:24px; 
    border-radius:50%; 
    border:1px solid rgba(255,255,255,0.2);
    cursor:pointer; 
    background:rgba(255,255,255,0.1); 
    color:#fff; 
    font-weight:700; 
    font-size:13px;
    line-height:22px; 
    text-align:center;
    flex-shrink:0;
    transition:all 0.2s ease;
}
.gc-basket__help:hover{background:rgba(255,255,255,0.2); border-color:rgba(255,255,255,0.4);}

/* Basket CTA after finish */
.gc-basket__cta{
    display:inline-flex; 
    align-items:center; 
    justify-content:center; 
    background:#2e7d32; 
    color:#fff; 
    text-decoration:none; 
    border-radius:12px; 
    padding:6px 12px; 
    font-size:13px; 
    font-weight:600;
    margin-left:4px;
    border:none;
    cursor:pointer;
    transition:all 0.2s ease;
    white-space:nowrap;
}
.gc-basket__cta:hover{background:#246629; transform:scale(1.05);}

/* Tooltip with rules */
.gc-basket__tooltip{position:absolute; bottom:110%; min-width:220px; max-width:min(92vw, 360px); background:#111; color:#fff; padding:10px 12px; border-radius:8px; box-shadow:0 8px 24px #0006; font-size:13px; line-height:1.35; z-index:10001; opacity:0; pointer-events:none; transition:opacity .18s ease, transform .18s ease;}
/* center align */
.gc-tip-align-center .gc-basket__tooltip{left:50%; transform:translateX(-50%) translateY(4px);} 
.gc-basket.gc-basket--show-tip.gc-tip-align-center .gc-basket__tooltip{opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto; display:block}
.gc-tip-align-center .gc-basket__tooltip:after{content:""; position:absolute; left:50%; top:100%; transform:translateX(-50%); border:6px solid transparent; border-top-color:#111}
/* left align */
.gc-tip-align-left .gc-basket__tooltip{left:0; transform:translateY(4px);} 
.gc-basket.gc-basket--show-tip.gc-tip-align-left .gc-basket__tooltip{opacity:1; transform:translateY(0); pointer-events:auto; display:block}
.gc-tip-align-left .gc-basket__tooltip:after{content:""; position:absolute; left:18px; top:100%; border:6px solid transparent; border-top-color:#111}
/* right align */
.gc-tip-align-right .gc-basket__tooltip{right:0; transform:translateY(4px);} 
.gc-basket.gc-basket--show-tip.gc-tip-align-right .gc-basket__tooltip{opacity:1; transform:translateY(0); pointer-events:auto; display:block}
.gc-tip-align-right .gc-basket__tooltip:after{content:""; position:absolute; right:18px; top:100%; border:6px solid transparent; border-top-color:#111}

/* Modal base */
.gc-modal{
    position:fixed; 
    inset:0; 
    z-index:10001;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
} 
.gc-modal__backdrop{
    position:absolute; 
    inset:0; 
    background:rgba(0,0,0,0.75); 
    opacity:0; 
    animation:gc-fade-in .4s forwards;
}
.gc-modal__dialog{
    position:relative; 
    width:100%; 
    max-width:520px; 
    border-radius:20px; 
    padding:40px 32px; 
    z-index:2; 
    transform:scale(0.9); 
    opacity:0; 
    animation:gc-modal-appear .6s cubic-bezier(0.175,0.885,0.32,1.5) forwards; 
    overflow:hidden; 
    text-align:center; 
    background:#fff; 
    color:#222; 
    box-shadow:0 20px 60px rgba(0,0,0,.4);
}
.gc-modal__content{position:relative; z-index:2}
.gc-modal__close{
    position:absolute; 
    right:16px; 
    top:16px; 
    border:none; 
    background:rgba(0,0,0,0.05); 
    font-size:24px; 
    width:32px;
    height:32px;
    border-radius:50%;
    cursor:pointer; 
    opacity:.7;
    transition:all 0.2s ease;
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:1;
}
.gc-modal__close:hover{opacity:1; background:rgba(0,0,0,0.1); transform:rotate(90deg);}
.gc-modal__title{margin:0 0 12px; font-size:24px; font-weight:700; line-height:1.3;}
.gc-modal__subtitle{font-size:14px; opacity:.85; margin-bottom:10px; line-height:1.4;}
.gc-rules-text{font-size:14px; line-height:1.5; margin-bottom:14px;}
.gc-rules-countdown{margin-top:10px; font-weight:700; font-size:13px; color:#666;}
.gc-modal__button{
    display:inline-flex; 
    align-items:center; 
    justify-content:center; 
    text-decoration:none; 
    border-radius:12px; 
    padding:12px 28px; 
    font-weight:600; 
    font-size:15px;
    cursor:pointer; 
    transition:all .2s ease; 
    margin-top:16px;
    border:none;
}
.gc-modal__button:hover{transform:translateY(-2px);}

/* Theme: classic (re-styled to festive-like for better default look) */
.gc-modal.gc-theme-classic .gc-modal__dialog{background:linear-gradient(145deg,#ffffff,#f8f9fa)!important; color:#2c3e50!important; border-radius:24px!important; padding:40px 32px!important; text-align:center!important; box-shadow:0 20px 40px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.2), 0 0 50px rgba(255,215,0,0.4)!important}
.gc-modal.gc-theme-classic .gc-modal__title{font-size:26px; font-weight:800; text-shadow:0 2px 4px rgba(0,0,0,0.1)}
.gc-modal.gc-theme-classic .gc-modal__button{background:linear-gradient(135deg,#6a11cb 0%, #2575fc 100%); color:#fff; border-radius:50px; padding:14px 36px; font-size:16px; box-shadow:0 6px 20px rgba(106,17,203,.4)}
.gc-modal.gc-theme-classic .gc-modal__button:hover{transform:translateY(-3px); box-shadow:0 10px 25px rgba(106,17,203,.6)}

/* Theme: festive (almond-inspired) */
.gc-modal.gc-theme-festive .gc-modal__dialog{background:linear-gradient(145deg,#ffffff,#f8f9fa)!important; color:#2c3e50!important; border-radius:24px!important; padding:40px 32px!important; text-align:center!important; box-shadow:0 20px 40px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.2), 0 0 50px rgba(255,215,0,0.4)!important}
.gc-modal.gc-theme-festive .gc-modal__title{font-size:26px; font-weight:800; text-shadow:0 2px 4px rgba(0,0,0,0.1)}
.gc-modal.gc-theme-festive .gc-modal__subtitle{font-size:16px; color:#7f8c8d}
.gc-modal.gc-theme-festive .gc-rules-text{font-size:15px; color:#5b6b7a}
.gc-modal.gc-theme-festive .gc-modal__button{background:linear-gradient(135deg,#6a11cb 0%, #2575fc 100%); color:#fff; border-radius:50px; padding:14px 36px; font-size:16px; box-shadow:0 6px 20px rgba(106,17,203,.4)}
.gc-modal.gc-theme-festive .gc-modal__button:hover{transform:translateY(-3px); box-shadow:0 10px 25px rgba(106,17,203,.6)}

/* Theme: glass */
.gc-modal.gc-theme-glass .gc-modal__dialog{background:rgba(255,255,255,0.12)!important; color:#eef!important; border-radius:20px!important; padding:32px 24px!important; backdrop-filter:blur(12px)!important; -webkit-backdrop-filter:blur(12px)!important; border:1px solid rgba(255,255,255,0.25)!important; box-shadow:0 20px 60px rgba(0,0,0,.35)!important}
.gc-modal.gc-theme-glass .gc-modal__title{color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.35)}
.gc-modal.gc-theme-glass .gc-modal__button{background:linear-gradient(135deg,rgba(106,17,203,.85), rgba(37,117,252,.85)); color:#fff; border-radius:14px; padding:14px 28px}
.gc-modal.gc-theme-glass .gc-modal__button:hover{filter:brightness(1.05)}
.gc-modal__button:active{transform:translateY(1px)}

@keyframes gc-fade-in{to{opacity:1}}
@keyframes gc-modal-appear{to{transform:scale(1); opacity:1}}

/* Celebration particles */
.gc-star{position:absolute; width:8px; height:8px; background-color:gold; border-radius:50%; box-shadow:0 0 10px gold, 0 0 20px gold; z-index:10002; opacity:0}
.gc-firework{position:absolute; width:6px; height:6px; border-radius:50%; box-shadow:0 0 10px #fff, 0 0 20px #fff; z-index:10002}
.gc-confetti{position:absolute; width:12px; height:12px; opacity:.8; z-index:10002}

@media (max-width:480px){ 
    .gc-modal{
        padding:16px;
    }
    .gc-modal__dialog{
        width:100%; 
        max-width:none;
        padding:24px 20px;
    }
    .gc-modal__close{
        right:12px;
        top:12px;
        width:28px;
        height:28px;
        font-size:20px;
    }
    .gc-modal__title{
        font-size:20px;
        margin-bottom:10px;
    }
    .gc-modal__subtitle{
        font-size:13px;
    }
    .gc-rules-text{
        font-size:13px;
        line-height:1.45;
    }
    .gc-modal__button{
        padding:10px 20px;
        font-size:14px;
        margin-top:12px;
    }
    .gc-modal.gc-theme-classic .gc-modal__dialog,
    .gc-modal.gc-theme-festive .gc-modal__dialog{
        padding:28px 20px!important;
    }
    .gc-modal.gc-theme-classic .gc-modal__title,
    .gc-modal.gc-theme-festive .gc-modal__title{
        font-size:22px;
    }
    .gc-modal.gc-theme-classic .gc-modal__subtitle,
    .gc-modal.gc-theme-festive .gc-modal__subtitle{
        font-size:14px;
    }
    .gc-modal.gc-theme-festive .gc-rules-text{
        font-size:13px;
    }
    .gc-modal.gc-theme-classic .gc-modal__button,
    .gc-modal.gc-theme-festive .gc-modal__button{
        padding:11px 24px!important;
        font-size:14px!important;
    }
    .gc-basket{
        padding:8px 12px;
        min-width:100px;
    }
    .gc-basket__icon{
        font-size:18px;
    }
    .gc-basket__count{
        font-size:14px;
    }
    .gc-basket__help{
        width:22px;
        height:22px;
        font-size:12px;
        line-height:20px;
    }
}

/* Extra small screens (до 340px) */
@media (max-width:360px){
    .gc-modal{
        padding:12px;
    }
    .gc-modal__dialog{
        width:100%;
        padding:20px 16px;
        border-radius:16px;
    }
    .gc-modal__close{
        right:8px;
        top:8px;
        width:26px;
        height:26px;
        font-size:18px;
    }
    .gc-modal__title{
        font-size:18px;
        margin-bottom:8px;
    }
    .gc-modal__subtitle{
        font-size:12px;
        margin-bottom:8px;
    }
    .gc-rules-text{
        font-size:12px;
        line-height:1.4;
        margin-bottom:10px;
    }
    .gc-rules-countdown{
        font-size:12px;
        margin-top:8px;
    }
    .gc-modal__button{
        padding:9px 18px;
        font-size:13px;
        margin-top:10px;
    }
    .gc-modal.gc-theme-classic .gc-modal__dialog,
    .gc-modal.gc-theme-festive .gc-modal__dialog{
        padding:24px 16px!important;
        border-radius:16px!important;
    }
    .gc-modal.gc-theme-classic .gc-modal__title,
    .gc-modal.gc-theme-festive .gc-modal__title{
        font-size:20px;
    }
    .gc-modal.gc-theme-classic .gc-modal__subtitle,
    .gc-modal.gc-theme-festive .gc-modal__subtitle{
        font-size:13px;
    }
    .gc-modal.gc-theme-festive .gc-rules-text{
        font-size:12px;
    }
    .gc-modal.gc-theme-classic .gc-modal__button,
    .gc-modal.gc-theme-festive .gc-modal__button{
        padding:10px 20px!important;
        font-size:13px!important;
    }
    .gc-basket{
        padding:6px 10px;
        min-width:90px;
        gap:6px;
    }
    .gc-basket__icon{
        font-size:16px;
    }
    .gc-basket__count{
        font-size:13px;
    }
    .gc-basket__help{
        width:20px;
        height:20px;
        font-size:11px;
        line-height:18px;
        margin-left:2px;
    }
    .gc-basket__cta{
        padding:5px 10px;
        font-size:12px;
    }
}
