/* roulang page: index */
:root{
      --ink:#171717;--paper:#f5f2ec;--soft:#ebe6dc;--line:#d8d1c5;
      --violet:#6d4aff;--wine:#c84c63;--lime:#d7e56d;--muted:#6d6a65;
      --radius:16px;--shadow:0 16px 42px rgba(23,23,23,.08);
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;line-height:1.75}
    a{text-decoration:none;color:inherit}
    button,input,select,textarea{font:inherit}
    button{cursor:pointer}
    .container{width:min(1180px,calc(100% - 40px));margin:auto}
    .site-header{height:76px;border-bottom:1px solid var(--line);background:rgba(245,242,236,.94);position:sticky;top:0;z-index:20}
    .nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}
    .logo{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:-.04em;font-size:19px}
    .logo-mark{width:10px;height:10px;background:var(--violet);display:inline-block;border-radius:50%}
    .nav-links{display:flex;align-items:center;gap:34px;font-size:14px;color:var(--muted)}
    .nav-links a{height:76px;display:flex;align-items:center;position:relative;transition:.2s;color:var(--ink)}
    .nav-links a:hover,.nav-links a.active{color:var(--violet)}
    .nav-links a.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--violet)}
    .nav-note{font-size:11px;color:var(--muted);border-left:1px solid var(--line);padding-left:20px}
    .hero{padding:86px 0 72px;position:relative;overflow:hidden}
    .hero:before{content:"";position:absolute;width:320px;height:320px;border:1px solid rgba(109,74,255,.18);border-radius:50%;right:-120px;top:30px}
    .eyebrow,.label{font-size:11px;letter-spacing:.12em;color:var(--violet);font-weight:800;text-transform:uppercase}
    h1,h2,h3,p{margin-top:0}
    h1{font-size:clamp(42px,6vw,78px);line-height:1.08;letter-spacing:-.075em;margin:18px 0 26px;font-weight:900;max-width:700px}
    h2{font-size:clamp(28px,4vw,46px);line-height:1.18;letter-spacing:-.055em;font-weight:900;margin:10px 0 18px}
    .hero-copy{font-size:17px;color:var(--muted);max-width:590px;line-height:1.9}
    .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
    .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 21px;border:1px solid var(--ink);border-radius:10px;font-weight:700;font-size:14px;transition:.22s}
    .btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:var(--violet);border-color:var(--violet);transform:translateY(-2px)}
    .btn-secondary{background:transparent}.btn-secondary:hover{background:var(--lime);transform:translateY(-2px)}
    .btn:focus-visible,.filter:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(109,74,255,.35);outline-offset:3px}
    .dashboard{background:var(--ink);color:white;border-radius:20px;padding:26px;box-shadow:var(--shadow);transform:rotate(1.2deg);position:relative}
    .dashboard-top{display:flex;justify-content:space-between;border-bottom:1px solid #414141;padding-bottom:18px;margin-bottom:18px}
    .status{font-size:11px;color:var(--lime);display:flex;align-items:center;gap:6px}.status i{width:6px;height:6px;background:var(--lime);border-radius:50%}
    .big-number{font-size:64px;line-height:1;font-weight:900;letter-spacing:-.07em}
    .dash-sub{font-size:12px;color:#aaa;margin-top:8px}
    .metric-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
    .metric{border:1px solid #3b3b3b;padding:15px;border-radius:12px}.metric strong{display:block;font-size:25px}.metric span{font-size:12px;color:#aaa}
    .section{padding:92px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.section-desc{color:var(--muted);max-width:520px;font-size:15px}
    .matrix{display:grid;grid-template-columns:1.35fr .75fr .9fr;grid-template-rows:170px 170px;gap:14px}
    .matrix-card{border:1px solid var(--line);border-radius:var(--radius);padding:24px;position:relative;transition:.22s;background:rgba(255,255,255,.2)}
    .matrix-card:hover{border-color:var(--violet);transform:translateY(-3px);box-shadow:var(--shadow)}
    .matrix-card.featured{grid-row:span 2;background:var(--ink);color:#fff;padding:30px}
    .matrix-card.wide{grid-column:span 2;background:var(--soft)}
    .matrix-no{font-size:12px;color:var(--violet);font-weight:800}.featured .matrix-no{color:var(--lime)}
    .matrix-card h3{font-size:21px;margin:15px 0 8px;letter-spacing:-.04em}.matrix-card p{font-size:13px;color:var(--muted);line-height:1.7}.featured p{color:#b8b8b8}
    .arrow{position:absolute;right:20px;bottom:18px;font-size:20px;color:var(--violet)}
    .comparison{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fffaf3}
    .compare-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;border-bottom:1px solid var(--line);min-height:62px;align-items:center}
    .compare-row:last-child{border-bottom:0}.compare-row>*{padding:15px 20px}.compare-head{background:var(--ink);color:#fff;font-size:13px;font-weight:700}.compare-row:not(.compare-head) div:first-child{font-weight:700}.check{color:var(--violet);font-weight:800}.muted{color:var(--muted);font-size:13px}
    .insights{display:grid;grid-template-columns:1fr 340px;gap:18px}.news-list,.feature-note{border:1px solid var(--line);border-radius:16px;background:#fffaf3}
    .news-item{display:grid;grid-template-columns:72px 1fr auto;gap:18px;align-items:center;padding:20px;border-bottom:1px solid var(--line);transition:.2s}.news-item:last-child{border-bottom:0}.news-item:hover{background:var(--soft)}.news-index{font-size:12px;color:var(--violet);font-weight:800}.news-item h3{font-size:16px;margin:0 0 3px}.news-item p{font-size:13px;color:var(--muted);margin:0}.date{font-size:11px;color:var(--muted)}
    .feature-note{padding:26px;background:var(--violet);color:#fff}.feature-note p{color:#e2dcff;font-size:14px}.feature-note .btn{border-color:#fff;color:#fff;margin-top:18px}.feature-note .btn:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}
    .faq-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px}.faq-item{border-top:1px solid var(--line)}.faq-q{width:100%;padding:20px 0;background:none;border:0;text-align:left;display:flex;justify-content:space-between;font-weight:800;color:var(--ink)}.faq-q span:last-child{font-size:22px;color:var(--violet);transition:.2s}.faq-a{max-height:0;overflow:hidden;color:var(--muted);font-size:14px;transition:max-height .3s ease}.faq-item.open .faq-a{max-height:160px;padding:0 35px 20px 0}.faq-item.open .faq-q span:last-child{transform:rotate(45deg)}
    .cta-panel{background:var(--ink);color:#fff;border-radius:20px;padding:44px;display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.cta-panel h2{max-width:390px}.cta-panel p{color:#bdbdbd;font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#d0d0d0}.field input,.field select,.field textarea{width:100%;border:1px solid #484848;background:#222;color:#fff;border-radius:9px;padding:12px 13px;min-height:46px}.field textarea{min-height:100px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--lime);outline:none}.form-foot{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:17px}.privacy{font-size:11px;color:#999}.footer{background:var(--ink);color:#fff;border-top:1px solid #373737;padding:42px 0 25px}.footer-grid{display:flex;justify-content:space-between;gap:30px}.footer-links{display:flex;gap:24px;color:#bbb;font-size:13px}.footer-links a:hover{color:var(--lime)}.copyright{border-top:1px solid #373737;margin-top:34px;padding-top:18px;color:#888;font-size:11px;display:flex;justify-content:space-between}
    .mobile-tabs{display:none}
    @media(max-width:900px){.hero{padding-top:60px}.matrix{grid-template-columns:1fr 1fr;grid-template-rows:auto}.matrix-card.featured{grid-row:span 1;grid-column:span 2;min-height:220px}.matrix-card.wide{grid-column:span 2}.faq-layout,.cta-panel{grid-template-columns:1fr;gap:30px}.insights{grid-template-columns:1fr}}
    @media(max-width:640px){body{padding-bottom:70px}.container{width:min(100% - 28px,1180px)}.site-header{height:64px}.nav-links,.nav-note{display:none}.logo{font-size:16px}.hero{padding:52px 0 40px}h1{font-size:43px}.section{padding:65px 0}.section-head{display:block}.section-desc{margin-top:15px}.dashboard{transform:none;margin-top:30px}.big-number{font-size:52px}.matrix{display:flex;flex-direction:column}.matrix-card,.matrix-card.featured,.matrix-card.wide{min-height:170px}.compare-row{grid-template-columns:1.2fr .9fr .9fr;font-size:13px}.compare-row>*{padding:13px 10px}.insights{display:block}.feature-note{margin-top:14px}.news-item{grid-template-columns:38px 1fr}.date{display:none}.cta-panel{padding:28px 20px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.form-foot{display:block}.form-foot .btn{width:100%;margin-bottom:12px}.footer-grid,.copyright{display:block}.footer-links{margin-top:22px;flex-wrap:wrap}.copyright span{display:block;margin-top:8px}.mobile-tabs{display:flex;position:fixed;bottom:0;left:0;right:0;height:66px;background:rgba(23,23,23,.97);z-index:30;padding:7px 10px calc(7px + env(safe-area-inset-bottom));justify-content:space-around}.mobile-tabs a{color:#aaa;font-size:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:70px;border-radius:8px}.mobile-tabs a.active{color:var(--lime);background:#292929}.mobile-tabs svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}}
    @media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* roulang page: category1 */
:root{
      --ink:#171717;
      --paper:#f5f2ec;
      --soft:#ebe6dc;
      --line:#d8d1c5;
      --violet:#6d4aff;
      --wine:#c84c63;
      --lime:#d7e56d;
      --muted:#6d6a65;
      --white:#fffaf3;
      --radius:16px;
      --shadow:0 16px 42px rgba(23,23,23,.08);
    }
    *,*::before,*::after{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      background:var(--paper);
      color:var(--ink);
      font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
      line-height:1.75;
      padding-bottom:72px;
    }
    a{text-decoration:none;color:inherit}
    button,input,select,textarea{font:inherit}
    button{cursor:pointer}
    .container{width:min(1180px,calc(100% - 40px));margin:auto}
    .site-header{
      height:76px;
      border-bottom:1px solid var(--line);
      background:rgba(245,242,236,.96);
      position:sticky;
      top:0;
      z-index:20;
      backdrop-filter:saturate(120%);
    }
    .nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}
    .logo{
      display:flex;
      align-items:center;
      gap:10px;
      font-weight:900;
      letter-spacing:-.04em;
      font-size:19px;
      white-space:nowrap;
    }
    .logo-mark{width:10px;height:10px;background:var(--violet);display:inline-block;border-radius:50%}
    .nav-links{display:flex;align-items:center;gap:34px;font-size:14px;color:var(--muted)}
    .nav-links a{
      height:76px;
      display:flex;
      align-items:center;
      position:relative;
      transition:.2s;
      color:var(--ink);
    }
    .nav-links a:hover,.nav-links a.active{color:var(--violet)}
    .nav-links a.active:after{
      content:"";
      position:absolute;
      bottom:0;
      left:0;
      right:0;
      height:3px;
      background:var(--violet);
    }
    .nav-note{
      font-size:11px;
      color:var(--muted);
      border-left:1px solid var(--line);
      padding-left:20px;
    }
    .hero{
      padding:86px 0 66px;
      position:relative;
      overflow:hidden;
      border-bottom:1px solid var(--line);
    }
    .hero:before{
      content:"";
      position:absolute;
      width:360px;
      height:360px;
      border:1px solid rgba(109,74,255,.18);
      border-radius:50%;
      right:-140px;
      top:20px;
    }
    .eyebrow,.label{
      font-size:11px;
      letter-spacing:.12em;
      color:var(--violet);
      font-weight:800;
    }
    .hero h1{
      max-width:780px;
      font-size:clamp(40px,6vw,78px);
      line-height:1.08;
      letter-spacing:-.075em;
      margin:18px 0 22px;
      font-weight:950;
    }
    .hero-copy{
      font-size:17px;
      color:var(--muted);
      max-width:650px;
      line-height:1.9;
    }
    .hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
    .badge{
      display:inline-flex;
      align-items:center;
      gap:7px;
      border:1px solid var(--line);
      border-radius:999px;
      padding:5px 12px;
      color:var(--muted);
      font-size:12px;
      background:rgba(255,255,255,.24);
    }
    .badge strong{color:var(--ink)}
    .dot{width:6px;height:6px;border-radius:50%;background:var(--lime);display:inline-block}
    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      min-height:48px;
      padding:0 21px;
      border:1px solid var(--ink);
      border-radius:10px;
      font-weight:700;
      font-size:14px;
      transition:.22s;
    }
    .btn-primary{background:var(--ink);color:#fff}
    .btn-primary:hover{background:var(--violet);border-color:var(--violet);transform:translateY(-2px)}
    .btn-secondary{background:transparent}
    .btn-secondary:hover{background:var(--lime);transform:translateY(-2px)}
    .btn:focus-visible,.filter:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
      outline:3px solid rgba(109,74,255,.35);
      outline-offset:3px;
    }
    .section{padding:82px 0}
    .section-head{
      display:flex;
      justify-content:space-between;
      align-items:end;
      gap:30px;
      margin-bottom:32px;
    }
    .section h2{
      font-size:clamp(28px,4vw,45px);
      line-height:1.15;
      letter-spacing:-.06em;
      margin:8px 0 0;
    }
    .section-desc{color:var(--muted);max-width:500px;font-size:15px}
    .filter-panel{
      background:var(--soft);
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:25px;
      box-shadow:0 8px 24px rgba(23,23,23,.04);
    }
    .filter-grid{
      display:grid;
      grid-template-columns:1.4fr 1fr 1fr 1fr auto;
      gap:12px;
      align-items:end;
    }
    .field-label{display:block;font-size:12px;font-weight:800;margin-bottom:7px}
    .field input,.field select,.field textarea{
      width:100%;
      border:1px solid var(--line);
      background:var(--white);
      color:var(--ink);
      border-radius:9px;
      padding:11px 13px;
      min-height:46px;
    }
    .field input:focus,.field select:focus,.field textarea:focus{
      border-color:var(--violet);
      outline:none;
    }
    .filter-actions{display:flex;gap:8px}
    .filter{
      min-height:46px;
      border:1px solid var(--line);
      background:var(--white);
      border-radius:9px;
      padding:0 14px;
      color:var(--muted);
      transition:.2s;
    }
    .filter:hover,.filter.selected{border-color:var(--violet);color:var(--violet);background:#f0ecff}
    .filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
    .result-note{font-size:13px;color:var(--muted);margin:19px 0 0}
    .result-note strong{color:var(--ink)}
    .directory{
      display:grid;
      grid-template-columns:1.12fr .88fr;
      gap:18px;
      align-items:start;
    }
    .entry-list{
      background:var(--white);
      border:1px solid var(--line);
      border-radius:var(--radius);
      overflow:hidden;
    }
    .entry{
      display:grid;
      grid-template-columns:62px 1fr 128px 25px;
      gap:17px;
      align-items:center;
      padding:23px 24px;
      border-bottom:1px solid var(--line);
      transition:.22s;
    }
    .entry:last-child{border-bottom:0}
    .entry:hover{background:var(--soft);padding-left:28px}
    .entry-no{font-size:12px;color:var(--violet);font-weight:900}
    .entry h3{font-size:18px;letter-spacing:-.035em;margin:0 0 4px}
    .entry p{font-size:13px;color:var(--muted);margin:0;line-height:1.65}
    .entry-info{text-align:right;font-size:12px;color:var(--muted)}
    .entry-info b{display:block;color:var(--ink);font-size:13px;margin-bottom:2px}
    .entry-arrow{font-size:20px;color:var(--violet);transition:.2s}
    .entry:hover .entry-arrow{transform:translateX(3px)}
    .side-panel{
      background:var(--ink);
      color:#fff;
      border-radius:var(--radius);
      padding:29px;
      position:sticky;
      top:98px;
    }
    .side-panel h3{font-size:25px;line-height:1.25;letter-spacing:-.05em;margin:12px 0}
    .side-panel p{color:#bdbdbd;font-size:14px}
    .side-list{margin:25px 0 0;padding:0;list-style:none}
    .side-list li{border-top:1px solid #3c3c3c;padding:13px 0;font-size:13px;color:#ddd}
    .side-list span{color:var(--lime);margin-right:9px}
    .side-panel .btn{margin-top:16px;border-color:#fff;color:#fff}
    .side-panel .btn:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}
    .pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:27px}
    .page-btn{
      width:42px;height:42px;border:1px solid var(--line);background:transparent;border-radius:9px;
      transition:.2s;font-weight:700;color:var(--muted)
    }
    .page-btn:hover,.page-btn.active{background:var(--ink);border-color:var(--ink);color:#fff}
    .faq-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px}
    .faq-item{border-top:1px solid var(--line)}
    .faq-q{
      width:100%;padding:20px 0;background:none;border:0;text-align:left;
      display:flex;justify-content:space-between;font-weight:800;color:var(--ink)
    }
    .faq-q span:last-child{font-size:22px;color:var(--violet);transition:.2s}
    .faq-a{max-height:0;overflow:hidden;color:var(--muted);font-size:14px;transition:max-height .3s ease}
    .faq-item.open .faq-a{max-height:180px;padding:0 35px 20px 0}
    .faq-item.open .faq-q span:last-child{transform:rotate(45deg)}
    .cta-panel{
      background:var(--ink);
      color:#fff;
      border-radius:20px;
      padding:44px;
      display:grid;
      grid-template-columns:.8fr 1.2fr;
      gap:60px;
    }
    .cta-panel h2{max-width:390px;font-size:36px;line-height:1.2;letter-spacing:-.06em;margin:10px 0}
    .cta-panel p{color:#bdbdbd;font-size:14px}
    .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
    .dark-field label{display:block;font-size:12px;font-weight:700;margin-bottom:7px;color:#ddd}
    .dark-field input,.dark-field select,.dark-field textarea{
      width:100%;border:1px solid #484848;background:#222;color:#fff;border-radius:9px;padding:12px 13px;min-height:46px
    }
    .dark-field textarea{min-height:100px;resize:vertical}
    .dark-field input:focus,.dark-field select:focus,.dark-field textarea:focus{border-color:var(--lime);outline:none}
    .form-foot{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:17px}
    .form-tip{font-size:11px;color:#999}
    .footer{background:var(--ink);color:#fff;border-top:1px solid #373737;padding:42px 0 25px}
    .footer-grid{display:flex;justify-content:space-between;gap:30px}
    .footer-links{display:flex;gap:24px;color:#bbb;font-size:13px}
    .footer-links a:hover{color:var(--lime)}
    .copyright{border-top:1px solid #373737;margin-top:34px;padding-top:18px;color:#888;font-size:11px;display:flex;justify-content:space-between}
    .mobile-tabs{
      display:none;
      position:fixed;
      z-index:30;
      bottom:0;
      left:0;
      right:0;
      height:68px;
      background:rgba(23,23,23,.98);
      padding:8px 18px calc(8px + env(safe-area-inset-bottom));
      justify-content:space-around;
    }
    .mobile-tabs a{color:#999;text-align:center;font-size:11px;min-width:70px}
    .mobile-tabs a.active{color:var(--lime)}
    .tab-icon{display:block;font-size:17px;line-height:20px}
    @media (max-width:1024px){
      .filter-grid{grid-template-columns:1fr 1fr 1fr}
      .filter-actions{grid-column:span 3}
      .filter-actions .btn{flex:1}
    }
    @media (max-width:768px){
      .container{width:min(100% - 28px,1180px)}
      .site-header{height:64px}
      .nav-links,.nav-note{display:none}
      .logo{font-size:16px}
      .hero{padding:54px 0 48px}
      .hero h1{font-size:44px}
      .section{padding:62px 0}
      .section-head{display:block}
      .section-desc{margin-top:14px}
      .filter-grid{grid-template-columns:1fr 1fr}
      .filter-actions{grid-column:span 2}
      .directory{grid-template-columns:1fr}
      .side-panel{position:static}
      .entry{grid-template-columns:40px 1fr 25px;gap:12px;padding:20px 16px}
      .entry-info{display:none}
      .entry h3{font-size:16px}
      .faq-layout,.cta-panel{grid-template-columns:1fr;gap:30px}
      .cta-panel{padding:29px 22px}
      .cta-panel h2{font-size:30px}
      .form-grid{grid-template-columns:1fr}
      .form-foot{display:block}
      .form-foot .btn{width:100%;margin-top:14px}
      .footer-grid{display:block}
      .footer-links{margin-top:26px;gap:17px;flex-wrap:wrap}
      .copyright{display:block}
      .copyright span{display:block;margin-top:5px}
      .mobile-tabs{display:flex}
    }
    @media (max-width:520px){
      .hero h1{font-size:37px}
      .filter-panel{padding:18px}
      .filter-grid{grid-template-columns:1fr}
      .filter-actions{grid-column:auto}
      .filter-actions .btn{width:100%}
      .filter-row{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
      .filter{white-space:nowrap}
      .hero-meta{gap:7px}
    }
    @media (prefers-reduced-motion:reduce){
      *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
    }
