/* roulang page: index */
:root{
  --qing:#0E8A78;--qing-deep:#0B3D36;--ting:#E45B8A;--hen:#C4233A;--amber:#E0A15A;
  --ink:#14161A;--panel:#1C1F26;--paper:#F6F3EE;--inktext:#1A1C1F;
  --text:#F4F1EA;--muted:#B7B1A8;--line:rgba(244,241,234,.12);
  --radius:18px;--shadow:0 18px 40px rgba(0,0,0,.28);--pad:76px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--text);font-family:"PingFang SC","Noto Sans SC","Source Han Sans SC","Source Han Sans","Microsoft YaHei",sans-serif;font-size:17px;line-height:1.75;padding-bottom:92px}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select{font-family:inherit;font-size:16px}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
::selection{background:var(--qing);color:#fff}
.container{width:min(1180px,calc(100% - 32px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:40;background:#14161A;border-bottom:1px solid var(--line)}
.nav-bar{height:74px;display:flex;align-items:center;gap:20px}
.logo{display:flex;align-items:center;gap:10px;min-width:0}
.logo-mark{width:38px;height:38px;border-radius:12px;background:var(--qing);color:#fff;display:grid;place-items:center;font-weight:700;flex:0 0 auto}
.logo-text{font-weight:700;letter-spacing:-.03em;font-size:18px;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:6px;margin:0 auto}
.nav-links a{padding:8px 14px;border-radius:999px;color:var(--muted);font-weight:700}
.nav-links a:hover{color:#fff;background:#23262e}
.nav-links a.active{color:#fff;background:var(--qing-deep)}
.nav-actions{display:flex;align-items:center;gap:10px}
.nav-toggle{display:none;height:42px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:transparent;color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;font-weight:700;border:1px solid transparent;transition:transform .2s,background .2s,color .2s,border-color .2s}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-solid{background:var(--qing);color:#fff}
.btn-solid:hover{background:#12a38d}
.btn-line{background:transparent;color:var(--ting);border-color:var(--ting)}
.btn-line:hover{background:rgba(228,91,138,.12)}
.btn-text{background:transparent;color:var(--qing-deep);padding:0;min-height:auto;border-radius:0}
.section{padding:var(--pad) 0}
.section-dark{background:var(--ink)}
.section-panel{background:var(--panel)}
.section-paper{background:var(--paper);color:var(--inktext)}
.section-deep{background:var(--qing-deep)}
.h2{margin:0 0 12px;font-size:32px;line-height:1.25;font-weight:700;letter-spacing:-.04em}
.lead{margin:0 0 28px;max-width:760px;color:var(--muted);font-size:16px}
.section-paper .lead{color:#5c574f}
.kicker{display:inline-flex;align-items:center;gap:8px;color:var(--amber);font-weight:700;font-size:14px;margin-bottom:12px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center}
h1{margin:0 0 12px;font-size:clamp(32px,4vw,52px);line-height:1.18;letter-spacing:-.045em;font-weight:700}
.sub{margin:0 0 16px;font-size:20px;font-weight:700}
.hero p.desc{margin:0 0 22px;color:#ddd6cc}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.meter{height:8px;background:#2a2e36;border-radius:99px;overflow:hidden}
.meter span{display:block;height:100%;background:var(--amber);width:72%}
.meter-label{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin-bottom:8px}
.player{background:#0d0f13;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.player-screen{position:relative;aspect-ratio:16/9}
.still{position:absolute;inset:0;background:radial-gradient(circle at 28% 40%,rgba(228,91,138,.9),transparent 36%),radial-gradient(circle at 72% 62%,rgba(14,138,120,.85),transparent 34%),linear-gradient(160deg,#0B3D36,#14161A 62%)}
.still:after{content:"";position:absolute;left:18%;right:18%;bottom:18%;height:28%;border-radius:80px 80px 20px 20px;background:rgba(20,22,26,.35)}
.mute{position:absolute;top:14px;right:14px;z-index:2;border:0;background:rgba(20,22,26,.72);color:#fff;border-radius:999px;padding:6px 12px}
.mute[aria-pressed="true"]{color:var(--amber)}
.player-caption{position:absolute;left:16px;right:16px;bottom:28px;z-index:2;display:flex;justify-content:space-between;gap:12px;font-weight:700}
.dur{position:absolute;left:16px;right:16px;bottom:12px;height:6px;border-radius:99px;background:rgba(255,255,255,.2);z-index:2}
.dur i{display:block;height:100%;width:68%;background:var(--amber);border-radius:inherit}
.points{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:14px}
.point{background:#14161A;border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-height:230px;display:flex;flex-direction:column;justify-content:space-between}
.point h3{margin:0 0 8px;font-size:24px;letter-spacing:-.03em}
.point p{margin:0;color:var(--muted)}
.stat{font-size:40px;font-weight:700;color:var(--amber);letter-spacing:-.04em;line-height:1}
.stat small{display:block;color:var(--muted);font-size:13px;font-weight:700;margin-top:6px}
.scene-switch{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.scene-switch button{border:1px solid var(--line);background:transparent;color:#fff;border-radius:999px;padding:8px 14px;font-weight:700}
.scene-switch button.active{background:var(--hen);border-color:var(--hen)}
.frame-copy{margin-top:14px;color:var(--muted)}
.voice-wrap{display:flex;flex-wrap:wrap;gap:14px}
.voice{background:#fff;border-radius:16px;padding:16px 18px;box-shadow:0 10px 30px rgba(20,22,26,.08);flex:1 1 240px}
.voice:nth-child(2){flex-basis:320px}
.voice:nth-child(5){flex-basis:280px}
.who{display:flex;align-items:center;gap:10px;font-weight:700}
.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--qing);color:#fff;font-size:14px}
.stars{color:var(--amber);letter-spacing:2px;font-size:13px}
.voice p{margin:8px 0 0;color:#3d3a35}
.compare{display:grid;grid-template-columns:1fr 10px 1fr;gap:18px;align-items:stretch}
.compare-col{background:#14161A;border-radius:var(--radius);padding:22px;border:1px solid var(--line)}
.compare-col h3{margin:0 0 10px;font-size:22px}
.compare-col ul{margin:0;padding:0;list-style:none}
.compare-col li{padding:10px 0;border-top:1px solid var(--line);color:#ddd6cc}
.compare-split{background:var(--hen);border-radius:99px}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.news-card{display:flex;flex-direction:column;min-height:280px;background:#1C1F26;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);transition:transform .2s,box-shadow .2s}
.news-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.news-cover{height:120px;background:linear-gradient(135deg,#0B3D36,#E45B8A)}
.news-card:nth-child(2) .news-cover{background:linear-gradient(135deg,#C4233A,#E0A15A)}
.news-card:nth-child(3) .news-cover{background:linear-gradient(160deg,#0E8A78,#14161A)}
.news-body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.date{color:var(--amber);font-size:13px;font-weight:700}
.news-body h3{margin:0;font-size:20px;letter-spacing:-.03em}
.news-body p{margin:0;color:var(--muted);flex:1}
.more{color:var(--ting);font-weight:700}
.faq{display:flex;flex-direction:column;gap:10px}
.faq-item{background:#fff;border-radius:14px;overflow:hidden}
.faq-item button{width:100%;text-align:left;background:#fff;color:var(--inktext);border:0;padding:16px 18px;font-weight:700;display:flex;justify-content:space-between;gap:12px}
.faq-item button:hover{background:#fbfaf7}
.faq-item p{margin:0;padding:0 18px 16px;color:#3f3b36}
.assure-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.assure{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.06);border-radius:14px;padding:14px}
.assure i{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--amber);color:#1A1C1F;font-style:normal;font-weight:700}
.timeline,.rail{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}
.node,.portrait{scroll-snap-align:start;flex:0 0 240px;background:#1C1F26;border:1px solid var(--line);border-radius:16px;padding:16px}
.node strong,.portrait strong{display:block;margin:8px 0}
.dot{width:12px;height:12px;border-radius:50%;background:var(--amber)}
.portrait-face{height:180px;border-radius:12px;background:radial-gradient(circle at 50% 32%,#f2c7b5 0 18%,transparent 19%),linear-gradient(#2a211d,#0E8A78);position:relative}
.portrait-face:before{content:"";position:absolute;left:50%;top:58%;width:86px;height:70px;transform:translateX(-50%);border-radius:40px 40px 16px 16px;background:#1a1c1f}
.badge{display:inline-block;background:var(--hen);color:#fff;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}
.bento{display:grid;grid-template-columns:1.5fr 1fr 1fr;grid-template-rows:190px 190px;gap:12px}
.cell{position:relative;border-radius:18px;overflow:hidden;background:#0d0f13;border:1px solid var(--line);min-height:160px}
.cell.big{grid-row:1/span 2}
.cell .bg{position:absolute;inset:0}
.cell:nth-child(1) .bg{background:linear-gradient(160deg,rgba(196,35,58,.85),#14161A 70%)}
.cell:nth-child(2) .bg{background:linear-gradient(160deg,#0E8A78,#14161A)}
.cell:nth-child(3) .bg{background:linear-gradient(160deg,#E45B8A,#1C1F26)}
.cell:nth-child(4) .bg{background:linear-gradient(160deg,#E0A15A,#14161A)}
.cell:nth-child(5) .bg{background:linear-gradient(160deg,#0B3D36,#C4233A)}
.cell div.copy{position:absolute;left:14px;right:14px;bottom:14px}
.cell h3{margin:0 0 4px;font-size:22px}
.cell p{margin:0;color:#f4f1ea}
.time-pill{position:absolute;top:12px;left:12px;background:var(--amber);color:#1A1C1F;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}
.playlist{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px}
.plist{display:flex;flex-direction:column;gap:8px}
.pitem{text-align:left;background:#14161A;color:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.pitem.active{border-color:var(--amber)}
.pitem b{display:block}
.pitem span{color:var(--amber);font-size:13px}
.pdetail{background:#14161A;border-radius:18px;padding:22px;border:1px solid var(--line)}
.pdetail h3{margin:8px 0;font-size:28px;letter-spacing:-.03em}
.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.entry{border-radius:24px;padding:28px;min-height:250px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}
.entry.a{background:#0B3D36}
.entry.b{background:#3a1824}
.entry h3{margin:0;font-size:30px;letter-spacing:-.04em}
.entry p{color:#f4f1ea}
.night-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.night-list a{display:flex;justify-content:space-between;gap:12px;background:#fff;border-radius:14px;padding:16px;color:var(--inktext);font-weight:700}
.night-list a:hover{box-shadow:0 10px 24px rgba(20,22,26,.08)}
.night-list em{color:var(--hen);font-style:normal}
.dock{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#101216;border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s}
.dock.show{transform:translateY(0)}
.dock-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.dock strong{letter-spacing:-.03em}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:45}
.drawer,.consult{position:fixed;top:0;bottom:0;background:#1C1F26;z-index:50;padding:22px;overflow:auto}
.drawer{left:0;width:min(320px,88vw);transform:translateX(-105%);transition:transform .25s}
.consult{right:0;width:min(380px,92vw);transform:translateX(105%);transition:transform .25s}
.drawer.open,.consult.open{transform:translateX(0)}
.drawer a,.consult h3{display:block}
.drawer a{padding:14px 0;border-bottom:1px solid var(--line);font-weight:700}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.field input,.field select{height:46px;border-radius:12px;border:1px solid var(--line);background:#14161A;color:#fff;padding:0 12px}
.note{min-height:24px;color:var(--amber);font-weight:700}
.site-footer{background:#101216;border-top:1px solid var(--line);padding:36px 0 28px}
.foot-grid{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.foot-links{display:flex;gap:16px;flex-wrap:wrap;font-weight:700}
.foot-links a:hover{color:var(--ting)}
.copy{color:var(--muted);margin:8px 0 0;font-size:14px}
.top-link{color:var(--amber);font-weight:700}
[hidden]{display:none!important}
@media(max-width:1024px){
  .nav-links{display:none}
  .nav-toggle{display:inline-flex;align-items:center}
  .hero-grid,.playlist,.compare,.entry-grid,.news-grid{grid-template-columns:1fr}
  .compare-split{height:8px}
  .points{grid-template-columns:1fr}
  .bento{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .cell.big{grid-row:auto;aspect-ratio:16/9}
  .assure-row{grid-template-columns:1fr 1fr}
  h1{font-size:36px}
}
@media(max-width:768px){
  .section{padding:52px 0}
  .h2{font-size:26px}
  .logo-text{font-size:15px}
  .btn-line.desktop-only{display:none}
  .night-list,.bento{grid-template-columns:1fr}
  .foot-grid{flex-direction:column}
}
@media(max-width:520px){
  .container{width:min(1180px,calc(100% - 20px))}
  .nav-actions .btn-solid{padding:0 10px}
  .hero-actions,.dock-inner{flex-wrap:wrap}
  .dock-inner{height:auto;padding:10px 0}
  .assure-row{grid-template-columns:1fr}
  .player-caption{font-size:14px}
}

/* roulang page: category1 */
:root{
 --qing:#0E8A78;--qing-deep:#0B3D36;--ting:#E45B8A;--hen:#C4233A;--amber:#E0A15A;
 --ink:#14161A;--panel:#1C1F26;--paper:#F6F3EE;--inktext:#1A1C1F;
 --text:#F4F1EA;--muted:#B7B1A8;--line:rgba(244,241,234,.12);
 --radius:18px;--shadow:0 18px 40px rgba(0,0,0,.28);--pad:76px;
}
/* roulang page: category1 */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--text);font-family:"PingFang SC","Noto Sans SC","Source Han Sans SC","Source Han Sans","Microsoft YaHei",sans-serif;font-size:17px;line-height:1.75;padding-bottom:92px}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select{font-family:inherit;font-size:16px}
button{cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
[id]{scroll-margin-top:88px}
.container{width:min(1180px,calc(100% - 32px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:40;background:#14161A;border-bottom:1px solid var(--line)}
.nav-bar{height:74px;display:flex;align-items:center;gap:20px}
.logo{display:flex;align-items:center;gap:10px;min-width:0}
.logo-mark{width:38px;height:38px;border-radius:12px;background:var(--qing);color:#fff;display:grid;place-items:center;font-weight:700;flex:0 0 auto}
.logo-text{font-weight:700;letter-spacing:-.03em;font-size:18px;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:6px;margin:0 auto}
.nav-links a{padding:8px 14px;border-radius:999px;color:var(--muted);font-weight:700}
.nav-links a:hover{color:#fff;background:#23262e}
.nav-links a.active{color:#fff;background:var(--qing-deep)}
.nav-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.nav-toggle{display:none;height:42px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:transparent;color:#fff}
.nav-toggle:hover{border-color:var(--qing);color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;font-weight:700;border:1px solid transparent;transition:transform .2s,background .2s,color .2s,border-color .2s}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-solid{background:var(--qing);color:#fff}
.btn-solid:hover{background:#12a38d}
.btn-line{background:transparent;color:var(--ting);border-color:var(--ting)}
.btn-line:hover{background:rgba(228,91,138,.12)}
.btn-text{background:transparent;color:var(--qing-deep);padding:0;min-height:auto;border-radius:0}
.section{padding:var(--pad) 0}
.section-dark{background:var(--ink)}
.section-panel{background:var(--panel)}
.section-paper{background:var(--paper);color:var(--inktext)}
.section-deep{background:var(--qing-deep)}
.lead{margin:0 0 28px;max-width:760px;color:var(--muted);font-size:16px}
.section-paper .lead{color:#5c574f}
.sec-title{margin:0 0 8px;font-size:32px;line-height:1.25;letter-spacing:-.04em;font-weight:700}
.badge{display:inline-block;background:var(--hen);color:#fff;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}
.time-pill{display:inline-block;background:var(--amber);color:#1A1C1F;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}
.faq{display:flex;flex-direction:column;gap:10px}
.faq-item{background:#fff;border-radius:14px;overflow:hidden;border:1px solid rgba(26,28,31,.06)}
.faq-item button{width:100%;text-align:left;background:#fff;color:var(--inktext);border:0;padding:16px 18px;font-weight:700;display:flex;justify-content:space-between;gap:12px}
.faq-item button:hover{background:#fbfaf7}
.faq-item button span{color:var(--hen)}
.faq-item p{margin:0;padding:0 18px 16px;color:#3f3b36}
.drawer,.consult{position:fixed;top:0;bottom:0;background:#1C1F26;z-index:50;padding:22px;overflow:auto;transition:transform .25s}
.drawer{left:0;width:min(320px,88vw);transform:translateX(-105%)}
.consult{right:0;width:min(380px,92vw);transform:translateX(105%);box-shadow:var(--shadow)}
.drawer.open,.consult.open{transform:translateX(0)}
.drawer a{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-weight:700}
.drawer a:hover{color:var(--ting)}
.consult h3{margin:8px 0 6px;font-size:24px;letter-spacing:-.03em}
.field{display:flex;flex-direction:column;gap:6px;margin:14px 0}
.field span{font-size:14px;color:var(--muted)}
.field input,.field select{height:46px;border-radius:12px;border:1px solid var(--line);background:#14161A;color:#fff;padding:0 12px;width:100%}
.field input:focus,.field select:focus{border-color:var(--qing)}
.tip{margin:12px 0 0;color:var(--amber);font-weight:700}
.mask{position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:48}
.site-footer{background:#101216;border-top:1px solid var(--line);padding:36px 0 28px}
.foot-grid{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.foot-links{display:flex;gap:16px;flex-wrap:wrap}
.foot-links a{color:var(--muted);font-weight:700}
.foot-links a:hover{color:var(--ting)}
.copy{margin:12px 0 0;color:var(--muted);font-size:14px}
.top-link{color:var(--amber);font-weight:700}
.top-link:hover{color:#fff}
.cat-head{padding:28px 0 22px}
.crumb{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:14px;margin:0 0 14px;list-style:none;padding:0}
.crumb a:hover{color:#fff}
.h1{margin:0 0 10px;font-size:40px;line-height:1.2;letter-spacing:-.045em;font-weight:700;max-width:16em}
.scope{margin:0;color:#ddd6cc;max-width:40em}
.head-row{display:flex;justify-content:space-between;gap:22px;align-items:flex-end}
.sort{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.sort a,.chip{border:1px solid var(--line);background:#14161A;color:#fff;border-radius:999px;padding:8px 14px;font-weight:700;display:inline-flex;align-items:center;min-height:40px}
.sort a:hover,.chip:hover{border-color:var(--amber);color:var(--amber)}
.sort a:active,.chip:active{background:var(--qing-deep)}
.filter-row{display:flex;justify-content:space-between;gap:18px;align-items:flex-end}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip small{color:var(--amber);margin-left:6px;font-weight:700}
.group-label{display:flex;align-items:center;gap:10px;margin:22px 0 10px}
.group-label b{font-size:18px;letter-spacing:-.03em}
.vlist{display:flex;flex-direction:column;gap:12px}
.vrow{display:grid;grid-template-columns:108px minmax(0,1fr);gap:16px;align-items:stretch;padding:14px;border:1px solid var(--line);border-radius:16px;background:#14161A;transition:transform .2s,border-color .2s,box-shadow .2s}
.vrow:hover{transform:translateY(-2px);border-color:rgba(224,161,90,.75);box-shadow:var(--shadow)}
.dur{background:var(--amber);color:#1A1C1F;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;min-height:92px}
.dur strong{font-size:20px;letter-spacing:-.03em;line-height:1.2}
.dur em{font-style:normal;font-size:12px}
.vrow h3{margin:0 0 4px;font-size:20px;letter-spacing:-.03em}
.vrow p{margin:0;color:#ddd6cc}
.meta-line{display:flex;gap:8px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
.bar{display:block;height:6px;border-radius:999px;background:rgba(224,161,90,.25);margin-top:10px;overflow:hidden}
.bar i{display:block;height:100%;width:var(--p);background:var(--amber)}
.more-wrap{margin:18px 0 0}
.more{color:var(--ting);font-weight:700;border-bottom:1px solid var(--ting);padding-bottom:2px}
.more:hover{color:#fff;border-color:#fff}
.order{display:grid;grid-template-columns:1.15fr .85fr .85fr .95fr;gap:0;border-top:4px solid var(--hen)}
.step{padding:18px 16px 8px 0;border-right:1px solid rgba(26,28,31,.08)}
.step:last-child{border-right:0;padding-right:0}
.step i{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--qing);color:#fff;font-style:normal;font-weight:700;margin-bottom:10px}
.step h3{margin:0 0 6px;font-size:20px;letter-spacing:-.03em}
.step p{margin:0;color:#3f3b36}
.slices{display:flex;gap:12px;overflow:auto;padding-bottom:8px;scroll-snap-type:x mandatory}
.slice{flex:0 0 280px;scroll-snap-align:start;background:#0B3D36;border:1px solid rgba(244,241,234,.14);border-radius:16px;overflow:hidden;color:#fff;transition:transform .2s}
.slice:hover{transform:translateY(-3px)}
.slice-face{height:132px;background:linear-gradient(145deg,#C4233A,#0E8A78 70%);position:relative}
.slice:nth-child(2) .slice-face{background:linear-gradient(160deg,#E0A15A,#0B3D36)}
.slice:nth-child(3) .slice-face{background:linear-gradient(150deg,#E45B8A,#14161A)}
.slice:nth-child(4) .slice-face{background:linear-gradient(180deg,#0E8A78,#C4233A)}
.slice-face .time-pill{position:absolute;left:12px;bottom:12px}
.slice div{padding:14px}
.slice h3{margin:0 0 6px;font-size:18px}
.slice p{margin:0;color:#ddd6cc;font-size:15px}
.rel{display:flex;flex-direction:column;gap:10px}
.rel a{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border-radius:14px;background:#14161A;border:1px solid var(--line);transition:border-color .2s,transform .2s}
.rel a:hover{border-color:var(--ting);transform:translateX(3px)}
.rel time{color:var(--amber);font-weight:700;font-size:14px}
.rel strong{display:block;font-size:18px;letter-spacing:-.03em}
.rel span{color:var(--muted);font-size:14px}
.rel em{font-style:normal;color:var(--ting);font-weight:700;white-space:nowrap}
.close-bar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:22px;border-radius:var(--radius);background:#101216;border:1px solid var(--line)}
.close-actions{display:flex;gap:10px;flex-wrap:wrap}
.dock{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:#101216;border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s}
.dock.on{transform:translateY(0)}
.dock strong{letter-spacing:-.03em}
.dock-actions{display:flex;gap:8px}
.x{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:transparent;color:#fff}
@media (max-width:1024px){
 .order{grid-template-columns:1fr 1fr}
 .step{border-right:0;border-bottom:1px solid rgba(26,28,31,.08);padding-right:0}
 .h1{font-size:34px}
 .sec-title{font-size:28px}
}
@media (max-width:768px){
 .nav-links{display:none}
 .nav-toggle{display:inline-flex;align-items:center}
 .btn-line.desktop-only{display:none}
 .section{padding:52px 0}
 .logo-text{font-size:15px}
 .head-row,.filter-row,.close-bar,.foot-grid,.rel a{grid-template-columns:1fr;flex-direction:column;align-items:flex-start}
 .rel a{display:flex;flex-direction:column;align-items:flex-start}
 .sort{justify-content:flex-start}
 .vrow{grid-template-columns:84px minmax(0,1fr)}
 .order{grid-template-columns:1fr}
 .h1{font-size:30px}
}
@media (max-width:520px){
 .container{width:min(1180px,calc(100% - 20px))}
 .dock{align-items:flex-start;flex-direction:column}
 .dock-actions,.close-actions,.hero-actions{width:100%}
 .btn{width:auto}
 .dur{min-height:76px}
 .dur strong{font-size:16px}
 .slice{flex-basis:78%}
 .h1{font-size:26px}
}

/* roulang page: category2 */
:root{
 --qing:#0E8A78;--qing-deep:#0B3D36;--ting:#E45B8A;--hen:#C4233A;--amber:#E0A15A;
 --ink:#14161A;--panel:#1C1F26;--paper:#F6F3EE;--inktext:#1A1C1F;
 --text:#F4F1EA;--muted:#B7B1A8;--line:rgba(244,241,234,.12);
 --radius:18px;--shadow:0 18px 40px rgba(0,0,0,.28);--pad:76px;
}
/* roulang page: category2 */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--text);font-family:"PingFang SC","Noto Sans SC","Source Han Sans SC","Source Han Sans","Microsoft YaHei",sans-serif;font-size:17px;line-height:1.75;padding-bottom:92px}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select{font-family:inherit;font-size:16px}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.container{width:min(1180px,calc(100% - 32px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:40;background:#14161A;border-bottom:1px solid var(--line)}
.nav-bar{height:74px;display:flex;align-items:center;gap:20px}
.logo{display:flex;align-items:center;gap:10px;min-width:0}
.logo-mark{width:38px;height:38px;border-radius:12px;background:var(--qing);color:#fff;display:grid;place-items:center;font-weight:700;flex:0 0 auto}
.logo-text{font-weight:700;letter-spacing:-.03em;font-size:18px;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:6px;margin:0 auto}
.nav-links a{padding:8px 14px;border-radius:999px;color:var(--muted);font-weight:700}
.nav-links a:hover{color:#fff;background:#23262e}
.nav-links a.active{color:#fff;background:var(--qing-deep)}
.nav-actions{display:flex;align-items:center;gap:10px}
.nav-toggle{display:none;height:42px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:transparent;color:#fff}
.nav-toggle:hover{border-color:var(--qing);color:var(--qing)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;font-weight:700;border:1px solid transparent;transition:transform .2s,background .2s,color .2s,border-color .2s,box-shadow .2s}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-solid{background:var(--qing);color:#fff}
.btn-solid:hover{background:#12a38d}
.btn-line{background:transparent;color:var(--ting);border-color:var(--ting)}
.btn-line:hover{background:rgba(228,91,138,.12)}
.btn-text{background:transparent;color:var(--qing-deep);padding:0;min-height:auto;border-radius:0}
.btn-text:hover{color:var(--hen)}
.section{padding:var(--pad) 0}
.section-dark{background:var(--ink)}
.section-panel{background:var(--panel)}
.section-paper{background:var(--paper);color:var(--inktext)}
.section-deep{background:var(--qing-deep)}
h1,h2,h3{font-weight:700;letter-spacing:-.03em;line-height:1.3}
h1{margin:0 0 12px;font-size:40px}
h2{margin:0 0 10px;font-size:30px}
.lead{margin:0 0 28px;max-width:760px;color:var(--muted);font-size:16px}
.section-paper .lead{color:#5c574f}
.kicker{margin:0 0 8px;color:var(--ting);font-weight:700;font-size:13px;letter-spacing:.08em}
.head-row{display:flex;justify-content:space-between;gap:24px;align-items:flex-end}
.crumb{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:14px;margin-bottom:18px}
.crumb a:hover{color:#fff}
.crumb span{color:#fff}
.sort{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px;font-weight:700;min-width:168px}
.sort select,.field input,.field select{height:46px;border-radius:12px;border:1px solid var(--line);background:#14161A;color:#fff;padding:0 12px}
.sort select:hover,.field input:hover,.field select:hover{border-color:var(--qing)}
.filters{display:flex;flex-wrap:wrap;gap:10px}
.filters a{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:999px;border:1px solid var(--line);color:#fff;font-weight:700;background:#14161A}
.filters a:hover,.filters a.active{background:var(--hen);border-color:var(--hen)}
.feature{display:grid;grid-template-columns:1.45fr .8fr;background:#1C1F26;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.feature-visual{position:relative;min-height:320px;background:
 radial-gradient(circle at 70% 30%,rgba(224,161,90,.45),transparent 28%),
 linear-gradient(145deg,#0B3D36 10%,#C4233A 72%,#E0A15A)}
.adult-shape{position:absolute;left:12%;bottom:0;width:34%;height:78%;border-radius:80px 80px 18px 18px;background:rgba(20,22,26,.28);border:1px solid rgba(255,255,255,.18)}
.adult-shape::before{content:"";position:absolute;left:28%;top:-18%;width:44%;height:28%;border-radius:50%;background:rgba(246,243,238,.28)}
.feature-copy{padding:28px 26px;display:flex;flex-direction:column;gap:12px}
.feature-copy p{margin:0;color:#ddd6cc}
.meta-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.time-pill,.dur{background:var(--amber);color:#1A1C1F;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}
.time-pill{position:absolute;top:12px;left:12px}
.badge{display:inline-block;background:var(--hen);color:#fff;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}
.tag{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;background:rgba(228,91,138,.16);color:var(--ting);font-size:12px;font-weight:700}
.poster-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}
.poster{display:flex;flex-direction:column;background:#1C1F26;border:1px solid var(--line);border-radius:16px;overflow:hidden;min-height:100%;transition:transform .2s,box-shadow .2s,border-color .2s}
.poster:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(228,91,138,.45)}
.poster-visual{position:relative;aspect-ratio:3/4}
.poster-visual.g1{background:linear-gradient(160deg,#0E8A78,#14161A 70%)}
.poster-visual.g2{background:linear-gradient(165deg,#E45B8A,#0B3D36)}
.poster-visual.g3{background:linear-gradient(180deg,#C4233A,#1C1F26 75%)}
.poster-visual.g4{background:linear-gradient(150deg,#E0A15A,#C4233A)}
.poster-visual.g5{background:linear-gradient(180deg,#0B3D36,#E45B8A)}
.poster-visual.g6{background:linear-gradient(200deg,#1C1F26,#0E8A78)}
.poster-visual.g7{background:linear-gradient(145deg,#C4233A,#E0A15A 80%)}
.poster-visual.g8{background:linear-gradient(180deg,#0E8A78,#E45B8A)}
.poster-body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.poster-body h3{margin:0;font-size:18px}
.poster-body p{margin:0;color:var(--muted);font-size:14px;line-height:1.65;flex:1}
.more-wrap{margin:22px 0 0}
.rail{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.rail article{padding:18px 18px 8px 0;border-top:3px solid var(--hen)}
.rail article:nth-child(2){border-top-color:var(--ting)}
.rail article:nth-child(3){border-top-color:var(--amber)}
.rail article:nth-child(4){border-top-color:var(--qing)}
.rail h3{margin:0 0 8px;font-size:20px}
.rail p{margin:0;color:#5c574f}
.rail a{display:inline-block;margin-top:12px;color:var(--hen);font-weight:700}
.rail a:hover{color:var(--qing-deep)}
.slices{display:flex;gap:12px;overflow:auto;padding-bottom:8px;scroll-snap-type:x mandatory}
.slice{flex:1 0 240px;scroll-snap-align:start;background:#14161A;border:1px solid var(--line);border-radius:16px;padding:16px 16px 18px;min-height:180px;display:flex;flex-direction:column;gap:8px}
.slice:hover{border-color:var(--amber)}
.slice h3{margin:0;font-size:18px}
.slice p{margin:0;color:var(--muted);flex:1}
.slice a{color:var(--amber);font-weight:700}
.rel-list{display:flex;flex-direction:column;gap:10px}
.rel-list a{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 18px;border-radius:16px;background:#1C1F26;border:1px solid var(--line);font-weight:700}
.rel-list a:hover{border-color:var(--qing);transform:translateX(3px);transition:border-color .2s,transform .2s}
.rel-list span{color:var(--amber);white-space:nowrap;font-size:14px}
.faq{display:flex;flex-direction:column;gap:10px}
.faq-item{background:#fff;border-radius:14px;overflow:hidden;border:1px solid rgba(26,28,31,.06)}
.faq-item button{width:100%;text-align:left;background:#fff;color:var(--inktext);border:0;padding:16px 18px;font-weight:700;display:flex;justify-content:space-between;gap:12px}
.faq-item button:hover{background:#fbfaf7}
.faq-item p{display:none;margin:0;padding:0 18px 16px;color:#3f3b36}
.faq-item.open p{display:block}
.close-row{display:flex;justify-content:space-between;gap:20px;align-items:center}
.close-row p{margin:8px 0 0;color:#5c574f}
.close-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.shade{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:45;opacity:0;pointer-events:none;transition:opacity .2s}
.shade.open{opacity:1;pointer-events:auto}
.drawer,.consult{position:fixed;top:0;bottom:0;background:#1C1F26;z-index:50;padding:22px;overflow:auto;box-shadow:var(--shadow)}
.drawer{left:0;width:min(320px,88vw);transform:translateX(-105%);transition:transform .25s}
.consult{right:0;width:min(380px,92vw);transform:translateX(105%);transition:transform .25s;border-left:1px solid var(--line)}
.drawer.open,.consult.open{transform:translateX(0)}
.drawer a{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-weight:700}
.drawer a:hover{color:var(--ting)}
.consult h3{margin:8px 0 6px;font-size:24px}
.consult .sub{margin:0 0 16px;color:var(--muted)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-weight:700}
.form-tip{color:var(--amber);font-weight:700}
.icon-btn{border:0;background:transparent;color:#fff;font-weight:700;padding:0}
.site-footer{background:#101216;border-top:1px solid var(--line);padding:36px 0 28px}
.foot-grid{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.foot-links{display:flex;gap:16px;flex-wrap:wrap}
.foot-links a{color:var(--muted);font-weight:700}
.foot-links a:hover{color:var(--ting)}
.copy{color:var(--muted);margin:12px 0 0;font-size:14px;line-height:1.7}
.top-link{color:var(--amber);font-weight:700}
.dock{position:fixed;left:0;right:0;bottom:0;z-index:35;background:#101216;border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s}
.dock.show{transform:translateY(0)}
.dock-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.dock strong{letter-spacing:-.03em}
@media (max-width:1024px){
 .poster-grid{grid-template-columns:repeat(3,1fr)}
 .feature{grid-template-columns:1fr}
 .rail{grid-template-columns:1fr 1fr}
 h1{font-size:34px}
 .section{padding:64px 0}
}
@media (max-width:768px){
 .nav-links{display:none}
 .nav-toggle{display:inline-flex;align-items:center}
 .btn-line.desktop-only{display:none}
 .head-row,.close-row,.foot-grid{flex-direction:column;align-items:flex-start}
 .poster-grid,.rail{grid-template-columns:1fr 1fr}
 .section{padding:52px 0}
 .logo-text{font-size:15px}
 h1{font-size:30px}
 h2{font-size:26px}
 .rel-list a{align-items:flex-start;flex-direction:column}
}
@media (max-width:520px){
 .container{width:min(1180px,calc(100% - 20px))}
 .poster-grid,.rail{grid-template-columns:1fr}
 .dock-inner{align-items:flex-start;padding:10px 0}
 .dock .btn{min-height:40px;padding:0 12px}
 .nav-bar{height:64px}
}
