/* ============================================
   Good Publishing - Custom Styles
   Animations and styles not supported by Tailwind Play CDN
   ============================================ */

/* --- Scroll Animation Base States --- */
[data-animate] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

[data-animate].animate-visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- Animation Variants --- */
[data-animate="scale"] {
    transform: scale(0.95);
}

[data-animate="scale"].animate-visible {
    transform: scale(1);
}

[data-animate="slide-left"] {
    transform: translateX(-30px);
}

[data-animate="slide-left"].animate-visible {
    transform: translateX(0);
}

[data-animate="slide-right"] {
    transform: translateX(30px);
}

[data-animate="slide-right"].animate-visible {
    transform: translateX(0);
}

/* --- Stagger Delay Classes --- */
.stagger-1 { transition-delay: 0.1s; }
.stagger-2 { transition-delay: 0.2s; }
.stagger-3 { transition-delay: 0.3s; }
.stagger-4 { transition-delay: 0.4s; }
.stagger-5 { transition-delay: 0.5s; }

/* --- Honeypot Field (Hidden from users, visible to bots) --- */
.honeypot-field {
    position: absolute;
    left: -9999px;
    top: -9999px;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
    overflow: hidden;
}

/* --- Gold Pulse Animation --- */
@keyframes pulse-gold {
    0%, 100% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.4); }
    50% { box-shadow: 0 0 0 10px rgba(212, 175, 55, 0); }
}

.animate-pulse-gold {
    animation: pulse-gold 2s infinite;
}

/* --- Smooth Transition Utility --- */
.transition-all-smooth {
    transition: all 0.3s ease-out;
}

/* --- Custom Scrollbar Styling (Webkit) --- */
::-webkit-scrollbar {
    width: 8px;
}

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

::-webkit-scrollbar-thumb {
    background: #d4af37;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #b8962e;
}

/* --- Modal Overlay and Dialog Styles --- */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(26, 20, 16, 0.5);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.modal-overlay.active {
    opacity: 1;
    pointer-events: all;
}

.modal-content {
    background: #ffffff;
    border-radius: 0.625rem;
    padding: 2rem;
    max-width: 480px;
    width: 90%;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
    transform: scale(0.95);
    transition: transform 0.3s ease;
}

.modal-overlay.active .modal-content {
    transform: scale(1);
}

/* --- Multi-step Form Transitions --- */
.step-panel {
    display: none;
    opacity: 0;
    transform: translateX(20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
}
.step-panel.active {
    display: block;
    opacity: 1;
    transform: translateX(0);
}
.step-panel.slide-left {
    transform: translateX(-20px);
}

/* Progress bar animation */
.progress-fill {
    transition: width 0.4s ease;
}

/* Anti-bot: hide the challenge field completely */
.bot-trap {
    position: absolute;
    left: -99999px;
    top: -99999px;
    width: 0;
    height: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    tab-index: -1;
}

/* --- Multi-step Form Wizard --- */
.step-panel {
    display: none;
    opacity: 0;
    transform: translateX(20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
}
.step-panel.active {
    display: block;
    opacity: 1;
    transform: translateX(0);
}

.progress-fill {
    transition: width 0.5s ease;
}

/* Anti-bot trap */
.bot-trap {
    position: absolute;
    left: -99999px;
    top: -99999px;
    width: 0;
    height: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
