/* roulang page: index */
:root{
    --brand-1:#FF5A36;
    --brand-2:#FF2E93;
    --mint:#12B886;
    --amber:#FFB020;
    --bg:#FFF7F2;
    --card:#FFFFFF;
    --ink:#241A17;
    --text:#1F1B1A;
    --muted:#6B5F5A;
    --line:#F1E4DC;
    --grad:linear-gradient(120deg,#FF5A36 0%,#FF2E93 100%);
    --grad-soft:linear-gradient(120deg,rgba(255,90,54,.10),rgba(255,46,147,.10));
    --r-lg:24px;
    --r-md:16px;
    --r-sm:12px;
    --shadow-card:0 14px 34px -18px rgba(255,90,54,.28);
    --shadow-hover:0 22px 44px -18px rgba(255,90,54,.38);
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0;
    font-family:-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
  h1,h2,h3,h4,p,ul,ol{margin:0;padding:0}
  ul,ol{list-style:none}
  :focus-visible{outline:2px solid var(--brand-2);outline-offset:2px;border-radius:6px}

  /* ---------- Header ---------- */
  .site-header{
    background:rgba(255,255,255,.88);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-bottom:1px solid var(--line);
    transition:box-shadow .25s ease;
  }
  .site-header.is-scrolled{box-shadow:0 12px 32px -20px rgba(255,90,54,.55)}
  .logo-mark{
    width:34px;height:34px;border-radius:11px;
    background:var(--grad);position:relative;display:inline-block;flex:none;
    box-shadow:0 8px 18px -8px rgba(255,46,147,.85);
  }
  .logo-mark::before,.logo-mark::after{
    content:'';position:absolute;width:6px;height:6px;border-radius:50%;
    background:rgba(255,255,255,.95);top:14px;
  }
  .logo-mark::before{left:9px}
  .logo-mark::after{right:9px}
  .logo-mark i{
    position:absolute;left:15px;right:15px;top:16.5px;height:1.6px;
    background:rgba(255,255,255,.75);border-radius:2px;
  }
  .nav-link{
    position:relative;padding:.5rem .85rem;font-size:.94rem;font-weight:500;
    color:#4A423F;border-radius:10px;transition:color .2s ease,background .2s ease;
    display:inline-block;
  }
  .nav-link:hover{color:#FF3B7F;background:rgba(255,90,54,.07)}
  .nav-link.active{color:#FF3B7F;font-weight:700}
  .nav-link.active::after{
    content:'';position:absolute;left:.85rem;right:.85rem;bottom:.12rem;height:2px;
    border-radius:2px;background:var(--grad);
  }
  .icon-btn{
    width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;
    border-radius:12px;border:1px solid var(--line);color:#4A423F;background:#fff;
    transition:all .2s ease;
  }
  .icon-btn:hover{color:#FF3B7F;border-color:#FFC7B2;background:rgba(255,90,54,.06)}
  .icon-btn:active{transform:scale(.96)}

  /* ---------- Drawer ---------- */
  .drawer-mask{
    position:fixed;inset:0;background:rgba(36,26,23,.45);
    opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease;z-index:60;
  }
  .drawer-mask.open{opacity:1;visibility:visible}
  .mobile-drawer{
    position:fixed;top:0;right:0;height:100%;width:min(84vw,340px);background:#fff;z-index:70;
    transform:translateX(100%);transition:transform .3s ease;display:flex;flex-direction:column;
    box-shadow:-24px 0 60px -34px rgba(36,26,23,.7);
  }
  .mobile-drawer.open{transform:translateX(0)}
  .drawer-bar{height:5px;background:var(--grad);flex:none}
  .drawer-link{
    display:flex;align-items:center;justify-content:space-between;
    padding:.95rem 1rem;border-radius:14px;font-size:1rem;font-weight:600;color:#332C29;
    border:1px solid transparent;transition:all .2s ease;min-height:48px;
  }
  .drawer-link:hover,.drawer-link.active{background:var(--grad-soft);color:#E2386D;border-color:#FFD9CB}

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
    font-weight:600;border-radius:999px;padding:.78rem 1.6rem;min-height:44px;
    transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
    text-align:center;line-height:1.2;
  }
  .btn-primary{
    color:#fff;background-image:var(--grad);background-size:140% 100%;background-position:0 0;
    box-shadow:0 12px 26px -12px rgba(255,46,147,.65);
  }
  .btn-primary:hover{
    background-position:100% 0;transform:translateY(-2px);
    box-shadow:0 18px 32px -14px rgba(255,46,147,.75);
  }
  .btn-primary:active{transform:scale(.98)}
  .btn-ghost{
    background:#fff;color:#E2386D;border:1.5px solid #FFD2C4;
  }
  .btn-ghost:hover{
    background-image:var(--grad-soft);border-color:#FF9A7A;transform:translateY(-2px);
  }
  .btn-ghost:active{transform:scale(.98)}
  .btn-dark{
    background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,.16);
  }
  .btn-dark:hover{background:#31241F;transform:translateY(-2px)}

  /* ---------- Badges ---------- */
  .badge{
    display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:700;
    padding:.28rem .72rem;border-radius:999px;background:rgba(255,90,54,.1);color:#E2386D;
    line-height:1.5;white-space:nowrap;
  }
  .badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
  .badge-mint{background:rgba(18,184,134,.12);color:#0E9A70}
  .badge-amber{background:rgba(255,176,32,.16);color:#B87800}
  .badge-plain::before{display:none}
  .num{font-variant-numeric:tabular-nums}

  /* ---------- Section basics ---------- */
  .section{padding:3.5rem 0}
  @media(min-width:768px){.section{padding:6rem 0}}
  .sec-tag{
    display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:800;
    letter-spacing:.08em;color:#E2386D;background:rgba(255,46,147,.09);
    border-radius:999px;padding:.32rem .9rem;text-transform:uppercase;
  }
  .sec-title{
    font-size:clamp(1.45rem,3vw,2.05rem);font-weight:800;line-height:1.32;
    letter-spacing:-.01em;color:var(--ink);margin-top:.9rem;
  }
  .sec-desc{color:var(--muted);font-size:1rem;line-height:1.85;max-width:68ch;margin-top:.9rem}
  .on-ink .sec-title{color:#fff}
  .on-ink .sec-desc{color:rgba(255,255,255,.68)}
  .on-ink .sec-tag{background:rgba(255,255,255,.12);color:#FFC0D5}

  /* ---------- Cards ---------- */
  .card{
    position:relative;background:var(--card);border:1px solid var(--line);
    border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden;
    transition:transform .22s ease,box-shadow .22s ease;
  }
  .card::before{
    content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad);
    opacity:0;transition:opacity .22s ease;z-index:2;
  }
  .card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
  .card:hover::before{opacity:1}
  .card-flat{box-shadow:none;border:1px solid var(--line)}
  .card-flat:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}

  .thumb{position:relative;overflow:hidden;border-radius:var(--r-md);background:#FFEDE3}
  .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
  .card:hover .thumb img{transform:scale(1.045)}
  .thumb-overlay{
    position:absolute;inset:0;
    background:linear-gradient(to top,rgba(36,26,23,.55),rgba(36,26,23,0) 55%);
  }
  .corner-tag{
    position:absolute;top:.75rem;right:.75rem;font-size:.72rem;font-weight:800;color:#fff;
    padding:.24rem .7rem;border-radius:999px;background-image:var(--grad);
    box-shadow:0 8px 18px -8px rgba(255,46,147,.8);
  }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;overflow:hidden;
    background:linear-gradient(135deg,#FFF1E9 0%,#FFF7F2 45%,#FFE9F2 100%);
  }
  .hero::after{
    content:'';position:absolute;left:0;right:0;bottom:0;height:120px;
    background:linear-gradient(to bottom,rgba(255,247,242,0),#FFF7F2);pointer-events:none;
  }
  .hero-media{position:relative;border-radius:28px;overflow:hidden;
    box-shadow:0 36px 70px -36px rgba(255,46,147,.55);}
  .hero-media img{width:100%;height:320px;object-fit:cover}
  @media(min-width:768px){.hero-media img{height:450px}}
  .hero-panel{
    position:absolute;left:1rem;right:1rem;bottom:1rem;background:rgba(255,255,255,.96);
    border:1px solid rgba(241,228,220,.9);border-radius:18px;padding:1.1rem 1.15rem;
    box-shadow:0 20px 44px -24px rgba(36,26,23,.5);
  }
  @media(min-width:768px){
    .hero-panel{left:1.5rem;right:auto;bottom:1.5rem;width:340px;padding:1.35rem 1.4rem}
  }
  .kpi-row{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;margin-top:1.6rem}
  .kpi-item{display:flex;flex-direction:column;gap:.1rem}
  .kpi-num{font-size:1.45rem;font-weight:800;color:#241A17;line-height:1.2;
    font-variant-numeric:tabular-nums;letter-spacing:-.02em}
  .kpi-label{font-size:.8rem;color:var(--muted)}

  .progress-track{height:9px;border-radius:999px;background:rgba(255,90,54,.13);overflow:hidden;margin-top:.6rem}
  .progress-fill{height:100%;border-radius:999px;background:var(--grad);width:0;transition:width 1.1s ease}

  .node-line{position:relative;height:22px;margin-top:1rem}
  .node-line::before{
    content:'';position:absolute;left:6px;right:6px;top:10px;height:2px;
    background:repeating-linear-gradient(90deg,#FFB7A0 0 9px,transparent 9px 18px);
  }
  .node-line span{
    position:absolute;top:5px;width:12px;height:12px;border-radius:50%;
    background:#fff;border:3px solid var(--brand-1);
  }
  .node-line span:nth-child(1){left:0;border-color:#FFBBA2}
  .node-line span:nth-child(2){left:33%;border-color:var(--brand-1)}
  .node-line span:nth-child(3){left:66%;border-color:var(--brand-2)}
  .node-line span:nth-child(4){right:0;border-color:var(--brand-2);background:var(--brand-2)}

  /* ---------- Data cards ---------- */
  .data-card{padding:1.5rem 1.4rem 1.25rem}
  .data-num{
    font-size:clamp(2rem,4vw,2.7rem);font-weight:800;letter-spacing:-.02em;line-height:1.1;
    font-variant-numeric:tabular-nums;color:var(--ink);
  }
  .mini-bars{display:flex;align-items:flex-end;gap:4px;height:42px;margin-top:1.1rem}
  .mini-bars i{
    flex:1;border-radius:999px 999px 3px 3px;
    background:linear-gradient(to top,rgba(255,90,54,.18),rgba(255,90,54,.85));
  }
  .mini-bars i.mint{background:linear-gradient(to top,rgba(18,184,134,.18),rgba(18,184,134,.85))}

  /* ---------- Category matrix ---------- */
  .cat-main{
    display:flex;flex-direction:column;justify-content:flex-end;
    min-height:300px;color:#fff;padding:1.5rem;position:relative;isolation:isolate;
  }
  .cat-main img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
    transition:transform .5s ease;
  }
  .cat-main:hover img{transform:scale(1.05)}
  .cat-main::after{
    content:'';position:absolute;inset:0;z-index:-1;
    background:linear-gradient(150deg,rgba(255,90,54,.82),rgba(255,46,147,.78));
  }
  .cat-sub{
    display:flex;flex-direction:column;justify-content:space-between;gap:1rem;
    padding:1.3rem 1.25rem;min-height:142px;
  }
  .cat-icon{
    width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;
    background-image:var(--grad-soft);color:#E2386D;font-weight:800;font-size:.95rem;flex:none;
  }
  .arrow-link{
    display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;font-weight:700;
    color:#E2386D;transition:gap .2s ease,color .2s ease;
  }
  .arrow-link:hover{gap:.6rem;color:#C4205A}
  .arrow-link.on-img{color:#fff}

  /* ---------- Horizontal rail ---------- */
  .rail{
    display:flex;gap:1.15rem;overflow-x:auto;scroll-snap-type:x mandatory;
    padding:.35rem .2rem 1.5rem;margin:0 -.2rem;
    scrollbar-width:thin;
  }
  .rail::-webkit-scrollbar{height:6px}
  .rail::-webkit-scrollbar-thumb{background:#FFCFBE;border-radius:999px}
  .rail-item{flex:0 0 84%;scroll-snap-align:start}
  @media(min-width:640px){.rail-item{flex:0 0 58%}}
  @media(min-width:1024px){.rail-item{flex:0 0 calc(25% - .9rem)}}

  /* ---------- Compare ---------- */
  .compare-wrap{display:grid;gap:1.25rem}
  @media(min-width:1024px){.compare-wrap{grid-template-columns:1fr 64px 1fr;align-items:center}}
  .compare-col{border-radius:var(--r-lg);padding:1.6rem 1.5rem}
  .compare-left{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
  .compare-right{background:rgba(18,184,134,.14);border:1px solid rgba(18,184,134,.42)}
  .compare-arrow{display:flex;align-items:center;justify-content:center;
    font-size:1.6rem;font-weight:800;color:#FF7AAE}
  .compare-row{
    display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
    padding:.75rem 0;border-bottom:1px dashed rgba(255,255,255,.14);
  }
  .compare-row:last-child{border-bottom:none}
  .compare-row strong{font-variant-numeric:tabular-nums;font-weight:800;color:#fff}

  /* ---------- Milestones ---------- */
  .ms-track{position:relative;display:grid;gap:1.6rem;margin-top:2.5rem}
  @media(min-width:768px){.ms-track{grid-template-columns:repeat(5,1fr)}}
  .ms-track::before{
    content:'';position:absolute;left:9px;top:6px;bottom:6px;width:2px;
    background:repeating-linear-gradient(180deg,#FFB7A0 0 9px,transparent 9px 18px);
  }
  @media(min-width:768px){
    .ms-track::before{left:4%;right:4%;top:9px;bottom:auto;width:auto;height:2px;
      background:repeating-linear-gradient(90deg,#FFB7A0 0 9px,transparent 9px 18px)}
  }
  .ms-node{position:relative;padding-left:2.1rem}
  @media(min-width:768px){.ms-node{padding-left:0;padding-top:2.1rem}}
  .ms-dot{
    position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;
    background:var(--grad);box-shadow:0 0 0 5px rgba(255,90,54,.13);
  }
  @media(min-width:768px){.ms-dot{left:0;top:0}}
  .ms-year{font-size:.82rem;font-weight:800;color:#E2386D;letter-spacing:.04em}

  /* ---------- Tabs ---------- */
  .tab-bar{display:flex;flex-wrap:wrap;gap:.55rem}
  .tab-btn{
    padding:.55rem 1.15rem;border-radius:999px;font-size:.92rem;font-weight:600;
    border:1px solid var(--line);background:#fff;color:#4A423F;transition:all .2s ease;
    min-height:42px;
  }
  .tab-btn:hover{border-color:#FFC7B2;color:#E2386D}
  .tab-btn.active{background-image:var(--grad);color:#fff;border-color:transparent;
    box-shadow:0 10px 22px -12px rgba(255,46,147,.7)}
  .tab-panel{display:none}
  .tab-panel.active{display:block;animation:fadeUp .35s ease}
  @keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .scene-item{
    display:flex;gap:1rem;padding:1.05rem 0;border-bottom:1px dashed var(--line);
  }
  .scene-item:last-child{border-bottom:none}
  .scene-idx{
    width:34px;height:34px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;
    font-size:.82rem;font-weight:800;color:#E2386D;background:var(--grad-soft);
  }

  /* ---------- Steps ---------- */
  .step-grid{display:grid;gap:1.15rem}
  @media(min-width:640px){.step-grid{grid-template-columns:repeat(2,1fr)}}
  @media(min-width:1024px){.step-grid{grid-template-columns:repeat(4,1fr)}}
  .step-card{padding:1.4rem 1.3rem;position:relative}
  .step-no{
    font-size:.78rem;font-weight:800;letter-spacing:.12em;color:#E2386D;
    font-variant-numeric:tabular-nums;
  }
  .step-card::after{
    content:'';position:absolute;right:1.3rem;bottom:1.2rem;width:34px;height:34px;
    border-radius:12px;border:1px dashed #FFCBB8;
  }

  /* ---------- News ---------- */
  .news-list-item{
    display:flex;gap:.9rem;padding:.95rem 0;border-bottom:1px dashed var(--line);
    transition:transform .2s ease;
  }
  .news-list-item:last-child{border-bottom:none}
  .news-list-item:hover{transform:translateX(4px)}
  .news-bar{width:3px;border-radius:3px;background:var(--grad);flex:none}

  /* ---------- Ranking ---------- */
  .rank-item{
    display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;
    border-bottom:1px solid var(--line);transition:background .2s ease;
  }
  .rank-item:last-child{border-bottom:none}
  .rank-item:hover{background:rgba(255,90,54,.045)}
  .rank-no{
    width:30px;height:30px;border-radius:10px;flex:none;display:flex;align-items:center;
    justify-content:center;font-weight:800;font-size:.9rem;color:#8A7C76;background:#FBF3EE;
    font-variant-numeric:tabular-nums;
  }
  .rank-item:nth-child(1) .rank-no{background-image:var(--grad);color:#fff}
  .rank-item:nth-child(2) .rank-no{background:rgba(255,176,32,.2);color:#B87800}
  .rank-item:nth-child(3) .rank-no{background:rgba(255,46,147,.12);color:#E2386D}

  /* ---------- Guard bars ---------- */
  .guard-bar{
    display:flex;gap:1rem;align-items:flex-start;padding:1.15rem 0 1.15rem 1.15rem;
    border-left:3px solid transparent;
    border-image:linear-gradient(180deg,#FF5A36,#FF2E93) 1;
    background:linear-gradient(90deg,rgba(255,90,54,.06),rgba(255,90,54,0));
  }

  /* ---------- Q/A quick cards ---------- */
  .qa-card{padding:1.3rem 1.25rem 1.35rem;position:relative}
  .qa-mark{
    position:absolute;top:1rem;right:1rem;font-size:.72rem;font-weight:800;letter-spacing:.06em;
    color:#E2386D;background:var(--grad-soft);border-radius:999px;padding:.2rem .6rem;
  }

  /* ---------- FAQ ---------- */
  .faq-item{
    background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
    margin-bottom:.75rem;overflow:hidden;transition:box-shadow .2s ease;
  }
  .faq-item[open]{box-shadow:var(--shadow-card);background:#FFFCFA}
  .faq-item summary{
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
    padding:1.05rem 1.25rem;font-weight:700;font-size:1rem;cursor:pointer;list-style:none;
    min-height:52px;
  }
  .faq-item summary::-webkit-details-marker{display:none}
  .faq-item summary::after{
    content:'+';font-size:1.35rem;font-weight:400;color:#E2386D;transition:transform .25s ease;
    flex:none;line-height:1;
  }
  .faq-item[open] summary::after{content:'−';transform:rotate(180deg)}
  .faq-body{padding:0 1.25rem 1.2rem;color:var(--muted);font-size:.96rem;line-height:1.85}

  /* ---------- Testimonials ---------- */
  .quote-card{padding:1.4rem 1.3rem}
  .avatar{
    width:44px;height:44px;border-radius:50%;flex:none;display:flex;align-items:center;
    justify-content:center;font-weight:800;color:#fff;font-size:1rem;background-image:var(--grad);
  }
  .stars{color:var(--amber);letter-spacing:.14em;font-size:.9rem}

  /* ---------- Partners ---------- */
  .partner-chip{
    height:64px;border-radius:var(--r-md);background:#F7F1EC;border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;color:#9B8C85;font-weight:700;
    font-size:.92rem;filter:grayscale(1);opacity:.85;transition:all .25s ease;
  }
  .partner-chip:hover{filter:none;opacity:1;background:#fff;color:#E2386D;border-color:#FFD2C4}

  /* ---------- Form ---------- */
  .form-field{
    width:100%;padding:.85rem 1.05rem;border-radius:14px;border:1px solid var(--line);
    background:#fff;color:var(--text);font-size:.95rem;outline:none;
    transition:border-color .2s ease,box-shadow .2s ease;min-height:46px;
  }
  .form-field::placeholder{color:#A79B95}
  .form-field:focus{
    border-color:#FF8A6B;box-shadow:0 0 0 4px rgba(255,90,54,.14);
  }
  .form-note{font-size:.8rem;color:var(--muted);margin-top:.75rem}
  .form-tip{font-size:.88rem;font-weight:700;color:#0E9A70;margin-top:.75rem;min-height:1.2rem}

  /* ---------- Footer ---------- */
  .site-footer{background:var(--ink);color:rgba(255,255,255,.72)}
  .footer-title{color:rgba(255,255,255,.95);font-weight:800;font-size:.95rem;letter-spacing:.02em}
  .footer-link{display:block;color:rgba(255,255,255,.6);font-size:.92rem;padding:.3rem 0;
    transition:color .2s ease,transform .2s ease}
  .footer-link:hover{color:#fff;transform:translateX(3px)}
  .footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:2.5rem;padding-top:1.5rem;
    font-size:.84rem;color:rgba(255,255,255,.5)}

  /* ---------- Reveal ---------- */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
  .reveal.is-in{opacity:1;transform:none}

  @media (prefers-reduced-motion: reduce){
    *{animation:none!important;transition:none!important}
    .reveal{opacity:1;transform:none}
  }

/* roulang page: category1 */
:root{
  --brand-1:#FF5A36;
  --brand-2:#FF2E93;
  --mint:#12B886;
  --amber:#FFB020;
  --bg:#FFF7F2;
  --card:#FFFFFF;
  --ink:#241A17;
  --text:#1F1B1A;
  --muted:#6B5F5A;
  --line:#F1E4DC;
  --grad:linear-gradient(120deg,#FF5A36 0%,#FF2E93 100%);
  --grad-soft:linear-gradient(120deg,rgba(255,90,54,.10),rgba(255,46,147,.10));
  --r-lg:24px;
  --r-md:16px;
  --r-sm:12px;
  --shadow-card:0 14px 34px -18px rgba(255,90,54,.28);
  --shadow-hover:0 22px 44px -18px rgba(255,90,54,.38);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
h1,h2,h3,h4,p{margin:0}
:focus-visible{outline:2px solid #FF5A36;outline-offset:3px;border-radius:8px}
.wrap{max-width:1280px;margin:0 auto;padding:0 20px}
@media(min-width:768px){.wrap{padding:0 32px}}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s ease;
}
.site-header.is-scrolled{box-shadow:0 12px 32px -20px rgba(255,90,54,.55)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:64px}
@media(min-width:1024px){.header-inner{height:72px}}
.brand{display:inline-flex;align-items:center;gap:.6rem;flex:none}
.brand-text{font-size:19px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.logo-mark{
  width:34px;height:34px;border-radius:11px;
  background:var(--grad);position:relative;display:inline-block;flex:none;
  box-shadow:0 8px 18px -8px rgba(255,46,147,.85);
}
.logo-mark::before,.logo-mark::after{
  content:'';position:absolute;width:6px;height:6px;border-radius:50%;
  background:rgba(255,255,255,.95);top:14px;
}
.logo-mark::before{left:9px}
.logo-mark::after{right:9px}
.logo-mark i{position:absolute;left:15px;right:15px;top:16.5px;height:1.6px;background:rgba(255,255,255,.75);border-radius:2px}
.nav-link{
  position:relative;padding:.5rem .85rem;font-size:.94rem;font-weight:500;
  color:#4A423F;border-radius:10px;transition:color .2s ease,background .2s ease;
  display:inline-block;
}
.nav-link:hover{color:#FF3B7F;background:rgba(255,90,54,.07)}
.nav-link.active{color:#FF3B7F;font-weight:700}
.nav-link.active::after{
  content:'';position:absolute;left:.85rem;right:.85rem;bottom:.12rem;height:2px;
  border-radius:2px;background:var(--grad);
}
.icon-btn{
  width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:12px;border:1px solid var(--line);color:#4A423F;background:#fff;
  transition:all .2s ease;
}
.icon-btn:hover{color:#FF3B7F;border-color:#FFC7B2;background:rgba(255,90,54,.06)}
.icon-btn:active{transform:scale(.96)}
.menu-btn{display:inline-flex}
@media(min-width:1024px){.menu-btn{display:none}}

/* ---------- Drawer ---------- */
.drawer-mask{
  position:fixed;inset:0;background:rgba(36,26,23,.45);
  opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease;z-index:60;
}
.drawer-mask.open{opacity:1;visibility:visible}
.mobile-drawer{
  position:fixed;top:0;right:0;height:100%;width:min(84vw,340px);background:#fff;z-index:70;
  transform:translateX(100%);transition:transform .3s ease;display:flex;flex-direction:column;
  box-shadow:-24px 0 60px -34px rgba(36,26,23,.7);
}
.mobile-drawer.open{transform:translateX(0)}
.drawer-bar{height:5px;background:var(--grad);flex:none}
.drawer-link{
  display:flex;align-items:center;justify-content:space-between;
  padding:.95rem 1rem;border-radius:14px;font-size:1rem;font-weight:600;color:#332C29;
  border:1px solid transparent;transition:all .2s ease;min-height:48px;
}
.drawer-link:hover,.drawer-link.active{background:var(--grad-soft);color:#E2386D;border-color:#FFD9CB}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-weight:600;border-radius:999px;padding:.78rem 1.6rem;min-height:44px;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
  text-align:center;line-height:1.2;
}
.btn-primary{
  color:#fff;background-image:var(--grad);background-size:140% 100%;background-position:0 0;
  box-shadow:0 12px 26px -12px rgba(255,46,147,.65);
}
.btn-primary:hover{background-position:100% 0;transform:translateY(-2px);box-shadow:0 18px 32px -14px rgba(255,46,147,.75)}
.btn-primary:active{transform:scale(.98)}
.btn-ghost{background:#fff;color:#E2386D;border:1.5px solid #FFD2C4}
.btn-ghost:hover{background-image:var(--grad-soft);border-color:#FF9A7A;transform:translateY(-2px)}
.btn-ghost:active{transform:scale(.98)}
.btn-dark{background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,.16)}
.btn-dark:hover{background:#31241F;transform:translateY(-2px)}

/* ---------- Badges ---------- */
.badge{
  display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:700;
  padding:.28rem .72rem;border-radius:999px;background:rgba(255,90,54,.1);color:#E2386D;
  line-height:1.5;white-space:nowrap;
}
.badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.badge-mint{background:rgba(18,184,134,.12);color:#0E9A70}
.badge-amber{background:rgba(255,176,32,.16);color:#B87800}
.badge-plain::before{display:none}

/* ---------- Section ---------- */
.section{padding:3.6rem 0}
@media(min-width:768px){.section{padding:5.5rem 0}}
.sec-head{max-width:720px}
.sec-tag{
  display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:800;
  letter-spacing:.06em;color:#E2386D;background:rgba(255,46,147,.09);
  border-radius:999px;padding:.32rem .9rem;
}
.sec-title{
  font-size:clamp(1.45rem,3vw,2rem);font-weight:800;line-height:1.34;
  letter-spacing:-.01em;color:var(--ink);margin-top:.9rem;
}
.sec-desc{margin-top:.85rem;font-size:15px;line-height:1.85;color:var(--muted);max-width:68ch}
.on-ink .sec-title{color:#fff}
.on-ink .sec-tag{background:rgba(255,255,255,.12);color:#FFC0D5}
.on-ink .sec-desc{color:rgba(255,255,255,.7)}

/* ---------- Category hero ---------- */
.cat-hero{
  position:relative;overflow:hidden;
  background-image:url('/assets/images/backpic/back-2.jpg');
  background-size:cover;background-position:center;
  padding:2.4rem 0 2.6rem;
}
.cat-hero::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(115deg,rgba(255,90,54,.93) 0%,rgba(255,46,147,.82) 55%,rgba(255,46,147,.62) 100%);
}
.cat-hero::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:70px;
  background:linear-gradient(180deg,rgba(255,247,242,0),rgba(255,247,242,.95));
}
.cat-hero .wrap{position:relative;z-index:2}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:13px;color:rgba(255,255,255,.78)}
.crumb a{color:rgba(255,255,255,.92);border-bottom:1px dashed rgba(255,255,255,.5);padding-bottom:1px}
.crumb a:hover{color:#fff;border-bottom-color:#fff}
.crumb-current{color:#fff;font-weight:700}
.cat-h1{
  margin-top:1rem;font-size:clamp(1.7rem,4.4vw,2.65rem);font-weight:800;
  line-height:1.2;letter-spacing:-.01em;color:#fff;
}
.cat-sub{margin-top:.9rem;font-size:15px;line-height:1.85;color:rgba(255,255,255,.9);max-width:62ch}
.hero-stat-box{
  display:flex;flex-wrap:wrap;gap:.75rem;
}
.hero-stat{
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.32);
  border-radius:var(--r-md);
  padding:.85rem 1.15rem;color:#fff;min-width:132px;
  backdrop-filter:blur(6px);
}
.hero-stat b{display:block;font-size:26px;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}
.hero-stat span{font-size:12.5px;color:rgba(255,255,255,.85)}

/* ---------- Flash bar ---------- */
.flash-section{padding:1.6rem 0 0}
.flash-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);padding:1.05rem 1.25rem;
  position:relative;overflow:hidden;
}
.flash-bar::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--grad)}
.flash-left{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.flash-flag{
  background-image:var(--grad);color:#fff;font-size:12.5px;font-weight:800;
  padding:.3rem .78rem;border-radius:999px;letter-spacing:.04em;
  box-shadow:0 8px 18px -10px rgba(255,46,147,.9);
}
.flash-count{display:flex;align-items:center;gap:.5rem;font-size:13px;color:var(--muted)}
.countdown{display:flex;align-items:center;gap:.22rem;font-variant-numeric:tabular-nums}
.cd-num{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:32px;height:30px;border-radius:9px;background:var(--ink);color:#fff;
  font-size:14px;font-weight:800;
}
.countdown i{font-style:normal;color:#B9AAA4;font-weight:800}
.flash-item{display:flex;align-items:center;gap:.9rem;flex:1 1 320px;min-width:260px}
.flash-item img{width:88px;height:64px;object-fit:cover;border-radius:14px;flex:none;background:linear-gradient(120deg,#FFE3D6,#FFD9E8)}
.flash-title{font-size:15.5px;font-weight:700;color:var(--ink);line-height:1.5}
.flash-desc{font-size:13px;color:var(--muted);margin-top:.15rem}
.flash-cta{flex:none}

/* ---------- Stat strip ---------- */
.stat-strip{
  display:grid;gap:1rem;
  grid-template-columns:1fr;
}
@media(min-width:768px){.stat-strip{grid-template-columns:repeat(3,1fr)}}
.stat-item{
  display:flex;align-items:center;gap:1rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  padding:1.1rem 1.25rem;box-shadow:var(--shadow-card);
  transition:transform .22s ease,box-shadow .22s ease;
}
.stat-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.stat-icon{
  width:44px;height:44px;border-radius:14px;background:var(--grad-soft);flex:none;
  display:flex;align-items:center;justify-content:center;color:#E2386D;font-weight:800;font-size:15px;
}
.stat-num{font-size:27px;font-weight:800;color:var(--ink);line-height:1.15;font-variant-numeric:tabular-nums}
.stat-label{font-size:13px;color:var(--muted)}

/* ---------- Toolbar ---------- */
.toolbar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  padding:.95rem 1.1rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
}
.chip-group{display:flex;flex-wrap:wrap;gap:.55rem}
.chip{
  border-radius:999px;padding:.44rem 1.05rem;font-size:13.5px;font-weight:600;
  color:#5C524E;background:#FFF3ED;border:1px solid transparent;
  transition:all .2s ease;min-height:38px;display:inline-flex;align-items:center;
}
.chip:hover{background:#FFE7DC;color:#E2386D}
.chip.is-active{background-image:var(--grad);color:#fff;box-shadow:0 10px 20px -12px rgba(255,46,147,.85)}
.sort-wrap{display:flex;align-items:center;gap:.55rem;font-size:13.5px;color:var(--muted)}
.sort-select{
  height:40px;border-radius:12px;border:1px solid var(--line);background:#fff;
  padding:0 2.2rem 0 .85rem;font-size:13.5px;color:var(--ink);font-weight:600;
  appearance:none;background-image:linear-gradient(45deg,transparent 50%,#B9AAA4 50%),linear-gradient(135deg,#B9AAA4 50%,transparent 50%);
  background-position:calc(100% - 18px) 17px,calc(100% - 13px) 17px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.sort-select:focus{outline:none;border-color:#FF7A5B;box-shadow:0 0 0 4px rgba(255,90,54,.12)}

/* ---------- Welfare grid ---------- */
.welfare-grid{display:grid;gap:1.35rem;grid-template-columns:1fr}
@media(min-width:768px){.welfare-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.welfare-grid{grid-template-columns:repeat(3,1fr)}}
.welfare-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-card);
  position:relative;transition:transform .22s ease,box-shadow .22s ease;
}
.welfare-card::before{
  content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad);
  opacity:0;transition:opacity .22s ease;z-index:3;
}
.welfare-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.welfare-card:hover::before{opacity:1}
.welfare-cover{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(120deg,#FFE3D6,#FFD9E8)}
.welfare-cover img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.welfare-card:hover .welfare-cover img{transform:scale(1.045)}
.cover-flag{
  position:absolute;top:12px;right:12px;background-image:var(--grad);color:#fff;
  font-size:12px;font-weight:700;padding:.26rem .72rem;border-radius:999px;
  box-shadow:0 10px 20px -10px rgba(255,46,147,.9);
}
.welfare-body{padding:1.1rem 1.2rem 1.25rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.welfare-title{
  font-size:16.5px;font-weight:700;line-height:1.5;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.welfare-title a:hover{color:#E2386D}
.welfare-desc{
  font-size:13.5px;line-height:1.78;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.welfare-meta{
  margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  padding-top:.75rem;border-top:1px dashed var(--line);
}
.welfare-date{font-size:12.5px;color:#9C8F89;font-variant-numeric:tabular-nums}
.more-wrap{display:flex;justify-content:center;margin-top:2.4rem}

/* ---------- Tag cloud ---------- */
.tag-cloud{display:flex;flex-wrap:wrap;gap:.7rem}
.tag-pill{
  display:inline-flex;align-items:center;gap:.45rem;
  background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:.55rem 1.1rem;font-size:14px;font-weight:600;color:#4A423F;
  box-shadow:0 10px 22px -18px rgba(255,90,54,.6);
  transition:all .2s ease;min-height:44px;
}
.tag-pill:hover{color:#E2386D;border-color:#FFC7B2;background:var(--grad-soft);transform:translateY(-2px)}
.tag-pill i{font-style:normal;font-size:12px;color:#B0A29C;font-variant-numeric:tabular-nums}

/* ---------- Topics ---------- */
.topic-list{display:flex;flex-direction:column;gap:.9rem}
.topic-row{
  display:flex;gap:1.1rem;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-md);padding:1.1rem 1.25rem;box-shadow:var(--shadow-card);
  transition:transform .22s ease,box-shadow .22s ease;
}
.topic-row:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.topic-num{
  font-size:13px;font-weight:800;letter-spacing:.08em;flex:none;padding-top:3px;
  background-image:var(--grad);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums;
}
.topic-title{font-size:16px;font-weight:700;color:var(--ink);line-height:1.5}
.topic-title:hover{color:#E2386D}
.topic-desc{font-size:13.5px;color:var(--muted);margin-top:.3rem;line-height:1.75}
.topic-date{font-size:12.5px;color:#9C8F89;flex:none;padding-top:4px}

/* ---------- FAQ ---------- */
.faq-list{display:flex;flex-direction:column;gap:.85rem}
.faq-item{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-card);overflow:hidden;transition:box-shadow .22s ease;
}
.faq-item[open]{background:linear-gradient(180deg,#FFF9F5,#FFFFFF)}
.faq-q{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.05rem 1.25rem;font-size:15.5px;font-weight:700;color:var(--ink);
  cursor:pointer;list-style:none;min-height:56px;
}
.faq-q::-webkit-details-marker{display:none}
.faq-icon{
  width:26px;height:26px;border-radius:9px;background:var(--grad-soft);color:#E2386D;
  display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;
  flex:none;transition:transform .25s ease;
}
.faq-item[open] .faq-icon{transform:rotate(45deg)}
.faq-a{
  padding:0 1.25rem 1.2rem;font-size:14.5px;line-height:1.85;color:var(--muted);
  border-top:1px dashed var(--line);margin:0 1.25rem;padding-left:0;padding-right:0;padding-top:1rem;
}

/* ---------- Subscribe ---------- */
.subscribe-panel{
  background:linear-gradient(135deg,rgba(255,90,54,.09),rgba(255,46,147,.09));
  border:1px solid #FFE0D3;border-radius:var(--r-lg);padding:1.6rem 1.4rem;
}
@media(min-width:768px){.subscribe-panel{padding:2rem 2.2rem}}
.sub-input-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.1rem}
.field{
  flex:1 1 220px;height:48px;border-radius:14px;border:1px solid var(--line);background:#fff;
  padding:0 1rem;font-size:15px;color:var(--text);
  transition:border-color .2s ease,box-shadow .2s ease;
}
.field::placeholder{color:#A79A94}
.field:focus{outline:none;border-color:#FF7A5B;box-shadow:0 0 0 4px rgba(255,90,54,.12)}
.form-note{margin-top:.7rem;font-size:12.5px;color:#8E8079}
.rule-card{
  background:var(--ink);border-radius:var(--r-lg);padding:1.6rem 1.5rem;color:#fff;
  position:relative;overflow:hidden;
}
.rule-card::after{
  content:'';position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,46,147,.5),rgba(255,46,147,0) 70%);
}
.rule-list{display:flex;flex-direction:column;gap:.85rem;margin-top:1.1rem;position:relative;z-index:2}
.rule-item{display:flex;gap:.7rem;font-size:14px;line-height:1.75;color:rgba(255,255,255,.82)}
.rule-dot{
  width:20px;height:20px;border-radius:7px;background:var(--grad);flex:none;margin-top:5px;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;
}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:rgba(255,255,255,.72);margin-top:1rem}
.footer-title{font-size:15px;font-weight:700;color:rgba(255,255,255,.92)}
.footer-link{
  display:block;font-size:13.5px;color:rgba(255,255,255,.6);
  padding:.32rem 0;transition:color .2s ease,transform .2s ease;
}
.footer-link:hover{color:#fff;transform:translateX(2px)}
.footer-bottom{
  margin-top:2.6rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.12);
  font-size:12.5px;color:rgba(255,255,255,.5);line-height:1.7;
}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}
