/* roulang page: index */
:root{
      --bg:#fbf7f6;
      --card:rgba(255,255,255,.82);
      --card-strong:#fffdfd;
      --text:#2f2727;
      --muted:#7b6a6f;
      --line:#eddcdf;
      --pink:#f3d7dc;
      --pink-strong:#df8ea2;
      --rose:#f8eaee;
      --shadow:0 18px 50px rgba(91, 37, 59, 0.08);
      --radius:22px;
      --radius-sm:16px;
      --radius-chip:999px;
      --t:220ms;
    }
    html { scroll-behavior: smooth; }
    body{
      font-family: Inter, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      background:
        radial-gradient(circle at 20% 10%, rgba(243,215,220,.55), transparent 26%),
        radial-gradient(circle at 80% 20%, rgba(247,231,235,.7), transparent 24%),
        linear-gradient(180deg, #fffdfa 0%, #fbf7f6 42%, #fbf6f5 100%);
      color: var(--text);
      overflow-x: hidden;
    }
    body::before{
      content:"";
      position: fixed;
      inset: 0;
      pointer-events: none;
      background-image:
        radial-gradient(rgba(127, 96, 105, 0.04) 0.7px, transparent 0.7px);
      background-size: 18px 18px;
      opacity: .45;
      mix-blend-mode: multiply;
      z-index: -1;
    }
    body::after{
      content:"";
      position: fixed;
      inset: 0;
      pointer-events: none;
      background:
        linear-gradient(135deg, rgba(255,255,255,.6), rgba(255,255,255,0) 36%),
        linear-gradient(315deg, rgba(255,255,255,.3), rgba(255,255,255,0) 25%);
      z-index: -2;
    }
    a, button, input, textarea, summary { -webkit-tap-highlight-color: transparent; }
    .site-container{
      width: min(100% - 1.5rem, 1320px);
      margin-inline: auto;
      position: relative;
      z-index: 1;
    }
    .nav-chip{
      display: inline-flex;
      align-items: center;
      gap: .55rem;
      padding: .72rem 1rem;
      border: 1px solid rgba(237,220,223,.9);
      border-radius: var(--radius-chip);
      background: rgba(255,255,255,.82);
      color: var(--text);
      box-shadow: 0 1px 0 rgba(255,255,255,.5) inset;
      transition: transform var(--t) ease, background var(--t) ease, border-color var(--t) ease, box-shadow var(--t) ease, color var(--t) ease;
      white-space: nowrap;
    }
    .nav-chip:hover{
      transform: translateY(-1px);
      border-color: #e4bcc7;
      box-shadow: 0 10px 24px rgba(91,37,59,.06);
    }
    .nav-chip.active{
      background: linear-gradient(135deg, rgba(243,215,220,.95), rgba(251,239,242,.98));
      border-color: #e1b0be;
      box-shadow: 0 12px 26px rgba(91,37,59,.08);
      color: #5d3944;
    }
    .hero-card,
    .content-card,
    .panel-card,
    .faq-item,
    .cta-panel{
      background: var(--card);
      border: 1px solid rgba(237,220,223,.9);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      backdrop-filter: blur(8px);
    }
    .section-title{
      letter-spacing: -0.04em;
      color: var(--text);
    }
    .section-kicker{
      letter-spacing: .22em;
      text-transform: uppercase;
      color: #a17b86;
    }
    .soft-tag{
      display: inline-flex;
      align-items: center;
      gap: .4rem;
      padding: .45rem .8rem;
      border-radius: var(--radius-chip);
      background: rgba(247, 231, 235, .9);
      border: 1px solid rgba(228, 184, 198, .72);
      color: #694b56;
      font-size: .78rem;
      font-weight: 600;
    }
    .primary-btn{
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      padding: .88rem 1.2rem;
      border-radius: 16px;
      background: linear-gradient(135deg, #df8ea2, #f0b8c4);
      color: white;
      font-weight: 700;
      border: 1px solid rgba(209,119,142,.26);
      box-shadow: 0 14px 30px rgba(223,142,162,.22);
      transition: transform var(--t) ease, box-shadow var(--t) ease, filter var(--t) ease;
    }
    .primary-btn:hover{ transform: translateY(-1px); filter: brightness(1.02); box-shadow: 0 16px 34px rgba(223,142,162,.26); }
    .secondary-btn{
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      padding: .88rem 1.2rem;
      border-radius: 16px;
      background: rgba(255,255,255,.72);
      color: var(--text);
      font-weight: 700;
      border: 1px solid rgba(237,220,223,.9);
      transition: transform var(--t) ease, border-color var(--t) ease, background var(--t) ease, box-shadow var(--t) ease;
    }
    .secondary-btn:hover{ transform: translateY(-1px); border-color: #e0b0bf; box-shadow: 0 10px 24px rgba(91,37,59,.06); }
    .scrollbar-hide::-webkit-scrollbar{ display:none; }
    .scrollbar-hide{ -ms-overflow-style: none; scrollbar-width: none; }
    .reveal{
      opacity: 0;
      transform: translateY(18px);
      transition: opacity .55s ease, transform .55s ease;
    }
    .reveal.is-visible{
      opacity: 1;
      transform: translateY(0);
    }
    .input-soft{
      width: 100%;
      background: rgba(255,255,255,.76);
      border: 1px solid rgba(237,220,223,.95);
      border-radius: 16px;
      padding: .85rem 1rem;
      color: var(--text);
      outline: none;
      transition: border-color var(--t) ease, box-shadow var(--t) ease, background var(--t) ease;
    }
    .input-soft::placeholder{ color: #a58f95; }
    .input-soft:focus{
      border-color: #e2a3b4;
      box-shadow: 0 0 0 4px rgba(223,142,162,.12);
      background: #fff;
    }
    details.faq-item{
      overflow: hidden;
      transition: border-color var(--t) ease, transform var(--t) ease;
    }
    details.faq-item[open]{ border-color: #e1b0be; }
    details.faq-item summary{
      list-style: none;
      cursor: pointer;
    }
    details.faq-item summary::-webkit-details-marker{ display:none; }
    .cover{
      border-radius: 18px;
      position: relative;
      overflow: hidden;
      background: linear-gradient(135deg, #f6dbe1 0%, #fdecef 50%, #f4c8d2 100%);
    }
    .cover::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 22% 18%, rgba(255,255,255,.85), transparent 28%),
        radial-gradient(circle at 78% 76%, rgba(223,142,162,.18), transparent 32%);
      mix-blend-mode: screen;
    }
    .card-hover{
      transition: transform var(--t) ease, box-shadow var(--t) ease, border-color var(--t) ease, background var(--t) ease;
    }
    .card-hover:hover{
      transform: translateY(-3px);
      border-color: #dfb2bf;
      box-shadow: 0 14px 34px rgba(91,37,59,.11);
    }
    .focus-ring:focus-visible{
      outline: none;
      box-shadow: 0 0 0 4px rgba(223,142,162,.15);
    }
    .stat-chip{
      display:inline-flex;
      align-items:center;
      gap:.4rem;
      padding:.42rem .75rem;
      border-radius:999px;
      background:#fff;
      border:1px solid rgba(237,220,223,.9);
      color:#6d5960;
      font-size:.78rem;
      font-weight:600;
    }
    .dot{
      width:.45rem;
      height:.45rem;
      border-radius:999px;
      background: linear-gradient(135deg, #df8ea2, #b45b76);
      box-shadow: 0 0 0 4px rgba(223,142,162,.12);
      flex: none;
    }

/* roulang page: category1 */
:root {
      --bg: #fffaf8;
      --panel: rgba(255, 255, 255, 0.88);
      --line: rgba(237, 220, 223, 0.92);
      --line-strong: rgba(212, 180, 190, 0.95);
      --text: #3d2f34;
      --muted: #735f66;
      --soft: #866e76;
      --rose: #df8ea2;
      --rose-deep: #b45b76;
      --rose-pale: #f8e7eb;
      --rose-soft: #f4d9df;
      --shadow: 0 18px 40px rgba(91, 37, 59, 0.06);
      --shadow-soft: 0 10px 24px rgba(91, 37, 59, 0.05);
      --radius-card: 22px;
      --radius-btn: 16px;
      --radius-chip: 999px;
      --motion: 220ms;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      color: var(--text);
      background:
        radial-gradient(circle at 10% 0%, rgba(223, 142, 162, 0.13), transparent 30%),
        radial-gradient(circle at 90% 10%, rgba(180, 91, 118, 0.08), transparent 26%),
        linear-gradient(180deg, #fffdfd 0%, #fff9fa 42%, #fffdfb 100%);
      text-rendering: optimizeLegibility;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }

    body::before {
      content: "";
      position: fixed;
      inset: 0;
      pointer-events: none;
      background-image:
        linear-gradient(rgba(223, 142, 162, 0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(223, 142, 162, 0.025) 1px, transparent 1px);
      background-size: 88px 88px;
      mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.25), transparent 60%);
      opacity: 0.38;
      z-index: 0;
    }

    ::selection {
      background: rgba(223, 142, 162, 0.24);
      color: #2d1f24;
    }

    .site-container {
      width: min(1280px, calc(100% - 1.75rem));
      margin: 0 auto;
    }

    @media (min-width: 768px) {
      .site-container {
        width: min(1280px, calc(100% - 3rem));
      }
    }

    .nav-chip,
    .footer-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .5rem;
      border: 1px solid var(--line);
      background: rgba(255, 255, 255, 0.88);
      color: var(--muted);
      border-radius: var(--radius-chip);
      padding: .7rem 1rem;
      font-size: .92rem;
      line-height: 1;
      letter-spacing: 0;
      transition: transform var(--motion) ease, border-color var(--motion) ease, background-color var(--motion) ease, color var(--motion) ease, box-shadow var(--motion) ease;
      white-space: nowrap;
    }

    .nav-chip:hover,
    .footer-link:hover {
      transform: translateY(-1px);
      border-color: var(--line-strong);
      color: var(--text);
      box-shadow: var(--shadow-soft);
    }

    .nav-chip.active {
      background: linear-gradient(135deg, rgba(248, 231, 235, 1) 0%, rgba(255, 249, 250, 1) 100%);
      color: var(--text);
      border-color: rgba(223, 142, 162, 0.7);
      box-shadow: 0 12px 26px rgba(223, 142, 162, 0.12);
    }

    .hero-shell,
    .content-card,
    .summary-shell,
    .aside-shell,
    .matrix-card,
    .cta-shell,
    .faq-item {
      background: var(--panel);
      border: 1px solid var(--line);
      box-shadow: var(--shadow-soft);
      backdrop-filter: blur(14px);
    }

    .hero-shell,
    .summary-shell,
    .cta-shell {
      border-radius: 28px;
    }

    .content-card,
    .aside-shell,
    .matrix-card,
    .faq-item {
      border-radius: var(--radius-card);
    }

    .section-title {
      letter-spacing: -0.02em;
      color: var(--text);
    }

    .section-kicker {
      color: var(--rose-deep);
      letter-spacing: .08em;
      text-transform: uppercase;
      font-size: .74rem;
      font-weight: 700;
    }

    .soft-label {
      display: inline-flex;
      align-items: center;
      gap: .35rem;
      border-radius: var(--radius-chip);
      background: rgba(244, 217, 223, 0.75);
      color: #8d5b6a;
      padding: .35rem .75rem;
      font-size: .78rem;
      font-weight: 600;
    }

    .field,
    .select-field {
      width: 100%;
      border: 1px solid var(--line);
      background: rgba(255, 255, 255, 0.92);
      color: var(--text);
      border-radius: var(--radius-btn);
      padding: .86rem 1rem;
      outline: none;
      transition: border-color var(--motion) ease, box-shadow var(--motion) ease, background-color var(--motion) ease;
    }

    .field::placeholder {
      color: #a89097;
    }

    .field:focus,
    .select-field:focus {
      border-color: rgba(223, 142, 162, 0.9);
      box-shadow: 0 0 0 4px rgba(223, 142, 162, 0.14);
    }

    .btn-primary-soft,
    .btn-ghost-soft {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .5rem;
      border-radius: var(--radius-btn);
      padding: .86rem 1.15rem;
      font-weight: 700;
      letter-spacing: 0;
      transition: transform var(--motion) ease, box-shadow var(--motion) ease, background-color var(--motion) ease, border-color var(--motion) ease, color var(--motion) ease;
    }

    .btn-primary-soft {
      background: linear-gradient(135deg, var(--rose) 0%, var(--rose-deep) 100%);
      color: #fff;
      box-shadow: 0 14px 28px rgba(180, 91, 118, 0.18);
    }

    .btn-primary-soft:hover {
      transform: translateY(-1px);
      box-shadow: 0 18px 32px rgba(180, 91, 118, 0.24);
    }

    .btn-ghost-soft {
      background: rgba(255, 255, 255, 0.88);
      border: 1px solid var(--line);
      color: var(--text);
    }

    .btn-ghost-soft:hover {
      transform: translateY(-1px);
      border-color: var(--line-strong);
      box-shadow: var(--shadow-soft);
    }

    .thumb-frame {
      position: relative;
      overflow: hidden;
      border-radius: 18px;
      border: 1px solid rgba(237, 220, 223, 0.92);
      background:
        radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.72), transparent 28%),
        linear-gradient(135deg, rgba(223, 142, 162, 0.86), rgba(180, 91, 118, 0.82));
    }

    .thumb-frame::after {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(180deg, rgba(255,255,255,0.08), transparent 28%),
        linear-gradient(135deg, rgba(255,255,255,0.02), rgba(255,255,255,0.14));
      pointer-events: none;
    }

    .thumb-grid {
      background-image:
        linear-gradient(135deg, rgba(255,255,255,0.18) 0 12%, transparent 12% 24%, rgba(255,255,255,0.12) 24% 36%, transparent 36% 48%, rgba(255,255,255,0.1) 48% 60%, transparent 60% 72%, rgba(255,255,255,0.08) 72% 84%, transparent 84% 100%);
      opacity: .28;
      mix-blend-mode: screen;
    }

    .line-clamp-2,
    .line-clamp-3 {
      display: -webkit-box;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .line-clamp-2 {
      -webkit-line-clamp: 2;
    }

    .line-clamp-3 {
      -webkit-line-clamp: 3;
    }

    .scrollbar-hide::-webkit-scrollbar {
      display: none;
    }

    .scrollbar-hide {
      -ms-overflow-style: none;
      scrollbar-width: none;
    }

    .reveal {
      opacity: 0;
      transform: translateY(16px);
      transition: opacity 500ms ease, transform 500ms ease;
    }

    .reveal.in-view {
      opacity: 1;
      transform: translateY(0);
    }

    details > summary {
      list-style: none;
    }

    details > summary::-webkit-details-marker {
      display: none;
    }

    .faq-item[open] {
      border-color: rgba(223, 142, 162, 0.76);
      box-shadow: 0 18px 34px rgba(223, 142, 162, 0.09);
    }

    .topbar-shadow {
      box-shadow: 0 12px 28px rgba(91, 37, 59, 0.05);
    }
