

/* Font */
body { font-family: 'Inter', system-ui, -apple-system, sans-serif; }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Coupon code font */
.font-mono { font-family: 'Courier New', Courier, monospace; }

/* Line clamp */
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* Prose styles for review/blog content */
.prose p            { margin-bottom: 1rem; line-height: 1.75; }
.prose h1           { font-size: 1.875rem; font-weight: 700; margin: 1.75rem 0 1rem; color: #111827; line-height: 1.25; }
.prose h2           { font-size: 1.25rem; font-weight: 600; margin: 1.5rem 0 0.75rem; color: #1f2937; }
.prose h3           { font-size: 1.1rem; font-weight: 600; margin: 1.25rem 0 0.5rem; }
.prose h4           { font-size: 1rem; font-weight: 600; margin: 1rem 0 0.5rem; color: #1f2937; }
.prose h5           { font-size: 0.95rem; font-weight: 600; margin: 0.9rem 0 0.45rem; color: #1f2937; }
.prose h6           { font-size: 0.875rem; font-weight: 600; margin: 0.8rem 0 0.4rem; color: #1f2937; }
.prose ul           { list-style: disc; padding-left: 1.5rem; margin-bottom: 1rem; }
.prose ol           { list-style: decimal; padding-left: 1.5rem; margin-bottom: 1rem; }
.prose li           { margin-bottom: 0.375rem; }
.prose a            { color: #8122ce; text-decoration: underline; }
.prose strong       { font-weight: 600; }
.prose blockquote   { border-left: 4px solid #8122ce; padding-left: 1rem; color: #6b7280; font-style: italic; margin: 1rem 0; }

/* Copy button click animation */
.copy-code:active { transform: scale(0.96); }

/* FAQ transition */
.faq-icon { transition: transform 0.2s ease; }

/* Admin sidebar active */
aside a.active { background-color: #8122ce; }

/* Table hover */
tbody tr:hover { background-color: #f9fafb; }

/* Focus outline */
input:focus, textarea:focus, select:focus { outline: none; box-shadow: 0 0 0 3px rgba(16,185,129,0.25); }

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* ── Hero decorations ─────────────────────────────────────────────────────── */

/* Subtle dot-grid pattern (fades out at the edges) */
.hero-dots {
    background-image: radial-gradient(rgba(255,255,255,0.14) 1px, transparent 1px);
    background-size: 24px 24px;
    -webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 45%, black 30%, transparent 75%);
            mask-image: radial-gradient(ellipse 70% 70% at 50% 45%, black 30%, transparent 75%);
}

/* Floating coupon cards */
@keyframes hero-float {
    0%, 100% { transform: translateY(0) rotate(var(--float-rotate, -6deg)); }
    50%      { transform: translateY(-14px) rotate(var(--float-rotate, -6deg)); }
}
.hero-float       { animation: hero-float 6s ease-in-out infinite; }
.hero-float-delay { animation: hero-float 7s ease-in-out 1.4s infinite; }

/* Aurora drifting background blobs */
@keyframes aurora-a {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33%      { transform: translate(70px, 50px) scale(1.15); }
    66%      { transform: translate(-40px, 80px) scale(0.92); }
}
@keyframes aurora-b {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(-90px, -60px) scale(1.2); }
}
@keyframes aurora-c {
    0%, 100% { transform: translate(0, 0) scale(1); }
    40%      { transform: translate(-60px, -90px) scale(1.1); }
    75%      { transform: translate(50px, -30px) scale(0.95); }
}
.aurora-a { animation: aurora-a 18s ease-in-out infinite; }
.aurora-b { animation: aurora-b 22s ease-in-out infinite; }
.aurora-c { animation: aurora-c 26s ease-in-out infinite; }

/* Shimmering headline accent */
.text-shimmer {
    background: linear-gradient(110deg, #f1c204 25%, #ffffff 42%, #e80883 55%, #ec0707 65%, #e5b701 85%);
    background-size: 220% auto;
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    animation: text-shine 5s linear infinite;
}
@keyframes text-shine { to { background-position: 220% center; } }

/* Store logo marquee */
.marquee-mask {
    -webkit-mask-image: linear-gradient(to right, transparent, black 12%, black 88%, transparent);
            mask-image: linear-gradient(to right, transparent, black 12%, black 88%, transparent);
}
@keyframes marquee-scroll { to { transform: translateX(-50%); } }
.marquee-track { animation: marquee-scroll 38s linear infinite; }
.marquee-wrap:hover .marquee-track { animation-play-state: paused; }

@media (prefers-reduced-motion: reduce) {
    .hero-float, .hero-float-delay,
    .aurora-a, .aurora-b, .aurora-c,
    .text-shimmer, .marquee-track { animation: none; }
}
