/* roulang page: index */
:root {
            --primary: #FF5E7E;
            --primary-hover: #E04866;
            --accent-gold: #FFAA00;
            --accent-purple: #7C5CFC;
            --bg-page: #F5F7FB;
            --text-main: #2D3436;
            --text-muted: #636E72;
            --border-line: #E2E8F0;
        }
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
            background-color: var(--bg-page);
            color: var(--text-main);
            -webkit-font-smoothing: antialiased;
        }
        .btn-game-primary {
            background-color: #FF5E7E;
            box-shadow: 0 4px 0 #D94462;
            transition: all 0.15s ease-in-out;
        }
        .btn-game-primary:hover {
            background-color: #FF708D;
            transform: translateY(-1px);
            box-shadow: 0 5px 0 #D94462;
        }
        .btn-game-primary:active {
            transform: translateY(2px);
            box-shadow: 0 2px 0 #D94462;
        }
        .btn-game-purple {
            background-color: #7C5CFC;
            box-shadow: 0 4px 0 #5E3FD6;
            transition: all 0.15s ease-in-out;
        }
        .btn-game-purple:hover {
            background-color: #8C6FFD;
            transform: translateY(-1px);
            box-shadow: 0 5px 0 #5E3FD6;
        }
        .btn-game-purple:active {
            transform: translateY(2px);
            box-shadow: 0 2px 0 #5E3FD6;
        }
        .game-badge {
            display: inline-flex;
            align-items: center;
            padding: 4px 12px;
            border-radius: 9999px;
            font-size: 0.825rem;
            font-weight: 600;
        }
        .card-elevated {
            background: #FFFFFF;
            border: 1.5px solid #EDF2F7;
            border-radius: 1.5rem;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }
        .card-elevated:hover {
            transform: translateY(-3px);
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
        }
        .text-glow {
            text-shadow: 0 2px 10px rgba(255, 94, 126, 0.4);
        }

/* roulang page: article */
:root {
            --primary: #FF5E7E;
            --primary-hover: #E04866;
            --accent-gold: #FFAA00;
            --accent-purple: #7C5CFC;
            --bg-page: #F5F7FB;
            --text-main: #2D3436;
            --text-muted: #636E72;
            --border-line: #E2E8F0;
        }
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
            background-color: var(--bg-page);
            color: var(--text-main);
            -webkit-font-smoothing: antialiased;
        }
        .btn-game-primary {
            background-color: #FF5E7E;
            box-shadow: 0 4px 0 #D94462;
            transition: all 0.15s ease-in-out;
        }
        .btn-game-primary:hover {
            background-color: #FF708D;
            transform: translateY(-1px);
            box-shadow: 0 5px 0 #D94462;
        }
        .btn-game-primary:active {
            transform: translateY(2px);
            box-shadow: 0 2px 0 #D94462;
        }
        .btn-game-purple {
            background-color: #7C5CFC;
            box-shadow: 0 4px 0 #5E3FD6;
            transition: all 0.15s ease-in-out;
        }
        .btn-game-purple:hover {
            background-color: #8C6FFD;
            transform: translateY(-1px);
            box-shadow: 0 5px 0 #5E3FD6;
        }
        .btn-game-purple:active {
            transform: translateY(2px);
            box-shadow: 0 2px 0 #5E3FD6;
        }
        .game-badge {
            display: inline-flex;
            align-items: center;
            padding: 4px 12px;
            border-radius: 9999px;
            font-size: 0.825rem;
            font-weight: 600;
        }
        .card-elevated {
            background: #FFFFFF;
            border: 1.5px solid #EDF2F7;
            border-radius: 1.5rem;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }
        .card-elevated:hover {
            transform: translateY(-3px);
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
        }
        .text-glow {
            text-shadow: 0 2px 10px rgba(255, 94, 126, 0.4);
        }
        /* Custom typography for dynamic CMS content */
        .article-content {
            color: #2D3436;
            font-size: 1.0625rem;
            line-height: 1.85;
            word-break: break-word;
        }
        .article-content p {
            margin-bottom: 1.35rem;
            color: #334155;
        }
        .article-content h2 {
            font-size: 1.45rem;
            font-weight: 800;
            color: #0F172A;
            margin-top: 2.25rem;
            margin-bottom: 1rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }
        .article-content h2::before {
            content: "";
            display: inline-block;
            width: 7px;
            height: 1.3rem;
            background: #FF5E7E;
            border-radius: 4px;
        }
        .article-content h3 {
            font-size: 1.25rem;
            font-weight: 700;
            color: #1E293B;
            margin-top: 1.8rem;
            margin-bottom: 0.85rem;
        }
        .article-content ul, .article-content ol {
            margin-bottom: 1.35rem;
            padding-left: 1.5rem;
        }
        .article-content ul {
            list-style-type: disc;
        }
        .article-content ol {
            list-style-type: decimal;
        }
        .article-content li {
            margin-bottom: 0.5rem;
            color: #475569;
        }
        .article-content blockquote {
            border-left: 4px solid #FF5E7E;
            background: #FFF5F7;
            padding: 1rem 1.25rem;
            border-radius: 0 1rem 1rem 0;
            margin-bottom: 1.35rem;
            color: #64748B;
            font-style: normal;
        }
        .article-content img {
            border-radius: 1.25rem;
            max-width: 100%;
            height: auto;
            margin: 1.5rem auto;
            box-shadow: 0 4px 20px rgba(0,0,0,0.06);
        }
        .article-content a {
            color: #FF5E7E;
            text-decoration: underline;
            text-underline-offset: 4px;
        }

/* roulang page: category1 */
:root {
            --primary: #FF5E7E;
            --primary-hover: #E04866;
            --accent-gold: #FFAA00;
            --accent-purple: #7C5CFC;
            --bg-page: #F5F7FB;
            --text-main: #2D3436;
            --text-muted: #636E72;
            --border-line: #E2E8F0;
        }
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
            background-color: var(--bg-page);
            color: var(--text-main);
            -webkit-font-smoothing: antialiased;
        }
        .btn-game-primary {
            background-color: #FF5E7E;
            box-shadow: 0 4px 0 #D94462;
            transition: all 0.15s ease-in-out;
        }
        .btn-game-primary:hover {
            background-color: #FF708D;
            transform: translateY(-1px);
            box-shadow: 0 5px 0 #D94462;
        }
        .btn-game-primary:active {
            transform: translateY(2px);
            box-shadow: 0 2px 0 #D94462;
        }
        .btn-game-purple {
            background-color: #7C5CFC;
            box-shadow: 0 4px 0 #5E3FD6;
            transition: all 0.15s ease-in-out;
        }
        .btn-game-purple:hover {
            background-color: #8C6FFD;
            transform: translateY(-1px);
            box-shadow: 0 5px 0 #5E3FD6;
        }
        .btn-game-purple:active {
            transform: translateY(2px);
            box-shadow: 0 2px 0 #5E3FD6;
        }
        .card-elevated {
            background: #FFFFFF;
            border: 1.5px solid #EDF2F7;
            border-radius: 1.5rem;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }
        .card-elevated:hover {
            transform: translateY(-3px);
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
        }
        .filter-tab.active {
            background-color: #FF5E7E;
            color: #ffffff;
            box-shadow: 0 3px 0 #D94462;
        }
        .badge-pulse {
            animation: pulse-glow 2s infinite;
        }
        @keyframes pulse-glow {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.6; }
        }

/* roulang page: category2 */
:root {
            --primary: #FF5E7E;
            --primary-hover: #E04866;
            --accent-gold: #FFAA00;
            --accent-purple: #7C5CFC;
            --bg-page: #F5F7FB;
            --text-main: #2D3436;
            --text-muted: #636E72;
            --border-line: #E2E8F0;
        }
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
            background-color: var(--bg-page);
            color: var(--text-main);
            -webkit-font-smoothing: antialiased;
        }
        .btn-game-primary {
            background-color: #FF5E7E;
            box-shadow: 0 4px 0 #D94462;
            transition: all 0.15s ease-in-out;
        }
        .btn-game-primary:hover {
            background-color: #FF708D;
            transform: translateY(-1px);
            box-shadow: 0 5px 0 #D94462;
        }
        .btn-game-primary:active {
            transform: translateY(2px);
            box-shadow: 0 2px 0 #D94462;
        }
        .btn-game-purple {
            background-color: #7C5CFC;
            box-shadow: 0 4px 0 #5E3FD6;
            transition: all 0.15s ease-in-out;
        }
        .btn-game-purple:hover {
            background-color: #8C6FFD;
            transform: translateY(-1px);
            box-shadow: 0 5px 0 #5E3FD6;
        }
        .btn-game-purple:active {
            transform: translateY(2px);
            box-shadow: 0 2px 0 #5E3FD6;
        }
        .game-badge {
            display: inline-flex;
            align-items: center;
            padding: 4px 12px;
            border-radius: 9999px;
            font-size: 0.825rem;
            font-weight: 600;
        }
        .card-elevated {
            background: #FFFFFF;
            border: 1.5px solid #EDF2F7;
            border-radius: 1.5rem;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }
        .card-elevated:hover {
            transform: translateY(-3px);
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
        }
        .text-glow {
            text-shadow: 0 2px 10px rgba(255, 94, 126, 0.4);
        }
        .slant-box {
            position: relative;
            background: linear-gradient(135deg, #FF5E7E 0%, #7C5CFC 100%);
            clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
        }
        @media (max-width: 768px) {
            .slant-box {
                clip-path: polygon(0 0, 100% 0, 100% 95%, 0 100%);
            }
        }
