/* roulang page: index */
:root{
  --ink:#292238;
  --ink-soft:#5e576d;
  --purple:#382b52;
  --purple-deep:#241a38;
  --coral:#ef6b55;
  --coral-dark:#d95645;
  --cream:#fbf8f3;
  --paper:#ffffff;
  --mist:#f1edf2;
  --line:#e8e0e5;
  --muted:#8d8696;
  --gold:#e3ad65;
  --success:#4e8b72;
  --shadow:0 16px 42px rgba(48,32,63,.09);
  --shadow-soft:0 8px 24px rgba(48,32,63,.06);
  --radius:16px;
  --container:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--ink);background:var(--cream);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input{font:inherit}
button{cursor:pointer;border:0}
.container{width:min(var(--container),calc(100% - 48px));margin:0 auto}
.site-header{height:82px;background:rgba(251,248,243,.94);border-bottom:1px solid rgba(56,43,82,.08);position:sticky;top:0;z-index:30;backdrop-filter:blur(14px)}
.header-inner{height:100%;display:flex;align-items:center;gap:38px}
.brand{display:flex;align-items:center;gap:11px;flex:none}
.brand-mark{width:38px;height:38px;border-radius:12px 12px 9px 9px;background:var(--purple);position:relative;overflow:hidden}
.brand-mark:before,.brand-mark:after{content:"";position:absolute;border:2px solid var(--coral);border-bottom:0;border-radius:25px 25px 0 0}
.brand-mark:before{width:22px;height:18px;left:8px;top:10px}
.brand-mark:after{width:8px;height:8px;background:var(--gold);border:0;border-radius:50%;left:15px;top:5px}
.brand-name{font-size:16px;font-weight:800;letter-spacing:-.4px;white-space:nowrap}
.brand-name em{display:block;color:var(--coral);font-size:11px;font-style:normal;letter-spacing:1.2px;line-height:1.1;margin-top:1px}
.main-nav{display:flex;align-items:center;gap:5px;flex:1}
.main-nav a{padding:9px 13px;color:var(--ink-soft);font-size:14px;border-radius:9px;position:relative;transition:.22s ease}
.main-nav a:hover{color:var(--purple);background:#f1e9ec}
.main-nav a.active{color:var(--purple);font-weight:700}
.main-nav a.active:after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:3px;border-radius:3px;background:var(--coral)}
.header-action{display:inline-flex;align-items:center;justify-content:center;background:var(--coral);color:#fff;padding:10px 18px;border-radius:9px;font-size:14px;font-weight:700;white-space:nowrap;transition:.22s ease}
.header-action:hover{background:var(--coral-dark);transform:translateY(-2px);box-shadow:0 8px 18px rgba(239,107,85,.2)}
.menu-toggle{display:none;background:transparent;color:var(--purple);font-size:24px}
.hero{position:relative;overflow:hidden;background:var(--purple-deep);color:#fff;padding:104px 0 110px}
.hero:before{content:"";position:absolute;width:590px;height:590px;border-radius:50%;right:-165px;top:-245px;background:rgba(239,107,85,.13)}
.hero:after{content:"";position:absolute;width:430px;height:430px;border-radius:50%;left:-170px;bottom:-280px;border:1px solid rgba(255,255,255,.12)}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:75px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--coral);font-size:13px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:18px}
.eyebrow:before{content:"";width:22px;height:2px;background:var(--coral)}
.hero h1{font-size:clamp(38px,5vw,68px);line-height:1.13;letter-spacing:-2.5px;max-width:700px;margin-bottom:24px}
.hero h1 span{color:#f4b172}
.hero-lead{color:#d5cedc;font-size:18px;line-height:1.9;max-width:620px}
.hero-actions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 20px;border-radius:9px;font-size:14px;font-weight:700;transition:.22s ease;border:1px solid transparent}
.btn-primary{background:var(--coral);color:#fff}
.btn-primary:hover{background:var(--coral-dark);transform:translateY(-2px)}
.btn-light{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);color:#fff}
.btn-light:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.5)}
.btn-outline{border-color:var(--line);color:var(--purple);background:#fff}
.btn-outline:hover{border-color:var(--coral);color:var(--coral);transform:translateY(-2px)}
.hero-stage{height:330px;position:relative;border-bottom:3px solid rgba(255,255,255,.65);display:flex;align-items:flex-end;justify-content:center}
.stage-curtain{position:absolute;inset:0 8% 0;background:linear-gradient(90deg,rgba(239,107,85,.28),transparent 30%,rgba(239,107,85,.2) 70%,transparent);clip-path:polygon(0 0,22% 5%,35% 0,50% 5%,65% 0,78% 5%,100% 0,91% 100%,9% 100%);opacity:.8}
.stage-light{position:absolute;left:24%;top:4%;width:52%;height:250px;background:linear-gradient(120deg,transparent 28%,rgba(247,203,147,.25),transparent 70%);clip-path:polygon(47% 0,62% 0,100% 100%,0 100%);filter:blur(3px)}
.stage-copy{position:relative;z-index:2;text-align:center;margin-bottom:45px}
.stage-copy strong{font-size:30px;display:block;letter-spacing:3px}
.stage-copy small{color:#d7bdba;letter-spacing:2px}
.section{padding:90px 0}
.section-soft{background:var(--mist)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:32px}
.section-kicker{color:var(--coral);font-size:12px;font-weight:800;letter-spacing:1.8px;margin-bottom:8px}
.section h2{font-size:34px;letter-spacing:-1px;line-height:1.25}
.section-intro{color:var(--ink-soft);max-width:570px;margin-top:9px}
.text-link{color:var(--coral);font-weight:700;font-size:14px;white-space:nowrap}
.text-link:after{content:"  →";transition:.2s}
.text-link:hover:after{margin-left:4px}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.timeline-item{padding:24px 25px 18px 0;border-right:1px solid var(--line);margin-right:25px}
.timeline-item:last-child{border-right:0;margin-right:0}
.meta{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px}
.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:5px;background:#f8e2de;color:var(--coral-dark);font-size:11px;font-weight:800}
.badge.green{background:#e6f1ec;color:var(--success)}
.badge.dark{background:rgba(255,255,255,.14);color:#ffd1a7}
.timeline-item h3{font-size:18px;line-height:1.45;margin:12px 0 8px}
.timeline-item p{color:var(--ink-soft);font-size:14px}
.recommend-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}
.feature-card,.small-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);transition:.25s ease}
.feature-card:hover,.small-card:hover,.topic:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.cover{height:230px;background:linear-gradient(135deg,#4b3157 0%,#9d5a5b 52%,#e99469 100%);position:relative;overflow:hidden}
.cover:after{content:"NG";position:absolute;right:22px;bottom:-25px;color:rgba(255,255,255,.2);font-size:110px;font-weight:900;line-height:1}
.cover-label{position:absolute;left:20px;top:18px;color:#fff;border:1px solid rgba(255,255,255,.55);padding:4px 9px;font-size:11px;border-radius:5px}
.card-body{padding:22px}
.card-body h3{font-size:21px;line-height:1.4;margin:9px 0}
.card-body p{color:var(--ink-soft);font-size:14px}
.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px}
.mini-grid{display:grid;grid-template-rows:1fr 1fr;gap:20px}
.small-card{display:grid;grid-template-columns:38% 62%;min-height:160px}
.small-cover{background:linear-gradient(145deg,#d97961,#513b60);min-height:100%}
.small-card .card-body{padding:18px}
.small-card h3{font-size:17px;margin:7px 0}
.info-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:46px;align-items:start}
.lead-story{background:var(--purple);color:#fff;border-radius:var(--radius);padding:32px;min-height:290px;position:relative;overflow:hidden}
.lead-story:after{content:"舞台";position:absolute;right:-20px;bottom:-38px;font-weight:900;font-size:120px;color:rgba(255,255,255,.07)}
.lead-story h3{font-size:28px;line-height:1.35;position:relative;z-index:1;margin:13px 0}
.lead-story p{color:#d5cede;font-size:14px;position:relative;z-index:1}
.content-list{display:flex;flex-direction:column}
.content-row{display:grid;grid-template-columns:86px 1fr auto;gap:18px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}
.content-thumb{height:60px;border-radius:9px;background:linear-gradient(135deg,#e9a16c,#594366)}
.content-row h3{font-size:16px;line-height:1.4;margin:3px 0}
.content-row p{font-size:13px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:440px}
.content-row .meta{justify-content:flex-end;white-space:nowrap}
.notice-panel{background:var(--purple);color:#fff;border-radius:var(--radius);padding:34px 38px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.notice-panel h2{font-size:25px;margin:10px 0 7px}
.notice-panel p{color:#d7cfdd;font-size:14px}
.topic-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:16px}
.topic{min-height:210px;border-radius:var(--radius);padding:25px;color:#fff;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:end;transition:.25s ease;background:#6b475e}
.topic:nth-child(2){background:#b66d5f;min-height:170px}
.topic:nth-child(3){background:#514267;min-height:170px}
.topic:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(31,21,42,.72),transparent 65%)}
.topic>*{position:relative;z-index:1}
.topic h3{font-size:21px;margin:8px 0 2px}
.topic p{font-size:13px;color:#f3e9e7}
.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.event{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;display:grid;grid-template-columns:68px 1fr;gap:17px}
.event-date{color:var(--coral);font-weight:900;font-size:23px;line-height:1.15;border-right:1px solid var(--line)}
.event-date small{display:block;font-size:11px;color:var(--muted);font-weight:500;margin-top:4px}
.event h3{font-size:17px;margin:6px 0}
.event p{font-size:13px;color:var(--ink-soft)}
.download-section{background:#eee7ed}
.download-box{background:var(--purple-deep);color:#fff;border-radius:20px;padding:54px 60px;display:grid;grid-template-columns:1.15fr .85fr;gap:55px;align-items:center;overflow:hidden;position:relative}
.download-box:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:-130px;top:-160px}
.download-box h2{font-size:36px;line-height:1.25;margin:10px 0 14px}
.download-box p{color:#d5cedc;max-width:510px}
.platforms{display:flex;gap:10px;margin-top:25px;flex-wrap:wrap}
.platform{border:1px solid rgba(255,255,255,.2);padding:8px 12px;border-radius:7px;color:#e8e0eb;font-size:13px}
.download-visual{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:20px}
.device{width:146px;height:248px;border:7px solid #171125;border-radius:24px;background:linear-gradient(160deg,#ef795e,#5c3b63);box-shadow:0 20px 30px rgba(0,0,0,.25);position:relative}
.device:before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:45px;height:5px;border-radius:5px;background:#281a37}
.device:after{content:"NG";position:absolute;left:20px;bottom:33px;color:rgba(255,255,255,.75);font-weight:900;font-size:28px}
.qr{width:112px;height:112px;background-color:#fff;background-image:linear-gradient(45deg,#32213e 25%,transparent 25%),linear-gradient(-45deg,#32213e 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#32213e 75%),linear-gradient(-45deg,transparent 75%,#32213e 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;border:8px solid #fff;border-radius:8px}
.qr-note{font-size:11px;color:#c9c0d0;text-align:center;margin-top:8px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step{padding:24px 20px;border-top:3px solid var(--coral);background:#fff;border-radius:0 0 12px 12px}
.step-num{color:var(--coral);font-size:13px;font-weight:900;letter-spacing:1px}
.step h3{font-size:17px;margin:12px 0 5px}
.step p{font-size:13px;color:var(--ink-soft)}
.beginner-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;align-items:start}
.beginner-grid h2{font-size:32px;line-height:1.3;margin-bottom:14px}
.beginner-grid>div>p{color:var(--ink-soft)}
.task-list{border-top:1px solid var(--line)}
.task{display:flex;align-items:center;gap:17px;padding:17px 0;border-bottom:1px solid var(--line)}
.task-icon{width:34px;height:34px;border-radius:50%;background:#fae3de;color:var(--coral);display:grid;place-items:center;font-weight:800;flex:none}
.task h3{font-size:16px}
.task p{font-size:13px;color:var(--ink-soft)}
.calendar{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.calendar-item{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}
.calendar-item strong{display:block;color:var(--coral);font-size:26px;line-height:1}
.calendar-item span{font-size:12px;color:var(--muted)}
.calendar-item h3{font-size:16px;margin:12px 0 4px}
.calendar-item p{font-size:13px;color:var(--ink-soft)}
.story{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.story-visual{min-height:330px;background:#e8dce3;border-radius:20px;position:relative;overflow:hidden}
.story-visual:before{content:"";position:absolute;width:230px;height:230px;border:32px solid var(--coral);border-radius:50%;left:13%;top:15%;opacity:.85}
.story-visual:after{content:"";position:absolute;width:300px;height:300px;border:1px solid var(--purple);border-radius:50%;right:-45px;bottom:-120px}
.story-copy h2{font-size:34px;line-height:1.3;margin-bottom:17px}
.story-copy p{color:var(--ink-soft);margin-bottom:18px}
.safety{border-left:4px solid var(--gold);background:#fff;padding:24px 28px;border-radius:0 12px 12px 0;display:flex;gap:20px;align-items:flex-start}
.safety-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:#f7ecd8;color:#a8792f;font-weight:900;flex:none}
.safety h3{font-size:17px;margin-bottom:4px}
.safety p{font-size:14px;color:var(--ink-soft)}
.faq-list{max-width:860px;margin:0 auto;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-question{width:100%;background:transparent;color:var(--ink);display:flex;justify-content:space-between;align-items:center;text-align:left;padding:21px 0;font-size:16px;font-weight:700}
.faq-question span{color:var(--coral);font-size:23px;font-weight:400;transition:.2s}
.faq-answer{display:none;color:var(--ink-soft);font-size:14px;padding:0 45px 20px 0}
.faq-item.open .faq-answer{display:block}
.faq-item.open .faq-question span{transform:rotate(45deg)}
.site-footer{background:var(--purple-deep);color:#fff;padding:58px 0 25px}
.footer-top{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:40px;padding-bottom:45px}
.footer-brand p{color:#bdb3c8;font-size:13px;max-width:270px;margin-top:15px}
.footer-title{font-size:14px;font-weight:800;margin-bottom:15px}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links a{color:#bdb3c8;font-size:13px;transition:.2s}
.footer-links a:hover{color:#f4aa89}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;display:flex;justify-content:space-between;gap:20px;color:#978da4;font-size:12px}
.empty-state{padding:32px 0;color:var(--muted);font-size:14px}
@media(max-width:1024px){
  .header-inner{gap:16px}.main-nav a{padding-left:8px;padding-right:8px;font-size:13px}
  .hero-grid{gap:35px}.download-box{padding:42px 38px;gap:25px}
  .footer-top{grid-template-columns:1.4fr 1fr 1fr}
}
@media(max-width:768px){
  .container{width:min(100% - 34px,var(--container))}
  .site-header{height:68px}.brand-name{font-size:14px}.brand-mark{width:34px;height:34px}
  .main-nav{display:none;position:absolute;left:0;right:0;top:68px;padding:14px 17px 20px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;align-items:stretch}
  .main-nav.open{display:flex}.main-nav a{padding:12px 14px}.main-nav a.active:after{left:5px;right:auto;top:12px;bottom:12px;width:3px;height:auto}
  .header-action{margin-left:auto;padding:8px 12px;font-size:12px}.menu-toggle{display:block}
  .hero{padding:70px 0 75px}.hero-grid{grid-template-columns:1fr}.hero-stage{height:220px}.hero h1{font-size:43px;letter-spacing:-1.5px}
  .hero-lead{font-size:16px}.section{padding:60px 0}.section-head{display:block}.section-head .text-link{display:inline-block;margin-top:15px}
  .section h2{font-size:29px}.timeline{grid-template-columns:1fr}.timeline-item{border-right:0;border-bottom:1px solid var(--line);margin:0;padding-right:0}
  .recommend-grid,.info-layout,.download-box,.beginner-grid,.story{grid-template-columns:1fr;gap:20px}
  .mini-grid{grid-template-rows:auto}.notice-panel{display:block;padding:28px}.notice-panel .btn{margin-top:20px}
  .topic-grid{grid-template-columns:1fr 1fr}.topic:first-child{grid-column:span 2}
  .event-grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.calendar{grid-template-columns:1fr 1fr}
  .download-box{padding:35px 24px}.download-box h2{font-size:30px}.download-visual{order:-1}
  .story-visual{min-height:220px}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:span 2}
}
@media(max-width:520px){
  .brand-name em{display:none}.brand-name{max-width:150px;overflow:hidden;text-overflow:ellipsis}
  .header-action{display:none}.hero h1{font-size:36px}.hero-actions .btn{width:100%}
  .cover{height:190px}.small-card{grid-template-columns:31% 69%}.small-card h3{font-size:15px}
  .content-row{grid-template-columns:58px 1fr;gap:12px}.content-row .meta{grid-column:2;justify-content:flex-start}
  .content-row p{max-width:100%}.topic-grid{grid-template-columns:1fr}.topic:first-child{grid-column:auto}.topic,.topic:nth-child(2),.topic:nth-child(3){min-height:175px}
  .download-visual{gap:10px}.device{width:118px;height:205px}.qr{width:92px;height:92px}
  .steps,.calendar{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr}.footer-brand{grid-column:auto}
  .footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}
}

/* roulang page: category1 */
:root{
  --ink:#292238;--ink-soft:#5e576d;--purple:#382b52;--purple-deep:#241a38;
  --coral:#ef6b55;--coral-dark:#d95645;--cream:#fbf8f3;--paper:#fff;
  --mist:#f1edf2;--line:#e8e0e5;--muted:#8d8696;--gold:#e3ad65;
  --success:#4e8b72;--shadow:0 16px 42px rgba(48,32,63,.09);
  --shadow-soft:0 8px 24px rgba(48,32,63,.06);--radius:16px;--container:1200px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--ink);background:var(--cream);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input{font:inherit}
button{cursor:pointer;border:0}
.container{width:min(var(--container),calc(100% - 48px));margin:0 auto}
.site-header{height:82px;background:rgba(251,248,243,.95);border-bottom:1px solid rgba(56,43,82,.08);position:sticky;top:0;z-index:30;backdrop-filter:blur(14px)}
.header-inner{height:100%;display:flex;align-items:center;gap:38px}
.brand{display:flex;align-items:center;gap:11px;flex:none}
.brand-mark{width:38px;height:38px;border-radius:12px 12px 9px 9px;background:var(--purple);position:relative;overflow:hidden}
.brand-mark:before,.brand-mark:after{content:"";position:absolute;border:2px solid var(--coral);border-bottom:0;border-radius:25px 25px 0 0}
.brand-mark:before{width:22px;height:18px;left:8px;top:10px}
.brand-mark:after{width:8px;height:8px;background:var(--gold);border:0;border-radius:50%;left:15px;top:5px}
.brand-name{font-size:16px;font-weight:800;letter-spacing:-.4px;white-space:nowrap}
.brand-name em{display:block;color:var(--coral);font-size:11px;font-style:normal;letter-spacing:1.2px;line-height:1.1;margin-top:1px}
.main-nav{display:flex;align-items:center;gap:5px;flex:1}
.main-nav a{padding:9px 13px;color:var(--ink-soft);font-size:14px;border-radius:9px;position:relative;transition:.22s ease}
.main-nav a:hover{color:var(--purple);background:#f1e9ec}
.main-nav a.active{color:var(--purple);font-weight:700}
.main-nav a.active:after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:3px;border-radius:3px;background:var(--coral)}
.header-action{display:inline-flex;align-items:center;justify-content:center;background:var(--coral);color:#fff;padding:10px 18px;border-radius:9px;font-size:14px;font-weight:700;white-space:nowrap;transition:.22s ease}
.header-action:hover{background:var(--coral-dark);transform:translateY(-2px);box-shadow:0 8px 18px rgba(239,107,85,.2)}
.menu-toggle{display:none;background:transparent;color:var(--purple);font-size:24px}
.page-head{position:relative;overflow:hidden;background:var(--mist);padding:76px 0 72px;border-bottom:1px solid var(--line)}
.page-head:after{content:"";position:absolute;width:330px;height:330px;border:1px solid rgba(56,43,82,.13);border-radius:50%;right:8%;top:-190px}
.page-head-inner{position:relative;z-index:1;max-width:790px}
.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--coral);font-size:12px;font-weight:800;letter-spacing:1.7px;margin-bottom:12px}
.eyebrow:before,.section-kicker:before{content:"";width:22px;height:2px;background:var(--coral)}
.page-head h1{font-size:clamp(34px,5vw,58px);line-height:1.18;letter-spacing:-2px;margin:0 0 18px;color:var(--purple)}
.page-head p{max-width:700px;color:var(--ink-soft);font-size:17px;margin:0}
.breadcrumb{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:13px;margin-bottom:22px}
.breadcrumb a:hover{color:var(--coral)}
.breadcrumb span{color:#c3bac3}
.section{padding:82px 0}
.section-soft{background:var(--mist)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px}
.section h2{font-size:32px;line-height:1.25;letter-spacing:-1px;margin:0}
.section-intro{color:var(--ink-soft);max-width:610px;margin:9px 0 0}
.text-link{color:var(--coral);font-weight:700;font-size:14px;white-space:nowrap}
.text-link:after{content:"  →";transition:.2s}
.text-link:hover:after{margin-left:4px}
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.filter-bar button{background:var(--paper);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:9px 18px;font-size:13px;transition:.2s}
.filter-bar button:hover,.filter-bar button.active{background:var(--purple);border-color:var(--purple);color:#fff}
.news-layout{display:grid;grid-template-columns:1.08fr .92fr;gap:24px;align-items:start}
.news-feature{background:var(--purple);color:#fff;border-radius:var(--radius);padding:34px;min-height:330px;position:relative;overflow:hidden}
.news-feature:after{content:"";position:absolute;width:240px;height:240px;border:1px solid rgba(255,255,255,.15);border-radius:50%;right:-78px;bottom:-95px}
.news-feature .badge{background:rgba(239,107,85,.2);color:#ffc0ae}
.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:5px;background:#f8e2de;color:var(--coral-dark);font-size:11px;font-weight:800}
.badge.green{background:#e6f1ec;color:var(--success)}
.badge.dark{background:rgba(255,255,255,.14);color:#ffd1a7}
.news-feature h3{font-size:28px;line-height:1.35;margin:25px 0 13px;max-width:510px}
.news-feature p{color:#d5cedc;max-width:500px;margin-bottom:26px}
.meta{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px}
.feature-meta{color:#c8bece}
.news-list{display:flex;flex-direction:column;gap:12px}
.news-item{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:20px 22px;transition:.22s ease}
.news-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:#d7c5cc}
.news-item h3{font-size:18px;line-height:1.45;margin:10px 0 7px}
.news-item p{font-size:14px;color:var(--ink-soft);margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.empty-state{padding:42px 24px;background:var(--paper);border:1px dashed #d7cbd3;border-radius:var(--radius);color:var(--muted);text-align:center}
.notice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.notice-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;min-height:190px}
.notice-card.accent{border-top:4px solid var(--coral)}
.notice-card h3{font-size:19px;line-height:1.45;margin:15px 0 8px}
.notice-card p{font-size:14px;color:var(--ink-soft);margin:0}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.timeline-item{padding:25px 25px 12px 0;border-right:1px solid var(--line);margin-right:25px}
.timeline-item:last-child{border-right:0;margin-right:0}
.timeline-dot{width:10px;height:10px;background:var(--coral);border-radius:50%;box-shadow:0 0 0 5px #f8dfda;margin-bottom:18px}
.timeline-item h3{font-size:19px;line-height:1.45;margin:0 0 8px}
.timeline-item p{font-size:14px;color:var(--ink-soft);margin:0}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.guide-card{padding:29px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}
.guide-card strong{display:flex;align-items:center;gap:13px;font-size:18px}
.guide-number{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:#f8e2de;color:var(--coral-dark);font-weight:800}
.guide-card p{color:var(--ink-soft);font-size:14px;margin:14px 0 0 47px}
.faq-list{max-width:850px;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item button{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;background:none;color:var(--ink);padding:20px 0;font-weight:700}
.faq-item button span:last-child{color:var(--coral);font-size:23px;font-weight:400}
.faq-answer{display:none;color:var(--ink-soft);font-size:14px;padding:0 35px 20px 0}
.faq-item.open .faq-answer{display:block}
.cta-band{background:var(--purple-deep);color:#fff;padding:44px;border-radius:var(--radius);display:flex;justify-content:space-between;align-items:center;gap:25px}
.cta-band h2{font-size:28px;margin:0 0 7px}
.cta-band p{color:#d5cedc;margin:0}
.site-footer{background:var(--purple-deep);color:#fff;padding:62px 0 24px}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:35px;padding-bottom:45px}
.footer-brand p{color:#c8bece;font-size:14px;max-width:290px;margin-top:18px}
.footer-title{font-size:14px;font-weight:800;margin-bottom:16px}
.footer-links{display:flex;flex-direction:column;gap:9px}
.footer-links a{color:#c8bece;font-size:13px;transition:.2s}
.footer-links a:hover{color:#fff;padding-left:3px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.13);padding-top:20px;display:flex;justify-content:space-between;gap:20px;color:#a99fb2;font-size:12px}
@media(max-width:1024px){.header-inner{gap:18px}.main-nav a{padding:8px 8px}.news-layout{grid-template-columns:1fr}.footer-top{grid-template-columns:1.3fr 1fr 1fr}}
@media(max-width:768px){
 .container{width:min(var(--container),calc(100% - 34px))}.site-header{height:70px}.brand-name{font-size:14px}.brand-name em{font-size:9px}.brand-mark{width:34px;height:34px}
 .menu-toggle{display:block;margin-left:auto}.main-nav{display:none;position:absolute;top:70px;left:0;right:0;padding:14px 17px 20px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:var(--shadow-soft);flex-direction:column;align-items:stretch}
 .main-nav.open{display:flex}.main-nav a{padding:12px 13px}.main-nav a.active:after{left:13px;right:auto;width:30px;bottom:5px}.header-action{display:none}
 .page-head{padding:53px 0 54px}.page-head h1{font-size:38px}.page-head p{font-size:15px}
 .section{padding:55px 0}.section-head{display:block}.section-head .text-link{display:inline-block;margin-top:16px}.section h2{font-size:28px}
 .notice-grid,.timeline,.guide-grid{grid-template-columns:1fr}.timeline-item{border-right:0;border-bottom:1px solid var(--line);padding:24px 0;margin:0}.timeline-item:last-child{border-bottom:0}.news-feature{min-height:280px;padding:27px}.news-feature h3{font-size:24px}
 .cta-band{display:block;padding:30px 25px}.cta-band .btn{margin-top:20px}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/-1}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}
}
@media(max-width:520px){.brand-name{max-width:190px;overflow:hidden;text-overflow:ellipsis}.page-head h1{font-size:32px;letter-spacing:-1px}.news-feature h3{font-size:22px}.filter-bar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.filter-bar button{white-space:nowrap}.footer-top{grid-template-columns:1fr}.footer-brand{grid-column:auto}}

/* roulang page: article */
:root{
      --ink:#292238;
      --ink-soft:#5e576d;
      --purple:#382b52;
      --purple-deep:#241a38;
      --coral:#ef6b55;
      --coral-dark:#d95645;
      --cream:#fbf8f3;
      --paper:#fff;
      --mist:#f1edf2;
      --line:#e8e0e5;
      --muted:#8d8696;
      --gold:#e3ad65;
      --success:#4e8b72;
      --shadow:0 16px 42px rgba(48,32,63,.09);
      --shadow-soft:0 8px 24px rgba(48,32,63,.06);
      --radius:16px;
      --container:1200px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      color:var(--ink);
      background:var(--cream);
      font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;
      font-size:16px;
      line-height:1.7;
      -webkit-font-smoothing:antialiased;
    }
    a{color:inherit;text-decoration:none}
    a:focus-visible,button:focus-visible{outline:3px solid rgba(239,107,85,.35);outline-offset:3px}
    img{display:block;max-width:100%;height:auto}
    button,input{font:inherit}
    button{cursor:pointer;border:0}
    .container{width:min(var(--container),calc(100% - 48px));margin:0 auto}
    .site-header{
      height:82px;
      background:rgba(251,248,243,.95);
      border-bottom:1px solid rgba(56,43,82,.08);
      position:sticky;
      top:0;
      z-index:30;
      backdrop-filter:blur(14px);
    }
    .header-inner{height:100%;display:flex;align-items:center;gap:38px}
    .brand{display:flex;align-items:center;gap:11px;flex:none}
    .brand-mark{
      width:38px;height:38px;border-radius:12px 12px 9px 9px;
      background:var(--purple);position:relative;overflow:hidden;
    }
    .brand-mark:before,.brand-mark:after{
      content:"";position:absolute;border:2px solid var(--coral);
      border-bottom:0;border-radius:25px 25px 0 0;
    }
    .brand-mark:before{width:22px;height:18px;left:8px;top:10px}
    .brand-mark:after{
      width:8px;height:8px;background:var(--gold);border:0;
      border-radius:50%;left:15px;top:5px;
    }
    .brand-name{font-size:16px;font-weight:800;letter-spacing:-.4px;white-space:nowrap}
    .brand-name em{
      display:block;color:var(--coral);font-size:11px;font-style:normal;
      letter-spacing:1.2px;line-height:1.1;margin-top:1px;
    }
    .main-nav{display:flex;align-items:center;gap:5px;flex:1}
    .main-nav a{
      padding:9px 13px;color:var(--ink-soft);font-size:14px;
      border-radius:9px;position:relative;transition:.22s ease;
    }
    .main-nav a:hover{color:var(--purple);background:#f1e9ec}
    .main-nav a.active{color:var(--purple);font-weight:700}
    .main-nav a.active:after{
      content:"";position:absolute;left:13px;right:13px;bottom:2px;
      height:3px;border-radius:3px;background:var(--coral);
    }
    .header-action,.btn{
      display:inline-flex;align-items:center;justify-content:center;
      min-height:46px;border-radius:9px;font-size:14px;font-weight:700;
      transition:.22s ease;
    }
    .header-action{background:var(--coral);color:#fff;padding:10px 18px;white-space:nowrap}
    .header-action:hover{background:var(--coral-dark);transform:translateY(-2px);box-shadow:0 8px 18px rgba(239,107,85,.2)}
    .menu-toggle{display:none;background:transparent;color:var(--purple);font-size:24px}
    .article-hero{
      background:var(--purple-deep);
      color:#fff;
      padding:76px 0 82px;
      position:relative;
      overflow:hidden;
    }
    .article-hero:before{
      content:"";position:absolute;width:520px;height:520px;border-radius:50%;
      right:-160px;top:-270px;background:rgba(239,107,85,.14);
    }
    .article-hero:after{
      content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(255,255,255,.12);
      border-radius:50%;left:-150px;bottom:-230px;
    }
    .article-hero-inner{position:relative;z-index:1;max-width:900px}
    .eyebrow{
      display:inline-flex;align-items:center;gap:8px;color:var(--coral);
      font-size:13px;font-weight:800;letter-spacing:1.5px;margin-bottom:17px;
    }
    .eyebrow:before{content:"";width:22px;height:2px;background:var(--coral)}
    .article-hero h1{
      font-size:clamp(32px,4.4vw,58px);line-height:1.2;
      letter-spacing:-1.8px;margin:0 0 22px;max-width:880px;
    }
    .article-summary{font-size:18px;line-height:1.85;color:#d8d1df;max-width:810px;margin:0}
    .article-meta{display:flex;flex-wrap:wrap;gap:11px 25px;color:#c3bacd;font-size:13px;margin-top:28px}
    .article-meta span{display:inline-flex;align-items:center;gap:7px}
    .meta-dot{width:5px;height:5px;border-radius:50%;background:var(--coral);display:inline-block}
    .breadcrumb-wrap{padding:21px 0;border-bottom:1px solid var(--line);background:var(--paper)}
    .breadcrumb{margin:0;display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:13px}
    .breadcrumb a{color:var(--ink-soft)}
    .breadcrumb a:hover{color:var(--coral)}
    .breadcrumb .current{color:var(--purple);max-width:420px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .article-layout{
      display:grid;grid-template-columns:minmax(0,780px) 280px;
      gap:70px;align-items:start;padding:76px 0 92px;
    }
    .reading-intro{
      padding:23px 27px;background:var(--mist);border-left:4px solid var(--coral);
      border-radius:0 var(--radius) var(--radius) 0;margin-bottom:35px;
      color:var(--ink-soft);font-size:16px;
    }
    .article-content{
      color:#40394d;font-size:17px;line-height:1.95;
      overflow-wrap:anywhere;
    }
    .article-content > *{max-width:100%}
    .article-content h2{
      color:var(--purple);font-size:30px;line-height:1.35;
      margin:42px 0 18px;letter-spacing:-.6px;
    }
    .article-content h3{
      color:var(--purple);font-size:22px;line-height:1.45;
      margin:31px 0 13px;
    }
    .article-content p{margin:0 0 22px}
    .article-content ul,.article-content ol{padding-left:25px;margin:0 0 25px}
    .article-content li{padding-left:5px;margin:7px 0}
    .article-content blockquote{
      margin:30px 0;padding:20px 25px;background:#fff8ef;
      border-left:4px solid var(--gold);color:var(--ink-soft);border-radius:0 12px 12px 0;
    }
    .article-content img{width:auto;max-width:100%;border-radius:13px;margin:28px auto}
    .article-content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:28px 0}
    .article-content th,.article-content td{border:1px solid var(--line);padding:10px 14px;min-width:120px;text-align:left}
    .article-content th{background:var(--mist);color:var(--purple)}
    .article-content hr{border:0;border-top:1px solid var(--line);margin:38px 0}
    .article-sidebar{position:sticky;top:110px}
    .side-card{
      background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
      padding:23px;box-shadow:var(--shadow-soft);margin-bottom:18px;
    }
    .side-title{font-size:15px;font-weight:800;color:var(--purple);margin-bottom:15px}
    .side-line{height:1px;background:var(--line);margin:16px 0}
    .side-item{display:flex;justify-content:space-between;gap:15px;color:var(--ink-soft);font-size:13px;margin:10px 0}
    .side-item strong{color:var(--purple);font-weight:700;text-align:right}
    .side-card.accent{background:var(--purple);color:#fff;border:0}
    .side-card.accent .side-title{color:#fff}
    .side-card.accent p{color:#d8d0df;font-size:13px;margin:0 0 17px}
    .btn-primary{background:var(--coral);color:#fff;padding:11px 20px}
    .btn-primary:hover{background:var(--coral-dark);color:#fff;transform:translateY(-2px)}
    .btn-outline{background:#fff;color:var(--purple);border:1px solid var(--line);padding:11px 20px}
    .btn-outline:hover{border-color:var(--coral);color:var(--coral);transform:translateY(-2px)}
    .article-foot{
      display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
      padding-top:32px;margin-top:42px;border-top:1px solid var(--line);
    }
    .notice-bar{
      padding:23px 28px;background:#fff8ef;border:1px solid #f1dfc8;
      border-radius:var(--radius);color:var(--ink-soft);font-size:14px;
    }
    .notice-bar strong{color:var(--purple);margin-right:9px}
    .site-footer{background:var(--purple-deep);color:#fff;padding:65px 0 22px}
    .footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:35px;padding-bottom:46px}
    .footer-brand p{color:#bdb4c8;font-size:13px;max-width:260px;margin:18px 0 0}
    .footer-title{font-weight:800;font-size:14px;margin-bottom:15px}
    .footer-links{display:grid;gap:8px}
    .footer-links a{color:#bdb4c8;font-size:13px;transition:.2s}
    .footer-links a:hover{color:#f4b172;padding-left:3px}
    .footer-bottom{
      border-top:1px solid rgba(255,255,255,.12);padding-top:19px;
      display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;
      color:#a69caf;font-size:12px;
    }
    @media (max-width:1024px){
      .header-inner{gap:18px}
      .main-nav a{padding-left:9px;padding-right:9px;font-size:13px}
      .article-layout{grid-template-columns:minmax(0,1fr) 245px;gap:38px}
      .footer-top{gap:22px}
    }
    @media (max-width:768px){
      .container{width:min(var(--container),calc(100% - 34px))}
      .site-header{height:70px}
      .header-inner{justify-content:space-between}
      .brand-name{font-size:14px}
      .brand-name em{font-size:9px}
      .brand-mark{width:34px;height:34px}
      .main-nav{
        display:none;position:absolute;left:17px;right:17px;top:78px;
        padding:12px;background:var(--paper);border:1px solid var(--line);
        border-radius:14px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;
      }
      .main-nav.open{display:flex}
      .main-nav a{padding:12px 14px}
      .main-nav a.active:after{left:14px;right:auto;width:4px;height:22px;bottom:9px}
      .header-action{padding:8px 12px;font-size:12px}
      .menu-toggle{display:block}
      .article-hero{padding:58px 0 62px}
      .article-hero h1{letter-spacing:-1px}
      .article-summary{font-size:16px}
      .article-layout{display:block;padding:48px 0 62px}
      .article-sidebar{position:static;margin-top:38px}
      .reading-intro{padding:19px 20px}
      .article-content{font-size:16px;line-height:1.88}
      .article-content h2{font-size:25px}
      .article-content h3{font-size:20px}
      .footer-top{grid-template-columns:1fr 1fr;padding-bottom:32px}
      .footer-brand{grid-column:1/-1}
    }
    @media (max-width:520px){
      .header-action{display:none}
      .article-meta{display:grid;gap:7px}
      .breadcrumb .current{max-width:220px}
      .article-foot{display:grid}
      .article-foot .btn{width:100%}
      .footer-top{grid-template-columns:1fr}
      .footer-brand{grid-column:auto}
      .footer-bottom{display:grid;gap:7px}
    }

/* roulang page: category2 */
:root{
      --ink:#292238;
      --ink-soft:#5e576d;
      --purple:#382b52;
      --purple-deep:#241a38;
      --coral:#ef6b55;
      --coral-dark:#d95645;
      --cream:#fbf8f3;
      --paper:#fff;
      --mist:#f1edf2;
      --line:#e8e0e5;
      --muted:#8d8696;
      --gold:#e3ad65;
      --success:#4e8b72;
      --shadow:0 16px 42px rgba(48,32,63,.09);
      --shadow-soft:0 8px 24px rgba(48,32,63,.06);
      --radius:16px;
      --container:1200px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;background:var(--cream);color:var(--ink);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
    a{color:inherit;text-decoration:none}
    a:focus-visible,button:focus-visible{outline:3px solid rgba(239,107,85,.35);outline-offset:3px}
    img{display:block;max-width:100%}
    button,input{font:inherit}
    button{cursor:pointer;border:0}
    .container{width:min(var(--container),calc(100% - 48px));margin:0 auto}
    .site-header{height:82px;background:rgba(251,248,243,.95);border-bottom:1px solid rgba(56,43,82,.08);position:sticky;top:0;z-index:30;backdrop-filter:blur(14px)}
    .header-inner{height:100%;display:flex;align-items:center;gap:38px}
    .brand{display:flex;align-items:center;gap:11px;flex:none}
    .brand-mark{width:38px;height:38px;border-radius:12px 12px 9px 9px;background:var(--purple);position:relative;overflow:hidden}
    .brand-mark:before,.brand-mark:after{content:"";position:absolute}
    .brand-mark:before{width:22px;height:18px;left:8px;top:10px;border:2px solid var(--coral);border-bottom:0;border-radius:25px 25px 0 0}
    .brand-mark:after{width:8px;height:8px;left:15px;top:5px;background:var(--gold);border-radius:50%}
    .brand-name{font-size:16px;font-weight:800;letter-spacing:-.4px;white-space:nowrap}
    .brand-name em{display:block;color:var(--coral);font-size:11px;font-style:normal;letter-spacing:1.2px;line-height:1.1;margin-top:1px}
    .main-nav{display:flex;align-items:center;gap:5px;flex:1}
    .main-nav a{padding:9px 13px;color:var(--ink-soft);font-size:14px;border-radius:9px;position:relative;transition:.22s ease}
    .main-nav a:hover{color:var(--purple);background:#f1e9ec}
    .main-nav a.active{color:var(--purple);font-weight:700}
    .main-nav a.active:after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:3px;border-radius:3px;background:var(--coral)}
    .header-action,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border-radius:9px;font-size:14px;font-weight:700;transition:.22s ease}
    .header-action{background:var(--coral);color:#fff;padding:10px 18px;white-space:nowrap}
    .header-action:hover{background:var(--coral-dark);transform:translateY(-2px);box-shadow:0 8px 18px rgba(239,107,85,.2)}
    .menu-toggle{display:none;background:transparent;color:var(--purple);font-size:24px}
    .page-head{background:var(--mist);padding:72px 0 68px;border-bottom:1px solid var(--line)}
    .head-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:end}
    .eyebrow,.section-kicker{color:var(--coral);font-size:12px;font-weight:800;letter-spacing:1.8px}
    .eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:17px}
    .eyebrow:before{content:"";width:22px;height:2px;background:var(--coral)}
    .page-head h1{font-size:clamp(34px,5vw,60px);line-height:1.18;letter-spacing:-2px;margin:0 0 18px}
    .page-head p{max-width:690px;color:var(--ink-soft);font-size:17px;margin:0}
    .head-note{background:#fff;border:1px solid var(--line);border-radius:18px;padding:25px 27px;box-shadow:var(--shadow-soft)}
    .head-note strong{display:block;font-size:18px;margin-bottom:8px}
    .head-note span{display:block;color:var(--muted);font-size:14px}
    .section{padding:82px 0}
    .section-soft{background:var(--mist)}
    .section-head{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:30px}
    .section h2{font-size:32px;line-height:1.3;letter-spacing:-1px;margin:7px 0 0}
    .section-intro{color:var(--ink-soft);max-width:620px;margin:9px 0 0}
    .filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-soft)}
    .filter-label{font-size:13px;color:var(--muted);padding:0 10px}
    .filter-chip{background:transparent;color:var(--ink-soft);padding:9px 15px;border-radius:8px;font-size:13px;transition:.2s}
    .filter-chip:hover,.filter-chip.active{background:var(--purple);color:#fff}
    .content-list{display:grid;gap:14px}
    .content-item{display:grid;grid-template-columns:190px 1fr auto;gap:24px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px;transition:.22s}
    .content-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:#d8c8cf}
    .thumb{height:120px;border-radius:11px;background:linear-gradient(135deg,#49345d,#ef6b55 72%,#f5c486);position:relative;overflow:hidden}
    .thumb:after{content:"NG";position:absolute;right:12px;bottom:3px;color:rgba(255,255,255,.72);font-size:37px;font-weight:900;letter-spacing:-3px}
    .content-item h3{font-size:19px;line-height:1.45;margin:9px 0 7px}
    .content-item p{color:var(--ink-soft);font-size:14px;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
    .meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}
    .badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:5px;background:#f8e2de;color:var(--coral-dark);font-size:11px;font-weight:800}
    .badge.green{background:#e6f1ec;color:var(--success)}
    .item-arrow{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--coral);font-size:19px;transition:.2s}
    .content-item:hover .item-arrow{background:var(--coral);color:#fff;border-color:var(--coral)}
    .empty-state{padding:42px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #d9ccd4;border-radius:15px}
    .feature-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}
    .feature-card{min-height:320px;padding:34px;background:var(--purple);color:#fff;border-radius:18px;position:relative;overflow:hidden}
    .feature-card:after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(255,255,255,.18);border-radius:50%;right:-80px;bottom:-90px}
    .feature-card h3{font-size:29px;max-width:470px;line-height:1.35;margin:18px 0 12px;position:relative;z-index:1}
    .feature-card p{color:#d8d1df;max-width:500px;position:relative;z-index:1}
    .feature-card .btn{margin-top:19px;position:relative;z-index:1}
    .mini-stack{display:grid;gap:22px}
    .mini-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:25px}
    .mini-card h3{font-size:19px;margin:11px 0 6px}
    .mini-card p{color:var(--ink-soft);font-size:14px;margin:0}
    .scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
    .scenario-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:26px}
    .scenario-num{color:var(--coral);font-size:25px;font-weight:800}
    .scenario-card h3{font-size:18px;margin:10px 0 7px}
    .scenario-card p{color:var(--ink-soft);font-size:14px;margin:0}
    .more-box{text-align:center;padding:22px 0}
    .btn-primary{background:var(--coral);color:#fff;padding:11px 22px}
    .btn-primary:hover{background:var(--coral-dark);color:#fff;transform:translateY(-2px)}
    .btn-outline{border:1px solid var(--line);background:#fff;color:var(--purple);padding:11px 21px}
    .btn-outline:hover{border-color:var(--coral);color:var(--coral);transform:translateY(-2px)}
    .faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
    .faq-item{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
    .faq-item summary{list-style:none;cursor:pointer;padding:19px 22px;font-weight:700;position:relative;padding-right:48px}
    .faq-item summary::-webkit-details-marker{display:none}
    .faq-item summary:after{content:"+";position:absolute;right:20px;color:var(--coral);font-size:22px;top:14px}
    .faq-item[open] summary:after{content:"−"}
    .faq-answer{padding:0 22px 19px;color:var(--ink-soft);font-size:14px}
    .cta-strip{background:#f8e4df;padding:35px 40px;border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:25px}
    .cta-strip h2{font-size:25px;margin:0 0 5px}
    .cta-strip p{margin:0;color:var(--ink-soft)}
    .site-footer{background:var(--purple-deep);color:#fff;padding:62px 0 22px}
    .footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:38px;padding-bottom:45px}
    .footer-brand p{color:#c9c1d2;font-size:14px;max-width:290px;margin-top:17px}
    .footer-title{font-size:14px;font-weight:800;margin-bottom:14px}
    .footer-links{display:grid;gap:8px}
    .footer-links a{color:#bdb4c9;font-size:13px;transition:.2s}
    .footer-links a:hover{color:#fff;padding-left:3px}
    .footer-bottom{border-top:1px solid rgba(255,255,255,.13);padding-top:20px;display:flex;justify-content:space-between;gap:15px;color:#9f96ae;font-size:12px}
    @media(max-width:1024px){.header-inner{gap:18px}.main-nav a{padding:9px 8px}.head-inner{gap:35px}.content-item{grid-template-columns:155px 1fr auto}.footer-top{gap:22px}}
    @media(max-width:768px){
      .container{width:min(var(--container),calc(100% - 34px))}
      .site-header{height:70px}.header-inner{justify-content:space-between}.brand-name{font-size:14px}.brand-name em{font-size:9px}.brand-mark{width:34px;height:34px}
      .main-nav{display:none;position:absolute;top:70px;left:0;right:0;padding:14px 17px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;align-items:stretch}
      .main-nav.open{display:flex}.main-nav a{padding:12px 14px}.main-nav a.active:after{left:14px;right:auto;width:28px;bottom:5px}.menu-toggle{display:block}.header-action{padding:9px 12px;font-size:12px}
      .page-head{padding:52px 0}.head-inner{grid-template-columns:1fr;gap:25px}.page-head h1{font-size:40px}
      .section{padding:56px 0}.section-head{display:block}.section-head .text-link{display:inline-block;margin-top:14px}.section h2{font-size:28px}
      .content-item{grid-template-columns:105px 1fr;gap:15px}.thumb{height:92px}.item-arrow{display:none}.content-item h3{font-size:16px}.content-item p{-webkit-line-clamp:2}
      .feature-layout,.faq-grid{grid-template-columns:1fr}.scenario-grid{grid-template-columns:1fr 1fr}.cta-strip{display:block;padding:28px 24px}.cta-strip .btn{margin-top:18px}
      .footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}
    }
    @media(max-width:520px){.filter-bar{align-items:stretch}.filter-label{width:100%;padding:2px 7px}.filter-chip{flex:1;padding:8px 7px}.scenario-grid{grid-template-columns:1fr}.feature-card{min-height:300px;padding:27px}.feature-card h3{font-size:25px}.footer-top{grid-template-columns:1fr}.footer-brand{grid-column:auto}}

/* roulang page: category3 */
:root{
      --ink:#292238;
      --ink-soft:#5e576d;
      --purple:#382b52;
      --purple-deep:#241a38;
      --coral:#ef6b55;
      --coral-dark:#d95645;
      --cream:#fbf8f3;
      --paper:#fff;
      --mist:#f1edf2;
      --line:#e8e0e5;
      --muted:#8d8696;
      --gold:#e3ad65;
      --success:#4e8b72;
      --shadow:0 16px 42px rgba(48,32,63,.09);
      --shadow-soft:0 8px 24px rgba(48,32,63,.06);
      --radius:16px;
      --container:1200px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;color:var(--ink);background:var(--cream);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
    a{color:inherit;text-decoration:none}
    a:focus-visible,button:focus-visible{outline:3px solid rgba(239,107,85,.35);outline-offset:3px}
    img{display:block;max-width:100%}
    button,input{font:inherit}
    button{border:0;cursor:pointer}
    .container{width:min(var(--container),calc(100% - 48px));margin:0 auto}
    .site-header{height:82px;background:rgba(251,248,243,.95);border-bottom:1px solid rgba(56,43,82,.08);position:sticky;top:0;z-index:30;backdrop-filter:blur(14px)}
    .header-inner{height:100%;display:flex;align-items:center;gap:38px}
    .brand{display:flex;align-items:center;gap:11px;flex:none}
    .brand-mark{width:38px;height:38px;border-radius:12px 12px 9px 9px;background:var(--purple);position:relative;overflow:hidden}
    .brand-mark:before,.brand-mark:after{content:"";position:absolute;border:2px solid var(--coral);border-bottom:0;border-radius:25px 25px 0 0}
    .brand-mark:before{width:22px;height:18px;left:8px;top:10px}
    .brand-mark:after{width:8px;height:8px;background:var(--gold);border:0;border-radius:50%;left:15px;top:5px}
    .brand-name{font-size:16px;font-weight:800;letter-spacing:-.4px;white-space:nowrap}
    .brand-name em{display:block;color:var(--coral);font-size:11px;font-style:normal;letter-spacing:1.2px;line-height:1.1;margin-top:1px}
    .main-nav{display:flex;align-items:center;gap:5px;flex:1}
    .main-nav a{padding:9px 13px;color:var(--ink-soft);font-size:14px;border-radius:9px;position:relative;transition:.22s ease}
    .main-nav a:hover{color:var(--purple);background:#f1e9ec}
    .main-nav a.active{color:var(--purple);font-weight:700}
    .main-nav a.active:after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:3px;border-radius:3px;background:var(--coral)}
    .header-action{display:inline-flex;align-items:center;justify-content:center;background:var(--coral);color:#fff;padding:10px 18px;border-radius:9px;font-size:14px;font-weight:700;white-space:nowrap;transition:.22s ease}
    .header-action:hover{background:var(--coral-dark);transform:translateY(-2px);box-shadow:0 8px 18px rgba(239,107,85,.2)}
    .menu-toggle{display:none;background:transparent;color:var(--purple);font-size:24px}
    .page-head{padding:76px 0 68px;background:var(--mist);border-bottom:1px solid var(--line)}
    .eyebrow,.section-kicker{color:var(--coral);font-size:12px;font-weight:800;letter-spacing:1.8px}
    .eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px}
    .eyebrow:before{content:"";width:22px;height:2px;background:var(--coral)}
    .page-head h1{font-size:clamp(34px,5vw,58px);line-height:1.18;letter-spacing:-2px;max-width:760px;margin:0 0 18px}
    .page-head p{color:var(--ink-soft);max-width:700px;font-size:17px;margin:0}
    .section{padding:86px 0}
    .section-soft{background:var(--mist)}
    .section-head{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:30px}
    .section-kicker{margin-bottom:8px}
    .section h2{font-size:32px;line-height:1.3;letter-spacing:-1px;margin:0}
    .section-intro{color:var(--ink-soft);max-width:600px;margin:9px 0 0}
    .filter-row{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 34px}
    .filter{border:1px solid var(--line);background:var(--paper);border-radius:30px;padding:8px 17px;color:var(--ink-soft);font-size:13px;transition:.2s}
    .filter:hover,.filter.active{background:var(--purple);border-color:var(--purple);color:#fff}
    .app-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:28px;align-items:stretch}
    .download-card{background:var(--purple-deep);color:#fff;border-radius:var(--radius);padding:38px;position:relative;overflow:hidden;min-height:360px}
    .download-card:after{content:"";position:absolute;width:270px;height:270px;border:1px solid rgba(255,255,255,.16);border-radius:50%;right:-105px;bottom:-100px}
    .download-card h2{font-size:30px;line-height:1.3;margin:14px 0 12px;position:relative;z-index:1}
    .download-card p{color:#d8d0df;max-width:360px;position:relative;z-index:1}
    .download-mark{width:54px;height:54px;border-radius:15px;background:var(--coral);display:grid;place-items:center;font-size:25px;position:relative;z-index:1}
    .platforms{display:flex;gap:10px;flex-wrap:wrap;margin-top:27px;position:relative;z-index:1}
    .platforms span{border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px 12px;font-size:12px;color:#f8e8e2}
    .app-info{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow-soft)}
    .info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:22px 0}
    .info-box{background:var(--cream);border-radius:12px;padding:18px;border:1px solid #eee5e2}
    .info-box strong{display:block;font-size:16px;margin-bottom:4px}
    .info-box span{display:block;color:var(--muted);font-size:13px}
    .btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 20px;border-radius:9px;font-size:14px;font-weight:700;transition:.22s ease;border:1px solid transparent}
    .btn-primary{background:var(--coral);color:#fff}
    .btn-primary:hover{background:var(--coral-dark);transform:translateY(-2px)}
    .btn-outline{border-color:var(--line);color:var(--purple);background:#fff}
    .btn-outline:hover{border-color:var(--coral);color:var(--coral);transform:translateY(-2px)}
    .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
    .step{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:25px 22px;min-height:190px;transition:.22s}
    .step:hover,.news-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
    .step-no{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#f8e2de;color:var(--coral-dark);font-weight:800;margin-bottom:19px}
    .step h3{font-size:18px;margin:0 0 8px}
    .step p{font-size:14px;color:var(--ink-soft);margin:0}
    .news-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
    .news-card{display:flex;gap:18px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px;transition:.22s}
    .news-icon{width:68px;height:68px;flex:none;border-radius:12px;background:linear-gradient(145deg,#e9dfe5,#f8c4ae);display:grid;place-items:center;color:var(--purple);font-size:24px}
    .news-card h3{font-size:17px;line-height:1.45;margin:8px 0 5px}
    .news-card p{font-size:13px;color:var(--ink-soft);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
    .meta{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:12px;flex-wrap:wrap}
    .badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:5px;background:#f8e2de;color:var(--coral-dark);font-size:11px;font-weight:800}
    .empty{grid-column:1/-1;background:var(--paper);border:1px dashed #d9cbd2;border-radius:14px;padding:35px;text-align:center;color:var(--muted)}
    .feature{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:center;background:#f4e8e2;border-radius:var(--radius);padding:38px 42px}
    .feature h2{font-size:29px;line-height:1.35;margin:9px 0 12px}
    .feature p{color:var(--ink-soft);margin:0 0 20px}
    .feature-art{min-height:190px;border-radius:14px;background:var(--purple);position:relative;overflow:hidden}
    .feature-art:before{content:"";position:absolute;width:230px;height:230px;border:1px solid rgba(255,255,255,.24);border-radius:50%;left:18%;top:-100px}
    .feature-art:after{content:"NG";position:absolute;color:#f4b172;font-size:70px;font-weight:900;letter-spacing:5px;right:20px;bottom:18px}
    .notice{display:flex;gap:14px;align-items:flex-start;background:#fff8ed;border-left:4px solid var(--gold);padding:20px 22px;border-radius:10px;color:var(--ink-soft)}
    .notice strong{color:var(--ink);display:block;margin-bottom:3px}
    .faq-list{max-width:850px}
    .faq-item{border-bottom:1px solid var(--line)}
    .faq-item button{width:100%;padding:20px 4px;background:transparent;color:var(--ink);display:flex;justify-content:space-between;text-align:left;font-weight:700}
    .faq-item button span:last-child{color:var(--coral);font-size:22px;line-height:1}
    .faq-answer{display:none;color:var(--ink-soft);font-size:14px;padding:0 35px 20px 4px}
    .faq-item.open .faq-answer{display:block}
    .cta{background:var(--coral);color:#fff;padding:54px 0}
    .cta-inner{display:flex;justify-content:space-between;align-items:center;gap:25px}
    .cta h2{margin:0 0 8px;font-size:30px}
    .cta p{margin:0;color:#ffe9e3}
    .cta .btn{background:#fff;color:var(--coral-dark)}
    .site-footer{background:var(--purple-deep);color:#fff;padding:58px 0 23px}
    .footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:38px;padding-bottom:42px}
    .footer-brand p{color:#bdb4c8;font-size:13px;max-width:285px;margin-top:18px}
    .footer-title{font-size:14px;font-weight:800;margin-bottom:15px}
    .footer-links{display:grid;gap:8px}
    .footer-links a{color:#bdb4c8;font-size:13px;transition:.2s}
    .footer-links a:hover{color:#f4b172}
    .footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.12);padding-top:20px;color:#9f96ab;font-size:12px}
    @media(max-width:1024px){
      .header-inner{gap:18px}.main-nav a{padding-left:8px;padding-right:8px}
      .app-layout,.feature{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}
    }
    @media(max-width:768px){
      .container{width:min(var(--container),calc(100% - 34px))}
      .site-header{height:70px}.header-inner{gap:12px}.brand-name{font-size:14px}.brand-name em{font-size:9px}
      .main-nav{display:none;position:absolute;left:17px;right:17px;top:78px;background:var(--paper);padding:12px;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;align-items:stretch}
      .main-nav.show{display:flex}.main-nav a{padding:12px 14px}.main-nav a.active:after{left:14px;right:auto;width:32px;bottom:5px}
      .header-action{margin-left:auto;padding:8px 12px;font-size:12px}.menu-toggle{display:block}
      .page-head{padding:55px 0 48px}.page-head h1{font-size:38px;letter-spacing:-1.3px}
      .section{padding:58px 0}.section-head{display:block}.section h2{font-size:27px}.section-head .text-link{display:inline-block;margin-top:13px}
      .download-card,.app-info{padding:27px}.info-grid{grid-template-columns:1fr}
      .news-list,.steps{grid-template-columns:1fr}.feature{padding:27px}.feature-art{min-height:145px}
      .cta-inner{display:block}.cta .btn{margin-top:22px}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/-1}
      .footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}
    }
    @media(max-width:520px){
      .brand-mark{width:34px;height:34px}.brand-name{max-width:180px;overflow:hidden;text-overflow:ellipsis}
      .header-action{display:none}.page-head h1{font-size:32px}.page-head p{font-size:15px}
      .download-card h2{font-size:25px}.app-info{padding:23px}.news-card{padding:16px;gap:12px}.news-icon{width:54px;height:54px}
      .footer-top{grid-template-columns:1fr}.footer-brand{grid-column:auto}
    }
