/* roulang page: index */
:root{
  --bg:#16121C;
  --surface:#241C2E;
  --surface-2:#2C2438;
  --ink:#F4EFE8;
  --muted:#A398AA;
  --brand:#E23B6A;
  --amber:#E6A23C;
  --celadon:#7DCAA5;
  --line:rgba(244,239,232,.12);
  --radius:14px;
  --radius-shell:18px;
  --radius-card:14px;
  --radius-control:10px;
  --radius-chip:999px;
  --shadow:0 10px 24px rgba(0,0,0,.28),0 1px 0 rgba(244,239,232,.04);
  --container:1180px;
  --header:64px;
  --aside:240px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.85;text-rendering:optimizeLegibility}
img,svg{max-width:100%;display:block}
button,input{font-family:inherit;font-size:inherit}
button{appearance:none;-webkit-appearance:none}
a{color:inherit;text-decoration:none}
a:hover{color:var(--brand)}
h1,h2,h3,p{margin:0}
h1,h2,h3{line-height:1.3;font-weight:700;color:var(--ink)}
h1{font-size:clamp(1.7rem,2.4vw,2.35rem)}
h2{font-size:clamp(1.28rem,1.7vw,1.65rem);margin-bottom:.7rem}
h3{font-size:1.05rem;line-height:1.35}
p{margin-bottom:.85rem}
ul{margin:0;padding:0;list-style:none}
::selection{background:rgba(226,59,106,.35);color:var(--ink)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--celadon);outline-offset:2px}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 32px}
.skip{position:absolute;left:12px;top:-40px;background:var(--brand);color:var(--ink);padding:8px 12px;border-radius:10px;z-index:80}
.skip:focus{top:12px}
.site-header{position:fixed;inset:0 0 auto 0;height:var(--header);z-index:50;background:#120e18;border-bottom:1px solid var(--line);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.header-inner{height:100%;display:flex;align-items:center;gap:12px;padding:0 16px}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.02em;white-space:nowrap;color:var(--ink)}
.logo:hover{color:var(--ink)}
.logo svg{width:28px;height:28px;flex:none}
.age-tag{border:1px solid var(--brand);color:var(--brand);border-radius:var(--radius-chip);padding:1px 7px;font-size:12px;line-height:1.4}
.main-nav{display:flex;align-items:center;gap:4px;flex:none}
.main-nav a{padding:8px 10px;border-radius:10px;color:var(--muted);font-size:14px}
.main-nav a:hover{color:var(--ink);background:rgba(244,239,232,.04)}
.main-nav a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--brand)}
.header-search{flex:1;min-width:0;display:flex;align-items:center;gap:8px}
.header-search input,.drawer-search input{width:100%;min-width:0;height:40px;border-radius:var(--radius-chip);border:1px solid var(--line);background:#120e18;color:var(--ink);padding:0 14px}
.header-search input::placeholder,.drawer-search input::placeholder{color:var(--muted)}
.ver,.lang{display:flex;align-items:center;gap:6px;flex:none}
.ver-btn,.lang-btn,.mini-btn{height:34px;padding:0 10px;border-radius:var(--radius-chip);border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:border-color 180ms ease,color 180ms ease,transform 180ms ease,filter 180ms ease}
.ver-btn[aria-pressed="true"],.lang-btn.is-on{border-color:rgba(226,59,106,.7);color:var(--ink);background:rgba(226,59,106,.12)}
.ver-btn:hover,.lang-btn:hover,.mini-btn:hover{color:var(--ink);border-color:rgba(230,162,60,.7);filter:brightness(1.08)}
.ver-btn:active,.lang-btn:active,.mini-btn:active,.btn:active{transform:translateY(1px)}
.lang-btn:disabled,.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.burger{display:none;margin-left:auto;height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.site-aside{display:none}
.toc a{display:block;padding:8px 12px 8px 14px;color:var(--muted);border-left:3px solid transparent;font-size:14px;line-height:1.45}
.toc a:hover{color:var(--ink);background:rgba(244,239,232,.03)}
.toc a.is-current{color:var(--ink);border-left-color:var(--brand);background:rgba(226,59,106,.1)}
.site-main{min-height:100vh}
main>section{padding:72px 0;scroll-margin-top:78px}
main>section:nth-child(odd){background:var(--bg)}
main>section:nth-child(even){background:#1c1726}
.lead{color:var(--muted);max-width:68ch;font-size:1rem;line-height:1.85}
.kicker{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:var(--radius-chip);border:1px solid rgba(125,202,165,.5);color:var(--celadon);font-size:12px;line-height:1;background:transparent}
.badge-amber{color:var(--amber);border-color:rgba(230,162,60,.55)}
.badge-brand{color:#ffd0dc;border-color:rgba(226,59,106,.55)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:var(--radius-control);border:1px solid transparent;background:var(--brand);color:var(--ink);font-weight:700;cursor:pointer;transition:filter 180ms ease,transform 180ms ease,border-color 180ms ease}
.btn:hover{filter:brightness(1.08);color:var(--ink)}
.btn-ghost{background:transparent;border-color:var(--amber);color:var(--amber)}
.btn-ghost:hover{color:var(--amber);filter:brightness(1.12)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);transition:transform 180ms ease,border-color 180ms ease}
.card:hover{transform:translateY(-2px);border-color:rgba(226,59,106,.4)}
.pad{padding:16px 16px 18px}
.hero-stack{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:16px;align-items:start}
.hero-main{grid-column:1;grid-row:1 / span 3;padding:28px 26px 24px}
.brand-line{color:var(--amber);font-weight:700;margin-bottom:8px}
.subhead{font-size:1.05rem;color:var(--ink);margin:12px 0}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.hero-console{margin-top:28px;padding:16px}
.console-top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:10px}
.screen{aspect-ratio:16/9;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#2C2438}
.screen svg{width:100%;height:100%}
.console-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px;color:var(--muted);font-size:13px}
.num{font-variant-numeric:tabular-nums;color:var(--ink);font-size:12px}
.bar{height:6px;border-radius:999px;background:rgba(244,239,232,.1);margin-top:10px;overflow:hidden}
.bar span{display:block;width:18%;height:100%;background:var(--brand)}
.side-a{margin-left:28px}
.side-b{margin-left:56px}
.stat-num{font-size:1.7rem;line-height:1.2;color:var(--amber);font-variant-numeric:tabular-nums}
.cap-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.cap-grid article:nth-child(1){grid-column:span 4}
.cap-grid article:nth-child(2){grid-column:span 2}
.cap-grid article:nth-child(3),.cap-grid article:nth-child(4),.cap-grid article:nth-child(5){grid-column:span 2}
.cap-grid article:nth-child(6){grid-column:span 6}
.cap-name{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:8px}
.scene-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
.scene-row article{flex:0 0 auto;scroll-snap-align:start}
.scene-row article:nth-child(1){width:min(420px,82vw)}
.scene-row article:nth-child(2){width:min(320px,78vw)}
.scene-row article:nth-child(3){width:min(370px,80vw)}
.scene-row article:nth-child(4){width:min(290px,74vw)}
.line-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.85fr);gap:14px}
.line-col{padding:18px}
body[data-line="jp"] .col-kr,body[data-line="kr"] .col-jp{opacity:.48}
body[data-line="jp"] .col-jp,body[data-line="kr"] .col-kr{border-color:rgba(226,59,106,.45)}
.dot-list li{position:relative;padding-left:16px;margin:8px 0;line-height:1.7}
.dot-list li::before{content:"";width:6px;height:6px;border-radius:999px;background:var(--celadon);position:absolute;left:0;top:.72em}
.player-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,.8fr);gap:14px}
.timeline{padding:8px 6px 8px 0}
.tl-item{display:grid;grid-template-columns:64px 16px 1fr;gap:8px;align-items:start;margin:0 0 14px}
.tl-item .dot{width:10px;height:10px;border-radius:999px;background:var(--celadon);margin-top:.45rem;box-shadow:0 0 0 4px rgba(125,202,165,.12)}
.tl-item.is-now .dot{background:var(--brand);box-shadow:0 0 0 4px rgba(226,59,106,.15)}
.wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:34px;gap:14px;grid-auto-flow:dense}
.poster-card{display:flex;flex-direction:column;overflow:hidden;height:100%}
.poster-card:nth-child(1){grid-row:span 8}
.poster-card:nth-child(2){grid-row:span 6}
.poster-card:nth-child(3){grid-row:span 7}
.poster-card:nth-child(4){grid-row:span 5}
.poster-card:nth-child(5){grid-row:span 8}
.poster-card:nth-child(6){grid-row:span 6}
.poster-card figure{margin:0;flex:1;min-height:110px;background:#2C2438}
.poster-card svg{width:100%;height:100%}
.meta-line{color:var(--muted);font-size:13px;margin-bottom:8px}
.meta-line .num{font-size:13px}
.case{margin:0 0 14px;padding:16px 18px;display:flex;justify-content:space-between;gap:16px;align-items:center}
.case:nth-child(1){width:100%}
.case:nth-child(2){width:84%}
.case:nth-child(3){width:68%}
.case b{font-size:1.35rem;color:var(--amber);font-variant-numeric:tabular-nums;white-space:nowrap}
.plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
.plan:nth-child(1){grid-column:1 / 2;margin-top:42px}
.plan-rec{grid-column:2 / 4;margin-top:0;background:var(--surface-2);border-color:rgba(226,59,106,.45)}
.plan:nth-child(3){grid-column:4 / 5;margin-top:58px}
.plan .rows{display:flex;flex-direction:column;gap:8px;margin:12px 0 16px}
.plan .rows span{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:14px}
.plan .rows strong{color:var(--ink);font-weight:600}
.matrix{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.matrix .stack{display:flex;flex-direction:column;gap:10px}
.review-wall{columns:3;column-gap:14px}
.review-card{break-inside:avoid;margin:0 0 14px;padding:14px 14px 12px}
.stars{color:var(--amber);letter-spacing:2px;font-size:12px;margin-bottom:6px}
.stars i{color:rgba(244,239,232,.28);font-style:normal}
.who{color:var(--muted);font-size:13px}
.voice-wrap{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.7fr);gap:14px}
.quote{padding:18px 18px 8px;border-left:3px solid var(--amber);background:transparent;border-radius:0 14px 14px 0;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:14px}
.stat-slab{padding:22px 18px;height:100%;display:flex;flex-direction:column;justify-content:center;gap:18px}
.stat-slab div{border-top:1px solid var(--line);padding-top:12px}
.news-item{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line)}
.news-item time{color:var(--amber);font-variant-numeric:tabular-nums;font-size:14px}
.news-item a{font-weight:700}
.entry-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr);gap:14px}
.entry-card{min-height:180px;padding:22px;display:flex;flex-direction:column;justify-content:space-between}
.cta-narrow{max-width:680px;margin:0 auto}
.cta-narrow h2,.cta-narrow .hero-actions{text-align:center}
.cta-narrow .hero-actions{justify-content:center}
.qa{margin-top:18px;text-align:left}
.qa details{border-top:1px solid var(--line);padding:10px 0}
.qa summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:700;color:var(--ink)}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(45deg);flex:none;margin-right:4px}
.qa details[open] summary::after{transform:rotate(225deg);margin-top:4px}
.qa details p{color:var(--muted);margin:.55rem 0 .3rem}
#search-tip,#plan-note{color:var(--celadon)}
.site-footer{background:#120e18;border-top:1px solid var(--line);padding:36px 0 28px}
.foot-grid{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.foot-brand{font-weight:700;font-size:1.15rem;margin-bottom:6px}
.foot-links{display:flex;gap:14px;flex-wrap:wrap}
.foot-links a{color:var(--muted)}
.foot-links a:hover{color:var(--ink)}
.copy{color:var(--muted);font-size:13px;margin-top:16px}
.age-gate{position:fixed;inset:0;z-index:70;background:#120e18;display:flex;align-items:center;justify-content:center;padding:24px}
html.age-pass .age-gate{display:none}
.age-panel{width:min(520px,100%);padding:28px 24px;text-align:left}
.drawer{display:none}
.drawer h2{font-size:14px;color:var(--muted);margin:16px 0 8px}
.drawer .toc a{padding-left:10px}
@media (max-width:1023px){
  .container{padding:0 24px}
  main>section{padding:56px 0}
  .main-nav,.header-ver,.header-lang{display:none}
  .burger{display:inline-flex}
  .site-aside{display:none !important}
  body.nav-open{overflow:hidden}
  body.nav-open .drawer{display:block;position:fixed;z-index:55;inset:var(--header) 0 0 0;background:#16121C;overflow:auto;padding:18px 16px 40px}
  .cap-grid{grid-template-columns:1fr 1fr}
  .cap-grid article,.cap-grid article:nth-child(1),.cap-grid article:nth-child(2),.cap-grid article:nth-child(3),.cap-grid article:nth-child(4),.cap-grid article:nth-child(5),.cap-grid article:nth-child(6){grid-column:span 1}
  .cap-grid article:nth-child(1),.cap-grid article:nth-child(6){grid-column:span 2}
  .wall{grid-template-columns:1fr 1fr}
  .poster-card{grid-row:span 7 !important}
  .review-wall{columns:2}
  .plan-grid{grid-template-columns:1fr}
  .plan,.plan-rec,.plan:nth-child(1),.plan:nth-child(3){grid-column:auto;margin-top:0}
}
@media (min-width:1024px){
  .site-aside{display:block;position:fixed;z-index:40;top:var(--header);left:0;width:var(--aside);height:calc(100vh - var(--header));overflow:auto;background:#241C2E;border-right:1px solid var(--line);padding:18px 10px 28px}
  .site-main{margin-left:var(--aside)}
  .drawer{display:none !important}
}
@media (max-width:767px){
  .container{padding:0 16px}
  main>section{padding:48px 0}
  .header-search{display:none}
  .hero-stack,.line-grid,.player-grid,.voice-wrap,.entry-grid,.matrix{grid-template-columns:1fr}
  .hero-main{grid-row:auto;padding:20px 16px}
  .hero-console,.side-a,.side-b{margin:0}
  .cap-grid{grid-template-columns:1fr}
  .cap-grid article,.cap-grid article:nth-child(1),.cap-grid article:nth-child(6){grid-column:span 1 !important}
  .wall{grid-template-columns:1fr;grid-auto-rows:auto}
  .poster-card{grid-row:auto !important;height:auto}
  .poster-card figure{aspect-ratio:16/10;flex:none}
  .case,.case:nth-child(2),.case:nth-child(3){width:100%;flex-direction:column;align-items:flex-start}
  .review-wall{columns:1}
  .news-item{grid-template-columns:72px minmax(0,1fr);gap:10px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
  .card:hover,.btn:active,.ver-btn:active{transform:none}
}

/* roulang page: category2 */
:root{
 --bg:#16121C;
 --surface:#241C2E;
 --surface-2:#2C2438;
 --ink:#F4EFE8;
 --muted:#A398AA;
 --brand:#E23B6A;
 --amber:#E6A23C;
 --celadon:#7DCAA5;
 --line:rgba(244,239,232,.12);
 --radius:14px;
 --radius-shell:18px;
 --radius-card:14px;
 --radius-control:10px;
 --radius-chip:999px;
 --shadow:0 10px 24px rgba(0,0,0,.28),0 1px 0 rgba(244,239,232,.04);
 --container:1180px;
 --header:64px;
 --aside:240px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.85;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg{max-width:100%;display:block}
button,input,label{font-family:inherit;font-size:inherit}
button{appearance:none;-webkit-appearance:none;background:none;border:0;color:inherit}
a{color:inherit;text-decoration:none}
a:hover{color:var(--brand)}
::selection{background:rgba(226,59,106,.35);color:var(--ink)}
:focus-visible{outline:2px solid var(--celadon);outline-offset:2px}
[hidden]{display:none !important}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:700;line-height:1.3}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 32px}
.site-header{position:fixed;inset:0 0 auto 0;height:var(--header);z-index:50;background:#120e18;border-bottom:1px solid var(--line);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.header-inner{height:100%;display:flex;align-items:center;gap:10px;padding:0 16px}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.02em;white-space:nowrap;color:var(--ink);flex:none}
.logo:hover{color:var(--ink)}
.logo svg{width:28px;height:28px;flex:none}
.age-tag{display:inline-flex;align-items:center;border:1px solid var(--brand);color:var(--brand);border-radius:var(--radius-chip);padding:1px 7px;font-size:12px;line-height:1.4}
.main-nav{display:flex;align-items:center;gap:2px;flex:none}
.main-nav a{padding:6px 8px;border-radius:10px;color:var(--muted);font-size:14px;white-space:nowrap}
.main-nav a:hover{color:var(--ink);background:rgba(244,239,232,.04)}
.main-nav a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--brand)}
.header-search{flex:1;min-width:120px;display:flex;align-items:center}
.header-search input,.drawer-search input{width:100%;min-width:0;height:40px;border-radius:var(--radius-chip);border:1px solid var(--line);background:#120e18;color:var(--ink);padding:0 14px}
.header-search input::placeholder,.drawer-search input::placeholder{color:var(--muted)}
.header-search input:focus,.drawer-search input:focus{border-color:rgba(125,202,165,.8)}
.ver-switch,.lang-switch{display:flex;align-items:center;gap:6px;flex:none}
.ver-btn,.lang-btn,.mini-btn{height:34px;padding:0 10px;border-radius:var(--radius-chip);border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;white-space:nowrap;transition:border-color 180ms ease,color 180ms ease,transform 180ms ease,filter 180ms ease}
.ver-btn[aria-pressed="true"],.lang-btn.is-on{border-color:rgba(226,59,106,.7);color:var(--ink);background:rgba(226,59,106,.12)}
.ver-btn:hover,.lang-btn:hover,.mini-btn:hover{color:var(--ink);border-color:rgba(230,162,60,.7);filter:brightness(1.08)}
.ver-btn:active,.lang-btn:active,.mini-btn:active,.btn:active{transform:translateY(1px)}
.lang-btn:disabled,.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.menu-btn{display:none;margin-left:auto}
.toc-aside{position:fixed;top:var(--header);left:0;width:var(--aside);height:calc(100vh - var(--header));overflow:auto;background:#120e18;border-right:1px solid var(--line);padding:20px 12px 28px;z-index:40}
.toc-label{margin:4px 12px 10px;color:var(--amber);font-size:12px;line-height:1.4}
.toc a{display:block;padding:8px 12px 8px 14px;color:var(--muted);border-left:3px solid transparent;font-size:14px;line-height:1.45;border-radius:0 10px 10px 0}
.toc a:hover{color:var(--ink);background:rgba(244,239,232,.03)}
.toc a.is-current{color:var(--ink);border-left-color:var(--brand);background:rgba(226,59,106,.1)}
.content-col{margin-left:var(--aside);min-width:0;padding-top:var(--header)}
.site-main{min-height:70vh}
main>section{padding:72px 0;scroll-margin-top:78px}
main>section:nth-child(odd){background:var(--bg)}
main>section:nth-child(even){background:#1c1726}
.page-h1{font-size:36px;line-height:1.28;margin:14px 0 12px;border-bottom:2px solid var(--brand);display:inline-block;padding-bottom:6px}
.sec-title{font-size:26px;line-height:1.3;margin:0 0 8px}
.sec-lead,.ver-note,.batch-note{color:var(--muted);max-width:40em;line-height:1.85;margin:0 0 16px}
.kicker{color:var(--amber);font-weight:700;font-size:14px;line-height:1.4}
.seg-row{display:flex;flex-wrap:wrap;gap:8px}
.seg-row .badge{text-decoration:none}
.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:var(--radius-chip);border:1px solid rgba(125,202,165,.5);color:var(--celadon);font-size:12px;line-height:1;background:transparent}
.badge-amber{color:var(--amber);border-color:rgba(230,162,60,.55)}
.badge-brand{color:#ffd0dc;border-color:rgba(226,59,106,.55)}
a.badge:hover{color:var(--ink);border-color:rgba(226,59,106,.55)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:var(--radius-control);border:1px solid transparent;background:var(--brand);color:var(--ink);font-weight:700;cursor:pointer;transition:filter 180ms ease,transform 180ms ease,border-color 180ms ease}
.btn:hover,a.btn:hover{filter:brightness(1.08);color:var(--ink)}
.btn-ghost{background:transparent;border-color:var(--amber);color:var(--amber)}
.btn-ghost:hover,a.btn-ghost:hover{color:var(--amber);filter:brightness(1.12)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);transition:transform 180ms ease,border-color 180ms ease}
.card:hover{transform:translateY(-2px);border-color:rgba(226,59,106,.4)}
.dir-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dir-card{padding:14px 14px 12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.dir-card time{color:var(--amber);font-size:13px;line-height:1.4}
.dir-card h3{font-size:16px;line-height:1.45}
.dir-card .status{color:var(--muted);font-size:14px;line-height:1.7}
.badge-row{display:flex;flex-wrap:wrap;gap:6px}
.more-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.band{width:100%;aspect-ratio:800/220;object-fit:cover;border-radius:var(--radius-card);border:1px solid var(--line);background:var(--surface);margin-bottom:16px}
.metric-row{display:flex;gap:12px}
.metric{flex:1;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:16px 14px;box-shadow:var(--shadow)}
.metric b{display:block;color:var(--amber);font-size:28px;line-height:1.2;font-weight:700}
.metric span{display:block;color:var(--muted);font-size:14px;line-height:1.6;margin-top:4px}
.step-bar{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1.25fr 1fr .86fr;gap:12px}
.step-bar li{background:var(--surface);border:1px solid var(--line);border-top:2px solid rgba(226,59,106,.7);border-radius:var(--radius-card);padding:16px;box-shadow:var(--shadow)}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-chip);border:1px solid var(--brand);color:#ffd0dc;font-size:13px;margin-bottom:8px}
.step-bar h3{font-size:18px;margin-bottom:6px}
.step-bar p{color:var(--muted);line-height:1.8}
.doc-index{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.doc-index li{display:flex;gap:18px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.doc-index time{flex:none;color:var(--amber);font-size:13px;min-width:72px}
.doc-index a{font-weight:700;line-height:1.5}
.narrow-cta{max-width:560px;margin:0 auto;text-align:center}
.narrow-cta .sec-lead{margin-left:auto;margin-right:auto}
.cta-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.empty-note{color:var(--muted);margin-top:12px}
.site-footer{border-top:1px solid var(--line);background:#120e18;padding:40px 0 28px}
.foot-grid{display:flex;justify-content:space-between;gap:28px;align-items:flex-start}
.foot-brand{font-weight:700;font-size:18px;margin-bottom:8px}
.site-footer p{color:var(--muted);max-width:46em}
.foot-links{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.foot-links a{color:var(--muted)}
.foot-links a:hover{color:var(--brand)}
.copy{color:var(--muted);font-size:13px;margin-top:18px}
.drawer{position:fixed;inset:0;z-index:70;background:#120e18;overflow:auto;padding:18px 16px 40px}
.drawer-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.drawer-top strong{font-size:18px}
.drawer-search{margin:12px 0}
.drawer-block{margin:16px 0}
.drawer-block .toc a{padding-left:10px}
.age-check{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.age-gate{position:fixed;inset:0;z-index:90;background:rgba(12,9,16,.86);display:flex;align-items:center;justify-content:center;padding:16px}
.age-panel{width:min(460px,100%);background:var(--surface);border:1px solid rgba(226,59,106,.55);border-radius:var(--radius-shell);box-shadow:var(--shadow);padding:28px 24px}
.age-panel h2{font-size:26px;margin:12px 0}
.age-panel p{color:var(--muted)}
.age-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.age-stop{display:none;margin-top:14px;color:var(--ink)}
#age-ok:checked ~ .age-gate{display:none}
#age-no:checked ~ .age-gate .age-actions{display:none}
#age-no:checked ~ .age-gate .age-stop{display:block}
body:has(#age-ok:not(:checked)){overflow:hidden}
@media (max-width:1023px){
 .container{padding:0 24px}
 .main-nav,.header-search,.ver-switch,.lang-switch,.toc-aside{display:none}
 .menu-btn{display:inline-flex}
 .content-col{margin-left:0}
}
@media (max-width:767px){
 .container{padding:0 16px}
 main>section{padding:48px 0}
 .page-h1{font-size:30px}
 .sec-title{font-size:22px}
 .dir-grid,.metric-row,.step-bar{grid-template-columns:1fr;display:grid}
 .metric-row{flex-direction:column}
 .doc-index li{flex-direction:column;gap:4px}
 .foot-grid{flex-direction:column}
 .foot-links{align-items:flex-start}
 .more-row{flex-direction:column;align-items:flex-start}
}
@media (max-width:520px){
 .logo span{font-size:14px}
 .page-h1{font-size:28px}
 .cta-actions .btn,.age-actions .btn{width:100%}
 .header-inner{padding:0 12px}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{transition:none !important;animation:none !important}
}

/* roulang page: category1 */
:root{
  --bg:#16121C;
  --surface:#241C2E;
  --surface-2:#2C2438;
  --ink:#F4EFE8;
  --muted:#A398AA;
  --brand:#E23B6A;
  --amber:#E6A23C;
  --celadon:#7DCAA5;
  --line:rgba(244,239,232,.12);
  --radius:14px;
  --radius-shell:18px;
  --radius-card:14px;
  --radius-control:10px;
  --radius-chip:999px;
  --shadow:0 10px 24px rgba(0,0,0,.28),0 1px 0 rgba(244,239,232,.04);
  --container:1180px;
  --header:64px;
  --aside:240px;
}
/* roulang page: category1 */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.85;text-rendering:optimizeLegibility}
img,svg{max-width:100%;display:block}
button,input{font-family:inherit;font-size:inherit;color:inherit}
button{appearance:none;-webkit-appearance:none}
a{color:inherit;text-decoration:none}
a:hover{color:var(--brand)}
p{margin:0 0 .85rem}
h1,h2,h3{line-height:1.3;font-weight:700;margin:0 0 .7rem}
h1{font-size:clamp(1.8rem,3vw,2.45rem)}
h2{font-size:1.45rem}
h3{font-size:1.08rem;line-height:1.4}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 32px}
.site-header{position:fixed;inset:0 0 auto 0;height:var(--header);z-index:50;background:#120e18;border-bottom:1px solid var(--line);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.header-inner{height:100%;display:flex;align-items:center;gap:12px;padding:0 16px}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.02em;white-space:nowrap;color:var(--ink);font-size:15px}
.logo:hover{color:var(--ink)}
.logo svg{width:28px;height:28px;flex:none}
.age-tag{display:inline-flex;align-items:center;border:1px solid var(--brand);color:var(--brand);border-radius:var(--radius-chip);padding:1px 7px;font-size:12px;line-height:1.4}
.main-nav{display:flex;align-items:center;gap:4px;flex:none}
.main-nav a{padding:8px 10px;border-radius:10px;color:var(--muted);font-size:14px;transition:color 180ms ease,background 180ms ease}
.main-nav a:hover{color:var(--ink);background:rgba(244,239,232,.04)}
.main-nav a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--brand)}
.header-search{flex:1;min-width:0;display:flex;align-items:center;gap:8px;max-width:320px}
.header-search input,.drawer-search input{width:100%;min-width:0;height:40px;border-radius:var(--radius-chip);border:1px solid var(--line);background:#120e18;color:var(--ink);padding:0 14px;outline:none;transition:border-color 180ms ease}
.header-search input::placeholder,.drawer-search input::placeholder{color:var(--muted)}
.header-search input:focus,.drawer-search input:focus{border-color:rgba(125,202,165,.7)}
.header-tools{display:flex;align-items:center;gap:8px;flex:none}
.ver-switch,.lang-switch{display:flex;align-items:center;gap:6px}
.ver-btn,.lang-btn,.mini-btn,.chip,.burger{border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:border-color 180ms ease,color 180ms ease,transform 180ms ease,filter 180ms ease,background 180ms ease}
.ver-btn,.lang-btn,.mini-btn{height:34px;padding:0 10px;border-radius:var(--radius-chip);font-size:13px}
.ver-btn[aria-pressed="true"],.lang-btn.is-on{border-color:rgba(226,59,106,.7);color:var(--ink);background:rgba(226,59,106,.12)}
.ver-btn:hover,.lang-btn:hover,.mini-btn:hover,.chip:hover{color:var(--ink);border-color:rgba(230,162,60,.7);filter:brightness(1.08)}
.ver-btn:active,.lang-btn:active,.mini-btn:active,.btn:active,.chip:active{transform:translateY(1px)}
.lang-btn:disabled,.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.burger{display:none;width:40px;height:40px;border-radius:10px;align-items:center;justify-content:center;flex-direction:column;gap:5px;flex:none}
.burger span{display:block;width:16px;height:1.5px;background:var(--ink)}
.site-aside{position:fixed;top:var(--header);left:0;width:var(--aside);height:calc(100vh - var(--header));overflow:auto;z-index:30;background:#120e18;border-right:1px solid var(--line);padding:18px 10px 28px}
.toc-kicker{color:var(--amber);font-size:12px;padding:4px 14px 10px;letter-spacing:.04em}
.toc a{display:block;padding:8px 12px 8px 14px;color:var(--muted);border-left:3px solid transparent;font-size:14px;line-height:1.45;border-radius:0 10px 10px 0;transition:color 180ms ease,background 180ms ease,border-color 180ms ease}
.toc a:hover{color:var(--ink);background:rgba(244,239,232,.03)}
.toc a.is-current{color:var(--ink);border-left-color:var(--brand);background:rgba(226,59,106,.1)}
.drawer{position:fixed;top:var(--header);left:0;right:0;bottom:0;z-index:60;background:#120e18;overflow:auto;padding:8px 0 48px}
.drawer .header-search{display:flex;max-width:none;margin:14px 0}
.drawer .header-tools{flex-wrap:wrap;margin-bottom:12px}
.drawer .main-nav{flex-direction:column;align-items:stretch;margin-bottom:12px}
.drawer .main-nav a{padding:10px 12px}
.site-main{min-height:100vh;padding-top:var(--header)}
main>section{padding:72px 0;scroll-margin-top:78px;border-top:1px solid var(--line)}
main>section:first-child{border-top:0}
main>section:nth-child(odd){background:var(--bg)}
main>section:nth-child(even){background:#1c1726}
.lead{color:var(--muted);max-width:68ch;font-size:1rem;line-height:1.85}
.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:var(--radius-chip);border:1px solid rgba(125,202,165,.5);color:var(--celadon);font-size:12px;line-height:1;background:transparent}
.badge-amber{color:var(--amber);border-color:rgba(230,162,60,.55)}
.badge-brand{color:#ffd0dc;border-color:rgba(226,59,106,.55)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:var(--radius-control);border:1px solid transparent;background:var(--brand);color:var(--ink);font-weight:700;cursor:pointer;transition:filter 180ms ease,transform 180ms ease,border-color 180ms ease,background 180ms ease}
.btn:hover{filter:brightness(1.08);color:var(--ink)}
.btn-ghost{background:transparent;border-color:var(--amber);color:var(--amber)}
.btn-ghost:hover{color:var(--amber);filter:brightness(1.12)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);transition:transform 180ms ease,border-color 180ms ease}
.card:hover{transform:translateY(-2px);border-color:rgba(226,59,106,.4)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--muted);font-size:13px;margin-bottom:14px}
.crumbs a:hover{color:var(--brand)}
.crumbs [aria-current="page"]{color:var(--ink)}
.doc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.doc-copy{min-width:0;max-width:760px}
.ver-chip{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:var(--radius-chip);border:1px solid rgba(226,59,106,.55);color:#ffd0dc;background:rgba(226,59,106,.1);font-size:13px;white-space:nowrap}
.line-note{margin:12px 0 0;color:var(--muted);font-size:14px}
.filter-bar{display:flex;flex-direction:column;gap:14px}
.filter-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filter-group>span{color:var(--muted);font-size:13px;min-width:4.5em}
.chip{height:32px;padding:0 12px;border-radius:var(--radius-chip);font-size:13px}
.chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--ink)}
.entry-list{display:flex;flex-direction:column;gap:12px}
.entry{display:grid;grid-template-columns:168px minmax(0,1fr);gap:16px;align-items:center;padding:14px}
.entry h3{margin:0 0 6px}
.entry h3 a:hover{text-decoration:underline;text-underline-offset:3px}
.entry p{margin:0;color:var(--muted);font-size:14px;line-height:1.75}
.thumb-wrap{border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#2C2438}
.thumb{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.entry-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.meta-num{font-size:12px;color:var(--muted)}
.badge-row{display:flex;flex-wrap:wrap;gap:6px}
.empty-note{margin:14px 0 0;color:var(--amber)}
.week-tl{list-style:none;margin:0;padding:0;max-width:820px}
.week-tl li{display:grid;grid-template-columns:92px 16px minmax(0,1fr);gap:12px;align-items:start}
.week-tl time{color:var(--amber);font-size:13px;line-height:1.6;padding-top:2px}
.rail{position:relative;width:10px;height:10px;border-radius:999px;background:var(--celadon);margin-top:.5rem;box-shadow:0 0 0 4px rgba(125,202,165,.15)}
.week-tl li:not(:last-child) .rail::after{content:"";position:absolute;left:4px;top:14px;width:1px;height:calc(100% + 18px);background:rgba(125,202,165,.35)}
.week-tl li:not(:last-child){padding-bottom:18px}
.week-tl strong{display:block;font-size:16px;line-height:1.45}
.week-tl p{margin:4px 0 0;color:var(--muted);font-size:14px}
.note-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(240px,.8fr);gap:14px}
.note{padding:20px 20px 8px}
.note h3{margin-bottom:8px}
.note p{color:var(--muted)}
.doc-index{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-width:860px}
.doc-index a{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);transition:transform 180ms ease,border-color 180ms ease}
.doc-index a:hover{transform:translateY(-2px);border-color:rgba(226,59,106,.4);color:inherit}
.doc-index .idx{color:var(--amber);font-size:13px}
.doc-index strong{display:block;font-size:16px;line-height:1.45}
.doc-index .sub{display:block;color:var(--muted);font-size:13px;line-height:1.6}
.doc-index time{color:var(--muted);font-size:12px;white-space:nowrap}
.more-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px}
.more-bar p{margin:0;color:var(--muted);max-width:62ch}
.end-read{max-width:680px}
.end-read p{color:var(--muted)}
.site-footer{background:#120e18;border-top:1px solid var(--line);padding:36px 0 28px}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(180px,.7fr);gap:24px}
.foot-brand{font-weight:700;font-size:18px;margin-bottom:8px}
.site-footer p{color:var(--muted);margin:0 0 10px}
.foot-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.foot-links a{color:var(--muted);border-bottom:1px solid transparent;padding-bottom:2px}
.foot-links a:hover{color:var(--ink);border-bottom-color:rgba(226,59,106,.45)}
.copy{color:var(--muted);font-size:13px;margin-top:18px}
#age-gate{position:fixed;inset:0;z-index:80;background:#16121C;display:flex;align-items:center;justify-content:center;padding:16px}
#age-ok:checked ~ #age-gate{display:none}
.age-panel{width:min(480px,100%);background:var(--surface);border:1px solid rgba(226,59,106,.45);border-radius:var(--radius-shell);box-shadow:var(--shadow);padding:28px 24px}
.gate-title{font-size:1.45rem;font-weight:700;line-height:1.3;margin:0 0 10px}
.age-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
#age-hold{margin-top:14px;color:var(--amber);font-size:14px}
body.lock{overflow:hidden}
:focus{outline:none}
:focus-visible{outline:2px solid var(--celadon);outline-offset:2px}
input:-webkit-autofill{-webkit-text-fill-color:var(--ink);caret-color:var(--ink);transition:background-color 9999s ease-out}
[hidden]{display:none!important}
@media (max-width:1023px){
  .site-header .main-nav,.site-header .header-search,.site-header .header-tools{display:none}
  .burger{display:inline-flex}
  .site-aside{display:none}
  .site-main{margin-left:0}
  .container{padding:0 24px}
  .note-row{grid-template-columns:1fr 1fr}
}
@media (min-width:1024px){
  .site-main{margin-left:var(--aside)}
}
@media (max-width:767px){
  .container{padding:0 16px}
  main>section{padding:48px 0}
  .doc-head,.more-bar,.foot-grid,.note-row{display:block}
  .entry{grid-template-columns:1fr}
  .ver-chip{margin-top:12px}
  .doc-index a{grid-template-columns:36px minmax(0,1fr)}
  .doc-index time{grid-column:2;grid-row:2}
  .week-tl li{grid-template-columns:72px 14px minmax(0,1fr);gap:8px}
  .end-read .btn,.more-bar .btn{margin-top:8px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
