/* roulang page: index */
:root{
      --bg:#171816;--bg-2:#20231f;--panel:#292b27;--panel-2:#30332d;
      --green:#b8f35a;--green-dark:#1b2515;--amber:#f4b942;--pink:#e65a8d;
      --text:#f3f0e6;--muted:#b8b4a8;--line:#4a5042;--danger:#d77c6d;
      --shadow:6px 6px 0 #0d0e0d;--shadow-small:4px 4px 0 #0d0e0d;
      --radius:6px;--sidebar:248px;
    }
    *,*:before,*:after{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;background:var(--bg);color:var(--text);font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;font-size:16px;line-height:1.8}
    body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;background:repeating-linear-gradient(0deg,transparent 0 3px,#fff 3px 4px);z-index:20}
    a{color:var(--text);text-decoration:none;transition:color .16s,transform .16s,background .16s}
    a:hover{color:var(--green)}
    img{max-width:100%;display:block}
    button,input{font:inherit}
    button{cursor:pointer}
    :focus-visible{outline:3px solid var(--amber);outline-offset:3px}
    .skip-link{position:fixed;top:10px;left:10px;padding:8px 14px;background:var(--green);color:#111;z-index:100;transform:translateY(-150%)}
    .skip-link:focus{transform:translateY(0)}
    .app-shell{min-height:100vh}
    .side-nav{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar);padding:28px 20px;background:#1d201c;border-right:2px solid var(--line);z-index:40;display:flex;flex-direction:column}
    .brand{display:flex;gap:10px;align-items:flex-start;margin-bottom:42px;font-weight:800;line-height:1.35;font-size:18px}
    .brand-mark{width:18px;height:18px;min-width:18px;background:var(--green);border:3px solid #0d0e0d;box-shadow:3px 3px 0 var(--amber);margin-top:3px}
    .nav-caption,.eyebrow{font-family:monospace;color:var(--amber);font-size:12px;letter-spacing:.08em}
    .nav-caption{margin:0 0 10px 8px}
    .nav-list{list-style:none;margin:0;padding:0}
    .nav-list li{margin:6px 0}
    .nav-list a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-left:3px solid transparent;color:var(--muted)}
    .nav-list a:hover,.nav-list a.active{background:var(--panel);color:var(--text);border-left-color:var(--green)}
    .nav-icon{width:8px;height:8px;background:var(--line);display:inline-block}
    .nav-list a.active .nav-icon{background:var(--green);box-shadow:0 0 0 3px #526a35}
    .side-note{margin-top:auto;padding:16px;border:1px solid var(--line);background:var(--bg-2);font-size:13px;color:var(--muted)}
    .side-note strong{display:block;color:var(--text);margin-bottom:5px}
    .main-area{margin-left:var(--sidebar);min-width:0}
    .mobile-bar{display:none}
    .container{max-width:1240px;margin:0 auto;padding:0 34px}
    .utility{height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(74,80,66,.65);color:var(--muted);font-size:13px}
    .utility-status{display:flex;gap:9px;align-items:center}
    .status-dot{width:8px;height:8px;background:var(--green);display:inline-block}
    .hero{padding:82px 0 96px}
    .hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:58px;align-items:center}
    .eyebrow{margin-bottom:18px}
    h1,h2,h3{margin:0;color:var(--text);line-height:1.22;letter-spacing:-.025em}
    h1{font-size:clamp(34px,4.6vw,58px);font-weight:850;max-width:720px}
    h2{font-size:clamp(28px,3.2vw,40px);font-weight:800}
    h3{font-size:20px}
    .hero-copy{font-size:18px;color:var(--muted);max-width:650px;margin:24px 0 30px}
    .button-row{display:flex;gap:14px;flex-wrap:wrap}
    .button{min-height:46px;padding:10px 19px;border:2px solid #10120f;background:var(--green);color:#131611;font-weight:800;box-shadow:var(--shadow-small);display:inline-flex;align-items:center;justify-content:center}
    .button:hover{background:var(--amber);color:#14150f;transform:translate(-2px,-2px);box-shadow:6px 6px 0 #0d0e0d}
    .button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #0d0e0d}
    .button.secondary{background:transparent;color:var(--text);border-color:var(--line);box-shadow:none}
    .button.secondary:hover{background:var(--panel);color:var(--green);box-shadow:var(--shadow-small)}
    .hero-meta{display:flex;gap:28px;margin-top:42px;padding-top:20px;border-top:1px solid var(--line)}
    .meta-value{display:block;color:var(--green);font:800 24px monospace}
    .meta-label{display:block;color:var(--muted);font-size:13px}
    .index-panel{position:relative;background:var(--panel);border:2px solid var(--line);box-shadow:var(--shadow);padding:22px}
    .index-panel:before{content:"字幕索引 / CONTENT MAP";display:block;color:var(--amber);font:12px monospace;margin-bottom:22px}
    .panel-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px;color:var(--muted);font-size:13px}
    .index-row{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:17px 0;border-bottom:1px solid rgba(74,80,66,.7)}
    .index-row:last-child{border-bottom:0}
    .index-num{font:14px monospace;color:var(--amber)}
    .index-title{font-weight:700}
    .index-desc{font-size:12px;color:var(--muted);display:block}
    .tag{display:inline-block;padding:3px 8px;border:1px solid var(--line);border-radius:3px;color:var(--amber);font-size:12px;line-height:1.4;white-space:nowrap}
    .tag.green{color:var(--green);border-color:#6b8c45}
    .section{padding:94px 0;border-top:1px solid rgba(74,80,66,.55)}
    .section-intro{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:38px}
    .section-intro p{max-width:510px;color:var(--muted);margin:0}
    .section-kicker{color:var(--green);font:13px monospace;margin-bottom:10px}
    .path-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:28px}
    .path-list{border-left:2px solid var(--line)}
    .path-item{position:relative;padding:17px 22px 20px 30px}
    .path-item:before{content:"";position:absolute;left:-8px;top:22px;width:14px;height:14px;background:var(--bg);border:3px solid var(--amber)}
    .path-item.active:before{background:var(--green);border-color:var(--green)}
    .path-item h3{font-size:18px;margin-bottom:5px}
    .path-item p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}
    .console{background:var(--bg-2);border:2px solid var(--line);padding:25px;box-shadow:var(--shadow-small)}
    .console-top{display:flex;justify-content:space-between;color:var(--muted);font:12px monospace;border-bottom:1px solid var(--line);padding-bottom:15px}
    .filter-line{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}
    .filter{padding:8px 12px;border:1px solid var(--line);background:var(--panel);font-size:13px;color:var(--muted)}
    .filter.selected{background:var(--green);border-color:var(--green);color:#182015}
    .result-line{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}
    .result-line:last-child{border:0}
    .result-line strong{display:block}
    .result-line small{color:var(--muted)}
    .result-state{color:var(--green);font-size:12px}
    .result-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:26px}
    .result-list{border-top:2px solid var(--green)}
    .result-card{display:grid;grid-template-columns:76px 1fr auto;gap:18px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
    .region-box{height:54px;background:var(--panel-2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--green);font-weight:800}
    .result-card p{margin:3px 0 0;color:var(--muted);font-size:14px}
    .summary-box{background:var(--panel);border:1px solid var(--line);padding:26px}
    .summary-box .big{font-size:44px;color:var(--green);font-weight:800;line-height:1}
    .summary-box p{color:var(--muted);font-size:14px}
    .updates{display:grid;grid-template-columns:1.2fr .8fr;gap:28px}
    .update-list{border-top:2px solid var(--amber)}
    .update-item{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
    .update-item span{color:var(--muted);font-size:13px;white-space:nowrap}
    .note-panel{background:#24271f;padding:25px;border-left:4px solid var(--pink)}
    .note-panel p{color:var(--muted);margin:10px 0 0;font-size:14px}
    .quotes{display:flex;gap:18px;overflow-x:auto;padding:8px 5px 18px 0;scroll-snap-type:x mandatory}
    .quote{min-width:290px;max-width:390px;background:var(--panel);border:1px solid var(--line);padding:24px;scroll-snap-align:start;box-shadow:4px 4px 0 #111}
    .quote:nth-child(2){transform:translateY(18px)}
    .quote-mark{color:var(--pink);font:28px Georgia;margin-bottom:8px}
    .quote p{margin:0 0 18px;font-size:16px}
    .quote small{color:var(--muted)}
    .faq-wrap{max-width:850px}
    .faq-item{border-top:1px solid var(--line)}
    .faq-button{width:100%;min-height:58px;padding:14px 4px;background:transparent;border:0;color:var(--text);display:flex;justify-content:space-between;text-align:left;font-weight:700}
    .faq-icon{color:var(--green);font:22px monospace}
    .faq-answer{display:none;color:var(--muted);padding:0 34px 18px 4px;font-size:14px}
    .faq-item.open .faq-answer{display:block}
    .faq-item.open .faq-icon:after{content:"−"}
    .faq-item:not(.open) .faq-icon:after{content:"+"}
    .cta{padding:64px 0 92px}
    .cta-panel{background:var(--green);color:#172012;border:2px solid #0d0e0d;box-shadow:var(--shadow);padding:42px;display:flex;align-items:center;justify-content:space-between;gap:30px}
    .cta-panel h2{color:#172012;max-width:650px}
    .cta-panel p{max-width:650px;margin:12px 0 0;color:#35432a}
    .cta-panel .button{background:#172012;color:var(--green);box-shadow:4px 4px 0 #647e3c;white-space:nowrap}
    .cta-panel .button:hover{background:#303c25;color:var(--amber)}
    footer{border-top:1px solid var(--line);padding:34px 0 40px;color:var(--muted)}
    .footer-grid{display:flex;justify-content:space-between;gap:30px}
    .footer-brand{color:var(--text);font-weight:800}
    .footer-links{display:flex;gap:20px}
    .copyright{font-size:12px;margin-top:22px;color:#85877d}
    @media(max-width:1023px){
      :root{--sidebar:210px}.container{padding:0 25px}.hero{padding-top:62px}
      .hero-grid,.path-grid,.result-grid,.updates{grid-template-columns:1fr}
      .side-nav{padding:24px 15px}.brand{font-size:16px}
    }
    @media(max-width:700px){
      body:before{display:none}.side-nav{display:none}.main-area{margin-left:0;padding-top:62px}
      .mobile-bar{position:fixed;display:flex;top:0;left:0;right:0;height:62px;background:#1d201c;border-bottom:2px solid var(--line);z-index:50;align-items:center;justify-content:space-between;padding:0 17px}
      .mobile-brand{font-size:15px;font-weight:800;display:flex;gap:8px;align-items:center;max-width:250px;line-height:1.2}
      .menu-button{width:44px;height:44px;background:transparent;border:1px solid var(--line);color:var(--green);font-size:23px}
      .drawer{position:fixed;inset:0;background:rgba(13,14,13,.8);z-index:60;display:none}
      .drawer.open{display:block}.drawer-inner{width:285px;height:100%;background:#1d201c;padding:24px 20px;border-right:2px solid var(--line)}
      .drawer-close{float:right;background:transparent;border:0;color:var(--text);font-size:25px;width:44px;height:44px}
      .drawer .brand{clear:both;padding-top:20px;margin-bottom:35px}.drawer .nav-list{margin-top:10px}
      .container{padding:0 18px}.utility{height:58px}.hero{padding:56px 0 64px}.hero-grid{gap:38px}
      .hero-copy{font-size:16px}.hero-meta{gap:18px;flex-wrap:wrap}.section{padding:62px 0}
      .section-intro{display:block;margin-bottom:28px}.section-intro p{margin-top:14px}
      .index-panel{padding:17px}.result-card{grid-template-columns:58px 1fr}.result-card .tag{grid-column:2}
      .cta{padding:48px 0 64px}.cta-panel{display:block;padding:28px 22px}.cta-panel .button{margin-top:22px}
      .footer-grid{display:block}.footer-links{margin-top:18px;flex-wrap:wrap}
    }
    @media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* roulang page: category1 */
:root{
      --bg:#171816;--bg-2:#20231f;--panel:#292b27;--panel-2:#30332d;
      --green:#b8f35a;--green-dark:#1b2515;--amber:#f4b942;--pink:#e65a8d;
      --text:#f3f0e6;--muted:#b8b4a8;--line:#4a5042;--danger:#d77c6d;
      --shadow:6px 6px 0 #0d0e0d;--shadow-small:4px 4px 0 #0d0e0d;
      --radius:6px;--sidebar:210px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;background:var(--bg);color:var(--text);font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;font-size:16px;line-height:1.8}
    body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;background:repeating-linear-gradient(0deg,transparent 0 3px,#fff 3px 4px);z-index:20}
    a{color:var(--text);text-decoration:none;transition:color .16s,transform .16s,background .16s}
    a:hover{color:var(--green)}
    a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
    button,input{font:inherit}
    button{cursor:pointer}
    h1,h2,h3,p{margin-top:0}
    h1{font-size:clamp(32px,4vw,50px);line-height:1.18;letter-spacing:-.03em;margin-bottom:18px;font-weight:800}
    h2{font-size:clamp(26px,3vw,36px);line-height:1.25;margin-bottom:14px;font-weight:800}
    h3{font-size:20px;line-height:1.4;margin-bottom:6px}
    .skip-link{position:absolute;left:-999px;top:8px;background:var(--green);color:#10140d;padding:8px 14px;z-index:100}
    .skip-link:focus{left:8px}
    .side-nav{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar);padding:28px 20px;background:#1d201c;border-right:2px solid var(--line);z-index:40;display:flex;flex-direction:column}
    .brand{display:flex;gap:10px;align-items:flex-start;margin-bottom:42px;font-weight:800;line-height:1.35;font-size:17px}
    .brand-mark{width:18px;height:18px;min-width:18px;background:var(--green);border:3px solid #0d0e0d;box-shadow:3px 3px 0 var(--amber);margin-top:3px}
    .nav-caption,.eyebrow,.mono{font-family:monospace}
    .nav-caption{color:var(--amber);font-size:12px;letter-spacing:.08em;margin:0 0 10px 8px}
    .nav-list{list-style:none;margin:0;padding:0}
    .nav-list li{margin:6px 0}
    .nav-list a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-left:3px solid transparent;color:var(--muted)}
    .nav-list a:hover,.nav-list a.active{background:var(--panel);color:var(--text);border-left-color:var(--green)}
    .nav-icon{width:8px;height:8px;background:var(--line);display:inline-block}
    .nav-list a.active .nav-icon{background:var(--green);box-shadow:0 0 0 3px #526a35}
    .side-note{margin-top:auto;color:#85877d;font-size:12px;border-top:1px solid var(--line);padding-top:18px}
    .main-area{margin-left:var(--sidebar);min-width:0}
    .mobile-bar{display:none}
    .container{max-width:1240px;margin:0 auto;padding:0 34px}
    .page-head{padding:72px 0 48px}
    .eyebrow{color:var(--amber);font-size:12px;letter-spacing:.08em;margin-bottom:16px}
    .lead{max-width:720px;color:var(--muted);font-size:18px;margin-bottom:28px}
    .head-row{display:flex;justify-content:space-between;align-items:end;gap:28px}
    .status-box{border:1px solid var(--line);background:var(--panel);padding:16px 18px;min-width:190px;box-shadow:var(--shadow-small)}
    .status-box strong{display:block;color:var(--green);font:800 25px monospace}
    .status-box span{color:var(--muted);font-size:13px}
    .section{padding:54px 0;border-top:1px solid rgba(74,80,66,.55)}
    .section-intro{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:26px}
    .section-intro p{color:var(--muted);max-width:530px;margin:0}
    .section-kicker{color:var(--green);font:13px monospace;margin-bottom:9px}
    .filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:16px;background:var(--panel);border:2px solid var(--line);box-shadow:var(--shadow-small)}
    .filter-label{color:var(--muted);font-size:13px;margin-right:5px}
    .filter{display:inline-flex;align-items:center;min-height:40px;padding:6px 13px;border:1px solid var(--line);background:var(--bg-2);font-size:14px}
    .filter:hover,.filter.active{background:var(--green);border-color:#111;color:#172012}
    .clear-filter{margin-left:auto;color:var(--amber);font-size:13px}
    .entry-list{border-top:2px solid var(--green)}
    .entry{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:22px;align-items:center;padding:25px 12px 25px 0;border-bottom:1px solid var(--line);transition:transform .16s,background .16s}
    .entry:hover{background:rgba(48,51,45,.55);transform:translateX(4px)}
    .entry-code{height:62px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);background:var(--bg-2);color:var(--amber);font:800 14px monospace}
    .entry:nth-child(2) .entry-code{color:var(--pink)}
    .entry:nth-child(3) .entry-code{color:var(--green)}
    .entry p{color:var(--muted);font-size:14px;line-height:1.7;margin:4px 0 9px;max-width:720px}
    .tag{display:inline-block;padding:3px 8px;border:1px solid var(--line);border-radius:3px;color:var(--amber);font-size:12px;line-height:1.4;margin-right:5px;white-space:nowrap}
    .tag.green{color:var(--green);border-color:#6b8c45}
    .entry-meta{text-align:right;color:var(--muted);font-size:13px;white-space:nowrap}
    .entry-meta strong{display:block;color:var(--text);font-weight:600;margin-bottom:8px}
    .detail-link{display:inline-block;color:var(--green);font-size:14px;border-bottom:1px solid var(--green)}
    .browse-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}
    .panel{background:var(--panel);border:2px solid var(--line);padding:26px;box-shadow:var(--shadow-small)}
    .panel h3{color:var(--text)}
    .panel p{color:var(--muted);font-size:14px}
    .topic-lines{list-style:none;margin:16px 0 0;padding:0}
    .topic-lines li{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}
    .topic-lines li:last-child{border-bottom:0}
    .topic-lines span{color:var(--muted);font-size:13px}
    .notice{border-left:4px solid var(--amber);padding:3px 0 3px 16px;color:var(--muted);font-size:14px}
    .faq-wrap{max-width:850px}
    .faq-item{border-top:1px solid var(--line)}
    .faq-button{width:100%;min-height:58px;padding:14px 4px;background:transparent;border:0;color:var(--text);display:flex;justify-content:space-between;text-align:left;font-weight:700}
    .faq-icon{color:var(--green);font:22px monospace}
    .faq-answer{display:none;color:var(--muted);padding:0 34px 18px 4px;font-size:14px}
    .faq-item.open .faq-answer{display:block}
    .faq-item.open .faq-icon:after{content:"−"}
    .faq-item:not(.open) .faq-icon:after{content:"+"}
    .cta{padding:64px 0 92px}
    .cta-panel{background:var(--green);color:#172012;border:2px solid #0d0e0d;box-shadow:var(--shadow);padding:38px 42px;display:flex;align-items:center;justify-content:space-between;gap:30px}
    .cta-panel h2{color:#172012;max-width:680px}
    .cta-panel p{max-width:680px;margin:10px 0 0;color:#35432a}
    .button{min-height:46px;padding:10px 19px;border:2px solid #10120f;background:var(--green);color:#131611;font-weight:800;box-shadow:var(--shadow-small);display:inline-flex;align-items:center;justify-content:center}
    .button:hover{background:var(--amber);color:#14150f;transform:translate(-2px,-2px);box-shadow:6px 6px 0 #0d0e0d}
    .cta-panel .button{background:#172012;color:var(--green);box-shadow:4px 4px 0 #647e3c;white-space:nowrap}
    .cta-panel .button:hover{background:#303c25;color:var(--amber)}
    footer{border-top:1px solid var(--line);padding:34px 0 40px;color:var(--muted)}
    .footer-grid{display:flex;justify-content:space-between;gap:30px}
    .footer-brand{color:var(--text);font-weight:800}
    .footer-links{display:flex;gap:20px}
    .copyright{font-size:12px;margin-top:22px;color:#85877d}
    @media(max-width:900px){
      :root{--sidebar:0px}
      body:before{display:none}
      .side-nav{display:none}
      .main-area{margin-left:0;padding-top:64px}
      .mobile-bar{position:fixed;display:flex;top:0;left:0;right:0;height:64px;padding:0 18px;background:#1d201c;border-bottom:2px solid var(--line);align-items:center;justify-content:space-between;z-index:40}
      .mobile-brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:15px}
      .menu-button{width:44px;height:44px;background:var(--panel);color:var(--green);border:1px solid var(--line);font-size:22px}
      .mobile-drawer{position:fixed;top:64px;left:0;bottom:0;width:min(310px,88vw);background:#1d201c;border-right:2px solid var(--line);padding:24px;z-index:39;transform:translateX(-105%);transition:transform .18s}
      .mobile-drawer.open{transform:translateX(0)}
      .drawer-close{float:right;background:transparent;border:1px solid var(--line);color:var(--text);width:44px;height:44px;font-size:22px}
      .drawer-title{clear:both;padding-top:24px;color:var(--amber);font:12px monospace}
      .container{padding:0 25px}
      .head-row,.browse-grid{display:block}
      .status-box{margin-top:25px;max-width:230px}
    }
    @media(max-width:600px){
      h1{font-size:34px}
      .page-head{padding:48px 0 36px}
      .section{padding:44px 0}
      .section-intro{display:block}
      .section-intro p{margin-top:12px}
      .filter-bar{align-items:stretch}
      .filter-label{width:100%}
      .clear-filter{margin-left:0;width:100%}
      .entry{grid-template-columns:58px minmax(0,1fr);gap:14px;padding:21px 0}
      .entry-code{height:52px;font-size:12px}
      .entry-meta{grid-column:2;text-align:left;display:flex;align-items:center;gap:14px}
      .entry-meta strong{margin:0}
      .cta-panel{display:block;padding:28px 24px}
      .cta-panel .button{margin-top:22px}
      .footer-grid{display:block}
      .footer-links{margin-top:18px;flex-wrap:wrap}
    }
    @media(prefers-reduced-motion:reduce){
      *,*:before,*:after{scroll-behavior:auto!important;transition:none!important}
    }
