/* roulang page: index */
:root {
            --primary: #6366F1;
            --accent: #06B6D4;
            --amber-gold: #F59E0B;
            --bg-base: #0B0F19;
            --bg-card: #111827;
            --bg-contrast: #1F2937;
            --text-heading: #F9FAFB;
            --text-body: #D1D5DB;
            --text-muted: #9CA3AF;
            --border-glow: rgba(255, 255, 255, 0.08);
            --radius-box: 1rem;
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body {
            background-color: var(--bg-base);
            color: var(--text-body);
            font-family: system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
            line-height: 1.75;
            -webkit-font-smoothing: antialiased;
            overflow-x: hidden;
        }

        h1, h2, h3, h4, h5, h6 {
            color: var(--text-heading);
            line-height: 1.25;
            font-weight: 700;
        }

        a {
            color: inherit;
            text-decoration: none;
            transition: all 0.25s ease;
        }

        .container-custom {
            max-width: 1280px;
            margin-left: auto;
            margin-right: auto;
            padding-left: 1.5rem;
            padding-right: 1.5rem;
        }

        .glow-border {
            border: 1px solid var(--border-glow);
            transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
        }

        .glow-border:hover {
            border-color: rgba(99, 102, 241, 0.4);
            box-shadow: 0 0 25px rgba(99, 102, 241, 0.15);
            transform: translateY(-4px);
        }

        .coupon-ticket {
            position: relative;
            background: linear-gradient(135deg, rgba(31, 41, 55, 0.9) 0%, rgba(17, 24, 39, 0.95) 100%);
            border: 1px dashed rgba(245, 158, 11, 0.4);
        }

        .coupon-ticket::before, .coupon-ticket::after {
            content: '';
            position: absolute;
            top: 50%;
            width: 20px;
            height: 20px;
            background-color: var(--bg-base);
            border-radius: 50%;
            transform: translateY(-50%);
        }
        .coupon-ticket::before { left: -10px; }
        .coupon-ticket::after { right: -10px; }

        .tag-badge {
            display: inline-flex;
            align-items: center;
            padding: 0.2rem 0.65rem;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 600;
            background: rgba(99, 102, 241, 0.15);
            color: #818CF8;
            border: 1px solid rgba(99, 102, 241, 0.3);
        }

        /* Hero 优惠券墙主视觉 */
        .hero-banner {
            background-image: linear-gradient(to bottom, rgba(11, 15, 25, 0.85), #0B0F19), url('/assets/images/b3ba7bf741ae87c3.jpg');
            background-size: cover;
            background-position: center;
        }

        .tech-banner {
            background-image: linear-gradient(to right, rgba(11, 15, 25, 0.95), rgba(17, 24, 39, 0.9)), url('/assets/images/f3d27467e94fa78a.jpg');
            background-size: cover;
            background-position: center;
        }

        details > summary {
            list-style: none;
            cursor: pointer;
        }
        details > summary::-webkit-details-marker {
            display: none;
        }
        details[open] summary svg {
            transform: rotate(180deg);
        }

        .gradient-btn {
            background: linear-gradient(135deg, #6366F1 0%, #06B6D4 100%);
            color: #ffffff;
            font-weight: 600;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .gradient-btn:hover {
            box-shadow: 0 0 20px rgba(6, 182, 212, 0.4);
            transform: scale(1.02);
        }

        .amber-btn {
            background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
            color: #ffffff;
            font-weight: 600;
            transition: all 0.3s ease;
        }
        .amber-btn:hover {
            box-shadow: 0 0 20px rgba(245, 158, 11, 0.4);
            transform: scale(1.02);
        }
