/* Custom CSS extensions for Tailwind */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

.bg-grid-pattern {
    background-image: 
        linear-gradient(rgba(13, 148, 136, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(13, 148, 136, 0.1) 1px, transparent 1px);
    background-size: 20px 20px;
}

/* Custom slider styles */
.slider {
    -webkit-appearance: none;
    background: linear-gradient(to right, #0D9488, #FF6B6B);
}

.slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #0D9488;
    cursor: pointer;
    border: 2px solid white;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

.slider::-moz-range-thumb {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #0D9488;
    cursor: pointer;
    border: 2px solid white;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
    border: none;
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}
/* 3D Gift Box Styles */
.gift-box {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    animation: floatRotate 8s ease-in-out infinite;
}

.box {
    position: absolute;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
}

.side {
    position: absolute;
    background: linear-gradient(135deg, #FF6B6B, #FF8E8E);
    border: 3px solid rgba(255, 255, 255, 0.8);
    box-shadow: 
        0 0 20px rgba(255, 107, 107, 0.4),
        inset 0 0 20px rgba(255, 255, 255, 0.3);
}

.top {
    width: 100%;
    height: 100%;
    transform: rotateX(90deg) translateZ(50%);
    background: linear-gradient(135deg, #FF6B6B, #FF8E8E);
}

.bottom {
    width: 100%;
    height: 100%;
    transform: rotateX(-90deg) translateZ(50%);
    background: linear-gradient(135deg, #FF6B6B, #FF8E8E);
}

.front {
    width: 100%;
    height: 100%;
    transform: rotateY(0deg) translateZ(50%);
    background: linear-gradient(135deg, #FF6B6B, #FF8E8E);
}

.back {
    width: 100%;
    height: 100%;
    transform: rotateY(180deg) translateZ(50%);
    background: linear-gradient(135deg, #FF6B6B, #FF8E8E);
}

.left {
    width: 100%;
    height: 100%;
    transform: rotateY(-90deg) translateZ(50%);
    background: linear-gradient(135deg, #FF6B6B, #FF8E8E);
}

.right {
    width: 100%;
    height: 100%;
    transform: rotateY(90deg) translateZ(50%);
    background: linear-gradient(135deg, #FF6B6B, #FF8E8E);
}

/* Ribbon and Bow */
.ribbon {
    position: absolute;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
}

.ribbon-vertical {
    position: absolute;
    width: 20%;
    height: 100%;
    background: linear-gradient(135deg, #0D9488, #14B8A6);
    left: 40%;
    transform: translateZ(51%);
    box-shadow: 0 0 15px rgba(13, 148, 136, 0.6);
}

.ribbon-horizontal {
    position: absolute;
    width: 100%;
    height: 20%;
    top: 40%;
    background: linear-gradient(135deg, #0D9488, #14B8A6);
    transform: translateZ(51%);
    box-shadow: 0 0 15px rgba(13, 148, 136, 0.6);
}

.bow {
    position: absolute;
    width: 40%;
    height: 40%;
    top: 30%;
    left: 30%;
    transform-style: preserve-3d;
}

.bow-center {
    position: absolute;
    width: 30%;
    height: 30%;
    background: linear-gradient(135deg, #0D9488, #14B8A6);
    border-radius: 50%;
    top: 35%;
    left: 35%;
    transform: translateZ(52%);
    box-shadow: 0 0 20px rgba(13, 148, 136, 0.8);
}

.bow-loop {
    position: absolute;
    width: 40%;
    height: 40%;
    background: linear-gradient(135deg, #0D9488, #14B8A6);
    border-radius: 50%;
    transform: translateZ(52%);
}

.bow-loop-left {
    left: -10%;
    top: 20%;
    transform: rotate(-30deg) translateZ(52%);
}

.bow-loop-right {
    right: -10%;
    top: 20%;
    transform: rotate(30deg) translateZ(52%);
    box-shadow: 0 0 15px rgba(13, 148, 136, 0.6);
}

/* 3D Animation */
@keyframes floatRotate {
    0%, 100% {
        transform: 
            rotateX(-15deg) 
            rotateY(0deg)
            translateY(0px);
    }
    25% {
        transform: 
            rotateX(-10deg)
            rotateY(90deg)
            translateY(-10px);
    }
    50% {
        transform: 
            rotateX(-20deg)
            rotateY(180deg)
            translateY(0px);
    }
    75% {
        transform: 
            rotateX(-10deg)
            rotateY(270deg)
            translateY(-5px);
    }
}

/* Pulsing glow effect */
@keyframes pulseGlow {
    0%, 100% {
        box-shadow: 
            0 0 20px rgba(255, 107, 107, 0.4),
            inset 0 0 20px rgba(255, 255, 255, 0.3),
            0 0 40px rgba(13, 148, 136, 0.3);
    }
    50% {
        box-shadow: 
            0 0 30px rgba(255, 107, 107, 0.6),
            inset 0 0 30px rgba(255, 255, 255, 0.4),
            0 0 60px rgba(13, 148, 136, 0.5);
    }
}

.gift-box:hover {
    animation: floatRotate 4s ease-in-out infinite, pulseGlow 2s ease-in-out infinite;
}

/* Sparkle particles */
.sparkle {
    position: absolute;
    width: 4px;
    height: 4px;
    background: white;
    border-radius: 50%;
    animation: sparkleFloat 3s ease-in-out infinite;
}

@keyframes sparkleFloat {
    0%, 100% {
        opacity: 0;
        transform: translateY(0px) scale(0.5);
    }
    50% {
        opacity: 1;
        transform: translateY(-20px) scale(1);
    }
}

/* Focus styles for accessibility */
button:focus-visible,
a:focus-visible,
input:focus-visible {
    outline: 2px solid #0D9488;
    outline-offset: 2px;
}
/* Custom animations */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.fade-in {
    animation: fadeIn 0.5s ease-out;
}

/* Card hover effects */
.mystery-card {
    transition: all 0.3s ease;
}

.mystery-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

/* Loading states */
.loading {
    opacity: 0.6;
    pointer-events: none;
}

/* Mobile menu animation */
.mobile-menu {
    transform: translateX(-100%);
    transition: transform 0.3s ease;
}

.mobile-menu.open {
    transform: translateX(0);
}

/* Badge styles */
.badge {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.badge-new {
    background-color: #FF6B6B;
    color: white;
}

.badge-like-new {
    background-color: #0D9488;
    color: white;
}

.badge-good {
    background-color: #64748B;
    color: white;
}

.badge-fair {
    background-color: #F59E0B;
    color: white;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
    background: #0D9488;
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: #0D9488;
}

/* Modal animations */
.modal-enter {
    opacity: 0;
    transform: scale(0.9);
}

.modal-enter-active {
    opacity: 1;
    transform: scale(1);
    transition: opacity 0.3s, transform 0.3s;
}

/* Price tag styles */
.price-tag {
    background: linear-gradient(135deg, #0D9488, #14B8A6);
    color: white;
}

/* Responsive text sizes */
@media (max-width: 640px) {
    .responsive-text {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }
}

/* Gradient backgrounds */
.gradient-primary {
    background: linear-gradient(135deg, #0D9488 0%, #14B8A6 100%);
}

/* Box shadow variations */
.shadow-mystery {
    box-shadow: 0 10px 15px -3px rgba(13, 148, 136, 0.1), 0 4px 6px -2px rgba(13, 148, 136, 0.05);
}

/* Custom border radius */
.rounded-mystery {
    border-radius: 1rem;
}

/* Hover transitions */
.hover-lift {
    transition: all 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-4px);
}