/* roulang page: index */
:root {
      --color-bg: #F7F3ED;
      --color-surface: #FFFFFF;
      --color-ink: #20262C;
      --color-muted: #6C6F73;
      --color-primary: #D97742;
      --color-primary-deep: #B8652F;
      --color-accent: #F2C94C;
      --color-line: #E6DFD4;
      --radius-lg: 24px;
      --radius-md: 16px;
      --radius-sm: 8px;
      --shadow-card: 0 10px 30px rgba(31, 29, 27, 0.07);
      --shadow-hover: 0 14px 36px rgba(31, 29, 27, 0.12);
    }
    
    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    
    html {
      scroll-behavior: smooth;
    }
    
    body {
      font-family: 'Inter', 'PingFang SC', 'Hiragino Sans GB', 'Noto Sans SC', 'Microsoft YaHei', sans-serif;
      background-color: var(--color-bg);
      color: var(--color-ink);
      line-height: 1.6;
      padding-bottom: 88px;
    }
    
    img {
      max-width: 100%;
      display: block;
    }
    
    a {
      text-decoration: none;
      color: inherit;
      transition: color 0.2s;
    }
    
    button {
      border: none;
      background: none;
      cursor: pointer;
      font-family: inherit;
    }
    
    .container-site {
      max-width: 1200px;
      margin-left: auto;
      margin-right: auto;
      padding-left: 1.25rem;
      padding-right: 1.25rem;
    }
    
    @media (min-width: 768px) {
      .container-site {
        padding-left: 2rem;
        padding-right: 2rem;
      }
    }
    
    /* Buttons */
    .btn-primary {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background-color: var(--color-primary);
      color: #FFF;
      font-weight: 600;
      padding: 0 1.5rem;
      height: 2.75rem;
      border-radius: 9999px;
      transition: all 0.25s ease;
      white-space: nowrap;
      border: none;
    }
    .btn-primary:hover {
      background-color: var(--color-primary-deep);
      transform: translateY(-1px);
      box-shadow: 0 8px 24px rgba(217, 119, 66, 0.28);
    }
    .btn-outline {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: transparent;
      color: var(--color-primary);
      border: 1.5px solid var(--color-primary);
      font-weight: 600;
      padding: 0 1.5rem;
      height: 2.75rem;
      border-radius: 9999px;
      transition: all 0.25s ease;
      white-space: nowrap;
    }
    .btn-outline:hover {
      background-color: rgba(217, 119, 66, 0.08);
      transform: translateY(-1px);
    }
    
    /* Cards */
    .card {
      background-color: var(--color-surface);
      border: 1px solid var(--color-line);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-card);
      transition: all 0.3s ease;
    }
    .card:hover {
      transform: translateY(-3px);
      box-shadow: var(--shadow-hover);
      border-color: #CFC3B2;
    }
    
    /* Chip */
    .chip {
      display: inline-flex;
      align-items: center;
      padding: 0.375rem 1rem;
      border-radius: 9999px;
      border: 1px solid var(--color-line);
      background-color: var(--color-surface);
      font-size: 14px;
      color: var(--color-ink);
      transition: all 0.2s ease;
      white-space: nowrap;
      cursor: pointer;
    }
    .chip:hover {
      background-color: var(--color-primary);
      color: #FFF;
      border-color: var(--color-primary);
    }
    .chip-active {
      background-color: var(--color-primary);
      color: #FFF;
      border-color: var(--color-primary);
    }
    
    /* Badges */
    .badge-duration {
      background-color: rgba(0, 0, 0, 0.68);
      color: #FFF;
      font-size: 12px;
      padding: 2px 8px;
      border-radius: 6px;
    }
    .badge-hot {
      background-color: var(--color-accent);
      color: var(--color-ink);
      font-size: 12px;
      font-weight: 600;
      padding: 2px 10px;
      border-radius: 6px;
    }
    
    /* Section spacing */
    .section {
      padding-top: 4rem;
      padding-bottom: 4rem;
    }
    @media (min-width: 768px) {
      .section {
        padding-top: 6rem;
        padding-bottom: 6rem;
      }
    }
    
    /* Hero */
    .hero-bg {
      background-image: linear-gradient(to bottom, rgba(247, 243, 237, 0.92), rgba(247, 243, 237, 0.88)), url('/assets/images/backpic/back-1.jpg');
      background-size: cover;
      background-position: center;
    }
    
    /* FAQ */
    .faq-answer {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease;
    }
    .faq-item.active .faq-answer {
      max-height: 400px;
    }
    .faq-icon {
      transition: transform 0.3s ease;
    }
    .faq-item.active .faq-icon {
      transform: rotate(45deg);
    }
    
    /* Scroll indicator */
    @keyframes scrollDown {
      0%, 100% { transform: translateY(0); opacity: 0.6; }
      50% { transform: translateY(8px); opacity: 1; }
    }
    .scroll-indicator {
      animation: scrollDown 2s ease-in-out infinite;
    }
    
    /* Mobile menu */
    .mobile-menu {
      display: none;
    }
    .mobile-menu.open {
      display: block;
    }
    
    @media (max-width: 1023px) {
      .desktop-menu {
        display: none;
      }
      .mobile-menu {
        display: none;
      }
      .mobile-menu.open {
        display: block;
      }
    }
    
    /* Focus */
    a:focus-visible,
    button:focus-visible {
      outline: 2px solid var(--color-primary);
      outline-offset: 2px;
    }
    
    /* Image hover */
    @media (hover: hover) {
      .card-img {
        overflow: hidden;
      }
      .card-img img {
        transition: transform 0.5s ease;
      }
      .card-img:hover img {
        transform: scale(1.04);
      }
    }
    
    /* Line clamp */
    .line-clamp-2 {
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    
    /* Custom list */
    .list-check {
      list-style: none;
    }
    .list-check li {
      position: relative;
      padding-left: 1.75rem;
      margin-bottom: 0.75rem;
    }
    .list-check li::before {
      content: '';
      position: absolute;
      left: 0;
      top: 0.45em;
      width: 16px;
      height: 8px;
      border-left: 2px solid var(--color-primary);
      border-bottom: 2px solid var(--color-primary);
      transform: rotate(-45deg);
    }
    
    /* Nav scroll */
    .nav-wrap {
      position: sticky;
      top: 0;
      z-index: 60;
      background: var(--color-surface);
      border-bottom: 1px solid var(--color-line);
      box-shadow: 0 2px 12px rgba(31, 29, 27, 0.04);
    }
    
    /* Second row chip scroll */
    .chip-scroll {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }
    .chip-scroll::-webkit-scrollbar {
      display: none;
    }
    
    /* Play overlay */
    .play-overlay {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(32, 38, 44, 0.3);
      opacity: 0;
      transition: opacity 0.3s ease;
    }
    .card-img:hover .play-overlay {
      opacity: 1;
    }
    .play-icon {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.9);
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    }
    
    /* Fixed bar */
    .fixed-bar {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 50;
      background: var(--color-surface);
      border-top: 1px solid var(--color-line);
      box-shadow: 0 -4px 20px rgba(31, 29, 27, 0.06);
    }
    
    /* Pagination circles */
    .page-dot {
      width: 38px;
      height: 38px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      border: 1px solid var(--color-line);
      font-size: 14px;
      transition: all 0.2s;
      color: var(--color-muted);
    }
    .page-dot:hover {
      border-color: var(--color-primary);
      color: var(--color-primary);
    }
    .page-dot-active {
      background-color: var(--color-primary);
      color: #FFF;
      border-color: var(--color-primary);
    }
    
    /* Media query for mobile bottom padding */
    @media (max-width: 639px) {
      body {
        padding-bottom: 120px;
      }
    }
    
    /* Fact number */
    .fact-num {
      font-size: 2.25rem;
      font-weight: 900;
      color: var(--color-primary);
      line-height: 1.2;
    }
    @media (min-width: 768px) {
      .fact-num {
        font-size: 3rem;
      }
    }
    
    /* Quote card */
    .quote-card {
      border-left: 3px solid var(--color-primary);
    }
    
    /* Decorative paw */
    .paw-bg {
      position: absolute;
      opacity: 0.06;
      pointer-events: none;
    }

/* roulang page: category1 */
:root {
            --color-bg: #F7F3ED;
            --color-surface: #FFFFFF;
            --color-ink: #20262C;
            --color-muted: #6C6F73;
            --color-primary: #D97742;
            --color-primary-deep: #B8652F;
            --color-accent: #F2C94C;
            --color-line: #E6DFD4;
            --radius-lg: 24px;
            --radius-md: 16px;
            --radius-sm: 8px;
            --shadow-card: 0 10px 30px rgba(31, 29, 27, 0.07);
            --shadow-hover: 0 14px 36px rgba(31, 29, 27, 0.12);
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: 'Inter', 'PingFang SC', 'Hiragino Sans GB', 'Noto Sans SC', 'Microsoft YaHei', sans-serif;
            background-color: var(--color-bg);
            color: var(--color-ink);
            line-height: 1.6;
            padding-bottom: 120px;
        }

        img {
            max-width: 100%;
            display: block;
        }

        a {
            text-decoration: none;
            color: inherit;
            transition: color 0.2s;
        }

        button {
            border: none;
            background: none;
            cursor: pointer;
            font-family: inherit;
        }

        .container-site {
            max-width: 1200px;
            margin-left: auto;
            margin-right: auto;
            padding-left: 1.25rem;
            padding-right: 1.25rem;
        }

        @media (min-width: 768px) {
            .container-site {
                padding-left: 2rem;
                padding-right: 2rem;
            }
        }

        .btn-primary {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background-color: var(--color-primary);
            color: #FFF;
            font-weight: 600;
            padding: 0 1.5rem;
            height: 2.75rem;
            border-radius: 9999px;
            transition: all 0.25s ease;
            white-space: nowrap;
            border: none;
        }

        .btn-primary:hover {
            background-color: var(--color-primary-deep);
            transform: translateY(-1px);
            box-shadow: 0 8px 24px rgba(217, 119, 66, 0.28);
        }

        .btn-outline {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: transparent;
            color: var(--color-primary);
            border: 1.5px solid var(--color-primary);
            font-weight: 600;
            padding: 0 1.5rem;
            height: 2.75rem;
            border-radius: 9999px;
            transition: all 0.25s ease;
            white-space: nowrap;
        }

        .btn-outline:hover {
            background-color: rgba(217, 119, 66, 0.08);
            transform: translateY(-1px);
        }

        .card {
            background-color: var(--color-surface);
            border: 1px solid var(--color-line);
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-card);
            transition: all 0.3s ease;
        }

        .card:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-hover);
            border-color: #CFC3B2;
        }

        .chip {
            display: inline-flex;
            align-items: center;
            padding: 0.375rem 1rem;
            border-radius: 9999px;
            border: 1px solid var(--color-line);
            background-color: var(--color-surface);
            font-size: 14px;
            color: var(--color-ink);
            transition: all 0.2s ease;
            white-space: nowrap;
            cursor: pointer;
        }

        .chip:hover {
            background-color: var(--color-primary);
            color: #FFF;
            border-color: var(--color-primary);
        }

        .chip-active {
            background-color: var(--color-primary);
            color: #FFF;
            border-color: var(--color-primary);
        }

        .badge-duration {
            background-color: rgba(0, 0, 0, 0.68);
            color: #FFF;
            font-size: 12px;
            padding: 2px 8px;
            border-radius: 6px;
            backdrop-filter: blur(4px);
        }

        .badge-hot {
            background-color: var(--color-accent);
            color: var(--color-ink);
            font-size: 12px;
            font-weight: 600;
            padding: 2px 10px;
            border-radius: 6px;
        }

        .section {
            padding-top: 4rem;
            padding-bottom: 4rem;
        }

        @media (min-width: 768px) {
            .section {
                padding-top: 6rem;
                padding-bottom: 6rem;
            }
        }

        .hero-bg {
            background-image: linear-gradient(to bottom, rgba(247, 243, 237, 0.92), rgba(247, 243, 237, 0.88)), url('/assets/images/backpic/back-1.jpg');
            background-size: cover;
            background-position: center;
        }

        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease;
        }

        .faq-item.active .faq-answer {
            max-height: 400px;
        }

        .faq-icon {
            transition: transform 0.3s ease;
        }

        .faq-item.active .faq-icon {
            transform: rotate(45deg);
        }

        .mobile-menu {
            display: none;
        }

        .mobile-menu.open {
            display: block;
        }

        .desktop-menu {
            display: none;
        }

        @media (min-width: 1024px) {
            .desktop-menu {
                display: flex;
            }
        }

        @media (max-width: 1023px) {
            .desktop-menu {
                display: none;
            }
        }

        a:focus-visible,
        button:focus-visible {
            outline: 2px solid var(--color-primary);
            outline-offset: 2px;
        }

        .card-img {
            overflow: hidden;
        }

        .card-img img {
            transition: transform 0.5s ease;
        }

        .card-img:hover img {
            transform: scale(1.04);
        }

        .card-img:hover .play-overlay {
            opacity: 1;
        }

        .play-overlay {
            transition: opacity 0.3s ease;
        }

        .list-check {
            list-style: none;
        }

        .list-check li {
            position: relative;
            padding-left: 1.75rem;
            margin-bottom: 0.75rem;
        }

        .list-check li::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0.45em;
            width: 16px;
            height: 8px;
            border-left: 2px solid var(--color-primary);
            border-bottom: 2px solid var(--color-primary);
            transform: rotate(-45deg);
        }

        .nav-wrap {
            position: sticky;
            top: 0;
            z-index: 60;
            background: var(--color-surface);
            border-bottom: 1px solid var(--color-line);
            box-shadow: 0 2px 12px rgba(31, 29, 27, 0.04);
        }

        .chip-scroll {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
        }

        .chip-scroll::-webkit-scrollbar {
            display: none;
        }

        .quote-card {
            border-left: 3px solid var(--color-primary);
        }

        /* ---- 分类页特有 ---- */

        .card-title {
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .tag-pill {
            display: inline-flex;
            align-items: center;
            padding: 6px 14px;
            border-radius: 9999px;
            border: 1px solid var(--color-line);
            background-color: var(--color-surface);
            font-size: 13px;
            color: var(--color-muted);
            transition: all 0.2s ease;
            cursor: pointer;
            white-space: nowrap;
        }

        .tag-pill:hover {
            background-color: var(--color-primary);
            color: #FFF;
            border-color: var(--color-primary);
        }

        .hot-rank {
            transition: color 0.2s ease;
        }

        .hot-rank:hover {
            color: var(--color-primary);
        }

        .pagination-num {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 40px;
            height: 40px;
            border-radius: 9999px;
            border: 1px solid var(--color-line);
            background-color: var(--color-surface);
            color: var(--color-ink);
            font-size: 14px;
            font-weight: 500;
            transition: all 0.2s ease;
        }

        .pagination-num:hover {
            border-color: var(--color-primary);
            color: var(--color-primary);
        }

        .pagination-num.active {
            background-color: var(--color-primary);
            border-color: var(--color-primary);
            color: #FFF;
            box-shadow: 0 4px 16px rgba(217, 119, 66, 0.25);
        }

        .pagination-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            height: 40px;
            padding: 0 16px;
            border-radius: 9999px;
            border: 1px solid var(--color-line);
            background-color: var(--color-surface);
            font-size: 14px;
            color: var(--color-ink);
            transition: all 0.2s ease;
        }

        .pagination-btn:hover {
            border-color: var(--color-primary);
            color: var(--color-primary);
        }

        .category-header-bg {
            background-image: linear-gradient(120deg, rgba(217, 119, 66, 0.06), rgba(247, 243, 237, 0) 60%);
        }

        .video-card-link:hover .play-icon {
            opacity: 1;
            transform: translate(-50%, -50%) scale(1);
        }

        .play-icon {
            opacity: 0;
            transform: translate(-50%, -50%) scale(0.8);
            transition: all 0.3s ease;
        }

        @media (min-width: 768px) {
            body {
                padding-bottom: 88px;
            }
        }

        @media (hover: hover) {
            .card-img {
                overflow: hidden;
            }
            .card-img img {
                transition: transform 0.5s ease;
            }
            .card-img:hover img {
                transform: scale(1.04);
            }
            .card-img:hover .play-overlay {
                opacity: 1;
            }
            .play-overlay {
                opacity: 0;
                transition: opacity 0.3s ease;
            }
        }
