/* roulang page: index */
:root{
      --bg:#f6f8f4;
      --bg-soft:#eef5ef;
      --panel:#ffffff;
      --panel-2:#f9fbf8;
      --text:#17301f;
      --muted:#5f6f64;
      --line:#d7e2d8;
      --line-strong:#bfd2c2;
      --green:#2f7a4c;
      --green-2:#3d8b58;
      --green-soft:#dff0e4;
      --green-soft-2:#edf8ef;
      --amber:#c4892c;
      --danger:#a1453f;
      --shadow:0 18px 40px rgba(26, 44, 31, .08);
      --shadow-soft:0 8px 0 rgba(47, 122, 76, .08);
      --radius:18px;
      --radius-sm:12px;
      --radius-xs:8px;
      --container:1200px;
      --trans:180ms ease;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
      color:var(--text);
      background:
        radial-gradient(circle at top left, rgba(47,122,76,.05), transparent 24%),
        linear-gradient(180deg, #fbfcfa 0%, var(--bg) 100%);
      line-height:1.8;
      text-rendering:optimizeLegibility;
      -webkit-font-smoothing:antialiased;
    }
    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block}
    button,input,textarea{font:inherit}
    ::selection{background:var(--green-soft);color:var(--text)}
    .skip-link{
      position:absolute;left:-999px;top:8px;
      background:var(--green);color:#fff;padding:10px 14px;border-radius:10px;z-index:9999
    }
    .skip-link:focus{left:12px}
    .container{
      width:min(var(--container), calc(100% - 32px));
      margin:0 auto;
    }
    .site-header{
      position:sticky;
      top:0;
      z-index:40;
      backdrop-filter:saturate(130%) blur(14px);
      background:rgba(247,250,246,.88);
      border-bottom:1px solid rgba(215,226,216,.8);
    }
    .header-inner{padding:14px 0 12px}
    .brand-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      flex-wrap:wrap;
    }
    .logo{
      display:flex;
      align-items:center;
      gap:12px;
      min-width:0;
    }
    .logo-mark{
      width:42px;height:42px;
      display:grid;place-items:center;
      border-radius:12px;
      background:linear-gradient(180deg, var(--green-soft-2), #fff);
      border:1px solid var(--line);
      color:var(--green);
      font-size:13px;
      font-weight:800;
      box-shadow:var(--shadow-soft);
      flex:0 0 auto;
    }
    .logo-text{
      font-size:20px;
      font-weight:800;
      letter-spacing:.2px;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .header-tools{
      display:flex;
      align-items:center;
      gap:10px;
      flex-wrap:wrap;
      justify-content:flex-end;
    }
    .tool-btn,.status-pill,.nav-pill,.btn{
      border:1px solid var(--line);
      border-radius:999px;
      transition:transform var(--trans), background var(--trans), border-color var(--trans), color var(--trans), box-shadow var(--trans);
      outline:none;
    }
    .tool-btn,.nav-pill{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:42px;
      padding:0 15px;
      background:#fff;
      color:var(--text);
      font-weight:700;
      gap:8px;
      cursor:pointer;
    }
    .tool-btn:hover,.nav-pill:hover,.btn:hover{
      transform:translateY(-2px);
      border-color:var(--green-2);
      box-shadow:0 10px 22px rgba(47,122,76,.08);
    }
    .tool-btn:focus-visible,.nav-pill:focus-visible,.btn:focus-visible,
    input:focus-visible,textarea:focus-visible,summary:focus-visible{
      outline:3px solid rgba(47,122,76,.22);
      outline-offset:2px;
    }
    .tool-btn.active,.nav-pill.active{
      background:var(--green-soft);
      border-color:var(--green-2);
      color:var(--green);
    }
    .status-pill{
      min-height:40px;
      padding:0 14px;
      display:inline-flex;
      align-items:center;
      gap:6px;
      background:linear-gradient(180deg, #fff, #f9fcf8);
      font-weight:700;
      color:var(--muted);
      white-space:nowrap;
    }
    .status-pill.success{
      background:var(--green-soft);
      border-color:#b8dbbf;
      color:var(--green);
    }
    .channel-row{
      display:flex;
      align-items:center;
      gap:10px;
      overflow-x:auto;
      padding:10px 0 14px;
      scrollbar-width:none;
    }
    .channel-row::-webkit-scrollbar{display:none}
    .nav-pill{
      white-space:nowrap;
      background:#fff;
      font-weight:700;
      color:#2c4033;
      min-height:40px;
      padding:0 16px;
    }
    .nav-pill.active{
      background:var(--green);
      color:#fff;
      border-color:var(--green);
      box-shadow:0 10px 18px rgba(47,122,76,.14);
    }
    .top-notice{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:0 0 12px;
      color:var(--muted);
      font-size:13px;
      border-top:1px dashed rgba(215,226,216,.8);
      padding-top:12px;
    }
    .top-notice strong{color:var(--green)}
    .notice-dot{
      width:8px;height:8px;border-radius:999px;background:var(--green);
      box-shadow:0 0 0 4px rgba(47,122,76,.12);
      display:inline-block;
      margin-right:8px;
    }

    .hero{
      padding:30px 0 20px;
    }
    .hero-grid{
      display:grid;
      grid-template-columns:1.08fr .92fr;
      gap:22px;
      align-items:stretch;
    }
    .hero-copy,.hero-visual,.panel,.card,.cta-panel,.faq-item,.news-board,.related-card,.catalog-card,.feature-main,.feature-side,.index-card{
      background:var(--panel);
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow-soft);
    }
    .hero-copy{
      padding:28px;
      position:relative;
      overflow:hidden;
    }
    .hero-copy::after{
      content:"";
      position:absolute;
      right:-42px;
      top:-42px;
      width:180px;height:180px;
      background:
        radial-gradient(circle at 30% 30%, rgba(47,122,76,.14), transparent 56%),
        radial-gradient(circle at 70% 70%, rgba(47,122,76,.08), transparent 56%);
      pointer-events:none;
    }
    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 12px;
      border-radius:999px;
      background:var(--green-soft);
      color:var(--green);
      border:1px solid #c7e4cd;
      font-size:13px;
      font-weight:800;
      letter-spacing:.2px;
      margin-bottom:16px;
    }
    .eyebrow::before{
      content:"";
      width:8px;height:8px;border-radius:50%;
      background:var(--green);
      box-shadow:0 0 0 4px rgba(47,122,76,.12);
    }
    h1{
      margin:0 0 14px;
      font-size:clamp(34px, 5vw, 58px);
      line-height:1.08;
      letter-spacing:-.03em;
    }
    .lead{
      margin:0;
      color:var(--muted);
      font-size:16px;
      max-width:58ch;
    }
    .hero-actions{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      margin:22px 0 18px;
    }
    .btn{
      min-height:46px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:0 18px;
      cursor:pointer;
      border:none;
      font-weight:800;
      letter-spacing:.1px;
      box-shadow:none;
      user-select:none;
    }
    .btn-primary{
      background:linear-gradient(180deg, #3b8f5a 0%, #2f7a4c 100%);
      color:#fff;
      box-shadow:0 12px 24px rgba(47,122,76,.16), 0 6px 0 rgba(33,84,53,.12);
    }
    .btn-primary:hover{box-shadow:0 16px 28px rgba(47,122,76,.18), 0 6px 0 rgba(33,84,53,.1)}
    .btn-secondary{
      background:#fff;
      color:var(--green);
      border:1px solid var(--green-2);
    }
    .btn-ghost{
      background:#fff;
      color:var(--text);
      border:1px solid var(--line);
    }
    .hero-meta{
      display:grid;
      grid-template-columns:repeat(3, minmax(0,1fr));
      gap:12px;
      margin:0 0 18px;
    }
    .stat{
      padding:14px 14px 15px;
      border-radius:16px;
      border:1px solid var(--line);
      background:linear-gradient(180deg, #fff, #f8fbf7);
    }
    .stat strong{
      display:block;
      font-size:18px;
      color:var(--green);
      margin-bottom:2px;
      line-height:1.2;
    }
    .stat span{
      display:block;
      font-size:13px;
      color:var(--muted);
    }
    .search-panel{
      padding:16px;
      border-radius:18px;
      background:var(--panel-2);
      border:1px dashed rgba(191,210,194,.9);
    }
    .search-label{
      display:block;
      font-size:13px;
      color:var(--muted);
      margin-bottom:8px;
      font-weight:700;
    }
    .search-row{
      display:flex;
      gap:10px;
      align-items:center;
    }
    .search-row input{
      flex:1;
      min-width:0;
      min-height:48px;
      padding:0 16px;
      border-radius:14px;
      border:1px solid var(--line);
      background:#fff;
      color:var(--text);
      transition:border-color var(--trans), box-shadow var(--trans), transform var(--trans);
    }
    .search-row input::placeholder{color:#90a297}
    .search-row input:focus{
      border-color:var(--green-2);
      box-shadow:0 0 0 4px rgba(47,122,76,.10);
    }
    .search-note{
      margin-top:10px;
      font-size:13px;
      color:var(--muted);
    }
    .hero-visual{
      padding:18px;
      position:relative;
      overflow:hidden;
      background:
        linear-gradient(180deg, #fbfefb 0%, #f4faf5 100%);
    }
    .hero-visual::before{
      content:"";
      position:absolute;
      inset:16px;
      border-radius:22px;
      border:1px solid rgba(191,210,194,.75);
      pointer-events:none;
      background:
        linear-gradient(90deg, rgba(47,122,76,.035) 1px, transparent 1px),
        linear-gradient(rgba(47,122,76,.035) 1px, transparent 1px);
      background-size:18px 18px;
      opacity:.75;
    }
    .screen{
      position:relative;
      z-index:1;
      border-radius:22px;
      background:#fff;
      border:1px solid var(--line);
      padding:18px;
      height:100%;
      box-shadow:var(--shadow);
    }
    .screen-top{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:10px;
      margin-bottom:16px;
    }
    .screen-badge{
      display:inline-flex;
      align-items:center;
      gap:8px;
      border-radius:999px;
      padding:7px 11px;
      background:#f5f7f5;
      color:var(--muted);
      border:1px solid var(--line);
      font-size:12px;
      font-weight:800;
      white-space:nowrap;
    }
    .screen-badge.success{
      background:var(--green-soft);
      border-color:#bfdcc5;
      color:var(--green);
    }
    .matrix{
      display:grid;
      grid-template-columns:1.35fr .65fr;
      grid-template-rows:auto auto;
      gap:12px;
      margin-bottom:14px;
    }
    .matrix-card{
      min-height:92px;
      padding:16px;
      border-radius:16px;
      border:1px solid var(--line);
      background:linear-gradient(180deg, #fff, #f9fcf8);
      display:flex;
      align-items:flex-end;
      font-weight:800;
      color:#284235;
      box-shadow:0 10px 0 rgba(47,122,76,.06);
    }
    .matrix-card.large{
      grid-row:span 2;
      min-height:196px;
      font-size:18px;
      line-height:1.4;
      background:
        linear-gradient(180deg, rgba(223,240,228,.94), rgba(255,255,255,.98)),
        repeating-linear-gradient(135deg, rgba(47,122,76,.09) 0 10px, transparent 10px 20px);
      border-color:#c9e1ce;
    }
    .preview-list{
      list-style:none;
      margin:0;
      padding:0;
      display:grid;
      gap:10px;
    }
    .preview-list li{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:12px 14px;
      border-radius:14px;
      border:1px solid var(--line);
      background:#fff;
      color:#234031;
      font-size:14px;
    }
    .preview-list li span{
      min-width:34px;
      display:inline-flex;
      justify-content:center;
      align-items:center;
      height:26px;
      border-radius:8px;
      background:var(--green-soft);
      color:var(--green);
      font-weight:800;
      font-size:12px;
    }

    .section{
      padding:68px 0 0;
    }
    .section-head{
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:18px;
      margin-bottom:22px;
    }
    .section-head h2{
      margin:0 0 10px;
      font-size:clamp(24px, 3vw, 36px);
      line-height:1.2;
      letter-spacing:-.02em;
    }
    .section-head p{
      margin:0;
      max-width:68ch;
      color:var(--muted);
    }
    .section-note{
      padding:14px 16px;
      border-radius:16px;
      border:1px solid var(--line);
      background:linear-gradient(180deg, #fff, #f8fbf7);
      color:#385344;
      font-size:13px;
      white-space:nowrap;
      box-shadow:0 10px 0 rgba(47,122,76,.05);
    }
    .catalog-grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:18px;
      align-items:stretch;
    }
    .catalog-card{
      padding:22px;
      position:relative;
      overflow:hidden;
    }
    .catalog-card.active{
      border-color:#bcdcc1;
      box-shadow:0 18px 38px rgba(47,122,76,.08), 0 8px 0 rgba(47,122,76,.06);
    }
    .catalog-card::before{
      content:"";
      position:absolute;
      inset:auto -20px -20px auto;
      width:120px;height:120px;
      background:radial-gradient(circle, rgba(47,122,76,.12), transparent 66%);
      pointer-events:none;
    }
    .card-top{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      margin-bottom:14px;
    }
    .tag{
      display:inline-flex;
      align-items:center;
      padding:6px 10px;
      border-radius:999px;
      background:#f6f8f5;
      border:1px solid var(--line);
      color:#476152;
      font-size:12px;
      font-weight:700;
      line-height:1;
    }
    .tag.success{
      background:var(--green-soft);
      border-color:#c1dccc;
      color:var(--green);
    }
    .catalog-card h3,.feature-main h3,.related-card h3,.index-card h3,.cta-panel h3,.news-board h3{
      margin:0 0 10px;
      font-size:22px;
      line-height:1.3;
    }
    .catalog-card p,.feature-main p,.related-card p,.index-card p,.news-board p{
      margin:0 0 16px;
      color:var(--muted);
    }
    .mini-list{
      list-style:none;
      margin:0 0 18px;
      padding:0;
      display:grid;
      gap:8px;
    }
    .mini-list li{
      display:flex;
      align-items:flex-start;
      gap:8px;
      color:#385344;
      font-size:14px;
    }
    .mini-list li::before{
      content:"";
      width:9px;height:9px;
      border-radius:50%;
      background:var(--green);
      margin-top:9px;
      box-shadow:0 0 0 4px rgba(47,122,76,.10);
      flex:0 0 auto;
    }
    .index-card{
      margin-top:18px;
      padding:18px;
    }
    .index-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:12px;
    }
    .index-head strong{
      font-size:15px;
    }
    .index-list{
      display:grid;
      gap:10px;
    }
    .index-row{
      display:grid;
      grid-template-columns:120px 1fr 100px 110px;
      gap:10px;
      align-items:center;
      padding:13px 14px;
      border-radius:14px;
      border:1px solid var(--line);
      background:linear-gradient(180deg, #fff, #f9fcf8);
      transition:transform var(--trans), border-color var(--trans), box-shadow var(--trans);
    }
    .index-row:hover{
      transform:translateY(-2px);
      border-color:#b9d8bf;
      box-shadow:0 14px 20px rgba(47,122,76,.08);
    }
    .index-row .title{
      font-weight:800;
    }
    .index-row .meta,.index-row .status{
      font-size:13px;
      color:var(--muted);
    }
    .index-row .status{
      color:var(--green);
      font-weight:700;
    }
    .index-row .entry{
      justify-self:end;
      color:var(--green);
      font-weight:800;
      display:inline-flex;
      align-items:center;
      gap:4px;
    }
    .entry::after{
      content:"→";
      transition:transform var(--trans);
    }
    .entry:hover::after{transform:translateX(3px)}

    .feature-grid{
      display:grid;
      grid-template-columns:1.12fr .88fr;
      gap:18px;
      align-items:stretch;
    }
    .feature-main{
      padding:24px;
      min-height:100%;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      gap:18px;
    }
    .feature-cover{
      min-height:240px;
      border-radius:20px;
      border:1px solid var(--line);
      background:
        linear-gradient(135deg, rgba(223,240,228,.96), rgba(255,255,255,.98)),
        repeating-linear-gradient(0deg, rgba(47,122,76,.08) 0 1px, transparent 1px 18px),
        repeating-linear-gradient(90deg, rgba(47,122,76,.08) 0 1px, transparent 1px 18px);
      padding:18px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      box-shadow:var(--shadow-soft);
    }
    .feature-cover .cover-top{
      display:flex;
      justify-content:space-between;
      gap:10px;
      align-items:flex-start;
    }
    .cover-stack{
      display:grid;
      gap:10px;
      max-width:260px;
    }
    .cover-chip{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:max-content;
      padding:7px 10px;
      border-radius:999px;
      background:#fff;
      border:1px solid var(--line);
      font-size:12px;
      font-weight:700;
      color:#355042;
    }
    .cover-title{
      font-size:26px;
      font-weight:900;
      line-height:1.15;
      max-width:14ch;
      color:#1c3524;
      margin:0;
    }
    .cover-metrics{
      display:grid;
      grid-template-columns:repeat(3, minmax(0,1fr));
      gap:10px;
      margin-top:18px;
    }
    .metric{
      padding:12px 12px 13px;
      background:#fff;
      border-radius:16px;
      border:1px solid var(--line);
    }
    .metric span{
      display:block;
      font-size:12px;
      color:var(--muted);
      margin-bottom:5px;
    }
    .metric strong{
      display:block;
      font-size:15px;
      color:var(--green);
      line-height:1.2;
    }
    .feature-body{
      display:grid;
      gap:12px;
    }
    .feature-line{
      display:flex;
      align-items:flex-start;
      gap:10px;
      padding:14px 15px;
      border-radius:16px;
      border:1px solid var(--line);
      background:#fff;
    }
    .feature-line .num{
      width:28px;height:28px;
      flex:0 0 auto;
      display:grid;place-items:center;
      border-radius:10px;
      background:var(--green-soft);
      color:var(--green);
      font-weight:900;
      font-size:12px;
      box-shadow:0 0 0 4px rgba(47,122,76,.08);
    }
    .feature-line div strong{
      display:block;
      margin-bottom:3px;
      font-size:14px;
    }
    .feature-line div span{
      display:block;
      color:var(--muted);
      font-size:13px;
    }
    .feature-side{
      padding:18px;
      display:grid;
      gap:12px;
    }
    .stack-card{
      padding:16px;
      border-radius:16px;
      border:1px solid var(--line);
      background:linear-gradient(180deg, #fff, #f9fcf8);
    }
    .stack-card .row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin-bottom:8px;
    }
    .stack-card .row strong{font-size:15px}
    .stack-card p{margin:0;color:var(--muted);font-size:13px}
    .stack-card .foot{
      margin-top:12px;
      display:flex;
      flex-wrap:wrap;
      gap:8px;
    }
    .check-step{
      margin-top:16px;
      padding:15px 16px;
      border-radius:16px;
      border:1px dashed rgba(191,210,194,.95);
      background:var(--green-soft-2);
      color:#355042;
      font-size:14px;
    }

    .news-grid{
      display:grid;
      grid-template-columns:1.1fr .9fr;
      gap:18px;
      align-items:stretch;
    }
    .news-board{
      padding:20px;
    }
    .news-list{
      display:grid;
      gap:10px;
    }
    .news-item{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      padding:14px 15px;
      border-radius:15px;
      border:1px solid var(--line);
      background:#fff;
      transition:transform var(--trans), border-color var(--trans), box-shadow var(--trans);
    }
    .news-item:hover{
      transform:translateY(-2px);
      border-color:#bbd9c0;
      box-shadow:0 14px 20px rgba(47,122,76,.08);
    }
    .news-item .left{
      min-width:0;
    }
    .news-item .left strong{
      display:block;
      font-size:15px;
      margin-bottom:3px;
    }
    .news-item .left span{
      display:block;
      font-size:13px;
      color:var(--muted);
    }
    .news-item time{
      font-size:12px;
      color:var(--green);
      font-weight:800;
      flex:0 0 auto;
      white-space:nowrap;
    }
    .news-aside{
      padding:20px;
      display:grid;
      gap:12px;
    }
    .status-grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:10px;
    }
    .status-card{
      padding:14px;
      border-radius:16px;
      border:1px solid var(--line);
      background:linear-gradient(180deg, #fff, #f9fcf8);
    }
    .status-card strong{
      display:block;
      font-size:17px;
      color:var(--green);
      margin-bottom:4px;
    }
    .status-card span{
      font-size:13px;
      color:var(--muted);
    }
    .quick-form{
      display:grid;
      gap:10px;
      margin-top:4px;
    }
    .quick-form textarea{
      width:100%;
      min-height:110px;
      padding:14px 15px;
      resize:vertical;
      border-radius:16px;
      border:1px solid var(--line);
      background:#fff;
      color:var(--text);
    }
    .quick-form textarea::placeholder{color:#92a39a}
    .quick-form .row{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .related-top{
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:18px;
      margin-bottom:18px;
    }
    .tag-cloud{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-bottom:18px;
    }
    .chip{
      display:inline-flex;
      align-items:center;
      min-height:38px;
      padding:0 14px;
      border-radius:999px;
      background:#fff;
      border:1px solid var(--line);
      color:#325043;
      font-weight:700;
      font-size:13px;
      transition:transform var(--trans), border-color var(--trans), background var(--trans);
    }
    .chip:hover{
      transform:translateY(-2px);
      background:var(--green-soft);
      border-color:#b9d9bf;
      color:var(--green);
    }
    .related-grid{
      display:grid;
      grid-template-columns:repeat(3, minmax(0,1fr));
      gap:16px;
    }
    .related-card{
      padding:20px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      gap:16px;
    }
    .related-card .mini-cover{
      min-height:120px;
      border-radius:16px;
      border:1px solid var(--line);
      background:
        linear-gradient(135deg, rgba(223,240,228,.95), rgba(255,255,255,.98)),
        linear-gradient(45deg, rgba(47,122,76,.08) 25%, transparent 25%, transparent 50%, rgba(47,122,76,.08) 50%, rgba(47,122,76,.08) 75%, transparent 75%, transparent);
      background-size:100% 100%, 18px 18px;
      display:flex;
      align-items:flex-end;
      padding:14px;
      box-shadow:var(--shadow-soft);
      color:#204031;
      font-weight:900;
      font-size:18px;
    }
    .related-card .meta-row{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
    }

    .cta-panel{
      padding:24px;
      display:grid;
      grid-template-columns:1.05fr .95fr;
      gap:18px;
      align-items:start;
      background:linear-gradient(180deg, #f0fbf2, #ffffff);
      border-color:#c8e2cd;
    }
    .cta-panel h2{
      margin:0 0 12px;
      font-size:clamp(24px, 3vw, 34px);
      line-height:1.2;
    }
    .cta-panel p{
      margin:0;
      color:var(--muted);
    }
    .cta-form{
      padding:18px;
      border-radius:18px;
      background:#fff;
      border:1px solid var(--line);
      display:grid;
      gap:14px;
      box-shadow:var(--shadow-soft);
    }
    .check-line{
      display:flex;
      align-items:flex-start;
      gap:10px;
      color:#355042;
      font-size:14px;
    }
    .check-line input{
      width:18px;height:18px;
      margin-top:3px;
      accent-color:var(--green);
      flex:0 0 auto;
    }
    .cta-actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
    }
    .feedback{
      min-height:42px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:10px 13px;
      border-radius:14px;
      border:1px solid var(--line);
      background:#f9fbf8;
      color:#365143;
      font-size:13px;
    }
    .feedback.success{
      background:var(--green-soft);
      border-color:#c0dccc;
      color:var(--green);
    }
    .feedback.error{
      background:#fff4f3;
      border-color:#f0c5c0;
      color:var(--danger);
    }

    .faq-list{
      display:grid;
      gap:12px;
    }
    .faq-item{
      overflow:hidden;
      background:#fff;
    }
    .faq-item summary{
      list-style:none;
      cursor:pointer;
      padding:18px 20px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      font-weight:800;
      font-size:15px;
    }
    .faq-item summary::-webkit-details-marker{display:none}
    .faq-item summary::after{
      content:"+";
      width:28px;height:28px;
      border-radius:50%;
      display:grid;
      place-items:center;
      background:var(--green-soft);
      color:var(--green);
      font-size:18px;
      flex:0 0 auto;
      transition:transform var(--trans), background var(--trans);
    }
    .faq-item[open] summary::after{
      content:"–";
      background:#e7f4ea;
    }
    .faq-answer{
      padding:0 20px 18px;
      color:var(--muted);
      font-size:14px;
    }

    .site-footer{
      margin-top:72px;
      background:#f1f6f2;
      border-top:1px solid rgba(215,226,216,.9);
      padding:32px 0 26px;
    }
    .footer-grid{
      display:grid;
      grid-template-columns:1.2fr .8fr;
      gap:20px;
      align-items:start;
    }
    .footer-brand{
      display:grid;
      gap:10px;
    }
    .footer-brand strong{
      font-size:18px;
      line-height:1.4;
    }
    .footer-brand p{
      margin:0;
      color:var(--muted);
      max-width:72ch;
      font-size:14px;
    }
    .footer-links{
      display:grid;
      gap:10px;
      justify-items:start;
    }
    .footer-nav{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
    }
    .footer-nav a{
      min-height:38px;
      padding:0 13px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border-radius:999px;
      background:#fff;
      border:1px solid var(--line);
      color:#355042;
      font-weight:700;
      font-size:13px;
      transition:transform var(--trans), border-color var(--trans), background var(--trans);
    }
    .footer-nav a:hover{
      transform:translateY(-2px);
      background:var(--green-soft);
      border-color:#b9d9bf;
      color:var(--green);
    }
    .footer-meta{
      display:grid;
      gap:6px;
      color:var(--muted);
      font-size:13px;
      text-align:right;
    }
    .footer-meta strong{color:var(--text)}
    .hidden{display:none !important}

    @media (max-width: 1024px){
      .hero-grid,.feature-grid,.news-grid,.cta-panel,.footer-grid,.catalog-grid,.related-grid{
        grid-template-columns:1fr;
      }
      .section-head,.related-top{
        align-items:flex-start;
        flex-direction:column;
      }
      .section-note,.footer-meta{text-align:left}
      .index-row{grid-template-columns:110px 1fr 92px 88px}
    }
    @media (max-width: 768px){
      .hero{padding-top:22px}
      .hero-copy,.hero-visual,.catalog-card,.feature-main,.feature-side,.news-board,.news-aside,.related-card,.cta-panel,.faq-item,.index-card{
        padding-left:18px;
        padding-right:18px;
      }
      .hero-meta,.status-grid,.related-grid{
        grid-template-columns:1fr;
      }
      .matrix{
        grid-template-columns:1fr;
      }
      .matrix-card.large{grid-row:auto; min-height:150px}
      .search-row,.cta-actions,.header-tools{
        width:100%;
      }
      .search-row{
        flex-direction:column;
        align-items:stretch;
      }
      .search-row .btn,.cta-actions .btn,.header-tools .tool-btn{
        width:100%;
      }
      .index-row{
        grid-template-columns:1fr;
        gap:6px;
      }
      .index-row .entry{justify-self:start}
      .brand-row{
        gap:10px;
      }
      .logo-text{
        font-size:18px;
      }
      .top-notice{
        flex-direction:column;
        align-items:flex-start;
      }
    }
    @media (max-width: 520px){
      .container{width:min(var(--container), calc(100% - 24px))}
      .header-inner{padding:12px 0 10px}
      .tool-btn,.nav-pill,.btn{min-height:44px}
      h1{font-size:clamp(30px, 10vw, 42px)}
      .lead{font-size:15px}
      .hero-copy,.hero-visual,.catalog-card,.feature-main,.feature-side,.news-board,.news-aside,.related-card,.cta-panel,.faq-item,.index-card{
        padding-left:16px;
        padding-right:16px;
      }
      .search-panel,.screen,.hero-copy,.hero-visual,.catalog-card,.feature-main,.feature-side,.news-board,.news-aside,.related-card,.cta-panel{
        border-radius:16px;
      }
      .btn,.tool-btn,.nav-pill,.chip,.footer-nav a{
        width:auto;
      }
    }

/* roulang page: category2 */
:root{
      --bg:#f5f8f1;
      --panel:#ffffff;
      --panel-soft:#f7fbf5;
      --text:#19231b;
      --muted:#627164;
      --line:#d9e2d7;
      --line-strong:#bfd4bf;
      --green:#2a8b57;
      --green-strong:#1f5f3c;
      --green-soft:#e1f2e6;
      --green-soft-2:#f0f8f3;
      --amber:#c98a2f;
      --danger:#a04a4a;
      --shadow:0 16px 40px rgba(26, 44, 29, .08);
      --shadow-soft:0 8px 20px rgba(26, 44, 29, .06);
      --radius:8px;
      --radius-sm:6px;
      --space:24px;
      --space-lg:40px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      background:var(--bg);
      color:var(--text);
      font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;
      line-height:1.8;
      letter-spacing:0;
      text-rendering:optimizeLegibility;
    }
    a{color:inherit;text-decoration:none}
    button,input,select,textarea{font:inherit}
    img,svg{display:block;max-width:100%}
    ::selection{background:#d8efdf;color:#143421}
    :focus-visible{outline:3px solid rgba(42,139,87,.28);outline-offset:2px}
    .container{
      width:min(1220px, calc(100% - 32px));
      margin:0 auto;
    }
    .site-header{
      position:sticky;
      top:0;
      z-index:50;
      background:rgba(245,248,241,.92);
      backdrop-filter:saturate(140%) blur(10px);
      border-bottom:1px solid rgba(217,226,215,.92);
    }
    .header-inner{padding:14px 0 12px}
    .brand-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
    }
    .logo{
      display:inline-flex;
      align-items:center;
      gap:12px;
      min-width:0;
      font-weight:800;
      color:var(--text);
    }
    .logo-mark{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:48px;
      height:32px;
      padding:0 10px;
      border:1px solid var(--line-strong);
      border-radius:7px;
      background:var(--green-soft);
      color:var(--green-strong);
      font-size:13px;
      font-weight:800;
      box-shadow:inset 0 -2px 0 rgba(255,255,255,.55);
    }
    .logo-text{
      font-size:17px;
      letter-spacing:0;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .header-tools{
      display:flex;
      flex-wrap:wrap;
      justify-content:flex-end;
      gap:10px;
    }
    .status-pill,
    .tool-btn,
    .nav-pill,
    .chip,
    .badge,
    .mini-badge{
      border-radius:999px;
    }
    .status-pill{
      display:inline-flex;
      align-items:center;
      min-height:34px;
      padding:0 14px;
      border:1px solid var(--line-strong);
      background:#fff;
      color:var(--green-strong);
      font-size:12px;
      font-weight:700;
    }
    .status-pill.ok{
      background:var(--green-soft);
      border-color:#a9d4b8;
      color:#20593c;
    }
    .tool-btn{
      min-height:34px;
      padding:0 14px;
      border:1px solid var(--line);
      background:#fff;
      color:var(--green-strong);
      cursor:pointer;
      transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
      box-shadow:0 1px 0 rgba(255,255,255,.7) inset;
    }
    .tool-btn:hover,
    .tool-btn:focus-visible{
      transform:translateY(-1px);
      background:var(--green-soft-2);
      border-color:#b8d4c0;
      box-shadow:var(--shadow-soft);
    }
    .tool-btn.is-active{
      background:var(--green-soft);
      border-color:#a8cfb7;
    }
    .channel-row{
      display:flex;
      gap:10px;
      overflow-x:auto;
      padding:12px 0 6px;
      scrollbar-width:none;
      -ms-overflow-style:none;
    }
    .channel-row::-webkit-scrollbar{display:none}
    .nav-pill{
      display:inline-flex;
      align-items:center;
      min-height:36px;
      padding:0 14px;
      border:1px solid var(--line);
      background:#fff;
      color:var(--green-strong);
      font-size:13px;
      white-space:nowrap;
      flex:0 0 auto;
      transition:transform .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
    }
    .nav-pill:hover,
    .nav-pill:focus-visible{
      transform:translateY(-1px);
      border-color:#afcfb8;
      box-shadow:var(--shadow-soft);
      background:var(--green-soft-2);
    }
    .nav-pill.active{
      background:var(--green);
      border-color:var(--green);
      color:#fff;
      box-shadow:0 8px 20px rgba(42,139,87,.18);
    }
    .top-notice{
      display:flex;
      gap:14px;
      justify-content:space-between;
      align-items:center;
      margin-top:10px;
      padding:12px 14px;
      border:1px solid #d6e6d8;
      border-radius:var(--radius);
      background:var(--panel);
      color:var(--muted);
      font-size:13px;
      box-shadow:var(--shadow-soft);
    }
    .top-notice strong{color:var(--text)}
    .notice-dot{
      display:inline-block;
      width:8px;
      height:8px;
      margin-right:8px;
      border-radius:50%;
      background:var(--green);
      box-shadow:0 0 0 4px rgba(42,139,87,.12);
    }
    .site-main{padding-bottom:64px}
    .section{
      padding:72px 0 0;
    }
    .section-head{
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:18px;
      margin-bottom:22px;
    }
    .section-title-wrap{max-width:760px}
    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:8px;
      margin-bottom:12px;
      padding:6px 10px;
      border:1px solid #cfdccd;
      border-radius:999px;
      background:var(--green-soft-2);
      color:var(--green-strong);
      font-size:12px;
      font-weight:700;
    }
    .eyebrow.success{
      background:#eef9f0;
      border-color:#bfe0c7;
    }
    h1,h2,h3,p{margin:0}
    h1{
      font-size:46px;
      line-height:1.12;
      letter-spacing:0;
      color:#132115;
      text-wrap:balance;
    }
    h2{
      font-size:28px;
      line-height:1.2;
      letter-spacing:0;
      color:#132115;
      text-wrap:balance;
    }
    h3{
      font-size:18px;
      line-height:1.35;
      letter-spacing:0;
      text-wrap:balance;
    }
    .lead,
    .section-lead{
      margin-top:14px;
      color:var(--muted);
      font-size:16px;
      line-height:1.85;
      max-width:72ch;
    }
    .hero-grid{
      display:grid;
      grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);
      gap:24px;
      align-items:stretch;
    }
    .hero-copy,
    .hero-stage,
    .filter-panel,
    .summary-card,
    .showcase-card,
    .related-card,
    .cta-band,
    .faq-card,
    .info-card,
    .mock-window,
    .entry-card{
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:var(--panel);
      box-shadow:var(--shadow-soft);
    }
    .hero-copy{
      padding:32px;
    }
    .hero-tags{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:20px;
    }
    .tag{
      display:inline-flex;
      align-items:center;
      min-height:30px;
      padding:0 10px;
      border:1px solid #cbd8ca;
      border-radius:999px;
      background:#fff;
      color:#355141;
      font-size:12px;
      font-weight:700;
      white-space:nowrap;
    }
    .tag.primary{
      background:var(--green-soft);
      border-color:#abd2b8;
      color:var(--green-strong);
    }
    .tag.soft{
      background:#fbfaf5;
      border-color:#e4dbc3;
      color:#6f5c22;
    }
    .hero-actions,
    .cta-actions,
    .form-actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:24px;
    }
    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      min-height:44px;
      padding:0 16px;
      border-radius:8px;
      border:1px solid transparent;
      cursor:pointer;
      transition:transform .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease;
      font-weight:700;
      letter-spacing:0;
      white-space:nowrap;
    }
    .btn:hover,
    .btn:focus-visible{
      transform:translateY(-1px);
      box-shadow:var(--shadow-soft);
    }
    .btn-primary{
      background:var(--green);
      color:#fff;
      border-color:var(--green);
    }
    .btn-primary:hover,
    .btn-primary:focus-visible{
      background:#25764a;
      border-color:#25764a;
    }
    .btn-secondary{
      background:#fff;
      color:var(--green-strong);
      border-color:#bfd4c2;
    }
    .btn-secondary:hover,
    .btn-secondary:focus-visible{
      background:var(--green-soft);
      border-color:#a7cfb7;
    }
    .btn-ghost{
      background:transparent;
      color:var(--green-strong);
      border-color:transparent;
    }
    .btn-ghost:hover,
    .btn-ghost:focus-visible{
      background:#eef8ef;
      border-color:#d2e5d5;
    }
    .hero-stats{
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:12px;
      margin-top:24px;
    }
    .stat-card{
      padding:14px 16px;
      border:1px solid #dfe7dd;
      border-radius:8px;
      background:var(--panel-soft);
    }
    .stat-value{
      display:block;
      color:var(--green-strong);
      font-size:22px;
      font-weight:800;
      line-height:1.1;
    }
    .stat-label{
      display:block;
      margin-top:6px;
      color:var(--muted);
      font-size:12px;
      line-height:1.5;
    }
    .hero-stage{
      padding:18px;
      background:linear-gradient(180deg, #fff 0%, #fbfdf9 100%);
    }
    .mock-window{
      height:100%;
      min-height:100%;
      padding:0;
      overflow:hidden;
    }
    .window-bar{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:14px 16px;
      border-bottom:1px solid var(--line);
      background:#f7fbf5;
      font-size:13px;
    }
    .window-title{
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-weight:800;
      color:var(--text);
    }
    .mini-badge{
      display:inline-flex;
      align-items:center;
      min-height:26px;
      padding:0 10px;
      border:1px solid #bdd9c3;
      background:#ecf8ef;
      color:var(--green-strong);
      font-size:12px;
      font-weight:700;
    }
    .window-body{
      padding:16px;
    }
    .screen-panel{
      padding:14px;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
    }
    .screen-panel + .screen-panel{margin-top:12px}
    .screen-grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:10px;
      margin-top:12px;
    }
    .screen-chip{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:10px 12px;
      border:1px solid #dbe6db;
      border-radius:8px;
      background:#fff;
      color:#314b3a;
      font-size:12px;
      font-weight:700;
    }
    .screen-chip em{
      font-style:normal;
      color:var(--green-strong);
    }
    .mini-list{
      display:grid;
      gap:10px;
      margin-top:12px;
    }
    .mini-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:10px 12px;
      border:1px solid #dbe7db;
      border-radius:8px;
      background:#fff;
      font-size:12px;
      color:#355141;
    }
    .mini-row strong{
      color:var(--green-strong);
      font-weight:800;
    }
    .success-strip{
      margin-top:12px;
      padding:12px 14px;
      border:1px solid #bbd8c5;
      border-radius:8px;
      background:#eff9f1;
      color:#20543a;
      font-size:13px;
      font-weight:700;
    }
    .summary-card{
      padding:18px;
      background:#fff;
    }
    .summary-head{
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:flex-start;
      margin-bottom:12px;
    }
    .summary-kpis{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:14px;
    }
    .kpi{
      display:inline-flex;
      align-items:center;
      min-height:28px;
      padding:0 10px;
      border:1px solid #d7e4d8;
      border-radius:999px;
      background:#fbfdf9;
      color:#40594b;
      font-size:12px;
      font-weight:700;
    }
    .directory-grid{
      display:grid;
      grid-template-columns:minmax(0,320px) minmax(0,1fr);
      gap:24px;
      align-items:start;
    }
    .filter-panel{
      padding:20px;
      position:sticky;
      top:154px;
    }
    .filter-title{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin-bottom:14px;
    }
    .filter-stack{
      display:grid;
      gap:14px;
    }
    .field-group label{
      display:block;
      margin-bottom:8px;
      color:var(--text);
      font-size:13px;
      font-weight:700;
    }
    .input,
    .select,
    .textarea{
      width:100%;
      border:1px solid #cfdccd;
      border-radius:8px;
      background:#fff;
      color:var(--text);
      padding:12px 14px;
      transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
    }
    .input::placeholder,
    .textarea::placeholder{
      color:#7c8a7f;
    }
    .input:focus,
    .select:focus,
    .textarea:focus{
      border-color:#8fc7a2;
      box-shadow:0 0 0 4px rgba(42,139,87,.1);
      outline:none;
    }
    .chip-row{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
    }
    .chip{
      display:inline-flex;
      align-items:center;
      min-height:32px;
      padding:0 12px;
      border:1px solid #cfdccd;
      background:#fff;
      color:#355141;
      cursor:pointer;
      transition:transform .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
      font-weight:700;
      font-size:12px;
      white-space:nowrap;
    }
    .chip:hover,
    .chip:focus-visible{
      transform:translateY(-1px);
      background:#eff8f0;
      border-color:#b7d7c0;
      box-shadow:var(--shadow-soft);
    }
    .chip.is-active{
      background:var(--green);
      color:#fff;
      border-color:var(--green);
    }
    .helper-note{
      color:var(--muted);
      font-size:13px;
      line-height:1.7;
    }
    .directory-main{
      display:grid;
      gap:18px;
    }
    .summary-card.success{
      background:#f5fbf6;
      border-color:#c7e2cf;
    }
    .directory-summary{
      display:flex;
      flex-wrap:wrap;
      align-items:flex-start;
      justify-content:space-between;
      gap:14px;
    }
    .directory-summary .left{
      max-width:680px;
    }
    .directory-summary .right{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      justify-content:flex-end;
    }
    .entry-grid{
      display:grid;
      grid-template-columns:repeat(12, minmax(0, 1fr));
      gap:16px;
    }
    .entry-card{
      padding:18px;
      min-height:100%;
      position:relative;
      overflow:hidden;
      transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }
    .entry-card:hover{
      transform:translateY(-2px);
      border-color:#b9d3c1;
      box-shadow:0 14px 28px rgba(26, 44, 29, .1);
    }
    .span-7{grid-column:span 7}
    .span-5{grid-column:span 5}
    .span-4{grid-column:span 4}
    .span-6{grid-column:span 6}
    .span-3{grid-column:span 3}
    .span-8{grid-column:span 8}
    .entry-topline{
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      gap:8px;
      margin-bottom:14px;
      color:var(--muted);
      font-size:12px;
      font-weight:700;
    }
    .badge{
      display:inline-flex;
      align-items:center;
      min-height:26px;
      padding:0 10px;
      border:1px solid #d7e4d8;
      background:#fff;
      color:#385044;
      font-size:12px;
      font-weight:700;
    }
    .badge.success{
      background:var(--green-soft);
      border-color:#b6d7c1;
      color:var(--green-strong);
    }
    .badge.warn{
      background:#fcf3df;
      border-color:#ead6a8;
      color:#8a6113;
    }
    .badge.muted{
      background:#f4f6f3;
      border-color:#dbe3da;
      color:#55685a;
    }
    .entry-visual{
      display:grid;
      gap:10px;
      margin:14px 0 16px;
      padding:14px;
      border:1px solid #dde7dd;
      border-radius:8px;
      background:linear-gradient(180deg, #fbfdf9 0%, #f8fbf5 100%);
    }
    .visual-window{
      display:grid;
      gap:8px;
      padding:12px;
      border:1px solid #d7e4d7;
      border-radius:8px;
      background:#fff;
    }
    .visual-bar{
      height:10px;
      border-radius:999px;
      background:#dbe7dc;
    }
    .visual-bar.green{background:#9ccfb0}
    .visual-bar.gold{background:#e6cc88}
    .visual-row{
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:8px;
    }
    .visual-cell{
      height:28px;
      border-radius:7px;
      background:#eef5ef;
      border:1px solid #d6e3d7;
    }
    .visual-cell.highlight{
      background:#def1e3;
      border-color:#b8d9c4;
    }
    .entry-title{
      font-size:20px;
      line-height:1.3;
      color:#132115;
      text-wrap:balance;
    }
    .entry-desc{
      margin-top:10px;
      color:var(--muted);
      font-size:15px;
      line-height:1.8;
    }
    .entry-tags{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:14px;
    }
    .entry-actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:16px;
    }
    .entry-link{
      display:inline-flex;
      align-items:center;
      gap:6px;
      color:var(--green-strong);
      font-weight:700;
    }
    .entry-link::after{
      content:"→";
      font-size:15px;
      line-height:1;
    }
    .showcase-grid{
      display:grid;
      grid-template-columns:repeat(12, minmax(0, 1fr));
      gap:16px;
    }
    .showcase-card{
      padding:18px;
    }
    .showcase-card.main{
      grid-column:span 7;
      display:grid;
      gap:16px;
    }
    .showcase-card.side{
      grid-column:span 5;
      display:grid;
      gap:16px;
    }
    .showcase-stack{
      display:grid;
      gap:16px;
    }
    .screen-art{
      display:grid;
      gap:10px;
      min-height:260px;
      padding:16px;
      border:1px solid #dbe5db;
      border-radius:8px;
      background:
        linear-gradient(180deg, #fff 0%, #f8fbf6 100%);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
    }
    .screen-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      font-size:13px;
      font-weight:700;
    }
    .pixel-grid{
      display:grid;
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:10px;
      margin-top:auto;
    }
    .pixel-card{
      min-height:72px;
      border:1px solid #d7e5d8;
      border-radius:8px;
      background:#fff;
      box-shadow:4px 4px 0 #d7e6d9;
      padding:10px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }
    .pixel-line{
      height:10px;
      border-radius:999px;
      background:#dde7dd;
    }
    .pixel-line.green{background:#9dd1af}
    .pixel-line.gold{background:#e3c675}
    .pixel-line.long{width:72%}
    .pixel-line.short{width:48%}
    .showcase-note{
      color:var(--muted);
      font-size:15px;
      line-height:1.8;
    }
    .related-grid{
      display:grid;
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:16px;
    }
    .related-card{
      padding:18px;
      display:flex;
      flex-direction:column;
      gap:12px;
      min-height:100%;
      transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }
    .related-card:hover{
      transform:translateY(-2px);
      border-color:#b6d4bf;
      box-shadow:0 14px 28px rgba(26, 44, 29, .1);
    }
    .related-desc{
      color:var(--muted);
      font-size:14px;
      line-height:1.8;
    }
    .related-meta{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:auto;
    }
    .faq-list{
      display:grid;
      gap:12px;
    }
    .faq-card{
      overflow:hidden;
    }
    .faq-card summary{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      padding:18px 20px;
      cursor:pointer;
      list-style:none;
      font-weight:800;
      color:var(--text);
    }
    .faq-card summary::-webkit-details-marker{display:none}
    .faq-card summary::after{
      content:"+";
      flex:0 0 auto;
      width:30px;
      height:30px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:1px solid #d6e3d7;
      border-radius:50%;
      color:var(--green-strong);
      background:#fff;
      transition:transform .18s ease, background-color .18s ease;
    }
    .faq-card[open] summary{
      border-bottom:1px solid var(--line);
      background:#fbfdf9;
    }
    .faq-card[open] summary::after{
      content:"−";
      background:var(--green-soft);
    }
    .faq-body{
      padding:18px 20px 20px;
      color:var(--muted);
      font-size:15px;
      line-height:1.85;
    }
    .cta-band{
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);
      gap:18px;
      padding:22px;
      background:#f3fbf5;
      border-color:#c9e2d1;
    }
    .cta-copy{
      padding:10px 8px 10px 4px;
    }
    .cta-copy h2{
      font-size:26px;
    }
    .cta-copy p{
      margin-top:12px;
      color:var(--muted);
      font-size:15px;
      line-height:1.85;
      max-width:66ch;
    }
    .cta-status{
      margin-top:16px;
      padding:12px 14px;
      border:1px solid #bdd9c4;
      border-radius:8px;
      background:#fff;
      color:#28593f;
      font-size:13px;
      font-weight:700;
    }
    .feedback-form{
      padding:18px;
      border:1px solid #cce0d2;
      border-radius:8px;
      background:#fff;
      display:grid;
      gap:12px;
    }
    .feedback-form label{
      font-size:13px;
      font-weight:800;
      color:var(--text);
    }
    .feedback-form .helper-note{margin-top:-2px}
    .footer-spacer{height:24px}
    .site-footer{
      border-top:1px solid rgba(217,226,215,.9);
      background:#f7faf6;
      margin-top:72px;
    }
    .footer-grid{
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(0,.95fr);
      gap:24px;
      padding:28px 0 30px;
    }
    .footer-brand strong{
      display:block;
      margin-bottom:10px;
      font-size:18px;
      color:var(--text);
    }
    .footer-brand p,
    .footer-meta span{
      color:var(--muted);
      font-size:14px;
      line-height:1.8;
    }
    .footer-links{
      display:grid;
      gap:14px;
      justify-items:end;
    }
    .footer-nav{
      display:flex;
      flex-wrap:wrap;
      justify-content:flex-end;
      gap:10px;
    }
    .footer-nav a{
      display:inline-flex;
      align-items:center;
      min-height:34px;
      padding:0 12px;
      border:1px solid var(--line);
      border-radius:999px;
      background:#fff;
      color:var(--green-strong);
      font-size:13px;
      font-weight:700;
      transition:transform .18s ease, background-color .18s ease, border-color .18s ease;
    }
    .footer-nav a:hover,
    .footer-nav a:focus-visible{
      transform:translateY(-1px);
      background:var(--green-soft);
      border-color:#b4d5bf;
    }
    .footer-meta{
      display:grid;
      gap:6px;
      max-width:460px;
      text-align:right;
    }
    .footer-meta strong{
      color:var(--text);
      font-size:14px;
    }
    .is-hidden{display:none !important}
    .inline-sep{
      display:inline-block;
      width:6px;
      height:6px;
      border-radius:50%;
      background:#bdd5bf;
      margin:0 8px;
    }

    @media (max-width: 1024px){
      .hero-grid,
      .directory-grid,
      .cta-band,
      .footer-grid{
        grid-template-columns:1fr;
      }
      .filter-panel{
        position:static;
      }
      .related-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }
      .showcase-card.main,
      .showcase-card.side,
      .span-7,
      .span-5,
      .span-4,
      .span-6,
      .span-3,
      .span-8{
        grid-column:span 12;
      }
    }
    @media (max-width: 768px){
      .container{width:min(100% - 24px, 1220px)}
      .brand-row{
        align-items:flex-start;
        flex-direction:column;
      }
      .header-tools{
        justify-content:flex-start;
      }
      h1{font-size:36px}
      h2{font-size:24px}
      .hero-copy{padding:24px}
      .hero-stats{
        grid-template-columns:1fr;
      }
      .entry-grid,
      .showcase-grid{
        grid-template-columns:1fr;
      }
      .related-grid{
        grid-template-columns:1fr;
      }
      .top-notice{
        flex-direction:column;
        align-items:flex-start;
      }
      .directory-summary{
        flex-direction:column;
      }
      .footer-links,
      .footer-nav,
      .footer-meta{
        justify-items:flex-start;
        text-align:left;
        justify-content:flex-start;
      }
    }
    @media (max-width: 520px){
      .section{padding-top:56px}
      .hero-copy,
      .filter-panel,
      .summary-card,
      .showcase-card,
      .related-card,
      .faq-card summary,
      .faq-body,
      .cta-band,
      .feedback-form,
      .entry-card{
        padding-left:16px;
        padding-right:16px;
      }
      .hero-copy{padding-top:20px;padding-bottom:20px}
      h1{font-size:30px}
      .lead,
      .section-lead,
      .entry-desc,
      .showcase-note,
      .related-desc,
      .faq-body{
        font-size:14px;
      }
      .btn,.tool-btn,.nav-pill,.chip,.status-pill,.footer-nav a{min-height:40px}
      .hero-actions,
      .cta-actions,
      .form-actions{
        display:grid;
        grid-template-columns:1fr;
      }
      .btn{width:100%}
      .screen-grid{
        grid-template-columns:1fr;
      }
      .window-body{
        padding:12px;
      }
    }

/* roulang page: category1 */
:root{
  --bg:#fbfbf7;
  --bg-soft:#f3f7f1;
  --panel:#ffffff;
  --panel-2:#f6faf4;
  --line:#dbe5d8;
  --line-strong:#bfd4c0;
  --text:#182119;
  --muted:#5e6f62;
  --muted-2:#75847a;
  --green:#2f8f57;
  --green-2:#1f6f41;
  --green-soft:#e4f4e8;
  --green-soft-2:#edf8ef;
  --amber:#ca8e1f;
  --amber-soft:#fff4dc;
  --red:#a24b43;
  --red-soft:#f9e7e4;
  --violet:#625b84;
  --violet-soft:#ece9f6;
  --shadow:0 14px 34px rgba(25,34,28,.08);
  --shadow-soft:0 8px 20px rgba(25,34,28,.05);
  --radius:12px;
  --radius-sm:10px;
  --radius-xs:8px;
  --container:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:
    linear-gradient(180deg,#fff 0%,#fcfcf8 38%,#f7faf6 100%);
  color:var(--text);
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  line-height:1.75;
  text-rendering:optimizeLegibility;
}
body::selection{background:#d9f1df;color:#124329}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button,input,textarea,select{font:inherit;color:inherit}
button{border:0;background:none;padding:0;cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid rgba(47,143,87,.22);
  outline-offset:2px;
}
.container{
  width:min(var(--container),calc(100% - 32px));
  margin:0 auto;
}
.site-header{
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(150%) blur(10px);
  border-bottom:1px solid rgba(219,229,216,.9);
}
.header-inner{padding:14px 0 10px}
.brand-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.logo{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  font-weight:800;
}
.logo-mark{
  display:inline-grid;
  place-items:center;
  width:42px;
  height:28px;
  border:1px solid var(--line-strong);
  border-radius:9px;
  background:linear-gradient(180deg,#fff,#eef7ef);
  color:var(--green-2);
  font-size:12px;
  box-shadow:0 3px 0 rgba(47,143,87,.08);
}
.logo-text{
  font-size:16px;
  color:var(--text);
}
.header-tools{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.status-pill,
.tool-btn{
  min-height:36px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--muted);
  padding:0 14px;
  font-size:13px;
  transition:transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.status-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--green-soft-2);
  color:var(--green-2);
  border-color:#cfe3d4;
  font-weight:700;
}
.status-pill::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 4px rgba(47,143,87,.12);
}
.status-pill.is-warn{
  background:var(--amber-soft);
  color:#8f6410;
  border-color:#efd8a1;
}
.status-pill.is-warn::before{background:var(--amber);box-shadow:0 0 0 4px rgba(202,142,31,.12)}
.status-pill.is-done{
  background:#dff1e4;
  color:#1d6d41;
  border-color:#c4dfca;
}
.status-pill.is-done::before{background:#1fa65a;box-shadow:0 0 0 4px rgba(31,166,90,.12)}
.tool-btn{
  color:var(--green-2);
  border-color:#cedece;
  background:#fff;
  box-shadow:0 3px 0 rgba(47,143,87,.05);
}
.tool-btn:hover,.status-pill:hover{
  transform:translateY(-1px);
  border-color:#b8d5be;
  box-shadow:0 8px 18px rgba(25,34,28,.07);
}
.channel-row{
  display:flex;
  gap:10px;
  overflow:auto;
  padding:12px 0 6px;
  scrollbar-width:none;
}
.channel-row::-webkit-scrollbar{display:none}
.nav-pill{
  flex:0 0 auto;
  min-height:38px;
  display:inline-flex;
  align-items:center;
  padding:0 16px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
  font-size:14px;
  transition:transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.nav-pill:hover{
  transform:translateY(-1px);
  border-color:#b8d5be;
  color:var(--green-2);
}
.nav-pill.active{
  background:#e3f2e7;
  border-color:#bcdcc3;
  color:var(--green-2);
  font-weight:700;
  box-shadow:0 0 0 1px rgba(47,143,87,.05) inset;
}
.top-notice{
  display:flex;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-top:8px;
  padding:12px 14px;
  border:1px solid #cfe1d1;
  border-radius:var(--radius-sm);
  background:linear-gradient(180deg,#f5fbf6,#edf7ef);
  color:#3f5a46;
  font-size:13px;
}
.notice-dot{
  display:inline-block;
  width:10px;
  height:10px;
  margin-right:8px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 4px rgba(47,143,87,.12);
  vertical-align:-1px;
}
.site-main{padding-bottom:48px}
.hero-section{
  padding:28px 0 22px;
}
.hero-layout{
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr);
  gap:22px;
  align-items:stretch;
}
.hero-copy,.hero-stage,.filter-panel,.entry-card,.feature-card,.related-card,.cta-panel,.faq-item,.site-footer{
  border:1px solid var(--line);
  background:var(--panel);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
}
.hero-copy{
  padding:28px;
}
.hero-kicker{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:16px;
}
.tag,
.hero-chip,
.status-chip,
.mini-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
  font-size:12px;
}
.hero-chip{
  background:var(--green-soft-2);
  color:var(--green-2);
  border-color:#cfe3d4;
  font-weight:700;
}
.hero-chip.warn{
  background:var(--amber-soft);
  color:#8f6410;
  border-color:#efd8a1;
}
.hero-title{
  margin:0;
  font-size:42px;
  line-height:1.15;
  letter-spacing:0;
  color:var(--text);
}
.hero-lead{
  margin:16px 0 0;
  font-size:17px;
  color:var(--muted);
  max-width:40em;
}
.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:22px;
}
.btn{
  min-height:44px;
  padding:0 16px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:700;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
  white-space:nowrap;
}
.btn svg{
  width:16px;
  height:16px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.btn-primary{
  background:var(--green);
  color:#fff;
  box-shadow:0 4px 0 var(--green-2), 0 12px 24px rgba(47,143,87,.15);
}
.btn-primary:hover{
  transform:translateY(-1px);
  background:#349965;
}
.btn-secondary{
  background:#fff;
  color:var(--green-2);
  border:1px solid #bdd9c2;
  box-shadow:0 4px 0 rgba(47,143,87,.08);
}
.btn-secondary:hover{
  transform:translateY(-1px);
  background:#f1faf3;
}
.btn-ghost{
  background:#fff;
  color:var(--muted);
  border:1px solid var(--line);
}
.btn-ghost:hover{
  transform:translateY(-1px);
  border-color:#c1d5c4;
  color:var(--green-2);
}
.hero-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.hero-note{
  margin-top:18px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid #cde1cf;
  background:linear-gradient(180deg,#f4fbf5,#edf7ef);
  color:#45604d;
  font-size:13px;
}
.hero-stage{
  padding:18px;
  background:linear-gradient(180deg,#fff,#fafcf8);
}
.stage-window{
  height:100%;
  min-height:320px;
  border-radius:16px;
  border:1px solid #d6e3d4;
  background:
    linear-gradient(180deg,#ffffff 0%,#f7fbf4 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  overflow:hidden;
}
.stage-topbar{
  display:flex;
  align-items:center;
  gap:7px;
  padding:14px 16px;
  border-bottom:1px solid #e3ece1;
  background:#f8fcf8;
  color:var(--muted);
  font-size:12px;
}
.stage-topbar i{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#c9d8cc;
  display:inline-block;
}
.stage-topbar i:first-child{background:#b8d7c0}
.stage-topbar i:nth-child(2){background:#cfe1b0}
.stage-topbar i:nth-child(3){background:#e0cfa8}
.stage-topbar strong{margin-left:8px;color:var(--green-2)}
.stage-body{
  padding:16px;
  display:grid;
  gap:12px;
}
.stage-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:10px;
}
.stage-card{
  min-height:92px;
  border-radius:14px;
  border:1px solid #d7e5d5;
  background:linear-gradient(180deg,#fff,#f2f8f1);
  padding:14px;
  box-shadow:0 4px 0 rgba(47,143,87,.05);
}
.stage-card.main{
  grid-row:span 2;
  min-height:194px;
  background:
    linear-gradient(180deg,#ffffff 0%,#f4fbf5 100%);
}
.stage-card h3{
  margin:0 0 6px;
  font-size:18px;
  line-height:1.3;
}
.stage-card p{
  margin:0;
  color:var(--muted);
  font-size:13px;
}
.stage-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.stage-tag{
  padding:5px 9px;
  border-radius:999px;
  border:1px solid #d4e4d6;
  background:#fff;
  color:#526b58;
  font-size:12px;
}
.stage-list{
  display:grid;
  gap:8px;
  margin-top:4px;
}
.stage-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:11px 12px;
  border-radius:12px;
  border:1px dashed #d8e6d5;
  background:#fff;
  color:var(--muted);
  font-size:13px;
}
.stage-row strong{color:var(--text)}
.stage-row span{
  color:var(--green-2);
  font-weight:700;
}
.section{
  padding:32px 0;
}
.section-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:end;
  margin-bottom:18px;
}
.section-title{
  margin:0;
  font-size:26px;
  line-height:1.25;
}
.section-lead{
  margin:8px 0 0;
  color:var(--muted);
  max-width:54em;
  font-size:15px;
}
.directory-layout{
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.filter-panel{
  position:sticky;
  top:136px;
  padding:18px;
}
.filter-title{
  margin:0 0 12px;
  font-size:18px;
}
.search-box label{
  display:block;
  margin-bottom:8px;
  color:var(--muted);
  font-size:13px;
}
.search-row{
  display:flex;
  gap:8px;
}
.search-field{
  flex:1;
  min-height:44px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--text);
}
.search-field::placeholder{color:#8a978d}
.search-field:focus{
  border-color:#9cc7a4;
  box-shadow:0 0 0 3px rgba(47,143,87,.12);
  outline:0;
}
.filter-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}
.filter-chip{
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
  font-size:13px;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}
.filter-chip:hover{
  transform:translateY(-1px);
  border-color:#bedac4;
  color:var(--green-2);
}
.filter-chip.active{
  background:#e3f2e7;
  color:var(--green-2);
  border-color:#b9d8bf;
  font-weight:700;
}
.filter-help{
  margin:14px 0 0;
  padding:12px;
  border-radius:12px;
  border:1px solid #e2e7df;
  background:var(--panel-2);
}
.filter-help ul{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:8px;
}
.filter-help li{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
  color:var(--muted);
}
.filter-help strong{color:var(--text)}
.help-actions{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.card-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.card-toolbar .count{
  color:var(--muted);
  font-size:13px;
}
.directory-main{
  min-width:0;
}
.entry-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.entry-card{
  padding:18px;
  background:
    linear-gradient(180deg,#fff 0%,#fcfffb 100%);
  position:relative;
  overflow:hidden;
}
.entry-card::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg,var(--green),#7db58c,#d3b86f);
}
.entry-card:nth-child(3n)::before{background:linear-gradient(90deg,#4c9c67,#7bc3a5,#d0e5cc)}
.entry-card:nth-child(4n)::before{background:linear-gradient(90deg,#2f8f57,#d8ad58,#6d648e)}
.entry-card:hover{
  transform:translateY(-2px);
  border-color:#c3dbc7;
  box-shadow:0 12px 28px rgba(25,34,28,.08);
}
.entry-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.entry-index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  min-height:28px;
  padding:0 10px;
  border-radius:8px;
  background:#f3f8f2;
  border:1px solid #dbe8db;
  color:var(--green-2);
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-weight:700;
}
.entry-title{
  margin:14px 0 8px;
  font-size:20px;
  line-height:1.35;
}
.entry-summary{
  margin:0;
  color:var(--muted);
  font-size:14px;
  min-height:4.8em;
}
.entry-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.entry-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
  color:var(--muted-2);
  font-size:12px;
}
.entry-meta span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding-right:10px;
}
.entry-meta span:not(:last-child){
  border-right:1px solid #dce4db;
}
.entry-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  margin-top:16px;
  padding:0 14px;
  border-radius:12px;
  background:var(--green);
  color:#fff;
  font-weight:700;
  box-shadow:0 4px 0 var(--green-2);
  transition:transform .18s ease, background .18s ease;
}
.entry-btn:hover{
  transform:translateY(-1px);
  background:#349965;
}
.feature-grid{
  display:grid;
  grid-template-columns:1.28fr .86fr .86fr;
  gap:14px;
}
.feature-card{
  padding:18px;
  background:linear-gradient(180deg,#fff 0%,#f8fcf8 100%);
}
.feature-card.large{
  padding:22px;
  min-height:100%;
}
.feature-card h3{
  margin:0 0 8px;
  font-size:21px;
  line-height:1.3;
}
.feature-card p{
  margin:0;
  color:var(--muted);
  font-size:14px;
}
.feature-stage{
  margin-top:16px;
  border-radius:14px;
  border:1px solid #d8e5d6;
  background:
    linear-gradient(180deg,#fff 0%,#f5fbf4 100%);
  padding:14px;
}
.feature-stage .stage-mini{
  display:grid;
  gap:8px;
}
.feature-stage .stage-mini .line{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:10px;
  background:#fff;
  border:1px solid #e0e9e0;
  color:var(--muted);
  font-size:13px;
}
.feature-stage .stage-mini .line strong{color:var(--text)}
.related-grid{
  display:grid;
  grid-template-columns:1.2fr .9fr .9fr;
  gap:14px;
}
.related-card{
  padding:18px;
  background:linear-gradient(180deg,#fff 0%,#fbfefb 100%);
}
.related-card h3{
  margin:0 0 8px;
  font-size:20px;
  line-height:1.3;
}
.related-card p{
  margin:0 0 12px;
  color:var(--muted);
  font-size:14px;
}
.related-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.related-links .tag{
  background:#f7fbf7;
}
.related-card .btn{
  margin-top:16px;
}
.cta-panel{
  padding:22px;
  background:linear-gradient(180deg,#eef9ef 0%,#f8fef8 100%);
  border-color:#cfe1d2;
}
.cta-layout{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
  align-items:center;
}
.cta-panel h2{
  margin:0;
  font-size:26px;
  line-height:1.25;
}
.cta-panel p{
  margin:10px 0 0;
  color:var(--muted);
}
.cta-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.status-board{
  display:grid;
  gap:10px;
}
.status-card{
  padding:14px 15px;
  border-radius:14px;
  border:1px solid #d3e5d6;
  background:#fff;
  box-shadow:0 4px 0 rgba(47,143,87,.05);
}
.status-card strong{
  display:block;
  margin-bottom:4px;
  color:var(--text);
}
.status-card span{
  color:var(--muted);
  font-size:13px;
}
.status-stack{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.status-chip.success{
  background:#e5f4e9;
  color:var(--green-2);
  border-color:#c9e1ce;
}
.status-chip.info{
  background:#e9f4f1;
  color:#24685a;
  border-color:#cbe2db;
}
.status-chip.warn{
  background:var(--amber-soft);
  color:#8a6516;
  border-color:#ecd7a5;
}
.status-chip.error{
  background:var(--red-soft);
  color:#8a473f;
  border-color:#efc5bf;
}
.faq-list{
  display:grid;
  gap:12px;
}
.faq-item{
  overflow:hidden;
  background:linear-gradient(180deg,#fff 0%,#fcfefb 100%);
}
.faq-q{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:18px 20px;
  text-align:left;
  color:var(--text);
  font-weight:700;
}
.faq-q span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:8px;
  border:1px solid #d7e4d7;
  background:#f4faf4;
  color:var(--green-2);
  flex:0 0 auto;
  font-size:18px;
  line-height:1;
}
.faq-a{
  max-height:0;
  overflow:hidden;
  padding:0 20px;
  color:var(--muted);
  border-top:1px solid transparent;
  transition:max-height .28s ease, padding .28s ease, border-color .28s ease;
}
.faq-item.open .faq-a{
  max-height:220px;
  padding:0 20px 18px;
  border-top-color:#e1e9e1;
}
.faq-item.open .faq-q span{transform:rotate(45deg)}
.site-footer{
  margin-top:24px;
  background:linear-gradient(180deg,#f7faf6 0%,#eef4ef 100%);
  border-left:0;
  border-right:0;
  border-bottom:0;
  border-radius:18px 18px 0 0;
  box-shadow:none;
}
.footer-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  padding:26px 0;
}
.footer-brand strong{
  display:block;
  font-size:18px;
  margin-bottom:10px;
}
.footer-brand p{
  margin:0 0 10px;
  color:var(--muted);
  font-size:14px;
}
.footer-links{
  display:grid;
  gap:14px;
}
.footer-nav{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.footer-nav a{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  padding:0 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
  font-size:13px;
  transition:transform .18s ease, border-color .18s ease, color .18s ease;
}
.footer-nav a:hover{
  transform:translateY(-1px);
  border-color:#bedac4;
  color:var(--green-2);
}
.footer-meta{
  display:grid;
  gap:6px;
  padding:14px 16px;
  border-radius:14px;
  background:#fff;
  border:1px solid var(--line);
}
.footer-meta strong{
  color:var(--text);
}
.footer-meta span{
  color:var(--muted);
  font-size:13px;
}
.hidden{display:none !important}
@media (max-width: 1120px){
  .hero-layout,
  .directory-layout,
  .cta-layout,
  .feature-grid,
  .related-grid,
  .footer-grid{
    grid-template-columns:1fr;
  }
  .filter-panel{position:static}
  .entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 820px){
  .hero-title{font-size:34px}
  .section-title{font-size:22px}
  .hero-copy{padding:22px}
  .stage-window{min-height:280px}
  .stage-grid{grid-template-columns:1fr 1fr}
  .stage-card.main{grid-column:1 / -1; min-height:180px}
  .entry-grid{grid-template-columns:1fr}
  .feature-grid,.related-grid{grid-template-columns:1fr}
}
@media (max-width: 560px){
  .container{width:min(var(--container),calc(100% - 22px))}
  .header-inner{padding:12px 0 8px}
  .brand-row{align-items:flex-start;flex-direction:column}
  .header-tools{justify-content:flex-start}
  .top-notice{padding:10px 12px}
  .hero-section{padding-top:20px}
  .hero-copy,.hero-stage,.filter-panel,.entry-card,.feature-card,.related-card,.cta-panel{
    border-radius:var(--radius-sm);
  }
  .hero-title{font-size:28px}
  .hero-lead{font-size:15px}
  .hero-actions,.cta-actions,.footer-nav{gap:8px}
  .btn,.tool-btn,.nav-pill,.footer-nav a{min-height:42px}
  .section{padding:26px 0}
  .section-head{flex-direction:column;align-items:flex-start}
  .stage-grid{grid-template-columns:1fr}
  .stage-card.main{grid-column:auto;min-height:auto}
  .stage-row{flex-direction:column;align-items:flex-start}
  .filter-chip-row{gap:7px}
  .filter-chip,.tag,.status-chip,.mini-chip{font-size:12px}
  .faq-q{padding:16px}
  .faq-a{padding:0 16px}
  .faq-item.open .faq-a{padding:0 16px 16px}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
