/* roulang page: index */
:root {
      --bg: #f7f3ea;
      --bg-soft: #efe8da;
      --card: #fffdf8;
      --card-2: #f3efe4;
      --line: #ded6c8;
      --text: #1f2421;
      --muted: #68736c;
      --brand: #163c34;
      --brand-2: #24564a;
      --accent: #b88942;
      --accent-soft: #f3e4c6;
      --shadow: 0 16px 42px rgba(22, 60, 52, 0.10);
      --shadow-2: 0 12px 28px rgba(31, 36, 33, 0.08);
      --radius: 18px;
      --radius-sm: 12px;
      --container: 1224px;
      --gap: 24px;
      --gap-lg: 40px;
      --transition: 220ms ease;
    }
    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      font-family: PingFang SC, Microsoft YaHei, Noto Sans SC, Arial, sans-serif;
      color: var(--text);
      background:
        radial-gradient(circle at top left, rgba(184, 137, 66, 0.08), transparent 32%),
        radial-gradient(circle at top right, rgba(22, 60, 52, 0.06), transparent 30%),
        var(--bg);
      line-height: 1.8;
      letter-spacing: 0;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }
    a { color: inherit; text-decoration: none; }
    img { display: block; max-width: 100%; }
    button, input, textarea, select { font: inherit; }
    button { border: 0; background: none; cursor: pointer; }
    .container {
      width: min(100% - 32px, var(--container));
      margin: 0 auto;
    }
    .skip-link {
      position: absolute;
      left: -9999px;
      top: 10px;
      z-index: 1000;
      background: var(--brand);
      color: #fff;
      padding: 10px 16px;
      border-radius: 999px;
    }
    .skip-link:focus { left: 16px; }
    .site-header {
      position: sticky;
      top: 0;
      z-index: 50;
      backdrop-filter: blur(12px);
      background: rgba(247, 243, 234, 0.84);
      border-bottom: 1px solid rgba(222, 214, 200, 0.85);
    }
    .site-header.is-scrolled {
      background: rgba(247, 243, 234, 0.96);
      box-shadow: 0 10px 30px rgba(22, 60, 52, 0.08);
    }
    .header-inner {
      min-height: 78px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }
    .brand {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      min-width: 0;
      color: var(--brand);
      font-weight: 700;
      letter-spacing: 0;
    }
    .brand-mark {
      width: 42px;
      height: 42px;
      border-radius: 14px;
      background: linear-gradient(145deg, var(--brand), #0f281f);
      display: grid;
      place-items: center;
      color: #f7f3ea;
      box-shadow: 0 12px 22px rgba(22, 60, 52, 0.16);
      flex: 0 0 auto;
    }
    .brand-mark svg { width: 22px; height: 22px; }
    .brand-text {
      font-size: 15px;
      line-height: 1.2;
      max-width: 210px;
      overflow-wrap: anywhere;
    }
    .nav-wrap { display: flex; align-items: center; gap: 18px; }
    .site-nav {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      justify-content: flex-end;
    }
    .site-nav a {
      color: var(--muted);
      padding: 10px 14px;
      border-radius: 999px;
      transition: color var(--transition), background var(--transition), transform var(--transition), box-shadow var(--transition);
    }
    .site-nav a:hover,
    .site-nav a:focus-visible,
    .site-nav a.active {
      color: var(--brand);
      background: rgba(22, 60, 52, 0.08);
      box-shadow: inset 0 0 0 1px rgba(22, 60, 52, 0.10);
      transform: translateY(-1px);
      outline: none;
    }
    .nav-cta {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 12px 18px;
      border-radius: 999px;
      background: var(--brand);
      color: #f8f6ef;
      box-shadow: 0 12px 24px rgba(22, 60, 52, 0.16);
      transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
      white-space: nowrap;
    }
    .nav-cta:hover,
    .nav-cta:focus-visible {
      background: var(--brand-2);
      transform: translateY(-1px);
      box-shadow: 0 16px 28px rgba(22, 60, 52, 0.22);
      outline: none;
    }
    .menu-toggle {
      display: none;
      width: 46px;
      height: 46px;
      border-radius: 12px;
      background: #fff;
      border: 1px solid var(--line);
      align-items: center;
      justify-content: center;
      color: var(--brand);
    }
    .hero {
      position: relative;
      overflow: hidden;
      padding: 34px 0 16px;
    }
    .hero-panel {
      position: relative;
      overflow: hidden;
      border: 1px solid rgba(222, 214, 200, 0.88);
      border-radius: 28px;
      background:
        linear-gradient(120deg, rgba(22, 60, 52, 0.94), rgba(22, 60, 52, 0.82) 60%, rgba(22, 60, 52, 0.70)),
        url('/assets/images/backpic/back-1.jpg') center/cover no-repeat;
      box-shadow: var(--shadow);
      color: #fff;
    }
    .hero-panel::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(10, 24, 18, 0.08), rgba(10, 24, 18, 0.30));
      pointer-events: none;
    }
    .hero-inner {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: 1.05fr 0.95fr;
      gap: 28px;
      padding: 44px;
      min-height: 540px;
      align-items: center;
    }
    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 8px 14px;
      border-radius: 999px;
      background: rgba(243, 228, 198, 0.15);
      color: #f3e4c6;
      border: 1px solid rgba(243, 228, 198, 0.20);
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0;
    }
    .hero h1 {
      margin: 18px 0 16px;
      font-size: clamp(34px, 5vw, 58px);
      line-height: 1.1;
      letter-spacing: 0;
      max-width: 11.5em;
    }
    .hero p {
      margin: 0;
      max-width: 38em;
      color: rgba(255, 255, 255, 0.88);
      font-size: 17px;
      line-height: 1.9;
    }
    .hero-points {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      margin: 28px 0;
    }
    .point {
      padding: 14px 16px;
      border-radius: 16px;
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.14);
      backdrop-filter: blur(10px);
    }
    .point strong {
      display: block;
      font-size: 15px;
      margin-bottom: 6px;
      color: #fff;
    }
    .point span {
      display: block;
      color: rgba(255, 255, 255, 0.76);
      font-size: 13px;
      line-height: 1.7;
    }
    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 16px;
    }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-height: 48px;
      padding: 0 18px;
      border-radius: 999px;
      font-weight: 600;
      transition: transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
    }
    .btn-primary {
      background: var(--accent);
      color: #fffdf8;
      box-shadow: 0 14px 28px rgba(184, 137, 66, 0.26);
    }
    .btn-primary:hover,
    .btn-primary:focus-visible {
      background: #a97432;
      transform: translateY(-1px);
      outline: none;
    }
    .btn-secondary {
      background: rgba(255, 255, 255, 0.10);
      color: #fff;
      border: 1px solid rgba(255, 255, 255, 0.22);
    }
    .btn-secondary:hover,
    .btn-secondary:focus-visible {
      background: rgba(255, 255, 255, 0.16);
      transform: translateY(-1px);
      outline: none;
    }
    .hero-aside {
      display: grid;
      gap: 16px;
      align-self: stretch;
    }
    .visual-card {
      position: relative;
      min-height: 250px;
      border-radius: 22px;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.12);
      background: url('/assets/images/backpic/back-2.png') center/cover no-repeat;
      box-shadow: 0 20px 40px rgba(0, 0, 0, 0.18);
    }
    .visual-card::before {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(22, 60, 52, 0.18), rgba(22, 60, 52, 0.52));
    }
    .visual-copy {
      position: absolute;
      inset: auto 18px 18px 18px;
      z-index: 1;
      display: grid;
      gap: 10px;
    }
    .visual-copy strong {
      font-size: 18px;
      line-height: 1.4;
    }
    .visual-copy span {
      color: rgba(255, 255, 255, 0.86);
      font-size: 14px;
      line-height: 1.7;
    }
    .hero-stats {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
    }
    .stat {
      padding: 16px;
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.14);
      backdrop-filter: blur(10px);
    }
    .stat b {
      display: block;
      color: #f3e4c6;
      font-size: 22px;
      line-height: 1.1;
      margin-bottom: 6px;
    }
    .stat span {
      color: rgba(255, 255, 255, 0.76);
      font-size: 13px;
      line-height: 1.6;
    }
    .section {
      padding: 70px 0;
    }
    .section-tight { padding-top: 42px; }
    .section-head {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 20px;
      margin-bottom: 24px;
    }
    .section-title {
      margin: 0;
      font-size: clamp(26px, 3vw, 38px);
      line-height: 1.15;
      color: var(--brand);
      letter-spacing: 0;
    }
    .section-desc {
      margin: 0;
      max-width: 62ch;
      color: var(--muted);
      font-size: 16px;
      line-height: 1.85;
    }
    .chip-row {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }
    .chip {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      min-height: 36px;
      padding: 0 14px;
      border-radius: 999px;
      background: rgba(22, 60, 52, 0.08);
      color: var(--brand);
      border: 1px solid rgba(22, 60, 52, 0.10);
      font-size: 13px;
      font-weight: 600;
      white-space: nowrap;
    }
    .split-grid {
      display: grid;
      grid-template-columns: 0.92fr 1.08fr;
      gap: 24px;
      align-items: start;
    }
    .intro-panel {
      padding: 28px;
      border-radius: var(--radius);
      background: linear-gradient(180deg, #fffdf8, #f6f0e3);
      border: 1px solid var(--line);
      box-shadow: var(--shadow-2);
      position: sticky;
      top: 100px;
    }
    .intro-panel h2 {
      margin: 0 0 14px;
      font-size: 30px;
      line-height: 1.2;
      color: var(--brand);
    }
    .intro-panel p {
      margin: 0 0 18px;
      color: var(--muted);
      font-size: 16px;
      line-height: 1.9;
    }
    .check-list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 12px;
    }
    .check-list li {
      display: flex;
      gap: 10px;
      align-items: flex-start;
      color: var(--text);
      font-size: 15px;
      line-height: 1.75;
    }
    .check-list li::before {
      content: "";
      width: 10px;
      height: 10px;
      margin-top: 8px;
      border-radius: 50%;
      background: var(--accent);
      box-shadow: 0 0 0 4px rgba(184, 137, 66, 0.16);
      flex: 0 0 auto;
    }
    .scene-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
    }
    .scene-card {
      min-height: 220px;
      padding: 22px;
      border-radius: var(--radius);
      border: 1px solid var(--line);
      background: var(--card);
      box-shadow: var(--shadow-2);
      position: relative;
      overflow: hidden;
      transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    }
    .scene-card::after {
      content: "";
      position: absolute;
      inset: auto -24px -24px auto;
      width: 120px;
      height: 120px;
      border-radius: 50%;
      background: rgba(184, 137, 66, 0.08);
      pointer-events: none;
    }
    .scene-card:hover {
      transform: translateY(-3px);
      border-color: rgba(184, 137, 66, 0.42);
      box-shadow: 0 20px 36px rgba(22, 60, 52, 0.12);
    }
    .scene-icon {
      width: 46px;
      height: 46px;
      border-radius: 14px;
      display: grid;
      place-items: center;
      background: rgba(22, 60, 52, 0.08);
      color: var(--brand);
      margin-bottom: 16px;
    }
    .scene-card h3 {
      margin: 0 0 10px;
      color: var(--brand);
      font-size: 20px;
      line-height: 1.35;
    }
    .scene-card p {
      margin: 0 0 18px;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.85;
      max-width: 32ch;
    }
    .scene-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--brand);
      font-weight: 600;
      font-size: 14px;
    }
    .scene-link svg { transition: transform var(--transition); }
    .scene-card:hover .scene-link svg { transform: translateX(3px); }
    .dynamic-band {
      background: linear-gradient(180deg, rgba(22, 60, 52, 0.05), rgba(22, 60, 52, 0));
    }
    .timeline {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
    }
    .timeline-item {
      padding: 22px;
      border-radius: 18px;
      background: var(--card);
      border: 1px solid var(--line);
      box-shadow: var(--shadow-2);
      position: relative;
    }
    .timeline-item::before {
      content: "";
      width: 14px;
      height: 14px;
      border-radius: 50%;
      background: var(--accent);
      box-shadow: 0 0 0 6px rgba(184, 137, 66, 0.12);
      display: block;
      margin-bottom: 18px;
    }
    .timeline-item h3 {
      margin: 0 0 10px;
      color: var(--brand);
      font-size: 18px;
      line-height: 1.35;
    }
    .timeline-item p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.8;
    }
    .content-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }
    .content-card {
      overflow: hidden;
      border-radius: var(--radius);
      background: var(--card);
      border: 1px solid var(--line);
      box-shadow: var(--shadow-2);
      transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    }
    .content-card:hover {
      transform: translateY(-3px);
      border-color: rgba(184, 137, 66, 0.42);
      box-shadow: 0 22px 40px rgba(22, 60, 52, 0.12);
    }
    .content-media {
      aspect-ratio: 16 / 10;
      background: #e8e0d0 center/cover no-repeat;
      position: relative;
    }
    .content-body {
      padding: 20px;
    }
    .meta-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
      margin-bottom: 12px;
      color: var(--muted);
      font-size: 13px;
    }
    .meta-dot {
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: rgba(104, 115, 108, 0.6);
    }
    .content-body h3 {
      margin: 0 0 10px;
      color: var(--brand);
      font-size: 19px;
      line-height: 1.45;
    }
    .content-body p {
      margin: 0;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.85;
    }
    .list-section {
      display: grid;
      gap: 18px;
    }
    .list-head {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
    }
    .cms-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }
    .cms-card {
      display: grid;
      grid-template-columns: 96px minmax(0, 1fr);
      gap: 16px;
      padding: 16px;
      border-radius: 18px;
      background: var(--card);
      border: 1px solid var(--line);
      box-shadow: var(--shadow-2);
      transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
      min-width: 0;
    }
    .cms-card:hover {
      transform: translateY(-2px);
      border-color: rgba(184, 137, 66, 0.40);
      box-shadow: 0 18px 34px rgba(22, 60, 52, 0.12);
    }
    .cms-thumb {
      border-radius: 14px;
      overflow: hidden;
      aspect-ratio: 4 / 3;
      background: #e9e1d2 center/cover no-repeat;
    }
    .cms-content {
      min-width: 0;
    }
    .cms-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 10px;
      font-size: 12px;
      color: var(--muted);
    }
    .badge {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 0 10px;
      border-radius: 999px;
      background: rgba(184, 137, 66, 0.12);
      color: #7c5a23;
      font-weight: 600;
    }
    .cms-content h3 {
      margin: 0 0 10px;
      color: var(--brand);
      font-size: 18px;
      line-height: 1.5;
      overflow-wrap: anywhere;
    }
    .cms-content p {
      margin: 0 0 12px;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.8;
    }
    .read-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--brand);
      font-weight: 600;
      font-size: 14px;
    }
    .empty-state {
      padding: 28px;
      border-radius: 18px;
      border: 1px dashed rgba(22, 60, 52, 0.24);
      background: rgba(255, 255, 255, 0.55);
      color: var(--muted);
      display: grid;
      gap: 14px;
      justify-items: start;
    }
    .empty-state strong {
      color: var(--brand);
      font-size: 18px;
    }
    .empty-state p {
      margin: 0;
      font-size: 15px;
      line-height: 1.8;
    }
    .feature-box {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }
    .feature-item {
      padding: 22px;
      border-radius: 18px;
      background: linear-gradient(180deg, #fffdf8, #f7f1e6);
      border: 1px solid var(--line);
      box-shadow: var(--shadow-2);
    }
    .feature-item b {
      display: block;
      color: var(--brand);
      font-size: 18px;
      line-height: 1.35;
      margin-bottom: 10px;
    }
    .feature-item p {
      margin: 0;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.85;
    }
    .faq-grid {
      display: grid;
      grid-template-columns: 0.96fr 1.04fr;
      gap: 18px;
      align-items: start;
    }
    .faq-intro {
      padding: 28px;
      border-radius: var(--radius);
      background: var(--brand);
      color: #fff;
      box-shadow: var(--shadow);
    }
    .faq-intro h2 {
      margin: 0 0 12px;
      font-size: 30px;
      line-height: 1.2;
    }
    .faq-intro p {
      margin: 0 0 18px;
      color: rgba(255, 255, 255, 0.84);
      font-size: 16px;
      line-height: 1.9;
    }
    .faq-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }
    .faq-tags .chip {
      background: rgba(255, 255, 255, 0.10);
      color: #fff;
      border-color: rgba(255, 255, 255, 0.16);
    }
    .faq-list {
      display: grid;
      gap: 12px;
    }
    .faq-item {
      border-radius: 18px;
      border: 1px solid var(--line);
      background: var(--card);
      box-shadow: var(--shadow-2);
      overflow: hidden;
    }
    .faq-question {
      width: 100%;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 14px;
      padding: 18px 20px;
      color: var(--brand);
      font-weight: 600;
      text-align: left;
    }
    .faq-question span { line-height: 1.6; }
    .faq-question svg { flex: 0 0 auto; transition: transform var(--transition); }
    .faq-item.active .faq-question svg { transform: rotate(180deg); }
    .faq-answer {
      max-height: 0;
      overflow: hidden;
      transition: max-height var(--transition);
      border-top: 1px solid transparent;
    }
    .faq-item.active .faq-answer {
      max-height: 220px;
      border-top-color: var(--line);
    }
    .faq-answer p {
      margin: 0;
      padding: 16px 20px 20px;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.85;
    }
    .contact-band {
      padding: 26px 0 72px;
    }
    .cta-panel {
      border-radius: 28px;
      overflow: hidden;
      background: linear-gradient(135deg, var(--brand), #0f2b24 72%);
      color: #fff;
      box-shadow: var(--shadow);
      border: 1px solid rgba(255, 255, 255, 0.10);
    }
    .cta-inner {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 24px;
      padding: 34px 36px;
      align-items: center;
    }
    .cta-inner h2 {
      margin: 0 0 12px;
      font-size: clamp(28px, 3.2vw, 40px);
      line-height: 1.15;
    }
    .cta-inner p {
      margin: 0;
      color: rgba(255, 255, 255, 0.84);
      font-size: 16px;
      line-height: 1.9;
      max-width: 52ch;
    }
    .cta-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      justify-content: flex-end;
    }
    .cta-note {
      margin-top: 14px;
      color: rgba(255, 255, 255, 0.74);
      font-size: 13px;
      line-height: 1.7;
    }
    .site-footer {
      background: #102720;
      color: rgba(255, 255, 255, 0.88);
      padding: 40px 0 28px;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    .footer-grid {
      display: grid;
      grid-template-columns: 1.2fr 0.8fr 0.8fr;
      gap: 24px;
    }
    .footer-title {
      margin: 0 0 12px;
      color: #f6f1e8;
      font-size: 18px;
      line-height: 1.4;
    }
    .footer-text {
      margin: 0;
      color: rgba(255, 255, 255, 0.74);
      font-size: 14px;
      line-height: 1.9;
    }
    .footer-links {
      display: grid;
      gap: 10px;
    }
    .footer-links a {
      color: rgba(255, 255, 255, 0.84);
      transition: color var(--transition), transform var(--transition);
      width: fit-content;
    }
    .footer-links a:hover,
    .footer-links a:focus-visible {
      color: #f3e4c6;
      transform: translateX(2px);
      outline: none;
    }
    .copyright {
      margin-top: 24px;
      padding-top: 18px;
      border-top: 1px solid rgba(255, 255, 255, 0.10);
      color: rgba(255, 255, 255, 0.58);
      font-size: 13px;
      line-height: 1.8;
    }
    .backdrop {
      position: fixed;
      inset: 0;
      background: rgba(10, 24, 18, 0.42);
      opacity: 0;
      pointer-events: none;
      transition: opacity var(--transition);
      z-index: 40;
    }
    .backdrop.show {
      opacity: 1;
      pointer-events: auto;
    }
    .floating-label {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 8px 12px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.10);
      border: 1px solid rgba(255, 255, 255, 0.16);
      color: #f6f1e8;
      font-size: 12px;
      font-weight: 600;
    }
    .supporting-note {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 14px;
    }
    .supporting-note .chip {
      background: rgba(255, 255, 255, 0.10);
      color: #fff;
      border-color: rgba(255, 255, 255, 0.14);
    }
    .image-frame {
      position: relative;
      border-radius: 22px;
      overflow: hidden;
      aspect-ratio: 16 / 9;
      background: url('/assets/images/coverpic/cover-1.png') center/cover no-repeat;
      border: 1px solid var(--line);
      box-shadow: var(--shadow-2);
    }
    .image-frame::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(22, 60, 52, 0.08), rgba(22, 60, 52, 0.36));
    }
    .image-frame .image-text {
      position: absolute;
      left: 18px;
      right: 18px;
      bottom: 18px;
      z-index: 1;
      color: #fff;
    }
    .image-text strong {
      display: block;
      font-size: 18px;
      line-height: 1.4;
      margin-bottom: 6px;
    }
    .image-text span {
      font-size: 14px;
      line-height: 1.7;
      color: rgba(255, 255, 255, 0.88);
    }
    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }
    :focus-visible {
      outline: 3px solid rgba(184, 137, 66, 0.55);
      outline-offset: 2px;
    }
    @media (max-width: 1100px) {
      .hero-inner { grid-template-columns: 1fr; padding: 32px; min-height: auto; }
      .split-grid { grid-template-columns: 1fr; }
      .intro-panel { position: static; }
      .faq-grid { grid-template-columns: 1fr; }
      .cta-inner { grid-template-columns: 1fr; }
      .footer-grid { grid-template-columns: 1fr 1fr; }
      .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 860px) {
      .menu-toggle { display: inline-flex; }
      .nav-wrap { position: relative; }
      .site-nav {
        position: absolute;
        top: calc(100% + 12px);
        right: 0;
        left: 0;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
        padding: 12px;
        border-radius: 18px;
        background: rgba(247, 243, 234, 0.98);
        border: 1px solid var(--line);
        box-shadow: var(--shadow);
      }
      .site-nav.open { display: flex; }
      .site-nav a { width: 100%; }
      .nav-cta { display: none; }
      .hero-points, .hero-stats, .feature-box, .content-grid, .cms-list, .scene-grid { grid-template-columns: 1fr; }
      .footer-grid { grid-template-columns: 1fr; }
      .content-card, .cms-card { grid-template-columns: 1fr; }
      .hero h1 { max-width: 100%; }
      .hero-inner { padding: 26px; }
      .section { padding: 56px 0; }
    }
    @media (max-width: 560px) {
      .container { width: min(100% - 24px, var(--container)); }
      .header-inner { min-height: 72px; }
      .brand-text { max-width: 170px; font-size: 14px; }
      .hero-panel { border-radius: 22px; }
      .hero-inner { padding: 22px; }
      .hero p, .section-desc, .intro-panel p, .faq-intro p, .cta-inner p { font-size: 15px; }
      .hero-points { gap: 10px; }
      .point, .stat, .scene-card, .timeline-item, .feature-item, .cms-card, .faq-item { border-radius: 16px; }
      .section-head { flex-direction: column; align-items: flex-start; }
      .cta-inner, .faq-intro, .intro-panel { padding: 22px; }
      .faq-question { padding: 16px 18px; }
      .faq-answer p { padding: 0 18px 18px; }
      .site-footer { padding: 34px 0 24px; }
    }

/* roulang page: article */
:root{--bg:#f7f3ea;--soft:#efe8da;--card:#fffdf8;--line:#ded6c8;--text:#1f2421;--muted:#68736c;--brand:#163c34;--brand2:#24564a;--gold:#b88942;--goldsoft:#f3e4c6;--shadow:0 16px 42px rgba(22,60,52,.1);--shadow2:0 12px 28px rgba(31,36,33,.08);--radius:18px;--sm:12px;--max:1224px;--ease:220ms ease}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,Arial,sans-serif;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit;border:0;cursor:pointer}.container{width:min(calc(100% - 32px),var(--max));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(247,243,234,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:box-shadow var(--ease)}.site-header.is-scrolled{box-shadow:0 10px 30px rgba(22,60,52,.1)}.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;color:var(--brand);font-weight:700;min-width:0}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--brand);color:#fff;box-shadow:0 12px 22px rgba(22,60,52,.16);flex:none}.brand-mark svg{width:22px;height:22px}.brand-text{font-size:15px;line-height:1.2;max-width:210px;overflow-wrap:anywhere}.nav-wrap{display:flex;align-items:center;gap:18px}.site-nav{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.site-nav a{padding:10px 14px;border-radius:999px;color:var(--muted);transition:all var(--ease)}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a.active{color:var(--brand);background:rgba(22,60,52,.08);outline:0}.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;font-weight:600;transition:all var(--ease)}.nav-cta{background:var(--brand);color:#fff}.nav-cta:hover,.nav-cta:focus-visible{background:var(--brand2);transform:translateY(-2px);outline:0}.menu-toggle{display:none;width:46px;height:46px;border-radius:12px;background:#fff;border:1px solid var(--line);color:var(--brand)}
    .article-hero{padding:64px 0 44px;background:linear-gradient(115deg,rgba(22,60,52,.97),rgba(22,60,52,.84)),url('/assets/images/backpic/back-2.png') center/cover;color:#fff}.crumbs{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:rgba(255,255,255,.7);font-size:14px;margin-bottom:24px}.crumbs a:hover{color:#f3e4c6}.crumbs .sep{color:var(--gold)}.article-head{max-width:850px}.article-tag,.badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 13px;font-size:13px;font-weight:600}.article-tag{background:rgba(243,228,198,.14);border:1px solid rgba(243,228,198,.28);color:var(--goldsoft)}.article-head h1{font-size:clamp(32px,5vw,56px);line-height:1.18;margin:18px 0 18px;overflow-wrap:anywhere}.article-summary{font-size:17px;color:rgba(255,255,255,.84);max-width:760px;margin:0}.meta-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px;color:rgba(255,255,255,.68);font-size:14px}.meta-row span{display:inline-flex;align-items:center;gap:7px}.article-layout{display:grid;grid-template-columns:minmax(0,820px) 300px;gap:44px;align-items:start;padding:64px 0 86px}.article-main{min-width:0}.cover{width:100%;aspect-ratio:16/7;object-fit:cover;border-radius:18px;margin-bottom:34px;box-shadow:var(--shadow)}.article-content{font-size:17px;line-height:1.95}.article-content h2{font-size:30px;line-height:1.35;color:var(--brand);margin:42px 0 16px;padding-left:16px;border-left:4px solid var(--gold)}.article-content h3{font-size:22px;color:var(--brand);margin:30px 0 10px}.article-content p{margin:0 0 20px}.article-content a{color:var(--brand);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}.article-content ul,.article-content ol{padding:18px 24px 18px 42px;margin:18px 0;background:var(--soft);border-radius:var(--sm)}.article-content li{margin:6px 0}.article-content blockquote{margin:28px 0;padding:20px 24px;border-left:4px solid var(--gold);background:var(--goldsoft);border-radius:0 var(--sm) var(--sm) 0;color:var(--brand)}.article-content table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;margin:24px 0;background:var(--card)}.article-content th,.article-content td{padding:12px 16px;border:1px solid var(--line);text-align:left;white-space:nowrap}.article-content th{background:var(--brand);color:#fff}.article-content img{width:100%;height:auto;border-radius:14px;margin:26px 0}.article-content figure{margin:28px 0}.article-content figcaption{text-align:center;color:var(--muted);font-size:13px}.badge{background:var(--goldsoft);color:var(--brand)}
    .sidebar{position:sticky;top:104px;display:grid;gap:16px}.side-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow2)}.side-card h2,.side-card h3{font-size:18px;color:var(--brand);margin:0 0 13px}.side-card p{font-size:14px;color:var(--muted);margin:0}.side-list{display:grid;gap:9px}.side-list a{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted);transition:color var(--ease)}.side-list a:last-child{border-bottom:0}.side-list a:hover{color:var(--brand)}.side-list strong{color:var(--gold);font-size:18px}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 12px 24px rgba(22,60,52,.16)}.btn-primary:hover,.btn-primary:focus-visible{background:var(--brand2);transform:translateY(-2px);outline:0}.btn-secondary{border:1px solid var(--gold);color:var(--brand);background:transparent}.btn-secondary:hover,.btn-secondary:focus-visible{background:var(--goldsoft);transform:translateY(-2px);outline:0}.article-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:38px;padding-top:28px;border-top:1px solid var(--line)}.related{padding:72px 0;background:var(--soft)}.section-kicker{color:var(--gold);font-size:13px;font-weight:700;letter-spacing:.08em}.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:26px}.section-head h2{margin:4px 0 0;color:var(--brand);font-size:32px;line-height:1.3}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.related-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;transition:all var(--ease)}.related-card:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--shadow)}.related-card .badge{margin-bottom:16px}.related-card h3{margin:0 0 9px;font-size:19px;line-height:1.45;color:var(--brand)}.related-card p{margin:0;color:var(--muted);font-size:14px}.related-card time{display:block;margin-top:15px;color:var(--muted);font-size:13px}.cta{padding:72px 0;background:var(--brand);color:#fff}.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:28px}.cta h2{margin:0 0 8px;font-size:32px;line-height:1.35}.cta p{margin:0;color:rgba(255,255,255,.75)}.cta .btn-primary{background:var(--gold)}.cta .btn-primary:hover{background:#a97432}.site-footer{padding:54px 0 24px;background:#102c25;color:#e9eee8}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:36px}.footer-title{margin:0 0 13px;color:#fff;font-size:18px}.footer-text{max-width:380px;color:rgba(233,238,232,.68);font-size:14px}.footer-links{display:grid;gap:8px;color:rgba(233,238,232,.68);font-size:14px}.footer-links a:hover{color:var(--goldsoft)}.copyright{border-top:1px solid rgba(233,238,232,.15);margin-top:38px;padding-top:18px;color:rgba(233,238,232,.5);font-size:13px;overflow-wrap:anywhere}
    @media(max-width:992px){.article-layout{grid-template-columns:minmax(0,1fr);gap:30px}.sidebar{position:static;grid-template-columns:repeat(2,1fr)}.related-grid{grid-template-columns:repeat(2,1fr)}}
    @media(max-width:768px){.header-inner{min-height:68px}.menu-toggle{display:inline-flex;align-items:center;justify-content:center}.nav-wrap{position:relative}.site-nav{display:none;position:absolute;right:0;top:58px;width:min(300px,calc(100vw - 32px));padding:10px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.site-nav.is-open{display:grid;justify-content:stretch}.site-nav a{padding:12px 14px}.nav-cta{display:none}.article-hero{padding:44px 0 36px}.article-layout{padding:44px 0 60px}.article-content{font-size:16px}.article-content h2{font-size:26px}.sidebar{grid-template-columns:1fr}.cta-inner{display:grid}.footer-grid{grid-template-columns:1fr 1fr}.cta{padding:54px 0}}
    @media(max-width:520px){.container{width:min(100% - 24px,var(--max))}.brand-text{max-width:150px;font-size:14px}.article-head h1{font-size:32px}.article-summary{font-size:16px}.cover{aspect-ratio:4/3}.related-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.article-actions .btn{width:100%}.cta h2{font-size:27px}}
    :focus-visible{outline:3px solid rgba(184,137,66,.65);outline-offset:3px}

/* roulang page: category1 */
:root{--bg:#f7f3ea;--soft:#efe8da;--card:#fffdf8;--line:#ded6c8;--text:#1f2421;--muted:#68736c;--brand:#163c34;--brand2:#24564a;--gold:#b88942;--goldsoft:#f3e4c6;--shadow:0 16px 42px rgba(22,60,52,.1);--shadow2:0 12px 28px rgba(31,36,33,.08);--radius:18px;--ease:220ms ease}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,Arial,sans-serif;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea{font:inherit}button{cursor:pointer}.container{width:min(100% - 32px,1224px);margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(247,243,234,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;color:var(--brand);font-weight:700}.brand-mark{width:42px;height:42px;border-radius:14px;background:var(--brand);display:grid;place-items:center;color:#fffdf8;font-size:22px;box-shadow:0 10px 20px rgba(22,60,52,.18)}.brand-text{font-size:15px;line-height:1.25;max-width:210px;overflow-wrap:anywhere}.nav-wrap{display:flex;align-items:center;gap:18px}.site-nav{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.site-nav a{padding:10px 14px;border-radius:999px;color:var(--muted);transition:all var(--ease)}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a.active{color:var(--brand);background:rgba(22,60,52,.09);outline:none}.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;font-weight:600;transition:all var(--ease)}.nav-cta{padding:12px 18px;background:var(--brand);color:#fffdf8}.nav-cta:hover,.nav-cta:focus-visible{background:var(--brand2);transform:translateY(-2px);outline:3px solid rgba(184,137,66,.3)}.menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--brand);font-size:21px}
    .page-hero{padding:34px 0 72px}.hero-panel{position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(110deg,rgba(22,60,52,.96),rgba(22,60,52,.76)),url('/assets/images/backpic/back-2.png') center/cover;box-shadow:var(--shadow);color:#fffdf8}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:36px;align-items:center;min-height:480px;padding:56px}.eyebrow,.tag{display:inline-flex;align-items:center;padding:7px 13px;border-radius:999px;font-size:13px;font-weight:600}.eyebrow{color:var(--goldsoft);border:1px solid rgba(243,228,198,.35);background:rgba(243,228,198,.12)}h1,h2,h3,p{margin-top:0}.hero h1{font-size:clamp(36px,5vw,58px);line-height:1.12;margin:18px 0 18px;max-width:11em}.hero-copy{color:rgba(255,255,255,.86);font-size:17px;max-width:620px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.btn{min-height:48px;padding:0 20px}.btn-primary{background:var(--gold);color:#fffdf8;box-shadow:0 12px 24px rgba(184,137,66,.25)}.btn-primary:hover{background:#a97432;transform:translateY(-2px)}.btn-light{background:#fffdf8;color:var(--brand)}.btn-light:hover{background:var(--goldsoft);transform:translateY(-2px)}.hero-index{padding:24px;border:1px solid rgba(243,228,198,.27);background:rgba(7,30,23,.3);border-radius:20px}.hero-index h2{font-size:20px;margin-bottom:18px}.index-row{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid rgba(243,228,198,.2);color:rgba(255,255,255,.82)}.index-row:last-child{border:0}.index-row strong{color:var(--goldsoft);font-size:20px}
    section{padding:76px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px}.section-kicker{color:var(--gold);font-size:13px;font-weight:700;letter-spacing:1px}.section-head h2{font-size:clamp(27px,4vw,38px);line-height:1.25;margin:6px 0 0;color:var(--brand)}.section-head p{max-width:540px;color:var(--muted);margin-bottom:0}.intro-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:42px;align-items:start}.intro-lead{font-size:21px;line-height:1.65;color:var(--brand)}.numbered{display:grid;gap:18px}.numbered-item{display:grid;grid-template-columns:48px 1fr;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}.numbered-item b{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--goldsoft);color:var(--brand)}.numbered-item h3{font-size:19px;margin:0 0 5px}.numbered-item p{color:var(--muted);margin:0}.matrix{background:var(--soft)}.feature-grid{display:grid;grid-template-columns:1.25fr .75fr .75fr;gap:20px}.feature{position:relative;min-height:230px;overflow:hidden;border-radius:var(--radius);padding:27px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow2);transition:all var(--ease)}.feature:first-child{min-height:300px;background:var(--brand);color:#fffdf8}.feature:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--shadow)}.feature img{height:128px;width:100%;object-fit:cover;border-radius:12px;margin:-3px 0 19px}.feature:first-child img{height:145px}.tag{background:var(--goldsoft);color:var(--brand);margin-bottom:16px}.feature h3{font-size:21px;line-height:1.35;margin-bottom:9px}.feature p{color:var(--muted);margin:0;font-size:15px}.feature:first-child p{color:rgba(255,255,255,.78)}.feature a{display:inline-flex;margin-top:18px;color:var(--gold);font-weight:700}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}.step{padding:26px 20px 10px 0;position:relative}.step:not(:last-child){border-right:1px solid var(--line);padding-right:25px;margin-right:25px}.step-number{color:var(--gold);font-size:27px;font-weight:700}.step h3{font-size:18px;margin:6px 0}.step p{color:var(--muted);font-size:15px;margin:0}.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:42px}.faq-intro p{color:var(--muted)}.faq-list{display:grid;gap:10px}.faq-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0 20px}.faq-item summary{cursor:pointer;list-style:none;padding:17px 0;font-weight:600;color:var(--brand)}.faq-item summary::-webkit-details-marker{display:none}.faq-item p{color:var(--muted);margin:0 0 17px}.cta{padding:0 0 78px}.cta-panel{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:40px 46px;border-radius:22px;background:var(--brand);color:#fffdf8}.cta-panel h2{font-size:30px;margin-bottom:8px}.cta-panel p{color:rgba(255,255,255,.75);margin:0}.site-footer{background:var(--brand);color:#fffdf8;padding:54px 0 22px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}.footer-title{font-size:18px;margin-bottom:12px}.footer-text{color:rgba(255,255,255,.68);max-width:390px;margin:0}.footer-links{display:grid;gap:7px;color:rgba(255,255,255,.7)}.footer-links a:hover{color:var(--goldsoft)}.copyright{border-top:1px solid rgba(255,255,255,.16);margin-top:38px;padding-top:18px;color:rgba(255,255,255,.55);font-size:13px}
    :focus-visible{outline:3px solid rgba(184,137,66,.55);outline-offset:3px}@media(max-width:900px){.nav-cta{display:none}.hero-grid,.intro-grid,.faq-grid{grid-template-columns:1fr}.hero-grid{padding:38px;min-height:0}.feature-grid{grid-template-columns:1fr 1fr}.feature:first-child{grid-column:span 2}.steps{grid-template-columns:1fr 1fr}.step:nth-child(2){border-right:0}.section-head{display:block}.section-head p{margin-top:12px}}@media(max-width:680px){.container{width:min(100% - 24px,1224px)}.header-inner{min-height:68px}.brand-text{font-size:13px;max-width:165px}.menu-toggle{display:flex}.site-nav{display:none;position:absolute;left:12px;right:12px;top:74px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);align-items:stretch}.site-nav.is-open{display:grid}.site-nav a{min-height:44px}.page-hero{padding-top:18px;padding-bottom:45px}.hero-grid{padding:29px 23px}.hero h1{font-size:36px}.hero-copy{font-size:15px}.hero-actions .btn{flex:1 1 150px}.hero-index{margin-top:12px}section{padding:52px 0}.feature-grid{grid-template-columns:1fr}.feature:first-child{grid-column:auto}.steps{grid-template-columns:1fr;gap:0}.step,.step:not(:last-child){border-right:0;border-bottom:1px solid var(--line);margin:0;padding:20px 0}.footer-grid{grid-template-columns:1fr;gap:25px}.cta-panel{display:block;padding:30px 24px}.cta-panel .btn{margin-top:20px;width:100%}}
